diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-11-20 12:19:31 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-11-20 12:19:31 +0000 |
commit | 9ff31d52f2dad36c684c3458c35f0666a0fb28e4 (patch) | |
tree | d74cb4ba9591eb4e904d7940c6405d6cc8321fd9 /crawl-ref/source/initfile.cc | |
parent | 1c9f524503622db5774b18a6fca37b71739a5946 (diff) | |
download | crawl-ref-9ff31d52f2dad36c684c3458c35f0666a0fb28e4.tar.gz crawl-ref-9ff31d52f2dad36c684c3458c35f0666a0fb28e4.zip |
Fall back to ASCII if Unicode locale is unavailable (Guus). Also queue up startup error messages and display them before the newgame screen instead of emitting them to stderr.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2882 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/initfile.cc')
-rw-r--r-- | crawl-ref/source/initfile.cc | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/crawl-ref/source/initfile.cc b/crawl-ref/source/initfile.cc index 31a3aff78a..4bc4c05ecf 100644 --- a/crawl-ref/source/initfile.cc +++ b/crawl-ref/source/initfile.cc @@ -372,12 +372,14 @@ static unsigned curses_attribute(const std::string &field) int col = field.find(":"); int colour = str_to_colour(field.substr(col + 1)); if (colour == -1) - fprintf(stderr, "Bad highlight string -- %s\n", field.c_str()); + crawl_state.add_startup_error( + make_stringf("Bad highlight string -- %s\n", field.c_str())); else return CHATTR_HILITE | (colour << 8); } else if (field != "none") - fprintf( stderr, "Bad colour -- %s\n", field.c_str() ); + crawl_state.add_startup_error( + make_stringf( "Bad colour -- %s\n", field.c_str() ) ); return CHATTR_NORMAL; } @@ -467,7 +469,8 @@ void game_options::set_activity_interrupt( delay_type delay = get_delay(delay_name); if (delay == NUM_DELAYS) { - fprintf(stderr, "Unknown delay: %s\n", delay_name.c_str()); + crawl_state.add_startup_error( + make_stringf("Unknown delay: %s\n", delay_name.c_str())); return; } @@ -484,8 +487,9 @@ void game_options::set_activity_interrupt( activity_interrupt_type ai = get_activity_interrupt(interrupt); if (ai == NUM_AINTERRUPTS) { - fprintf(stderr, "Delay interrupt name \"%s\" not recognised.\n", - interrupt.c_str()); + crawl_state.add_startup_error( + make_stringf("Delay interrupt name \"%s\" not recognised.\n", + interrupt.c_str())); return; } @@ -500,7 +504,8 @@ void game_options::set_activity_interrupt(const std::string &activity_name, const delay_type delay = get_delay(activity_name); if (delay == NUM_DELAYS) { - fprintf(stderr, "Unknown delay: %s\n", activity_name.c_str()); + crawl_state.add_startup_error( + make_stringf("Unknown delay: %s\n", activity_name.c_str())); return; } @@ -598,6 +603,9 @@ 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; @@ -1635,6 +1643,10 @@ 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 @@ -2099,7 +2111,8 @@ void game_options::read_option_line(const std::string &str, bool runscript) else if (field == "yes") wiz_mode = WIZ_YES; else - fprintf(stderr, "Unknown wiz_mode option: %s\n", field.c_str()); + crawl_state.add_startup_error( + make_stringf("Unknown wiz_mode option: %s\n", field.c_str())); #endif } else if (key == "ban_pickup") @@ -2150,7 +2163,8 @@ void game_options::read_option_line(const std::string &str, bool runscript) if ( insplit.size() == 0 || insplit.size() > 2 || (insplit.size() == 1 && i != 0) ) { - fprintf(stderr, "Bad hp_colour string: %s\n", field.c_str()); + crawl_state.add_startup_error( + make_stringf("Bad hp_colour string: %s\n", field.c_str())); break; } @@ -2173,7 +2187,8 @@ void game_options::read_option_line(const std::string &str, bool runscript) if ( insplit.size() == 0 || insplit.size() > 2 || (insplit.size() == 1 && i != 0) ) { - fprintf(stderr, "Bad mp_colour string: %s\n", field.c_str()); + crawl_state.add_startup_error( + make_stringf("Bad mp_colour string: %s\n", field.c_str())); break; } @@ -2194,8 +2209,9 @@ void game_options::read_option_line(const std::string &str, bool runscript) note_skill_levels.push_back(num); else { - fprintf(stderr, "Bad skill level to note -- %s\n", - thesplit[i].c_str()); + crawl_state.add_startup_error( + make_stringf("Bad skill level to note -- %s\n", + thesplit[i].c_str())); continue; } } |