From bb6930c4b733afe63784e44792b47d08a7ece2d8 Mon Sep 17 00:00:00 2001 From: dshaligram Date: Mon, 9 Jul 2007 12:26:29 +0000 Subject: Force monsters generated with only a missile launcher to wield the launcher when being generated (instead of switching to it before firing the first shot). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1816 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/libutil.h | 1 + crawl-ref/source/makeitem.cc | 3 +-- crawl-ref/source/monplace.cc | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) (limited to 'crawl-ref/source') diff --git a/crawl-ref/source/libutil.h b/crawl-ref/source/libutil.h index f6915dbb4d..0f425ff7cd 100644 --- a/crawl-ref/source/libutil.h +++ b/crawl-ref/source/libutil.h @@ -135,6 +135,7 @@ public: { val = newval; } + unwind_var(T &val_) : val(val_), oldval(val_) { } ~unwind_var() { val = oldval; diff --git a/crawl-ref/source/makeitem.cc b/crawl-ref/source/makeitem.cc index 97403f0f87..735d6b1c4a 100644 --- a/crawl-ref/source/makeitem.cc +++ b/crawl-ref/source/makeitem.cc @@ -2928,7 +2928,7 @@ static void give_monster_item( set_item_ego_type( mthing, OBJ_WEAPONS, SPWPN_NORMAL ); } - const int speed_inc = mon->speed_increment; + unwind_var save_speedinc(mon->speed_increment); if (!(pickupfn? (mon->*pickupfn)(mthing, false) : mon->pickup_item(mthing, false, true))) { @@ -2939,7 +2939,6 @@ static void give_monster_item( destroy_item(thing); return ; } - mon->speed_increment = speed_inc; if (!force_item || mthing.colour == BLACK) item_colour( mthing ); diff --git a/crawl-ref/source/monplace.cc b/crawl-ref/source/monplace.cc index 20a7b2a4dc..a6ef07c3f1 100644 --- a/crawl-ref/source/monplace.cc +++ b/crawl-ref/source/monplace.cc @@ -578,6 +578,9 @@ static int place_monster_aux( int mon_type, beh_type behaviour, int target, // Give these monsters a second weapon -- bwr if (mons_wields_two_weapons(static_cast(mon_type))) give_item( id, power ); + + unwind_var save_speedinc(menv[id].speed_increment); + menv[id].wield_melee_weapon(false); } // give manticores 8 to 16 spike volleys. -- cgit v1.2.3-54-g00ecf