From 7138af00ba16f97a79a5c251348142dde303c4ca Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Thu, 10 Apr 2025 23:38:44 +0300 Subject: [PATCH] Praying on an altar with pet statue on it can revive the pet --- doc/fixes3-7-0.txt | 2 +- src/pray.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index ea3e3b373..b7d83fd89 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -963,7 +963,7 @@ putting on water walking boots while underwater (maybe via magical breathing) and rising to surface wasn't causing the boots to become discovered flying pets wouldn't target underwater food but if they happened to fly over such food they could and would eat it -praying on an altar with pet corpse on it can revive the pet +praying on an altar with pet corpse or statue on it can revive the pet applying a cursed oil lamp can make your hands slippery valkyries start with a spear instead of a long sword grid bugs don't have hands diff --git a/src/pray.c b/src/pray.c index 066042af0..6250505ee 100644 --- a/src/pray.c +++ b/src/pray.c @@ -2178,14 +2178,19 @@ pray_revive(void) struct obj *otmp; for (otmp = svl.level.objects[u.ux][u.uy]; otmp; otmp = otmp->nexthere) - if (otmp->otyp == CORPSE && has_omonst(otmp) + if ((otmp->otyp == CORPSE || otmp->otyp == STATUE) + && has_omonst(otmp) && OMONST(otmp)->mtame && !OMONST(otmp)->isminion) break; if (!otmp) return FALSE; - return (revive(otmp, TRUE) != NULL); + if (otmp->otyp == CORPSE) + return (revive(otmp, TRUE) != NULL); + else { + return (animate_statue(otmp, u.ux, u.uy, ANIMATE_SPELL, NULL) != NULL); + } } /* #pray command */