@@ -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