]> granicus.if.org Git - nethack/commitdiff
corpses on ice use of obj recharged field
authorcohrs <cohrs>
Thu, 12 Jun 2003 04:49:09 +0000 (04:49 +0000)
committercohrs <cohrs>
Thu, 12 Jun 2003 04:49:09 +0000 (04:49 +0000)
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.

include/obj.h
src/mkobj.c

index 6b3f5798fad8c6a9fd0418c093d4497d301ad8de..265a6aafb8645483f0001c458ede1c6663e6cefb 100644 (file)
@@ -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 */
index ad6a2ebe10a3f6786461ea2defa422ed81e846e1..15b9380ba10c7b3744c37a04ac16cdbd74318291 100644 (file)
@@ -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