Skip to content

Commit

Permalink
fix #Q417 - gelatinous cubes can engulf Rider corpses
Browse files Browse the repository at this point in the history
     From a bug report:  gelatinous cubes
could engulf Rider corpses, allowing g.cube and cargo to be teleported
away without triggering corpse revival, or to be hit with theft attack by
poly'd hero to get the corpse into inventory so it could then be put into
a container in order to prevent revival (or to be destroyed via bag of
holding explosion or cursed access).
  • Loading branch information
nethack.rankin committed Feb 11, 2007
1 parent aa97ea6 commit 0b95104
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 0 deletions.
1 change: 1 addition & 0 deletions doc/fixes34.4
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,7 @@ prevent very large number of objects in # inventory slot from causing
!fixinv config was using arbitrary characters instead of # for invent overflow
don't report death by petrification if cockatrice kills hero via HP loss
Riders are immune to green slime
Rider corpses can't be engulfed by gelatinous cubes
wielding a cloak of magic resistance or gray dragon scales, or carrying one in
alternate weapon or quiver inventory slot, conferred magic resistance
to polymorphed hero
Expand Down
6 changes: 6 additions & 0 deletions src/mon.c
Original file line number Diff line number Diff line change
Expand Up @@ -814,6 +814,12 @@ meatobj(mtmp) /* for gelatinous cubes */
/* in case it polymorphed or died */
if (ptr != &mons[PM_GELATINOUS_CUBE])
return !ptr ? 2 : 1;
} else if (otmp->otyp == CORPSE &&
is_rider(&mons[otmp->corpsenm])) {
/* Rider corpse will always pass the obj_resists() test above
and not be eaten; we don't want it to be engulfed either */
(void)revive_corpse(otmp);
/* continue; -- regardless of whether it revived */
} else if (otmp->oclass != ROCK_CLASS &&
otmp != uball && otmp != uchain) {
++ecount;
Expand Down

0 comments on commit 0b95104

Please sign in to comment.