diff options
Diffstat (limited to 'crawl-ref/source/initfile.cc')
-rw-r--r-- | crawl-ref/source/initfile.cc | 121 |
1 files changed, 64 insertions, 57 deletions
diff --git a/crawl-ref/source/initfile.cc b/crawl-ref/source/initfile.cc index 4bc4c05ecf..e6bc768a53 100644 --- a/crawl-ref/source/initfile.cc +++ b/crawl-ref/source/initfile.cc @@ -101,8 +101,7 @@ int str_to_colour( const std::string &str, int default_colour, "holy", "dark", "death", "necro", "unholy", "vehumet", "beogh", "crystal", "blood", "smoke", "slime", "jewel", "elven", "dwarven", "orcish", "gila", "floor", "rock", - "stone", "mist", "shimmer_blue", "decay", "silver", "gold", - "iron", "bone", "random" + "stone", "mist", "shimmer_blue", "random" }; ASSERT(ARRAYSIZE(element_cols) == (EC_RANDOM - EC_FIRE) + 1); @@ -372,14 +371,12 @@ static unsigned curses_attribute(const std::string &field) int col = field.find(":"); int colour = str_to_colour(field.substr(col + 1)); if (colour == -1) - crawl_state.add_startup_error( - make_stringf("Bad highlight string -- %s\n", field.c_str())); + fprintf(stderr, "Bad highlight string -- %s\n", field.c_str()); else return CHATTR_HILITE | (colour << 8); } else if (field != "none") - crawl_state.add_startup_error( - make_stringf( "Bad colour -- %s\n", field.c_str() ) ); + fprintf( stderr, "Bad colour -- %s\n", field.c_str() ); return CHATTR_NORMAL; } @@ -469,8 +466,7 @@ void game_options::set_activity_interrupt( delay_type delay = get_delay(delay_name); if (delay == NUM_DELAYS) { - crawl_state.add_startup_error( - make_stringf("Unknown delay: %s\n", delay_name.c_str())); + fprintf(stderr, "Unknown delay: %s\n", delay_name.c_str()); return; } @@ -487,9 +483,8 @@ void game_options::set_activity_interrupt( activity_interrupt_type ai = get_activity_interrupt(interrupt); if (ai == NUM_AINTERRUPTS) { - crawl_state.add_startup_error( - make_stringf("Delay interrupt name \"%s\" not recognised.\n", - interrupt.c_str())); + fprintf(stderr, "Delay interrupt name \"%s\" not recognised.\n", + interrupt.c_str()); return; } @@ -504,8 +499,7 @@ void game_options::set_activity_interrupt(const std::string &activity_name, const delay_type delay = get_delay(activity_name); if (delay == NUM_DELAYS) { - crawl_state.add_startup_error( - make_stringf("Unknown delay: %s\n", activity_name.c_str())); + fprintf(stderr, "Unknown delay: %s\n", activity_name.c_str()); return; } @@ -603,24 +597,24 @@ void game_options::reset_options() (1L << 7) | // jewellery (1L << 3) | // wands (1L << 4)); // food - - suppress_startup_errors = false; - show_inventory_weights = false; colour_map = true; clean_map = false; show_uncursed = true; + always_greet = true; easy_open = true; easy_unequip = true; easy_butcher = true; - always_confirm_butcher = false; easy_confirm = CONFIRM_SAFE_EASY; easy_quit_item_prompts = true; hp_warning = 10; magic_point_warning = 0; + confirm_self_target = true; default_target = true; + safe_autopickup = true; autopickup_no_burden = false; + use_notes = true; user_note_prefix = ""; note_all_skill_levels = false; note_skill_max = false; @@ -628,6 +622,9 @@ void game_options::reset_options() note_hp_percent = 5; ood_interesting = 8; + terse_hand = true; + increasing_skill_progress = true; + // [ds] Grumble grumble. auto_list = true; @@ -686,6 +683,7 @@ void game_options::reset_options() explore_item_greed = 10; explore_greedy = false; + safe_zero_exp = true; target_zero_exp = false; target_wrap = true; target_oos = true; @@ -705,6 +703,8 @@ void game_options::reset_options() flush_input[ FLUSH_ON_MESSAGE ] = false; flush_input[ FLUSH_LUA ] = true; + lowercase_invocations = true; + fire_items_start = 2; // start at slot 'c' // Clear fire_order and set up the defaults. @@ -1643,10 +1643,6 @@ void game_options::read_option_line(const std::string &str, bool runscript) // should weights be shown on inventory items? show_inventory_weights = read_bool( field, show_inventory_weights ); } - else if (key == "suppress_startup_errors") - { - suppress_startup_errors = read_bool( field, suppress_startup_errors ); - } else if (key == "clean_map") { // removes monsters/clouds from map @@ -1691,10 +1687,6 @@ void game_options::read_option_line(const std::string &str, bool runscript) // automatic knife switching easy_butcher = read_bool( field, easy_butcher ); } - else if (key == "always_confirm_butcher") - { - always_confirm_butcher = read_bool( field, always_confirm_butcher ); - } else if (key == "lua_file" && runscript) { #ifdef CLUA_BINDINGS @@ -1827,6 +1819,11 @@ void game_options::read_option_line(const std::string &str, bool runscript) // here as well. heap_brand = curses_attribute(field); } + else if (key == "always_greet") + { + // show greeting when reloading game + always_greet = read_bool( field, always_greet ); + } else if (key == "weapon") { // choose this weapon for classes that get choice @@ -1981,12 +1978,20 @@ void game_options::read_option_line(const std::string &str, bool runscript) { auto_list = read_bool( field, auto_list ); } + else if (key == "confirm_self_target") + { + confirm_self_target = read_bool( field, confirm_self_target ); + } else if (key == "default_target") { default_target = read_bool( field, default_target ); if (default_target) target_unshifted_dirs = false; } + else if (key == "safe_autopickup") + { + safe_autopickup = read_bool( field, safe_autopickup ); + } else if (key == "autopickup_no_burden") { autopickup_no_burden = read_bool( field, autopickup_no_burden ); @@ -2060,6 +2065,10 @@ void game_options::read_option_line(const std::string &str, bool runscript) scrollmarg = 0; scroll_margin_x = scroll_margin_y = scrollmarg; } + else if (key == "use_notes") + { + use_notes = read_bool( field, use_notes ); + } else if (key == "user_note_prefix") { // field is already cleaned up from trim_string() @@ -2077,6 +2086,14 @@ void game_options::read_option_line(const std::string &str, bool runscript) { delay_message_clear = read_bool( field, delay_message_clear ); } + else if (key == "terse_hand") + { + terse_hand = read_bool( field, terse_hand ); + } + else if (key == "increasing_skill_progress") + { + increasing_skill_progress = read_bool( field, increasing_skill_progress ); + } else if (key == "flush") { if (subkey == "failure") @@ -2100,6 +2117,11 @@ void game_options::read_option_line(const std::string &str, bool runscript) = read_bool(field, flush_input[FLUSH_LUA]); } } + else if (key == "lowercase_invocations") + { + lowercase_invocations + = read_bool(field, lowercase_invocations); + } else if (key == "wiz_mode") { // wiz_mode is recognized as a legal key in all compiles -- bwr @@ -2111,8 +2133,7 @@ void game_options::read_option_line(const std::string &str, bool runscript) else if (field == "yes") wiz_mode = WIZ_YES; else - crawl_state.add_startup_error( - make_stringf("Unknown wiz_mode option: %s\n", field.c_str())); + fprintf(stderr, "Unknown wiz_mode option: %s\n", field.c_str()); #endif } else if (key == "ban_pickup") @@ -2163,8 +2184,7 @@ void game_options::read_option_line(const std::string &str, bool runscript) if ( insplit.size() == 0 || insplit.size() > 2 || (insplit.size() == 1 && i != 0) ) { - crawl_state.add_startup_error( - make_stringf("Bad hp_colour string: %s\n", field.c_str())); + fprintf(stderr, "Bad hp_colour string: %s\n", field.c_str()); break; } @@ -2187,8 +2207,7 @@ void game_options::read_option_line(const std::string &str, bool runscript) if ( insplit.size() == 0 || insplit.size() > 2 || (insplit.size() == 1 && i != 0) ) { - crawl_state.add_startup_error( - make_stringf("Bad mp_colour string: %s\n", field.c_str())); + fprintf(stderr, "Bad mp_colour string: %s\n", field.c_str()); break; } @@ -2209,9 +2228,8 @@ void game_options::read_option_line(const std::string &str, bool runscript) note_skill_levels.push_back(num); else { - crawl_state.add_startup_error( - make_stringf("Bad skill level to note -- %s\n", - thesplit[i].c_str())); + fprintf(stderr, "Bad skill level to note -- %s\n", + thesplit[i].c_str()); continue; } } @@ -2437,31 +2455,16 @@ void game_options::read_option_line(const std::string &str, bool runscript) std::vector<std::string> seg = split_string(",", field); for (int i = 0, count = seg.size(); i < count; ++i) { - // format: tag:string:colour - // FIXME: arrange so that you can use ':' inside a pattern - std::vector<std::string> subseg = split_string(":", seg[i], false); - std::string tagname, patname, colname; - if ( subseg.size() < 2 ) - continue; - if ( subseg.size() >= 3 ) - { - tagname = subseg[0]; - colname = subseg[1]; - patname = subseg[2]; - } - else + const std::string &sub = seg[i]; + std::string::size_type cpos = sub.find(":", 0); + if (cpos != std::string::npos) { - colname = subseg[0]; - patname = subseg[1]; + colour_mapping mapping; + mapping.pattern = sub.substr(cpos + 1); + mapping.colour = str_to_colour(sub.substr(0, cpos)); + if (mapping.colour != -1) + menu_colour_mappings.push_back(mapping); } - - colour_mapping mapping; - mapping.tag = tagname; - mapping.pattern = patname; - mapping.colour = str_to_colour(colname); - - if (mapping.colour != -1) - menu_colour_mappings.push_back(mapping); } } else if (key == "menu_colour_prefix_class" || @@ -2552,6 +2555,10 @@ void game_options::read_option_line(const std::string &str, bool runscript) { level_map_title = read_bool(field, level_map_title); } + else if (key == "safe_zero_exp") + { + safe_zero_exp = read_bool(field, safe_zero_exp); + } else if (key == "target_zero_exp") { target_zero_exp = read_bool(field, target_zero_exp); |