summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/initfile.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/initfile.cc')
-rw-r--r--crawl-ref/source/initfile.cc121
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);