From ffac5f1a65a427591f2b3166eb6f7811ac19550c Mon Sep 17 00:00:00 2001 From: PatR Date: Mon, 19 Nov 2018 16:24:10 -0800 Subject: [PATCH] life-saving vs sickness 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 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/end.c b/src/end.c index a2f8967d0..7d89bd03a 100644 --- 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)); } } } -- 2.49.0