always_greet, terse_hand, increasing_skill_progress, use_notes, confirm_self_target. (default_autoprayer still exists.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2859 c06c8d41-db1a-0410-9941-cceddc491573
CH7JECYYH35H4TRHRNRTRJCQTQLZ2WRH62TKV72SUIU2RTK5OH7AC 2D5ZCTXEOGMF2AUSFDKSQPKTJ7IIUREFGHTNQ5764OTR2Y4DD36QC 7IVPQ7VB5X4UX7P6DXZJU6MQRP5TAPU3X22JOIRRNI6JWR3LKR5AC A7JJLKQ7HCGJH7DIYGPXNQTVJHVOLDAG5RLWEXAR2ZFRXRDGOCYQC SXLHOSCHX4BPRYRR35DI5GWISPIDKRFUSRVCYYHUUAYLAYFHSPBQC QUFPPRIIRXHUFEDH3EFES7CSHTA7GG2DAXTRHUAUQBYMSWK4BP6AC 3D6NWJ44UYHLZMD3BOQIWXJUEGITAVCHK6Z2WWDQONVQC4HSBRXQC HXD33XDOBW7EE43KQ2PSKIRP3OH6WONNRE5N2WKRVL453KGWLWWAC O2GH2BHUL4XXIIJSMKNV2NIC4KQACE6HLMUL4KEUDFNFEAGMZSZAC 7V4DCKFJCNBXFODMKJ6H3MCDUTSD4XVQ7D4D6XFCD4JNF4HCE4KAC NXVPOFYKJFWQWKVPQUMWH2Y2KJEZX44BUOBFJ4JD4KFGPEGYHG4QC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC 3SVWI6KK6IFQ6SB6L3TIC7QIGDITU5QLVAG5C7X57HH75ZHW7T2AC 5HBRQ2QZTFBQE2Z2CFADUI2D52LO5Z5CNHXHA7BJP3LGO7FJPUCQC CIPVRZGLOZHCERK6YPOBV3P2E4IAB4H6D5EHLRQE2O5E4P4VCBUAC RR2J4VLJCZSAKY3HNS334KI4YUAPOMSETO2HGCGEEIUCUJAYAGSQC 74LQ7JXVLAFSHLI7LCBKFX47CNTYSKGUQSXNX5FCIUIGCC2JTR3QC UWMN4HLG6YA2YFQEVIVMDISD6APKEPIZXMMPMNUYCBQDSAUYSXPQC 547JREUJXTZNYVGHNNAET5F5O5JYYGNTDQB6ABZNT7YX5EY64OHAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC NZFU5APXZZDBRYJGE57F43JKBBPWC33TIZNK6K4OZYSI47PFJMQQC XPCGZBHHSL6MB3ORMUJI64BAERU6AZTIY6RK56BBW7SNB3IK24IAC 45QV77UI6QFW4234P365LD3FGJYRVWTT5455DPB324NG2NFQMKTQC EHSY6DVGUMI6C67WKET3GDJVLWJWGYBYQONNDK5JVT7BCTHBEZVAC CAHE52HL2ZGRJPBYZ3DS4BVKUD2XC7N3SG25TGG7JGHGJDST4P3QC COO5FB4S2L5FELAUVTKNRYV2GWKR5DPU7R3FYWMGWN3AV253KXRAC IX3TFTYD4RYAWYJJGE634KVS4YDFFFI66DSF34VNBJALIKGBP5JQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC 5K2ANIEXD3CPJM4XNKNPZINP2G4NT7SJBKRN62WNBUKJXFERTILQC TV3ZC6WOZKSQQJQN26JIVKCHK6UK7WMDBYZDUYRWEAZ4JB4YVNAAC EOMCPVNQLX3IMLC46EAO67DPBH5KEG2FQTPBLGU62HIRWA3UQ7XQC JM6GKZ6VMX6FNVOZIDXIV22HGX7YESMIFZFE6EEQVCMFJIEA3FNAC JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC 4PUWNQO7QMEWY3GSUHLBKMYOAI7ASYSRM32KDGTA7DLNDIGFAWFAC 5HPIIGNWB3UXJ5APQLAGFOV2CA7J2GB7AWAVVZDBB2YZS4TNCMAQC 7PRZJ6KZLG26YVTAMXT7YOTQLWZHGWGRTKXZZ52P4XYCQD4GT5WQC TR4NPGNO5QNNRJNVMNSUEO5QLT37HCXXDOBKXCB5XWXRQNAJ5SHAC GSQ72ULBSL6WBJZUB3GJKAPQDXZIQV7B2TDBA5OP2WVGHVJMCQFQC CRCKW7MAFIP2MB6ZNPVZXUHBGSPQNTYHGDVF2TCM2K6XLRUTUW4QC Z3RI4XAN7J2GUABAQ5G6YIOQYMBOAEQFFGRBWHMUEB2A2QYXO5MQC GR6ZABTGAAQTKZBVA7PTOYQG6G3ACF62ITT5COLHTRN2HGIPRG2AC Y56C5OMUQ5XF2G6DKDV4R5MED44UOIUPTBBQVWQBUHYIXYA5MOZAC 77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC BXXOYFMWNQY4TLLJBFYROSH43KO5F4JQTATU3ZEJNKGIJGOIQN4AC GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC L4RYVF46EQKMVOEADGRG4WMPVTQ6NNFGYMU4SHAH6XJIKWVHT77QC CQ24AVAI6SW3AHTIDMLPSTRRBEU6FHRF5I5FD6G5QIYE6PO4BQMQC Q2FZIIGQECGP2FKKWLGDBBQVGCFZ4JTY53PFPJP6X7YKC23AQGFQC HYS3HXTXATFPN7GLN3WBGDCP22UT2D3JBVUS7SP5FE7L54TDCJRQC 2KTJHQUX2LTU2BCLS5YXVRRKMOYKKIZAPF2LBKORFGSHEN5IO3IAC BC55WY3GQDR5FEHWPC45YARY4C33X5SN6XR47TKIL76YDZNDUVAQC WCAOZXOYYQBLVRS5FRZTP5ZFOYLQCCPWHGIFM2DLVGHIKVYSQVWQC QKGDOYIYKE6B36ION5O2DRW65DWWPZMYNWJVH7LJJ7FPGGM2MYAQC GMYJ4XEEKZASQWMXQZUME5VYCDBRODO7UJJUEZSVZBMSFVBFLK2AC WXSNNK2RXP3DQFAEQGQUZJHFWXJC7ZKG2WURZGL566UDM4YXFSWQC KW43PGXTTM57DXUGGBQXJ5G5OYYIY3WB76TXIKL2ZCIJGH7GH4LAC RVST2QHYJ757ZHK4AUJ5NGPDZ44AD6RVFVXYPKQIBJXZBDNUCHXQC 2ZFV5PKZU3HDHMLJWVWPPFV43NUNUON6YSAITHB26D7L4XIVWUHQC UPJVSMMMHGRDUIJG4MZX6IBLQ4ODBF5Z3PF3RHDYTSAEOCVDZM5AC XYJ5Y635KCRCTL2BFPP53NWQRK3NUHS6T3ARPIXV5A3CHWBW7VCQC 55F3WPRLVULKMXZPSACPON6H7SBEVNNZNQ2MOOISD2FKAQTRLYFAC YWYXUCZKGNIAWAUKUESIPFCAL5HZOKOEWHUEUW7X4DMAX2HG2FSAC E5GFDGV5XJVVDZGWFQIIZ47FGGF7AEJLGGBWRUZ34HPLNFJTNLLQC 5RK245FAGZFCDDYG4AZAXSC7JPVIJG4DSAVAKHWWVBUNGICHYNJQC F2BIF3CG3F2THAJQZVE7N63F3NLOMA2PY4SUBA2FJOP2ANKIFYGQC }else if (key == "safe_autopickup"){safe_autopickup = read_bool( field, safe_autopickup );
}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 == "safe_zero_exp"){safe_zero_exp = read_bool(field, safe_zero_exp);}
{ "terse_hand", &Options.terse_hand, option_hboolean },{ "increasing_skill_progress", &Options.increasing_skill_progress, option_hboolean },{ "confirm_self_target", &Options.confirm_self_target, option_hboolean },
// print helpputs("Command line options:");puts(" -name <string> character name");puts(" -race <arg> preselect race (by letter, abbreviation, or name)");puts(" -class <arg> preselect class (by letter, abbreviation, or name)");puts(" -pizza <string> crawl pizza");puts(" -plain don't use IBM extended characters");puts(" -dir <path> crawl directory");puts(" -rc <file> init file name");puts(" -morgue <dir> directory to save character dumps");puts(" -macro <dir> directory to save/find macro.txt");puts("");puts("Command line options override init file options, which override");puts("environment options (CRAWL_NAME, CRAWL_PIZZA, CRAWL_DIR, CRAWL_RC).");puts("");puts("Highscore list options: (Can now be redirected to more, etc)");puts(" -scores [N] highscore list");puts(" -tscores [N] terse highscore list");puts(" -vscores [N] verbose highscore list");puts(" -scorefile <filename> scorefile to report on");exit(1);
show_commandline_options_help();return 1;
if (game_start || Options.always_greet){msg::stream << "Welcome, " << you.your_name << " the "<< species_name( you.species,you.experience_level )<< " " << you.class_name << "."<< std::endl;
// Activate markers only after the welcome message, so the// player can see any resulting messages.env.markers.activate_all();
msg::stream << "Welcome, " << you.your_name << " the "<< species_name( you.species,you.experience_level )<< " " << you.class_name << "."<< std::endl;
// Starting messages can go here as this should only happen// at the start of a new game -- bwr// This message isn't appropriate for Options.always_greetif (you.char_class == JOB_WANDERER && game_start){int skill_levels = 0;for (int i = 0; i <= NUM_SKILLS; i++)skill_levels += you.skills[ i ];
// Activate markers only after the welcome message, so the// player can see any resulting messages.env.markers.activate_all();
if (skill_levels <= 2){// Demigods and Demonspawn wanderers stand to not be// able to see any of their skills at the start of// the game (one or two skills should be easily guessed// from starting equipment)... Anyways, we'll give the// player a message to warn them (and give a reason why). -- bwrmpr("You wake up in a daze, and can't recall much.");}}
if (game_start && you.char_class == JOB_WANDERER)wanderer_startup_message();
// These need some work -- should make sure that the god's// name is metioned, else the message might be confusing.switch (you.religion){case GOD_ZIN:simple_god_message( " says: Spread the light, my child." );break;case GOD_SHINING_ONE:simple_god_message( " says: Smite the infidels!" );break;case GOD_KIKUBAAQUDGHA:case GOD_YREDELEMNUL:case GOD_NEMELEX_XOBEH:simple_god_message( " says: Welcome..." );break;case GOD_XOM:if (game_start)simple_god_message( " says: A new plaything!" );break;case GOD_VEHUMET:god_speaks( you.religion, "Let it end in hellfire!");break;case GOD_OKAWARU:simple_god_message(" says: Welcome, disciple.");break;case GOD_MAKHLEB:god_speaks( you.religion, "Blood and souls for Makhleb!" );break;case GOD_SIF_MUNA:simple_god_message( " whispers: I know many secrets...");break;case GOD_TROG:simple_god_message( " says: Kill them all!" );break;case GOD_ELYVILON:simple_god_message( " says: Go forth and aid the weak!" );break;case GOD_LUGONU:simple_god_message( " says: Spread carnage and corruption!");break;case GOD_BEOGH:simple_god_message(" says: Drown the unbelievers in a sea of blood!");break;default:break;}
god_greeting_message( game_start );
{// don't allow triggering at game startOptions.tut_just_triggered = true;// print stats and everythingprep_input();msg::streams(MSGCH_TUTORIAL)<< "Press any key to start the tutorial intro, ""or Escape to skip it."<< std::endl;const int ch = c_getch();if (ch != ESCAPE)tut_starting_screen();}std::ostringstream notestr;notestr << you.your_name << ", the "<< species_name(you.species,you.experience_level) << " "<< you.class_name<< ", began the quest for the Orb.";take_note(Note(NOTE_MESSAGE, 0, 0, notestr.str().c_str()));notestr.str("");notestr.clear();notestr << "HP: " << you.hp << "/" << you.hp_max<< " MP: " << you.magic_points << "/" << you.max_magic_points;take_note(Note(NOTE_XP_LEVEL_CHANGE, you.experience_level, 0,notestr.str().c_str()));
startup_tutorial();take_starting_note();
static void show_commandline_options_help(){puts("Command line options:");puts(" -name <string> character name");puts(" -race <arg> preselect race (by letter, abbreviation, or name)");puts(" -class <arg> preselect class (by letter, abbreviation, or name)");puts(" -pizza <string> crawl pizza");puts(" -plain don't use IBM extended characters");puts(" -dir <path> crawl directory");puts(" -rc <file> init file name");puts(" -morgue <dir> directory to save character dumps");puts(" -macro <dir> directory to save/find macro.txt");puts("");puts("Command line options override init file options, which override");puts("environment options (CRAWL_NAME, CRAWL_PIZZA, CRAWL_DIR, CRAWL_RC).");puts("");puts("Highscore list options: (Can now be redirected to more, etc)");puts(" -scores [N] highscore list");puts(" -tscores [N] terse highscore list");puts(" -vscores [N] verbose highscore list");puts(" -scorefile <filename> scorefile to report on");}static void wanderer_startup_message(){int skill_levels = 0;for (int i = 0; i < NUM_SKILLS; i++)skill_levels += you.skills[ i ];if (skill_levels <= 2){// Demigods and Demonspawn wanderers stand to not be// able to see any of their skills at the start of// the game (one or two skills should be easily guessed// from starting equipment)... Anyways, we'll give the// player a message to warn them (and give a reason why). -- bwrmpr("You wake up in a daze, and can't recall much.");}}static void god_greeting_message( bool game_start ){switch (you.religion){case GOD_ZIN:simple_god_message( " says: Spread the light, my child." );break;case GOD_SHINING_ONE:simple_god_message( " says: Smite the infidels!" );break;case GOD_KIKUBAAQUDGHA:case GOD_YREDELEMNUL:case GOD_NEMELEX_XOBEH:simple_god_message( " says: Welcome..." );break;case GOD_XOM:if (game_start)simple_god_message( " says: A new plaything!" );break;case GOD_VEHUMET:god_speaks( you.religion, "Let it end in hellfire!");break;case GOD_OKAWARU:simple_god_message(" says: Welcome, disciple.");break;case GOD_MAKHLEB:god_speaks( you.religion, "Blood and souls for Makhleb!" );break;case GOD_SIF_MUNA:simple_god_message( " whispers: I know many secrets...");break;case GOD_TROG:simple_god_message( " says: Kill them all!" );break;case GOD_ELYVILON:simple_god_message( " says: Go forth and aid the weak!" );break;case GOD_LUGONU:simple_god_message( " says: Spread carnage and corruption!");break;case GOD_BEOGH:simple_god_message(" says: Drown the unbelievers in a sea of blood!");break;case GOD_NO_GOD:case NUM_GODS:case GOD_RANDOM:break;}}static void take_starting_note(){std::ostringstream notestr;notestr << you.your_name << ", the "<< species_name(you.species,you.experience_level) << " "<< you.class_name<< ", began the quest for the Orb.";take_note(Note(NOTE_MESSAGE, 0, 0, notestr.str().c_str()));
notestr.str("");notestr.clear();notestr << "HP: " << you.hp << "/" << you.hp_max<< " MP: " << you.magic_points << "/" << you.max_magic_points;take_note(Note(NOTE_XP_LEVEL_CHANGE, you.experience_level, 0,notestr.str().c_str()));}static void startup_tutorial(){// don't allow triggering at game startOptions.tut_just_triggered = true;// print stats and everythingprep_input();msg::streams(MSGCH_TUTORIAL)<< "Press any key to start the tutorial intro, or Escape to skip it."<< std::endl;const int ch = c_getch();if (ch != ESCAPE)tut_starting_screen();}
// skip over a-e if player prefers them for invocationsconst int startpoint = (Options.lowercase_invocations ? 5 : 0);for (int slot = startpoint; slot < 52; slot++)
// skip over a-e (invocations)for (int slot = 5; slot < 52; slot++)
auto_list, lowercase_invocations, easy_open, easy_butcher,always_confirm_butcher, easy_unequip, easy_confirm,easy_quit_item_prompts, easy_exit_menu, default_autoprayer,sort_menus
auto_list, easy_open, easy_butcher, always_confirm_butcher,easy_unequip, easy_confirm, easy_quit_item_prompts,easy_exit_menu, default_autoprayer, sort_menus
hp_warning, mp_warning, hp_colour, mp_colour, always_greet,terse_hand, delay_message_clear, menu_colour,menu_colour_prefix_id, menu_colour_prefix_classmessage_colour, increasing_skill_progress,
hp_warning, mp_warning, hp_colour, mp_colour,delay_message_clear, menu_colour, menu_colour_prefix_id,menu_colour_prefix_class, message_colour,
safe_zero_exp = trueIf set, presence of only zero experience monsters (like plants) willcause autopickups, even if safe_autopickup=true is set. This optionalso settles whether autoprayer considers such monsters risky.
which can make life much easier for hunter types. If you use this, beaware that autopickup uses a turn - use Ctrl-A to turn it off whileyou're fighting, or use safe_autopickup=true.
which can make life much easier for hunter types. Be aware thatautopickup uses a turn, though it won't trigger if you can seemonsters.
confirm_self_target = trueSetting this to true will make Crawl ask for confirmation wheneverselecting the character as the target of a non-friendly-targeted spell(i.e., something other than haste, healing or invisibility.)
lowercase_invocations = trueSet this option to true if you prefer to have invocations on 'a'-'e'instead of the older 'A'-'E'. Note that you can change the letters ofinvocations (and other abilites) with the '=' command.
terse_hand = trueSet this to false to have the "in hand" description on the main screenthe same as the inventory. The default setting of true will give thenewer more terse description that should fit the limited space better.
increasing_skill_progress = trueThis affects the appearance of the skills screen ('m'). With thedefault true, the progress for getting new levels is shown withincreasing percentiles, so that immediately after level up it willread (0%). With false, you get the old behaviour which counts backwardsfrom 10.