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 @@ -1534,6 +1534,14 @@ typedef enum { // - `*BossGanondrof` VB_PHANTOM_GANON_DEATH_SCENE, + // #### `result` + // ```c + // true + // ``` + // #### `args` + // - None + VB_PLAY_BEAN_PLANTING_CS, + // #### `result` // ##### In `DoorWarp1_ChildWarpOut` - `SCENE_DODONGOS_CAVERN_BOSS` // ```c 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;