diff options
| author | Jordan Longstaff <JordanLongstaff@users.noreply.github.com> | 2026-04-08 18:54:04 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-08 22:54:04 +0000 |
| commit | 4122d8079ed5167576ae731f8d4e687ad1c94cc1 (patch) | |
| tree | a772b46a61179ba3e34e515536cb36dc23b6a536 | |
| parent | 40425c8c28b921b478e459365a08709aed6c80c0 (diff) | |
Faster bean planting (#6473)
4 files changed, 15 insertions, 2 deletions
diff --git a/soh/soh/Enhancements/game-interactor/vanilla-behavior/GIVanillaBehavior.h b/soh/soh/Enhancements/game-interactor/vanilla-behavior/GIVanillaBehavior.h index 0c2c6230a..4e13fdf33 100644 --- a/soh/soh/Enhancements/game-interactor/vanilla-behavior/GIVanillaBehavior.h +++ b/soh/soh/Enhancements/game-interactor/vanilla-behavior/GIVanillaBehavior.h @@ -1535,6 +1535,14 @@ typedef enum { VB_PHANTOM_GANON_DEATH_SCENE, // #### `result` + // ```c + // true + // ``` + // #### `args` + // - None + VB_PLAY_BEAN_PLANTING_CS, + + // #### `result` // ##### In `DoorWarp1_ChildWarpOut` - `SCENE_DODONGOS_CAVERN_BOSS` // ```c // !Flags_GetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP) diff --git a/soh/soh/Enhancements/timesaver_hook_handlers.cpp b/soh/soh/Enhancements/timesaver_hook_handlers.cpp index 4c50a8632..be043b6da 100644 --- a/soh/soh/Enhancements/timesaver_hook_handlers.cpp +++ b/soh/soh/Enhancements/timesaver_hook_handlers.cpp @@ -572,6 +572,7 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_li } break; } + case VB_PLAY_BEAN_PLANTING_CS: case VB_PLAY_EYEDROP_CREATION_ANIM: case VB_PLAY_EYEDROPS_CS: case VB_PLAY_DROP_FISH_FOR_JABU_CS: diff --git a/soh/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c b/soh/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c index 923defcdc..0510e93e2 100644 --- a/soh/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c +++ b/soh/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c @@ -551,7 +551,9 @@ void ObjBean_WaitForBean(ObjBean* this, PlayState* play) { void func_80B8FE00(ObjBean* this) { this->actionFunc = func_80B8FE3C; ObjBean_SetDrawMode(this, BEAN_STATE_DRAW_LEAVES); - this->timer = 60; + if (GameInteractor_Should(VB_PLAY_BEAN_PLANTING_CS, true)) { + this->timer = 60; + } } // Link is looking at the soft soil diff --git a/soh/src/overlays/actors/ovl_player_actor/z_player.c b/soh/src/overlays/actors/ovl_player_actor/z_player.c index 130644968..5aa9d9470 100644 --- a/soh/src/overlays/actors/ovl_player_actor/z_player.c +++ b/soh/src/overlays/actors/ovl_player_actor/z_player.c @@ -6063,7 +6063,9 @@ s32 Player_ActionHandler_13(Player* this, PlayState* play) { Inventory_ChangeAmmo(ITEM_BEAN, -1); Player_SetupActionPreserveItemAction(play, this, Player_Action_8084279C, 0); this->stateFlags1 |= PLAYER_STATE1_IN_CUTSCENE; - this->av2.actionVar2 = 0x50; + if (GameInteractor_Should(VB_PLAY_BEAN_PLANTING_CS, true)) { + this->av2.actionVar2 = 0x50; + } this->av1.actionVar1 = -1; } talkActor->flags |= ACTOR_FLAG_TALK; |
