diff options
Diffstat (limited to 'crawl-ref/source')
-rw-r--r-- | crawl-ref/source/command.cc | 14 | ||||
-rw-r--r-- | crawl-ref/source/describe.cc | 21 | ||||
-rw-r--r-- | crawl-ref/source/tutorial.cc | 69 | ||||
-rw-r--r-- | crawl-ref/source/tutorial.h | 1 |
4 files changed, 96 insertions, 9 deletions
diff --git a/crawl-ref/source/command.cc b/crawl-ref/source/command.cc index fdadcd010d..922ac5b504 100644 --- a/crawl-ref/source/command.cc +++ b/crawl-ref/source/command.cc @@ -637,10 +637,14 @@ struct help_file help_file help_files[] = { { "crawl_manual.txt", '*', true }, + { "../readme.txt", '!', false }, { "aptitudes.txt", '%', false }, - { "readme.txt", '^', false }, + { "quickstart.txt", '^', false }, { "macros_guide.txt", '~', false }, - { "options_guide.txt", '!', false }, + { "options_guide.txt", '&', false }, +#ifdef USE_TILE + { "tiles_help.txt", 'T', false }, +#endif { NULL, 0, false } }; @@ -1335,12 +1339,16 @@ static void show_keyhelp_menu(const std::vector<formatted_string> &lines, "aspect of Dungeon Crawl.\n" "<w>?</w>: List of keys\n" + "<w>!</w>: Read Me!\n" "<w>^</w>: Quickstart Guide\n" "<w>:</w>: Browse character notes\n" "<w>~</w>: Macros help\n" - "<w>!</w>: Options help\n" + "<w>&</w>: Options help\n" "<w>%</w>: Table of aptitudes\n" "<w>/</w>: Lookup description\n" +#ifdef USE_TILE + "<w>T</w>: Tiles key help\n" +#endif "<w>V</w>: Version information\n" "<w>Home</w>: This screen\n", true, true, cmdhelp_textfilter); diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc index 7248cc12ec..2c418bde43 100644 --- a/crawl-ref/source/describe.cc +++ b/crawl-ref/source/describe.cc @@ -1792,9 +1792,25 @@ void describe_item( item_def &item, bool allow_inscribe ) "<cyan>Do you wish to inscribe this item? ").display(); } + if (Options.tutorial_left && wherey() <= get_number_of_lines() - 2) + { + tutorial_inscription_info(allow_autoinscribe); + + if ( allow_autoinscribe ) + { + formatted_string::parse_string( + "<cyan>So, do you wish to inscribe this item? " + "('a' to autoinscribe) ").display(); + } + else + { + formatted_string::parse_string( + "<cyan>So, do you wish to inscribe this item? ").display(); + } + } #ifdef USE_TILE const int keyin = getch_ck(); - if (toupper(keyin) == 'Y' || keyin == CK_MOUSE_B1) + if (toupper(keyin) == 'Y') #else const int keyin = getch(); if (toupper(keyin) == 'Y') @@ -1808,7 +1824,8 @@ void describe_item( item_def &item, bool allow_inscribe ) you.quiver_change = true; // might have added/removed !F } } - else if (toupper(keyin) == 'A' && allow_autoinscribe) + else if (allow_autoinscribe + && (toupper(keyin) == 'A' || keyin == CK_MOUSE_B1)) { // Remove previous randart inscription _trim_randart_inscrip(item); diff --git a/crawl-ref/source/tutorial.cc b/crawl-ref/source/tutorial.cc index b5869fa12c..40e9382be7 100644 --- a/crawl-ref/source/tutorial.cc +++ b/crawl-ref/source/tutorial.cc @@ -814,6 +814,12 @@ void tutorial_dissection_reminder(bool healthy) text += "If you don't want to eat it, consider <w>c</w>hopping this " "corpse up under <w>p</w>rayer as a sacrifice to "; text += god_name(you.religion); +#ifdef USE_TILE + text += ". You can also chop up any corpse that shows in the floor " + "part of your inventory tiles by clicking on it with your " + "<w>left mouse button</w>"; +#endif + text += ". Whenever you view a corpse while in tutorial mode you can " "reread this information."; @@ -1086,7 +1092,7 @@ void tutorial_first_item(const item_def &item) "Once it is in your inventory, you can drop it again with " #ifdef USE_TILE "a <w>left mouse click</w> while pressing the <w>Shift key</w>. " - "Whenever you <w>right-click</w> on an item in your inventory" + "Whenever you <w>right-click</w> on an item " #else "<w>d</w>. Any time you look at an item in your <w>i</w>nventory" #endif @@ -1305,7 +1311,14 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y) "<w>c</w>hop it up with a sharp implement. Once hungry you " "can then <w>e</w>at the resulting chunks (though they may " "not be healthy)."; - +#ifdef USE_TILE + text << " With tiles, you can also chop up any corpse that shows in " + "the floor part of your inventory region, simply by doing a " + "<w>left mouse click</w> while pressing <w>Shift</w>, and " + "then eat the resulting chunks with <w>Shift + right mouse " + "click</w>."; + +#endif if (god_likes_butchery(you.religion)) { text << " During prayer you can offer corpses to " @@ -2344,13 +2357,34 @@ void tutorial_describe_item(const item_def &item) << god_name(you.religion) << " (while <w>p</w>raying)"; } - ostr << ". "; + if (food_is_rotten(item)) { ostr << "Rotten corpses won't be of any use to you, though, so " - "you might just as well <w>d</w>rop this."; + "you might just as well <w>d</w>rop this. No god will " + "accept such rotten sacrifice, either."; + } +#ifdef USE_TILE + else + { + ostr << " For an individual corpse in your inventory, the most " + "practical way to chop it up is to drop it by clicking " + "on it with your <w>left mouse button</w> while " + "<w>Shift</w> is pressed, and then repeat that command " + "for the corpse tile now lying on the floor. If the " + "intent is to eat the chunks (rather than offer the " + "corpse), you can then press <w>Shift + right mouse " + "button</w> to do that.\n" + EOL + "If there are several items in your inventory you'd " + "like to drop, the more convenient way is to use the " + "<w>d</w>rop menu. On a related note, offering several " + "corpses on a floor square is facilitated by using the " + "<w>c</w>hop prompt where <w>c</w> is a valid synonym " + "for <w>y</w>es."; } +#endif Options.tutorial_events[TUT_SEEN_CARRION] = 0; break; @@ -2439,6 +2473,33 @@ void tutorial_describe_item(const item_def &item) formatted_string::parse_block(broken, false).display(); } // tutorial_describe_item +void tutorial_inscription_info(bool autoinscribe) +{ + std::ostringstream text; + text << "<" << colour_to_str(channel_to_colour(MSGCH_TUTORIAL)) << ">"; + + if (!autoinscribe || wherey() <= get_number_of_lines() - 10) + { + text << EOL + "Inscriptions are a powerful concept of Dungeon Crawl." EOL + "You can inscribe items to differentiate them, or to comment on them, " EOL + "but also to set rules for item interaction. If you are new to Crawl, " EOL + "you can safely ignore this feature, though." EOL; + } + + if (autoinscribe && wherey() <= get_number_of_lines() - 6) + { + text << EOL EOL + "Artefacts can be autoinscribed to give a brief overview of their " EOL + "known properties. Here, doing a <w>left mouse click</w> will autoinscribe " EOL + "this item." EOL; + } + text << "(In the main screen, press <w>?6</w> for more information.)" EOL; + text << "</" << colour_to_str(channel_to_colour(MSGCH_TUTORIAL)) << ">"; + + formatted_string::parse_string(text.str()).display(); +} + bool tutorial_feat_interesting(dungeon_feature_type feat) { if (feat >= DNGN_ALTAR_FIRST_GOD && feat <= DNGN_ALTAR_LAST_GOD) diff --git a/crawl-ref/source/tutorial.h b/crawl-ref/source/tutorial.h index ef3f8bbb32..0c3d13694b 100644 --- a/crawl-ref/source/tutorial.h +++ b/crawl-ref/source/tutorial.h @@ -46,6 +46,7 @@ formatted_string tut_abilities_info(); // additional information for tutorial players void tutorial_describe_item(const item_def &item); +void tutorial_inscription_info(bool autoinscribe); bool tutorial_feat_interesting(dungeon_feature_type feat); void tutorial_describe_feature(dungeon_feature_type feat); bool tutorial_monster_interesting(const monsters *mons); |