diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp index 13a1307d77..ea3370b592 100644 --- a/src/d/d_com_inf_game.cpp +++ b/src/d/d_com_inf_game.cpp @@ -2111,7 +2111,12 @@ BOOL dComIfGs_isStageSwitch(int i_stageNo, int i_no) { } void dComIfGs_onDungeonItemMap(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 dComIfGs_onDungeonItemMap(); } @@ -2135,7 +2140,12 @@ s32 dComIfGs_isDungeonItemMap(int i_stageNo) { } void dComIfGs_onDungeonItemCompass(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 dComIfGs_onDungeonItemCompass(); } @@ -2159,7 +2169,12 @@ s32 dComIfGs_isDungeonItemCompass(int i_stageNo) { } void dComIfGs_onDungeonItemBossKey(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 dComIfGs_onDungeonItemBossKey(); } diff --git a/src/d/d_shop_system.cpp b/src/d/d_shop_system.cpp index 5871d65d2a..f6e8584a9c 100644 --- a/src/d/d_shop_system.cpp +++ b/src/d/d_shop_system.cpp @@ -905,6 +905,15 @@ int dShopSystem_c::seq_start(fopAc_ac_c* actor, dMsgFlow_c* i_flow) { int itemNo; if (mFlow.getEventId(&itemNo) == 1) { if (mItemPartnerId == fpcM_ERROR_PROCESS_ID_e) { +#if TARGET_PC + // In rando, override the item if it's one of our unique shop checks + if (randomizer_IsActive()) { + switch (itemNo) { + case dItemNo_Randomizer_HALF_MILK_BOTTLE_e: + itemNo = randomizer_getItemAtLocation("Ordon Cat Rescue"); + } + } +#endif mItemPartnerId = fopAcM_createItemForPresentDemo(¤t.pos, itemNo, 0, -1, -1, NULL, NULL); } diff --git a/src/dusk/randomizer/generator/data/locations.yaml b/src/dusk/randomizer/generator/data/locations.yaml index 852ac710d7..2ecc43d0a0 100644 --- a/src/dusk/randomizer/generator/data/locations.yaml +++ b/src/dusk/randomizer/generator/data/locations.yaml @@ -36,9 +36,8 @@ - Overworld - Npc - Ordona Province - - ARC - Metadata: - - None + - Location Name Lookup + Metadata: Ordon Cat Rescue - Name: Sera Shop Slingshot Original Item: Slingshot