From 9c23e5bcb60d8c7e9883a8154e40b1e4c8db5cfa Mon Sep 17 00:00:00 2001 From: James Dansereau <106631954+jkdansereau@users.noreply.github.com> Date: Mon, 31 Aug 2026 09:58:08 -0400 Subject: [PATCH] GE_SAVELOG: dump obj/prop/healthy per DESTROY_OBJECT alarm criterion Run 2 crit dump: Dam obj 0 walk is correctly synced (type 23 START stride 4, then 4x type 25 DESTROY_OBJECT tags 0-3, stride 2) and ObjRefID reads right (0,1,2,3). All 4 DESTROY criteria evaluate INCOMPLETE -> obj 0 not complete -> objectiveIsAllComplete=0. Dam Agent obj A = 'Neutralize all alarms' (4 ALARM-tagged boxes). Need to know if the alarms are (a) not found, (b) found still-healthy because the player didn't shoot them, or (c) found still-healthy after being shot = destruction-detection bug. Added obj=/prop=/healthy= to the per-alarm SAVELOG line. --- src/game/objective_status.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/game/objective_status.c b/src/game/objective_status.c index 01bf8a7a..0f633497 100644 --- a/src/game/objective_status.c +++ b/src/game/objective_status.c @@ -195,6 +195,13 @@ OBJECTIVESTATUS get_status_of_objective(s32 objectiveNum) //#MATCH { currentstatus = OBJECTIVESTATUS_INCOMPLETE; } +#ifdef PORT + if (g_savelogObjOnce && getenv("GE_SAVELOG")) + osSyncPrintf("SAVELOG: DESTROY tag=%d obj=%p prop=%p healthy=%d\n", + (int)objective->ObjRefID, (void *)obj, + obj ? (void *)obj->prop : NULL, + obj ? (int)objIsHealthy(obj) : -1); +#endif break; } case PROPDEF_OBJECTIVE_COMPLETE_CONDITION: