From b1dcb59427c466a1f77ab3b24b0bf78b8c9e3f99 Mon Sep 17 00:00:00 2001 From: Demur Rumed Date: Mon, 14 Jul 2025 03:42:52 +0000 Subject: [PATCH] tentacle blocked pseudoregions --- .../dungeons/jabujabus_belly.cpp | 118 +++++++++++++----- .../Enhancements/randomizer/randomizerTypes.h | 10 +- 2 files changed, 95 insertions(+), 33 deletions(-) diff --git a/soh/soh/Enhancements/randomizer/location_access/dungeons/jabujabus_belly.cpp b/soh/soh/Enhancements/randomizer/location_access/dungeons/jabujabus_belly.cpp index 6b0d25d80..78c589324 100644 --- a/soh/soh/Enhancements/randomizer/location_access/dungeons/jabujabus_belly.cpp +++ b/soh/soh/Enhancements/randomizer/location_access/dungeons/jabujabus_belly.cpp @@ -77,6 +77,7 @@ void RegionTable_Init_JabuJabusBelly() { }); areaTable[RR_JABU_JABUS_BELLY_WATER_SWITCH_ROOM_NORTH] = Region("Jabu Jabus Belly Water Switch Room North", SCENE_JABU_JABU, { + //Events EventAccess(&logic->JabuRutoIn1F, []{return logic->IsAdult || logic->HasItem(RG_BRONZE_SCALE);}), }, { //Locations @@ -117,12 +118,12 @@ void RegionTable_Init_JabuJabusBelly() { areaTable[RR_JABU_JABUS_BELLY_FORKED_CORRIDOR] = Region("Jabu Jabus Belly Forked Corridor", SCENE_JABU_JABU, {}, {}, { //Exits - Entrance(RR_JABU_JABUS_BELLY_HOLES_ROOM, []{return true;}), - Entrance(RR_JABU_JABUS_BELLY_FORK_WEST, []{return logic->JabuRutoIn1F;}), - Entrance(RR_JABU_JABUS_BELLY_FORK_NORTH_WEST, []{return logic->JabuWestTentacle;}), - Entrance(RR_JABU_JABUS_BELLY_FORK_NORTH, []{return logic->JabuEastTentacle;}), - Entrance(RR_JABU_JABUS_BELLY_FORK_NORTH_EAST, []{return logic->JabuWestTentacle;}), - Entrance(RR_JABU_JABUS_BELLY_FORK_EAST, []{return logic->JabuRutoIn1F;}), + Entrance(RR_JABU_JABUS_BELLY_HOLES_ROOM, []{return true;}), + Entrance(RR_JABU_JABUS_BELLY_FORK_WEST, []{return logic->JabuRutoIn1F;}), + Entrance(RR_JABU_JABUS_BELLY_TO_FORK_NORTH_WEST, []{return true;}), + Entrance(RR_JABU_JABUS_BELLY_TO_FORK_NORTH, []{return true;}), + Entrance(RR_JABU_JABUS_BELLY_TO_FORK_NORTH_EAST, []{return true;}), + Entrance(RR_JABU_JABUS_BELLY_FORK_EAST, []{return logic->JabuRutoIn1F;}), }); areaTable[RR_JABU_JABUS_BELLY_FORK_WEST] = Region("Jabu Jabus Belly Fork West", SCENE_JABU_JABU, { @@ -136,13 +137,27 @@ void RegionTable_Init_JabuJabusBelly() { Entrance(RR_JABU_JABUS_BELLY_FORKED_CORRIDOR, []{return true;}), }); + // this handles spawning in tentacle + areaTable[RR_JABU_JABUS_BELLY_TO_FORK_NORTH_WEST] = Region("Jabu Jabus Belly To Fork West", SCENE_JABU_JABU, {}, {}, { + //Exits + Entrance(RR_JABU_JABUS_BELLY_FORKED_CORRIDOR, []{return logic->JabuWestTentacle || logic->TakeDamage();}), + Entrance(RR_JABU_JABUS_BELLY_FORK_NORTH_WEST, []{return logic->JabuWestTentacle;}), + }); + areaTable[RR_JABU_JABUS_BELLY_FORK_NORTH_WEST] = Region("Jabu Jabus Belly Fork North West", SCENE_JABU_JABU, {}, { //Locations //ruto could theoretically clear this room, but it's hard because of the timer and she doesn't appear with you when you respawn after failing, which would force a savewarp LOCATION(RC_JABU_JABUS_BELLY_COMPASS_CHEST, logic->CanKillEnemy(RE_SHABOM, ED_CLOSE, false, 9)), }, { //Exits - Entrance(RR_JABU_JABUS_BELLY_FORKED_CORRIDOR, []{return Here(RR_JABU_JABUS_BELLY_FORK_NORTH_WEST, []{return logic->CanKillEnemy(RE_SHABOM, ED_CLOSE, false, 9);});}), + Entrance(RR_JABU_JABUS_BELLY_TO_FORK_NORTH_WEST, []{return Here(RR_JABU_JABUS_BELLY_FORK_NORTH_WEST, []{return logic->CanKillEnemy(RE_SHABOM, ED_CLOSE, false, 9);});}), + }); + + // this handles spawning in tentacle + areaTable[RR_JABU_JABUS_BELLY_TO_FORK_NORTH] = Region("Jabu Jabus Belly To Fork North", SCENE_JABU_JABU, {}, {}, { + //Exits + Entrance(RR_JABU_JABUS_BELLY_FORKED_CORRIDOR, []{return logic->JabuEastTentacle || logic->TakeDamage();}), + Entrance(RR_JABU_JABUS_BELLY_FORK_NORTH, []{return logic->JabuEastTentacle;}), }); areaTable[RR_JABU_JABUS_BELLY_FORK_NORTH] = Region("Jabu Jabus Belly Fork North", SCENE_JABU_JABU, { @@ -151,7 +166,14 @@ void RegionTable_Init_JabuJabusBelly() { }, {}, { //Exits //implied logic->CanKillEnemy(RE_BARI) - Entrance(RR_JABU_JABUS_BELLY_FORKED_CORRIDOR, []{return logic->JabuNorthTentacle;}), + Entrance(RR_JABU_JABUS_BELLY_TO_FORK_NORTH, []{return logic->JabuNorthTentacle;}), + }); + + // this handles spawning in tentacle + areaTable[RR_JABU_JABUS_BELLY_TO_FORK_NORTH_EAST] = Region("Jabu Jabus Belly MQ To Fork West", SCENE_JABU_JABU, {}, {}, { + //Exits + Entrance(RR_JABU_JABUS_BELLY_FORKED_CORRIDOR, []{return logic->JabuWestTentacle || logic->TakeDamage();}), + Entrance(RR_JABU_JABUS_BELLY_FORK_NORTH_EAST, []{return logic->JabuWestTentacle;}), }); areaTable[RR_JABU_JABUS_BELLY_FORK_NORTH_EAST] = Region("Jabu Jabus Belly Fork North East", SCENE_JABU_JABU, { @@ -159,7 +181,7 @@ void RegionTable_Init_JabuJabusBelly() { EventAccess(&logic->JabuEastTentacle, []{return logic->CanKillEnemy(RE_TENTACLE, ED_BOOMERANG);}), }, {}, { //Exits - Entrance(RR_JABU_JABUS_BELLY_FORKED_CORRIDOR, []{return logic->JabuEastTentacle;}), + Entrance(RR_JABU_JABUS_BELLY_TO_FORK_NORTH_EAST, []{return logic->JabuEastTentacle;}), }); areaTable[RR_JABU_JABUS_BELLY_FORK_EAST] = Region("Jabu Jabus Belly Fork East", SCENE_JABU_JABU, {}, { @@ -221,6 +243,7 @@ void RegionTable_Init_JabuJabusBelly() { areaTable[RR_JABU_JABUS_BELLY_NEAR_BOSS_ROOM] = Region("Jabu Jabus Belly Near Boss Room", SCENE_JABU_JABU, {}, { //Locations + //can also use ruto LOCATION(RC_JABU_JABUS_BELLY_GS_NEAR_BOSS, logic->CanKillEnemy(RE_GOLD_SKULLTULA, ED_BOMB_THROW)), }, { //Exits @@ -315,17 +338,11 @@ void RegionTable_Init_JabuJabusBelly() { }, { //Exits Entrance(RR_JABU_JABUS_BELLY_HOLES_ROOM, []{return true /* logic->HasItem(RG_CLIMB) */;}), - Entrance(RR_JABU_JABUS_BELLY_MQ_OUTSIDE_BIGOCTO, []{return logic->JabuWestTentacle;}), + Entrance(RR_JABU_JABUS_BELLY_MQ_TO_BIGOCTO, []{return logic->JabuWestTentacle;}), Entrance(RR_JABU_JABUS_BELLY_MQ_WATER_SWITCH_ROOM, []{return true;}), Entrance(RR_JABU_JABUS_BELLY_MQ_INVISIBLE_KEESE_ROOM, []{return logic->JabuNorthTentacle;}), }); - areaTable[RR_JABU_JABUS_BELLY_MQ_OUTSIDE_BIGOCTO] = Region("Jabu Jabus Belly MQ Holes Outside Big Octo", SCENE_JABU_JABU, {}, {}, { - //Exits - Entrance(RR_JABU_JABUS_BELLY_MQ_HOLES_BASEMENT, []{return logic->JabuWestTentacle;}), - Entrance(RR_JABU_JABUS_BELLY_MQ_BIGOCTO, []{return true;}), - }); - areaTable[RR_JABU_JABUS_BELLY_MQ_WATER_SWITCH_ROOM] = Region("Jabu Jabus Belly MQ Water Switch Room", SCENE_JABU_JABU, { //Events EventAccess(&logic->MQJabuWaterSwitchLiftAccess, []{return logic->CanKillEnemy(RE_LIZALFOS);}), @@ -354,11 +371,18 @@ void RegionTable_Init_JabuJabusBelly() { //Exits Entrance(RR_JABU_JABUS_BELLY_MQ_HOLES_ROOM, []{return logic->CanUse(RG_BOOMERANG);}), //If some mode lets an age use sticks and not sling, and other use sling and not sticks, this needs changing + Entrance(RR_JABU_JABUS_BELLY_MQ_TO_FORK_WEST, []{return true;}), + Entrance(RR_JABU_JABUS_BELLY_MQ_TO_FORK_NORTH_WEST, []{return true;}), + Entrance(RR_JABU_JABUS_BELLY_MQ_TO_FORK_NORTH, []{return logic->BlastOrSmash();}), + Entrance(RR_JABU_JABUS_BELLY_MQ_FORK_NORTH_EAST, []{return true;}), + Entrance(RR_JABU_JABUS_BELLY_MQ_FORK_EAST, []{return Here(RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR, []{return logic->CanUse(RG_FAIRY_SLINGSHOT) && logic->CanUse(RG_STICKS);}) || Here(RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR, []{return logic->HasFireSource();});}), + }); + + // this handles spawning in tentacle + areaTable[RR_JABU_JABUS_BELLY_MQ_TO_FORK_WEST] = Region("Jabu Jabus Belly MQ To Fork West", SCENE_JABU_JABU, {}, {}, { + //Exits + Entrance(RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR, []{return logic->JabuEastTentacle || logic->TakeDamage();}), Entrance(RR_JABU_JABUS_BELLY_MQ_FORK_WEST, []{return logic->JabuEastTentacle;}), - Entrance(RR_JABU_JABUS_BELLY_MQ_FORK_NORTH_WEST, []{return true;}), - Entrance(RR_JABU_JABUS_BELLY_MQ_FORK_NORTH, []{return logic->BlastOrSmash();}), - Entrance(RR_JABU_JABUS_BELLY_MQ_FORK_NORTH_EAST, []{return logic->JabuWestTentacle;}), - Entrance(RR_JABU_JABUS_BELLY_MQ_FORK_EAST, []{return Here(RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR, []{return logic->CanUse(RG_FAIRY_SLINGSHOT) && logic->CanUse(RG_STICKS);}) || Here(RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR, []{return logic->HasFireSource();});}), }); areaTable[RR_JABU_JABUS_BELLY_MQ_FORK_WEST] = Region("Jabu Jabus Belly MQ Fork West", SCENE_JABU_JABU, { @@ -366,22 +390,38 @@ void RegionTable_Init_JabuJabusBelly() { EventAccess(&logic->JabuWestTentacle, []{return logic->CanKillEnemy(RE_TENTACLE, ED_BOOMERANG);}), }, {}, { //Exits - Entrance(RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR, []{return true;}), + Entrance(RR_JABU_JABUS_BELLY_MQ_TO_FORK_WEST, []{return true;}), }); + + // this handles spawning in tentacle + areaTable[RR_JABU_JABUS_BELLY_MQ_TO_FORK_NORTH_WEST] = Region("Jabu Jabus Belly MQ To Fork North West", SCENE_JABU_JABU, {}, {}, { + //Exits + Entrance(RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR, []{return logic->JabuEastTentacle || logic->TakeDamage();}), + Entrance(RR_JABU_JABUS_BELLY_MQ_FORK_WEST, []{return logic->JabuEastTentacle;}), + }); + areaTable[RR_JABU_JABUS_BELLY_MQ_FORK_NORTH_WEST] = Region("Jabu Jabus Belly MQ Fork North West", SCENE_JABU_JABU, {}, { //Locations LOCATION(RC_JABU_JABUS_BELLY_MQ_GS_TAILPASARAN_ROOM, logic->HasExplosives() && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_BOOMERANG)), }, { //Exits - Entrance(RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR, []{return true;}), + Entrance(RR_JABU_JABUS_BELLY_MQ_TO_FORK_NORTH_WEST, []{return true;}), }); + + areaTable[RR_JABU_JABUS_BELLY_MQ_TO_FORK_NORTH] = Region("Jabu Jabus Belly MQ To Fork North", SCENE_JABU_JABU, {}, {}, { + //Exits + Entrance(RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR, []{return logic->BlastOrSmash();}), + Entrance(RR_JABU_JABUS_BELLY_MQ_FORK_NORTH, []{return logic->BlastOrSmash() /*&& str0*/;}), + }); + areaTable[RR_JABU_JABUS_BELLY_MQ_FORK_NORTH] = Region("Jabu Jabus Belly MQ Fork North", SCENE_JABU_JABU, { //Events - EventAccess(&logic->JabuNorthTentacle, []{return logic->JabuNorthTentacle || logic->CanUse(RG_BOOMERANG);}), + EventAccess(&logic->JabuNorthTentacle, []{return logic->CanUse(RG_BOOMERANG);}), }, {}, { //Exits - Entrance(RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR, []{return true;}), + Entrance(RR_JABU_JABUS_BELLY_MQ_TO_FORK_NORTH, []{return true;}), }); + areaTable[RR_JABU_JABUS_BELLY_MQ_FORK_NORTH_EAST] = Region("Jabu Jabus Belly MQ Fork North East", SCENE_JABU_JABU, {}, { //Locations //Implies CanKillEnemy(RE_LIKE_LIKE) @@ -395,6 +435,7 @@ void RegionTable_Init_JabuJabusBelly() { //Exits Entrance(RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR, []{return true;}), }); + areaTable[RR_JABU_JABUS_BELLY_MQ_FORK_EAST] = Region("Jabu Jabus Belly MQ Fork East", SCENE_JABU_JABU, { //Events EventAccess(&logic->JabuEastTentacle, []{return logic->CanKillEnemy(RE_TENTACLE, ED_BOOMERANG);}), @@ -423,14 +464,21 @@ void RegionTable_Init_JabuJabusBelly() { Entrance(RR_JABU_JABUS_BELLY_MQ_HOLES_ROOM, []{return (logic->JabuNorthTentacle || logic->TakeDamage()) && logic->HasItem(RG_BRONZE_SCALE);}), }); + // unlike other entrances behind tentacles, Link spawns behind the tentacle. Running into it throws him into main room still + areaTable[RR_JABU_JABUS_BELLY_MQ_TO_BIGOCTO] = Region("Jabu Jabus Belly MQ To Big Octo", SCENE_JABU_JABU, {}, {}, { + //Exits + Entrance(RR_JABU_JABUS_BELLY_MQ_HOLES_BASEMENT, []{return logic->JabuWestTentacle || logic->TakeDamage();}), + Entrance(RR_JABU_JABUS_BELLY_MQ_BIGOCTO, []{return true;}), + }); + // Need Ruto here areaTable[RR_JABU_JABUS_BELLY_MQ_BIGOCTO] = Region("Jabu Jabus Belly MQ Big Octo", SCENE_JABU_JABU, {}, {}, { //Exits - Entrance(RR_JABU_JABUS_BELLY_MQ_OUTSIDE_BIGOCTO, []{return Here(RR_JABU_JABUS_BELLY_MQ_BIGOCTO, []{return logic->CanKillEnemy(RE_BIG_OCTO);});}), - Entrance(RR_JABU_JABUS_BELLY_MQ_ABOVE_BIGOCTO, []{return Here(RR_JABU_JABUS_BELLY_MQ_BIGOCTO, []{return logic->CanKillEnemy(RE_BIG_OCTO);});}), + Entrance(RR_JABU_JABUS_BELLY_MQ_TO_BIGOCTO, []{return Here(RR_JABU_JABUS_BELLY_MQ_BIGOCTO, []{return logic->CanKillEnemy(RE_BIG_OCTO);});}), + Entrance(RR_JABU_JABUS_BELLY_MQ_ABOVE_BIGOCTO, []{return Here(RR_JABU_JABUS_BELLY_MQ_BIGOCTO, []{return logic->CanKillEnemy(RE_BIG_OCTO);});}), }); - areaTable[RR_JABU_JABUS_BELLY_MQ_ABOVE_BIGOCTO] = Region("Jabu Jabus Belly MQ Above Big Octo", SCENE_JABU_JABU, {}, {}, { + areaTable[RR_JABU_JABUS_BELLY_MQ_ABOVE_BIGOCTO] = Region("Jabu Jabus Belly MQ Above Big Octo", SCENE_JABU_JABU, {}, { //Locations LOCATION(RC_JABU_JABUS_BELLY_MQ_AFTER_BIG_OCTO_GRASS_1, logic->CanCutShrubs()), LOCATION(RC_JABU_JABUS_BELLY_MQ_AFTER_BIG_OCTO_GRASS_2, logic->CanCutShrubs()), @@ -466,10 +514,18 @@ void RegionTable_Init_JabuJabusBelly() { LOCATION(RC_JABU_JABUS_BELLY_MQ_SECOND_ROOM_UPPER_CHEST, logic->MQJabuLiftRoomCow), }, { //Exits - Entrance(RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM, []{return true;}), - Entrance(RR_JABU_JABUS_BELLY_MQ_EAST_ROOM, []{return logic->JabuNorthTentacle;}), + Entrance(RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM, []{return true;}), + Entrance(RR_JABU_JABUS_BELLY_MQ_TO_EAST_ROOM, []{return true;}), }); + // this handles spawning in tentacle + areaTable[RR_JABU_JABUS_BELLY_MQ_TO_EAST_ROOM] = Region("Jabu Jabus Belly To East Room", SCENE_JABU_JABU, {}, {}, { + //Exits + Entrance(RR_JABU_JABUS_BELLY_FORKED_CORRIDOR, []{return logic->JabuNorthTentacle || logic->TakeDamage();}), + Entrance(RR_JABU_JABUS_BELLY_FORK_NORTH_WEST, []{return logic->JabuNorthTentacle;}), + }); + + areaTable[RR_JABU_JABUS_BELLY_MQ_EAST_ROOM] = Region("Jabu Jabus Belly MQ Boss Region", SCENE_JABU_JABU, { //Events EventAccess(&logic->FairyPot, []{return true;}), @@ -482,8 +538,8 @@ void RegionTable_Init_JabuJabusBelly() { LOCATION(RC_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_GRASS_2, logic->CanCutShrubs()), }, { //Exits - Entrance(RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM_EAST_LEDGE, []{return true;}), - Entrance(RR_JABU_JABUS_BELLY_BOSS_ENTRYWAY, []{return Here(RR_JABU_JABUS_BELLY_MQ_EAST_ROOM, []{return logic->CanUse(RG_FAIRY_SLINGSHOT);});}), + Entrance(RR_JABU_JABUS_BELLY_MQ_TO_EAST_ROOM, []{return true;}), + Entrance(RR_JABU_JABUS_BELLY_BOSS_ENTRYWAY, []{return Here(RR_JABU_JABUS_BELLY_MQ_EAST_ROOM, []{return logic->CanUse(RG_FAIRY_SLINGSHOT);});}), }); #pragma endregion diff --git a/soh/soh/Enhancements/randomizer/randomizerTypes.h b/soh/soh/Enhancements/randomizer/randomizerTypes.h index a9ea417c3..677410715 100644 --- a/soh/soh/Enhancements/randomizer/randomizerTypes.h +++ b/soh/soh/Enhancements/randomizer/randomizerTypes.h @@ -668,8 +668,11 @@ typedef enum { RR_JABU_JABUS_BELLY_WATER_SWITCH_ROOM_LEDGE, RR_JABU_JABUS_BELLY_FORKED_CORRIDOR, RR_JABU_JABUS_BELLY_FORK_WEST, + RR_JABU_JABUS_BELLY_TO_FORK_NORTH_WEST, RR_JABU_JABUS_BELLY_FORK_NORTH_WEST, + RR_JABU_JABUS_BELLY_TO_FORK_NORTH, RR_JABU_JABUS_BELLY_FORK_NORTH, + RR_JABU_JABUS_BELLY_TO_FORK_NORTH_EAST, RR_JABU_JABUS_BELLY_FORK_NORTH_EAST, RR_JABU_JABUS_BELLY_FORK_EAST, RR_JABU_JABUS_BELLY_BIGOCTO_LEDGE, @@ -686,21 +689,24 @@ typedef enum { RR_JABU_JABUS_BELLY_MQ_HOLES_ROOM, RR_JABU_JABUS_BELLY_MQ_HOLES_ROOM_PAST_JIGGLY, RR_JABU_JABUS_BELLY_MQ_HOLES_BASEMENT, - RR_JABU_JABUS_BELLY_MQ_OUTSIDE_BIGOCTO, RR_JABU_JABUS_BELLY_MQ_WATER_SWITCH_ROOM, RR_JABU_JABUS_BELLY_MQ_WATER_SWITCH_ROOM_PAST_GEYSER, RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR, - RR_JABU_JABUS_BELLY_MQ_WEST_FORKED_ROOMS, + RR_JABU_JABUS_BELLY_MQ_TO_FORK_WEST, RR_JABU_JABUS_BELLY_MQ_FORK_WEST, + RR_JABU_JABUS_BELLY_MQ_TO_FORK_NORTH_WEST, RR_JABU_JABUS_BELLY_MQ_FORK_NORTH_WEST, + RR_JABU_JABUS_BELLY_MQ_TO_FORK_NORTH, RR_JABU_JABUS_BELLY_MQ_FORK_NORTH, RR_JABU_JABUS_BELLY_MQ_FORK_NORTH_EAST, RR_JABU_JABUS_BELLY_MQ_FORK_EAST, RR_JABU_JABUS_BELLY_MQ_INVISIBLE_KEESE_ROOM, + RR_JABU_JABUS_BELLY_MQ_TO_BIGOCTO, RR_JABU_JABUS_BELLY_MQ_BIGOCTO, RR_JABU_JABUS_BELLY_MQ_ABOVE_BIGOCTO, RR_JABU_JABUS_BELLY_MQ_JIGGLIES_ROOM, RR_JABU_JABUS_BELLY_MQ_ABOVE_LIFT_ROOM, + RR_JABU_JABUS_BELLY_MQ_TO_EAST_ROOM, RR_JABU_JABUS_BELLY_MQ_EAST_ROOM, RR_JABU_JABUS_BELLY_BOSS_ENTRYWAY,