From: nethack.allison Date: Fri, 18 Jul 2003 12:06:08 +0000 (+0000) Subject: ensure mksobj() always attaches timer X-Git-Tag: MOVE2GIT~1895 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=11ecff554002079c868842aa69a2afb2663276bd;p=nethack ensure mksobj() always attaches timer Previously, if mksobj() was called with the 1st argument having a value of CORPSE, and a second argument (init) set to FALSE, the corpse would never get a timer attached. --- diff --git a/doc/fixes34.2 b/doc/fixes34.2 index 3dc3aa564..6945d9ca0 100644 --- a/doc/fixes34.2 +++ b/doc/fixes34.2 @@ -104,6 +104,7 @@ finding a statue trap you are about to dig should stop your occupation try to keep saddle at the same location as the steed corpse never display I symbol on the mounted hero/steed location pit digging is no longer stopped by a sleeping monster next to you +ensure mksobj() always attaches timer to corpse, even if called with init FALSE Platform- and/or Interface-Specific Fixes diff --git a/src/mkobj.c b/src/mkobj.c index 15b9380ba..5631ede68 100644 --- a/src/mkobj.c +++ b/src/mkobj.c @@ -416,7 +416,7 @@ boolean artif; this level; let's create an adventurer's corpse instead, then */ otmp->corpsenm = PM_HUMAN; } - start_corpse_timeout(otmp); + /* timer set below */ break; case EGG: otmp->corpsenm = NON_PM; /* generic egg */ @@ -617,6 +617,14 @@ boolean artif; objects[otmp->otyp].oc_class); return (struct obj *)0; } + + /* Some things must get done (timers) even if init = 0 */ + switch (otmp->otyp) { + case CORPSE: + start_corpse_timeout(otmp); + break; + } + /* unique objects may have an associated artifact entry */ if (objects[otyp].oc_unique && !otmp->oartifact) otmp = mk_artifact(otmp, (aligntyp)A_NONE);