fix #K3907 - reviving buried corpse
Burying an olog-hai corpse with a boulder resulted in a panic when its time to revive occurred. I was able to reproduce this once but failed with "you feel less hassled" several times (using same save file for multiple tests) so I'm not quite sure what was happening. A buried corpse was allowed to revive if it was for a zombie. This fix extends that to auto-revivers (trolls and Riders). The corpse keeps its revive_mon timer rather than changing that to zombify_mon. If/when revival of a buried troll or Rider happens while in view, it will "claw itself out of the ground" like zombies do.
This commit is contained in:
8
src/do.c
8
src/do.c
@@ -2002,10 +2002,16 @@ revive_corpse(struct obj *corpse)
|
||||
char cname[BUFSZ];
|
||||
struct obj *container = (struct obj *) 0;
|
||||
int container_where = 0;
|
||||
boolean is_zomb = (mons[corpse->corpsenm].mlet == S_ZOMBIE);
|
||||
int montype;
|
||||
boolean is_zomb;
|
||||
coordxy corpsex, corpsey;
|
||||
|
||||
where = corpse->where;
|
||||
montype = corpse->corpsenm;
|
||||
/* treat buried auto-reviver (troll, Rider?) like a zombie
|
||||
so that it can dig itself out of the ground if it revives */
|
||||
is_zomb = (mons[montype].mlet == S_ZOMBIE
|
||||
|| (where == OBJ_BURIED && is_reviver(&mons[montype])));
|
||||
is_uwep = (corpse == uwep);
|
||||
chewed = (corpse->oeaten != 0);
|
||||
Strcpy(cname, corpse_xname(corpse,
|
||||
|
||||
Reference in New Issue
Block a user