]> granicus.if.org Git - nethack/commitdiff
life-saving vs sickness
authorPatR <rankin@nethack.org>
Tue, 20 Nov 2018 00:24:10 +0000 (16:24 -0800)
committerPatR <rankin@nethack.org>
Tue, 20 Nov 2018 00:24:10 +0000 (16:24 -0800)
Replace an old instance of direct manipulation of an intrinsic.
If life-saving occurs 1 turn before sickness will kill the hero,
the sickness if cured.  But it was leaving delated_killer for SICK
allocated.  Harmless but a bug none the less.

src/end.c

index a2f8967d0ebf72eb9a38e482b919cd5808bce914..7d89bd03a6c3f671b398efb086491a77a078f166 100644 (file)
--- a/src/end.c
+++ b/src/end.c
@@ -861,8 +861,7 @@ int how;
     }
     /* cure impending doom of sickness hero won't have time to fix */
     if ((Sick & TIMEOUT) == 1L) {
-        u.usick_type = 0;
-        set_itimeout(&Sick, 0L);
+        make_sick(0L, (char *) 0, FALSE, SICK_ALL);
     }
     if (how == CHOKING)
         init_uhunger();
@@ -2051,10 +2050,11 @@ struct kinfo *kptr;
     }
 
     if (k == (struct kinfo *) 0) {
-        impossible("dealloc_killer not on list");
+        impossible("dealloc_killer (#%d) not on list", kptr->id);
     } else {
         prev->next = k->next;
         free((genericptr_t) k);
+        debugpline1("freed delayed killer #%d", kptr->id);
     }
 }
 
@@ -2067,7 +2067,7 @@ int mode;
 
     if (perform_bwrite(mode)) {
         for (kptr = &killer; kptr != (struct kinfo *) 0; kptr = kptr->next) {
-            bwrite(fd, (genericptr_t) kptr, sizeof(struct kinfo));
+            bwrite(fd, (genericptr_t) kptr, sizeof (struct kinfo));
         }
     }
     if (release_data(mode)) {
@@ -2086,9 +2086,9 @@ int fd;
     struct kinfo *kptr;
 
     for (kptr = &killer; kptr != (struct kinfo *) 0; kptr = kptr->next) {
-        mread(fd, (genericptr_t) kptr, sizeof(struct kinfo));
+        mread(fd, (genericptr_t) kptr, sizeof (struct kinfo));
         if (kptr->next) {
-            kptr->next = (struct kinfo *) alloc(sizeof(struct kinfo));
+            kptr->next = (struct kinfo *) alloc(sizeof (struct kinfo));
         }
     }
 }