From: cohrs Date: Thu, 12 Jun 2003 04:49:09 +0000 (+0000) Subject: corpses on ice use of obj recharged field X-Git-Tag: MOVE2GIT~1926 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=90c03c2f0a8cb511ecb991232a6a5c7a5aa823f5;p=nethack corpses on ice use of obj recharged field A while back, I noticed that there was a custom use of the obj->recharged flag in mkobj.c for tracking corpses on ice. It's much more obvious for those of us that don't have the entire source base memorized to follow the usual convention of adding a #define to obj.h. That's what this change does. --- diff --git a/include/obj.h b/include/obj.h index 6b3f5798f..265a6aafb 100644 --- a/include/obj.h +++ b/include/obj.h @@ -78,6 +78,7 @@ struct obj { #define opoisoned otrapped /* object (weapon) is coated with poison */ Bitfield(recharged,3); /* number of times it's been recharged */ +#define on_ice recharged /* corpse on ice */ Bitfield(lamplit,1); /* a light-source -- can be lit */ #ifdef INVISIBLE_OBJECTS Bitfield(oinvis,1); /* invisible */ diff --git a/src/mkobj.c b/src/mkobj.c index ad6a2ebe1..15b9380ba 100644 --- a/src/mkobj.c +++ b/src/mkobj.c @@ -1119,7 +1119,6 @@ int x, y; if (otmp->timed) obj_timer_checks(otmp, x, y, 0); } -#define ON_ICE(a) ((a)->recharged) #define ROT_ICE_ADJUSTMENT 2 /* rotting on ice takes 2 times as long */ /* If ice was affecting any objects correct that now @@ -1157,7 +1156,7 @@ struct obj *otmp; { long age, retval = otmp->age; - if (otmp->otyp == CORPSE && ON_ICE(otmp)) { + if (otmp->otyp == CORPSE && otmp->on_ice) { /* Adjust the age; must be same as obj_timer_checks() for off ice*/ age = monstermoves - otmp->age; retval = otmp->age + (age / ROT_ICE_ADJUSTMENT); @@ -1195,7 +1194,7 @@ int force; /* 0 = no force so do checks, <0 = force off, >0 force on */ tleft = tleft - monstermoves; /* mark the corpse as being on ice */ - ON_ICE(otmp) = 1; + otmp->on_ice = 1; #ifdef DEBUG_EFFECTS pline("%s is now on ice at %d,%d.", The(xname(otmp)),x,y); #endif @@ -1209,7 +1208,7 @@ int force; /* 0 = no force so do checks, <0 = force off, >0 force on */ } /* Check for corpses coming off ice */ else if ((force < 0) || - (otmp->otyp == CORPSE && ON_ICE(otmp) && + (otmp->otyp == CORPSE && otmp->on_ice && ((on_floor && !is_ice(x,y)) || !on_floor))) { tleft = stop_timer(action, (genericptr_t)otmp); if (tleft == 0L) { @@ -1220,7 +1219,7 @@ int force; /* 0 = no force so do checks, <0 = force off, >0 force on */ long age; tleft = tleft - monstermoves; - ON_ICE(otmp) = 0; + otmp->on_ice = 0; #ifdef DEBUG_EFFECTS pline("%s is no longer on ice at %d,%d.", The(xname(otmp)),x,y); #endif @@ -1237,7 +1236,6 @@ int force; /* 0 = no force so do checks, <0 = force off, >0 force on */ (void) start_timer(tleft, TIMER_OBJECT, action, (genericptr_t)otmp); } -#undef ON_ICE #undef ROT_ICE_ADJUSTMENT void