From e14b5260df1fa0e9400a1d0c3472f5d8dcc97e89 Mon Sep 17 00:00:00 2001 From: haranp Date: Wed, 16 Jul 2008 23:45:54 +0000 Subject: Fix 2019860: beef jerky wasn't considered meat. Fix 2019581: weapon flavour was flowing through to subsequent attacks. Fix 2001572: persistent --more-- after dying to explosions. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6577 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/fight.cc | 2 ++ crawl-ref/source/food.cc | 15 ++++++++++++--- crawl-ref/source/message.cc | 2 +- crawl-ref/source/mon-util.cc | 7 ++++++- 4 files changed, 21 insertions(+), 5 deletions(-) (limited to 'crawl-ref/source') diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc index f5821ebb84..5f6b47c671 100644 --- a/crawl-ref/source/fight.cc +++ b/crawl-ref/source/fight.cc @@ -3858,6 +3858,8 @@ void melee_attack::mons_perform_attack_rounds() if (attack_number > 0 && attacker == defender) break; + init_attack(); + const mon_attack_def attk = mons_attack_spec(atk, attack_number); if (attk.type == AT_NONE) { diff --git a/crawl-ref/source/food.cc b/crawl-ref/source/food.cc index 0723e53728..44f39bdb5a 100644 --- a/crawl-ref/source/food.cc +++ b/crawl-ref/source/food.cc @@ -1916,9 +1916,9 @@ bool causes_rot(const item_def &food) } // Returns 1 for herbivores, -1 for carnivores and 0 for either. -static int _player_likes_food_type(int food_type) +static int _player_likes_food_type(int type) { - switch (food_type) + switch (static_cast(type)) { case FOOD_BREAD_RATION: case FOOD_PEAR: @@ -1941,10 +1941,19 @@ static int _player_likes_food_type(int food_type) case FOOD_CHUNK: case FOOD_MEAT_RATION: case FOOD_SAUSAGE: + case FOOD_BEEF_JERKY: return -1; + + case FOOD_HONEYCOMB: + case FOOD_ROYAL_JELLY: + return 0; + + case NUM_FOODS: + mpr("Bad food type", MSGCH_ERROR); + return 0; } - // Anything missing? + mprf(MSGCH_ERROR, "Couldn't handle food type: %d"); return 0; } diff --git a/crawl-ref/source/message.cc b/crawl-ref/source/message.cc index 372becdf55..32360e6477 100644 --- a/crawl-ref/source/message.cc +++ b/crawl-ref/source/message.cc @@ -830,7 +830,7 @@ void mesclr( bool force ) New_Message_Count = 0; // If no messages, return. - if (!any_messages()) + if (!any_messages() && !force) return; if (!force && Options.delay_message_clear) diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc index 986f822ef3..e0916f6e92 100644 --- a/crawl-ref/source/mon-util.cc +++ b/crawl-ref/source/mon-util.cc @@ -3188,7 +3188,12 @@ item_def *monsters::launcher() item_def *monsters::weapon(int which_attack) { - if (which_attack > 1) + const mon_attack_def attk = mons_attack_spec(this, which_attack); + if ( attk.type != AT_HIT ) + return NULL; + + // Even/odd attacks use main/offhand weapon + if ( which_attack > 1 ) which_attack &= 1; // This randomly picks one of the wielded weapons for monsters that can use -- cgit v1.2.3-54-g00ecf