From a8a6e1ce7a8ee6aa4d976df7fec8f46d86e38ae8 Mon Sep 17 00:00:00 2001 From: "John \"Elwin\" Edwards" Date: Tue, 14 Feb 2017 20:42:33 -0500 Subject: [PATCH] UltraRogue: fix a segfault related to restoring monsters. The functions for restoring saved games failed to properly correct the t_chasee pointer of monsters chasing the player. Such monsters would attempt to chase NULL instead, with predictable results. --- urogue/state.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/urogue/state.c b/urogue/state.c index 0f28a39..623cca6 100644 --- a/urogue/state.c +++ b/urogue/state.c @@ -678,7 +678,7 @@ ur_fixup_monsters(struct linked_list *l) { while(l != NULL) { - if (l->data.th->t_chasee == (void *) -1L) + if (l->data.th->chasee_index == -1L) l->data.th->t_chasee = &player; else l->data.th->t_chasee = find_thing(mlist, l->data.th->chasee_index); @@ -1340,7 +1340,7 @@ restore_file(FILE *savef) beast = find_thing(mlist, i); ur_fixup_monsters(fam_ptr); - ur_fixup_monsters(fam_ptr); + ur_fixup_monsters(mlist); DUMPSTRING i = ur_read_int(savef);