From 650b56beeef9ef0d30d3ad7d8b9a54581c545e2b Mon Sep 17 00:00:00 2001 From: gymnast86 Date: Thu, 21 May 2026 05:51:33 -0700 Subject: [PATCH] more guarding against null stag info --- src/d/d_com_inf_game.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp index 8c7bcf8b88..e202c4b9fb 100644 --- a/src/d/d_com_inf_game.cpp +++ b/src/d/d_com_inf_game.cpp @@ -2082,7 +2082,12 @@ static void dummy1() { } BOOL dComIfGs_isStageTbox(int i_stageNo, int i_no) { +#if TARGET_PC + // Avoid trying to get the save table if stag info is NULL + if (dComIfGp_getStageStagInfo() && i_stageNo == dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo())) { +#else if (i_stageNo == dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo())) { +#endif return dComIfGs_isTbox(i_no); } else { return dComIfGs_isSaveTbox(i_stageNo, i_no); @@ -2111,7 +2116,12 @@ void dComIfGs_offStageSwitch(int i_stageNo, int i_no) { } BOOL dComIfGs_isStageSwitch(int i_stageNo, int i_no) { +#if TARGET_PC + // Avoid trying to get the save table if stag info is NULL + if (dComIfGp_getStageStagInfo() && i_stageNo == dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo())) { +#else if (i_stageNo == dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo())) { +#endif return dComIfGs_isSwitch(i_no, -1); } else { return dComIfGs_isSaveSwitch(i_stageNo, i_no); @@ -2140,7 +2150,12 @@ void dComIfGs_offDungeonItemMap(int i_stageNo) { } s32 dComIfGs_isDungeonItemMap(int i_stageNo) { +#if TARGET_PC + // Avoid trying to get the save table if stag info is NULL + if (dComIfGp_getStageStagInfo() && i_stageNo == dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo())) { +#else if (i_stageNo == dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo())) { +#endif return dComIfGs_isDungeonItemMap(); } @@ -2169,7 +2184,12 @@ void dComIfGs_offDungeonItemCompass(int i_stageNo) { } s32 dComIfGs_isDungeonItemCompass(int i_stageNo) { +#if TARGET_PC + // Avoid trying to get the save table if stag info is NULL + if (dComIfGp_getStageStagInfo() && i_stageNo == dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo())) { +#else if (i_stageNo == dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo())) { +#endif return dComIfGs_isDungeonItemCompass(); } @@ -2198,7 +2218,12 @@ void dComIfGs_offDungeonItemBossKey(int i_stageNo) { } s32 dComIfGs_isDungeonItemBossKey(int i_stageNo) { +#if TARGET_PC + // Avoid trying to get the save table if stag info is NULL + if (dComIfGp_getStageStagInfo() && i_stageNo == dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo())) { +#else if (i_stageNo == dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo())) { +#endif return dComIfGs_isDungeonItemBossKey(); }