@@ -446,6 +446,54 @@ void RandomizerOnItemReceiveHandler(GetItemEntry receivedItemEntry) {
446446 randomizerQueuedItemEntry = GET_ITEM_NONE ;
447447 }
448448
449+ if (receivedItemEntry.modIndex == 1 && receivedItemEntry.getItemId == RG_MAGIC_BEAN_PACK ) {
450+ if (OTRGlobals::Instance->gRandomizer ->GetRandoSettingValue (RSK_SKIP_PLANTING_BEANS )) {
451+ gSaveContext .sceneFlags [SCENE_DEATH_MOUNTAIN_CRATER ].swch |= (1 << 3 );
452+ if (gPlayState ->sceneNum == SCENE_DEATH_MOUNTAIN_CRATER ) {
453+ Flags_SetSwitch (gPlayState , 3 );
454+ }
455+ gSaveContext .sceneFlags [SCENE_DEATH_MOUNTAIN_TRAIL ].swch |= (1 << 6 );
456+ if (gPlayState ->sceneNum == SCENE_DEATH_MOUNTAIN_TRAIL ) {
457+ Flags_SetSwitch (gPlayState , 6 );
458+ }
459+ gSaveContext .sceneFlags [SCENE_DESERT_COLOSSUS ].swch |= (1 << 24 );
460+ if (gPlayState ->sceneNum == SCENE_DESERT_COLOSSUS ) {
461+ Flags_SetSwitch (gPlayState , 24 );
462+ }
463+ gSaveContext .sceneFlags [SCENE_GERUDO_VALLEY ].swch |= (1 << 3 );
464+ if (gPlayState ->sceneNum == SCENE_GERUDO_VALLEY ) {
465+ Flags_SetSwitch (gPlayState , 3 );
466+ }
467+ gSaveContext .sceneFlags [SCENE_GRAVEYARD ].swch |= (1 << 3 );
468+ if (gPlayState ->sceneNum == SCENE_GRAVEYARD ) {
469+ Flags_SetSwitch (gPlayState , 3 );
470+ }
471+ gSaveContext .sceneFlags [SCENE_KOKIRI_FOREST ].swch |= (1 << 9 );
472+ if (gPlayState ->sceneNum == SCENE_KOKIRI_FOREST ) {
473+ Flags_SetSwitch (gPlayState , 9 );
474+ }
475+ gSaveContext .sceneFlags [SCENE_LAKE_HYLIA ].swch |= (1 << 1 );
476+ if (gPlayState ->sceneNum == SCENE_LAKE_HYLIA ) {
477+ Flags_SetSwitch (gPlayState , 1 );
478+ }
479+ gSaveContext .sceneFlags [SCENE_LOST_WOODS ].swch |= (1 << 4 ) | (1 << 18 );
480+ if (gPlayState ->sceneNum == SCENE_LOST_WOODS ) {
481+ Flags_SetSwitch (gPlayState , 4 );
482+ Flags_SetSwitch (gPlayState , 18 );
483+ }
484+ gSaveContext .sceneFlags [SCENE_ZORAS_RIVER ].swch |= (1 << 3 );
485+ if (gPlayState ->sceneNum == SCENE_ZORAS_RIVER ) {
486+ Flags_SetSwitch (gPlayState , 3 );
487+ }
488+ ObjBean* bean = (ObjBean*)Actor_Find (&gPlayState ->actorCtx , ACTOR_OBJ_BEAN , ACTORCAT_BG );
489+ if (bean != nullptr ) {
490+ Flags_SetSwitch (gPlayState , bean->dyna .actor .params & 0x3F );
491+ func_80B8FE00 (bean);
492+ }
493+ AMMO (ITEM_BEAN ) = 0 ;
494+ }
495+ }
496+
449497 if (receivedItemEntry.modIndex == MOD_NONE &&
450498 (receivedItemEntry.itemId == ITEM_HEART_PIECE || receivedItemEntry.itemId == ITEM_HEART_PIECE_2 ||
451499 receivedItemEntry.itemId == ITEM_HEART_CONTAINER )) {
0 commit comments