From 46c9bd1b88d14d148bed88ca834afaddc7108197 Mon Sep 17 00:00:00 2001 From: dshaligram Date: Tue, 2 Sep 2008 16:58:08 +0000 Subject: [2029973] Saner autopickup exceptions (doy). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6868 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/initfile.cc | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'crawl-ref/source/initfile.cc') diff --git a/crawl-ref/source/initfile.cc b/crawl-ref/source/initfile.cc index 4b5c252c9a..65cbdeee9f 100644 --- a/crawl-ref/source/initfile.cc +++ b/crawl-ref/source/initfile.cc @@ -901,8 +901,7 @@ void game_options::reset_options() mp_colour.push_back(std::pair(50, YELLOW)); mp_colour.push_back(std::pair(25, RED)); - never_pickup.clear(); - always_pickup.clear(); + force_autopickup.clear(); note_monsters.clear(); note_messages.clear(); autoinscriptions.clear(); @@ -2401,7 +2400,14 @@ void game_options::read_option_line(const std::string &str, bool runscript) } else if (key == "ban_pickup") { - append_vector(never_pickup, split_string(",", field)); + std::vector args = split_string(",", field); + for (int i = 0, size = args.size(); i < size; ++i) + { + const std::string &s = args[i]; + if (s.empty()) + continue; + force_autopickup.push_back(std::make_pair(s, false)); + } } else if (key == "autopickup_exceptions") { @@ -2413,11 +2419,11 @@ void game_options::read_option_line(const std::string &str, bool runscript) continue; if (s[0] == '>') - never_pickup.push_back( s.substr(1) ); + force_autopickup.push_back(std::make_pair(s.substr(1), false)); else if (s[0] == '<') - always_pickup.push_back( s.substr(1) ); + force_autopickup.push_back(std::make_pair(s.substr(1), true)); else - never_pickup.push_back( s ); + force_autopickup.push_back(std::make_pair(s, false)); } } else if (key == "note_items") -- cgit v1.2.3-54-g00ecf