From 79b530116544465acc59103108efede383de2bb8 Mon Sep 17 00:00:00 2001 From: Malkierian Date: Sun, 10 Sep 2023 10:54:18 -0700 Subject: [PATCH] [Tweak] Better GS Ice Trap Collection Handling (#3077) * Make ice traps kick the player out of first person when collecting with the hookshot. * Forgot the `extern`s XD --- soh/src/overlays/actors/ovl_En_Si/z_en_si.c | 9 +++++++++ 1 file changed, 9 insertions(+) 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 dcd80ff6c..ba9f3ccd2 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 @@ -6,6 +6,9 @@ #include "z_en_si.h" +extern void func_8083C148(Player*, PlayState*); +extern void func_80078884(uint16_t); + #define FLAGS (ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOOKSHOT_DRAGS) void EnSi_Init(Actor* thisx, PlayState* play); @@ -181,6 +184,12 @@ void func_80AFB950(EnSi* this, PlayState* play) { } else { SET_GS_FLAGS((this->actor.params & 0x1F00) >> 8, this->actor.params & 0xFF); Actor_Kill(&this->actor); + if (gSaveContext.pendingIceTrapCount > 0 && player->heldItemId == 11) { + player->actor.freezeTimer = 0; + func_8083C148(GET_PLAYER(play), play); + func_80078884(NA_SE_SY_CAMERA_ZOOM_UP); + player->currentYaw = player->actor.shape.rot.y; + } } }