diff options
author | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-06 23:57:13 +0000 |
---|---|---|
committer | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-06 23:57:13 +0000 |
commit | 1579f75e63ce647953008d70029a5493ca8f26c8 (patch) | |
tree | ddd89e0cccbbdbe6bb90ef8009fe9349b412ad93 /crawl-ref/source/stuff.cc | |
parent | dbeaea2cefc46c4f325e5b82f982bdce567a96bd (diff) | |
download | crawl-ref-1579f75e63ce647953008d70029a5493ca8f26c8.tar.gz crawl-ref-1579f75e63ce647953008d70029a5493ca8f26c8.zip |
Fix bug #2489023: dismiss new-game LOS monster with MF_HARD_RESET to prevent
them from dropping items rather than making them summoned, so as to avoid any
"disappears in a puff of smoke" message. And to avoid anything similar in the
future make the monster_die() call a silent, wizard-mode one.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8287 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/stuff.cc')
-rw-r--r-- | crawl-ref/source/stuff.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/crawl-ref/source/stuff.cc b/crawl-ref/source/stuff.cc index a096bc6a3d..9e92b6f155 100644 --- a/crawl-ref/source/stuff.cc +++ b/crawl-ref/source/stuff.cc @@ -1650,9 +1650,11 @@ void zap_los_monsters() mprf(MSGCH_DIAGNOSTICS, "Dismissing %s", mon->name(DESC_PLAIN, true).c_str() ); #endif - // Mark as summoned so its items will also be discarded. - mon->mark_summoned(1, true); - monster_die(mon, KILL_DISMISSED, NON_MONSTER); + // Do a hard reset so the monster's items will be discarded. + mon->flags |= MF_HARD_RESET; + // Do a silent, wizard-mode monster_die() just to be extra sure the + // player sees nothings. + monster_die(mon, KILL_DISMISSED, NON_MONSTER, true, true); } } |