From cbb5e8e7a400bf3a312cc9d04349c75172ab9c1e Mon Sep 17 00:00:00 2001 From: danielryb <59661841+danielryb@users.noreply.github.com> Date: Sun, 23 Jun 2024 04:02:33 +0200 Subject: [PATCH] Allow skipping Song of Soaring cutscene (#409) --- patches/skip_sos.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 patches/skip_sos.c diff --git a/patches/skip_sos.c b/patches/skip_sos.c new file mode 100644 index 0000000..71a6f76 --- /dev/null +++ b/patches/skip_sos.c @@ -0,0 +1,29 @@ +#include "patches.h" + +#include "overlays/actors/ovl_En_Test7/z_en_test7.h" + +#define THIS ((EnTest7*)thisx) + +void func_80AF118C(PlayState* play, OwlWarpFeather* feathers, EnTest7* this, s32 arg3, s32 arg4); // EnTest7_UpdateFeathers +void func_80AF2350(EnTest7* this, PlayState* play); // EnTest7_WarpCsWarp + +void EnTest7_Update(Actor* thisx, PlayState* play) { + EnTest7* this = THIS; + + this->actionFunc(this, play); + + if (this->playerCamFunc != NULL) { + this->playerCamFunc(this, play); + } + + this->timer++; + + func_80AF118C(play, this->feathers, this, (this->flags & OWL_WARP_FLAGS_8) != 0, + (this->flags & OWL_WARP_FLAGS_10) != 0); + + // @recomp Allow skipping the Song of Soaring cutscene. + Input* input = CONTROLLER1(&play->state); + if (CHECK_BTN_ANY(input->press.button, BTN_A | BTN_B) && (OWL_WARP_CS_GET_OCARINA_MODE(&this->actor) != ENTEST7_ARRIVE)) { + func_80AF2350(thisx, play); + } +} \ No newline at end of file