From 0da14603e2c97b69ac63e0ffeaff2b18ae4a77c3 Mon Sep 17 00:00:00 2001 From: aMannus Date: Sun, 17 Jul 2022 23:50:48 +0200 Subject: [PATCH] Freeze fix/first batch of skull actors --- .../Enhancements/randomizer/randomizer.cpp | 28 +++++++++++++++++++ soh/src/overlays/actors/ovl_En_Si/z_en_si.c | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/soh/soh/Enhancements/randomizer/randomizer.cpp b/soh/soh/Enhancements/randomizer/randomizer.cpp index 354c6f7fc..a7d23c443 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer.cpp @@ -2960,6 +2960,12 @@ RandomizerCheck Randomizer::GetCheckFromActor(s16 sceneNum, s16 actorId, s16 act return RC_HF_COW_GROTTO_GOSSIP_STONE; case 14355: return RC_HC_STORMS_GROTTO_GOSSIP_STONE; + case 10753: + return RC_HF_GS_COW_GROTTO; + case 10754: + return RC_HF_GS_NEAR_KAK_GROTTO; + case 11778: + return RC_HC_GS_STORMS_GROTTO; default: return RC_UNKNOWN_CHECK; } @@ -2998,6 +3004,12 @@ RandomizerCheck Randomizer::GetCheckFromActor(s16 sceneNum, s16 actorId, s16 act return RC_LLR_FREESTANDING_POH; } break; + case 77: + switch (actorParams) { + case -29176: + return RC_MARKET_GS_GUARD_HOUSE; + } + break; case 82: switch (actorId) { case 316: @@ -3044,6 +3056,12 @@ RandomizerCheck Randomizer::GetCheckFromActor(s16 sceneNum, s16 actorId, s16 act return RC_KF_DEKU_TREE_RIGHT_GOSSIP_STONE; case 14623: return RC_KF_DEKU_TREE_LEFT_GOSSIP_STONE; + case 19458: + return RC_KF_GS_KNOW_IT_ALL_HOUSE; + case 27649: + return RC_KF_GS_BEAN_PATCH; + case 19460: + return RC_KF_GS_HOUSE_OF_TWINS; } break; case 86: @@ -3054,6 +3072,8 @@ RandomizerCheck Randomizer::GetCheckFromActor(s16 sceneNum, s16 actorId, s16 act return RC_SFM_MAZE_UPPER_GOSSIP_STONE; case 14876: return RC_SFM_SARIA_GOSSIP_STONE; + case 19720: + return RC_SFM_GS; } break; case 87: @@ -3116,6 +3136,12 @@ RandomizerCheck Randomizer::GetCheckFromActor(s16 sceneNum, s16 actorId, s16 act return RC_LW_DEKU_SCRUB_NEAR_BRIDGE; case 14365: return RC_LW_GOSSIP_STONE; + case 27905: + return RC_LW_GS_BEAN_PATCH_NEAR_BRIDGE; + case 27906: + return RC_LW_GS_BEAN_PATCH_NEAR_THEATER; + case 19716: + return RC_LW_GS_ABOVE_THEATER; } break; case 92: @@ -3149,6 +3175,8 @@ RandomizerCheck Randomizer::GetCheckFromActor(s16 sceneNum, s16 actorId, s16 act return RC_HC_MALON_GOSSIP_STONE; case 14347: return RC_HC_ROCK_WALL_GOSSIP_STONE; + case -29180: + return RC_HC_GS_TREE; } break; case 96: diff --git a/soh/src/overlays/actors/ovl_En_Si/z_en_si.c b/soh/src/overlays/actors/ovl_En_Si/z_en_si.c index bf8a93c4c..9293a436f 100644 --- a/soh/src/overlays/actors/ovl_En_Si/z_en_si.c +++ b/soh/src/overlays/actors/ovl_En_Si/z_en_si.c @@ -101,7 +101,7 @@ void func_80AFB768(EnSi* this, GlobalContext* globalCtx) { itemGiveId = sGetItemTable[getItemId - 1].itemId; } Item_Give(globalCtx, itemGiveId); - if (CVar_GetS32("gSkulltulaFreeze", 0) != 1) { + if (CVar_GetS32("gSkulltulaFreeze", 0) != 1 || itemGiveId != ITEM_SKULL_TOKEN) { player->actor.freezeTimer = 20; } Message_StartTextbox(globalCtx, textId, NULL);