From a9ac64d3b972306982b27c81632182864022f939 Mon Sep 17 00:00:00 2001 From: zelgadis Date: Thu, 11 Dec 2008 11:12:18 +0000 Subject: Generalize swapping two pieces of terrain in function swap_terrain(). Encapsulate filling out a corpse object for a particular monster in fill_out_corpse(). Started work on "swap chaos weapon with weapon of victim" chaos effect, but am putting that off until there's some actor class virtual methods for changing inventory and equipment. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7807 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/spells3.cc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'crawl-ref/source/spells3.cc') diff --git a/crawl-ref/source/spells3.cc b/crawl-ref/source/spells3.cc index a63facdc81..c03ab68b98 100644 --- a/crawl-ref/source/spells3.cc +++ b/crawl-ref/source/spells3.cc @@ -777,8 +777,12 @@ static void _equip_undead(const coord_def &a, int corps, int monster, } static bool _raise_remains(const coord_def &a, int corps, beh_type beha, - unsigned short hitting, god_type god, bool actual) + unsigned short hitting, god_type god, bool actual, + int* mon_index) { + if (mon_index != NULL) + *mon_index = -1; + const item_def& item = mitm[corps]; if (!_animatable_remains(item)) @@ -815,6 +819,8 @@ static bool _raise_remains(const coord_def &a, int corps, beh_type beha, a, hitting, 0, god, zombie_type, number)); + if (mon_index != NULL) + *mon_index = monster; if (monster != -1) { @@ -843,7 +849,7 @@ static bool _raise_remains(const coord_def &a, int corps, beh_type beha, bool animate_remains(const coord_def &a, corpse_type class_allowed, beh_type beha, unsigned short hitting, god_type god, bool actual, - bool quiet) + bool quiet, int* mon_index) { if (is_sanctuary(a)) return (false); @@ -859,7 +865,8 @@ bool animate_remains(const coord_def &a, corpse_type class_allowed, { const bool was_butchering = is_being_butchered(*si); - success = _raise_remains(a, si.link(), beha, hitting, god, actual); + success = _raise_remains(a, si.link(), beha, hitting, god, actual, + mon_index); if (actual && success) { -- cgit v1.2.3-54-g00ecf