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.
This commit is contained in:
PatR
2018-11-19 16:24:10 -08:00
parent 46184c06af
commit ffac5f1a65

View File

@@ -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));
}
}
}