diff options
-rw-r--r-- | crawl-ref/source/debug.cc | 8 | ||||
-rw-r--r-- | crawl-ref/source/describe.cc | 4 | ||||
-rw-r--r-- | crawl-ref/source/itemname.cc | 8 | ||||
-rw-r--r-- | crawl-ref/source/player.cc | 52 | ||||
-rw-r--r-- | crawl-ref/source/religion.cc | 2 |
5 files changed, 55 insertions, 19 deletions
diff --git a/crawl-ref/source/debug.cc b/crawl-ref/source/debug.cc index 7e2ba2701b..6deb102853 100644 --- a/crawl-ref/source/debug.cc +++ b/crawl-ref/source/debug.cc @@ -2357,16 +2357,24 @@ void debug_card() msg::streams(MSGCH_PROMPT) << "Which card? " << std::endl; char buf[80]; if (cancelable_get_line(buf, sizeof buf)) + { + mpr("Unknown card."); return; + } + + bool found_card = false; for ( int i = 0; i < NUM_CARDS; ++i ) { const card_type c = static_cast<card_type>(i); if ( strstr(card_name(c), buf) != NULL ) { card_effect(c, DECK_RARITY_LEGENDARY); + found_card = true; break; } } + if (!found_card) + mpr("Unknown card."); } static void debug_uptick_xl(int newxl) diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc index f6c02817f8..4282ee5660 100644 --- a/crawl-ref/source/describe.cc +++ b/crawl-ref/source/describe.cc @@ -1180,6 +1180,10 @@ static std::string describe_weapon( const item_def &item, bool verbose) case SPWPN_REACHING: description += "It can be evoked to extend its reach. "; break; + case SPWPN_RETURNING: + description += "It is enchanted to return to its owner " + "when thrown."; + break; } } diff --git a/crawl-ref/source/itemname.cc b/crawl-ref/source/itemname.cc index ee02552c5d..d8f7aa3030 100644 --- a/crawl-ref/source/itemname.cc +++ b/crawl-ref/source/itemname.cc @@ -1625,6 +1625,13 @@ static MenuEntry *discoveries_item_mangle(MenuEntry *me) return (newme); } +bool item_names( const item_def *it1, + const item_def *it2 ) +{ + return it1->name(DESC_PLAIN, false, false, false) + < it2->name(DESC_PLAIN, false, false, false); +} + void check_item_knowledge() { std::vector<const item_def*> items; @@ -1657,6 +1664,7 @@ void check_item_knowledge() mpr("You don't recognise anything yet!"); else { + std::sort(items.begin(), items.end(), item_names); InvMenu menu; menu.set_title("You recognise:"); menu.load_items(items, discoveries_item_mangle); diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc index 7b2cab6c3a..7fd0040a06 100644 --- a/crawl-ref/source/player.cc +++ b/crawl-ref/source/player.cc @@ -170,31 +170,47 @@ bool move_player_to_grid( int x, int y, bool stepped, bool allow_shift, // return (false); // if we're walking along, give a chance to avoid trap - if (stepped - && !force - && new_grid == DNGN_UNDISCOVERED_TRAP) + if (stepped && !force) { - const int skill = 4 + you.skills[SK_TRAPS_DOORS] - + you.mutation[MUT_ACUTE_VISION] - - 2 * you.mutation[MUT_BLURRY_VISION]; - - if (random2( skill ) > 6) + if (new_grid == DNGN_UNDISCOVERED_TRAP) { - mprf( MSGCH_WARN, - "Wait a moment, %s! Do you really want to step there?", - you.your_name ); + const int skill = 4 + you.skills[SK_TRAPS_DOORS] + + you.mutation[MUT_ACUTE_VISION] + - 2 * you.mutation[MUT_BLURRY_VISION]; - more(); + if (random2( skill ) > 6) + { + mprf( MSGCH_WARN, + "Wait a moment, %s! Do you really want to step there?", + you.your_name ); - exercise( SK_TRAPS_DOORS, 3 ); + more(); - you.turn_is_over = false; + exercise( SK_TRAPS_DOORS, 3 ); - id = trap_at_xy( x, y ); - if (id != -1) - grd[x][y] = trap_category( env.trap[id].type ); + you.turn_is_over = false; - return (false); + id = trap_at_xy( x, y ); + if (id != -1) + grd[x][y] = trap_category( env.trap[id].type ); + + return (false); + } + } // unknown trap + else if (new_grid == DNGN_TRAP_MAGICAL) + { + std::string prompt = "Really step onto that "; // preposition? + prompt += feature_description(new_grid, trap_type_at_xy(x,y), + DESC_PLAIN, false); + prompt += '?'; + + // Zot traps require capital confirmation + bool harmless = (trap_type_at_xy(x,y) != TRAP_ZOT); + if (!yesno(prompt.c_str(), harmless, 'n')) + { + you.turn_is_over = false; + return (false); + } } } diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc index 00de2c7425..22426c71a8 100644 --- a/crawl-ref/source/religion.cc +++ b/crawl-ref/source/religion.cc @@ -2880,7 +2880,7 @@ void god_pitch(god_type which_god) snprintf( info, INFO_SIZE, "Do you wish to %sjoin this religion?", (you.worshipped[which_god]) ? "re" : "" ); - if (!yesno( info, false, 'n' ) || !yesno("Are you sure?", false, 'n')) + if (!yesno( info, true, 'n' ) || !yesno("Are you sure?", false, 'n')) { redraw_screen(); return; |