refactor deku tree (#5854)

This commit is contained in:
Philip Dubé
2025-12-15 19:41:53 +00:00
committed by GitHub
parent 7176960a0e
commit e9aad17d17
2 changed files with 23 additions and 9 deletions

View File

@@ -213,7 +213,10 @@ void RegionTable_Init_DekuTree() {
//is it possible to recoil from here to the ledge with a trick?
});
areaTable[RR_DEKU_TREE_MQ_2F] = Region("Deku Tree MQ 2F", SCENE_DEKU_TREE, {}, {
areaTable[RR_DEKU_TREE_MQ_2F] = Region("Deku Tree MQ 2F", SCENE_DEKU_TREE, {
//Events
EventAccess(LOGIC_DEKU_TREE_MQ_2F_BURNED_WEB, []{return logic->HasFireSource();}),
}, {
//Locations
LOCATION(RC_DEKU_TREE_MQ_MAP_CHEST, true),
LOCATION(RC_DEKU_TREE_MQ_GS_LOBBY, logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA)),
@@ -226,14 +229,26 @@ void RegionTable_Init_DekuTree() {
Entrance(RR_DEKU_TREE_MQ_1F, []{return true;}),
//Will need canAvoid logic with enemy shuffle
Entrance(RR_DEKU_TREE_MQ_3F, []{return true;}),
Entrance(RR_DEKU_TREE_MQ_EYE_TARGET_ROOM, []{return Here(RR_DEKU_TREE_MQ_2F, []{return logic->HasFireSource();});}),
Entrance(RR_DEKU_TREE_MQ_EYE_TARGET_ROOM, []{return logic->Get(LOGIC_DEKU_TREE_MQ_2F_BURNED_WEB);}),
});
areaTable[RR_DEKU_TREE_MQ_3F] = Region("Deku Tree MQ 3F", SCENE_DEKU_TREE, {
//Events
EventAccess(LOGIC_STICK_ACCESS, []{return logic->CanGetDekuBabaSticks();}),
EventAccess(LOGIC_NUT_ACCESS, []{return logic->CanGetDekuBabaNuts();}),
EventAccess(LOGIC_DEKU_TREE_1F_BROKE_WEB, []{return true;}),
EventAccess(LOGIC_STICK_ACCESS, []{return logic->CanGetDekuBabaSticks();}),
EventAccess(LOGIC_NUT_ACCESS, []{return logic->CanGetDekuBabaNuts();}),
EventAccess(LOGIC_DEKU_TREE_1F_BROKE_WEB, []{return true;}),
EventAccess(LOGIC_DEKU_TREE_MQ_2F_BURNED_WEB, []{return logic->CanUse(RG_STICKS) || logic->CanUse(RG_FAIRY_BOW);}),
}, {}, {
//Exits
Entrance(RR_DEKU_TREE_MQ_2F, []{return true;}),
Entrance(RR_DEKU_TREE_MQ_SLINGSHOT_ROOM, []{return true;}),
Entrance(RR_DEKU_TREE_MQ_BASEMENT, []{return true;}),
});
areaTable[RR_DEKU_TREE_MQ_SLINGSHOT_ROOM] = Region("Deku Tree MQ Slingshot Room", SCENE_DEKU_TREE, {
//Events
EventAccess(LOGIC_STICK_ACCESS, []{return logic->CanGetDekuBabaSticks();}),
EventAccess(LOGIC_NUT_ACCESS, []{return logic->CanGetDekuBabaNuts();}),
}, {
//Locations
//Implies CanKillEnemy(RE_GOHMA_LARVA)
@@ -248,10 +263,7 @@ void RegionTable_Init_DekuTree() {
LOCATION(RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_CRATE_2, logic->CanBreakCrates()),
}, {
//Exits
Entrance(RR_DEKU_TREE_MQ_2F, []{return true;}),
//Assumes RR_DEKU_TREE_MQ_2F access
Entrance(RR_DEKU_TREE_MQ_EYE_TARGET_ROOM, []{return Here(RR_DEKU_TREE_MQ_3F, []{return logic->CanUse(RG_STICKS) || logic->CanUse(RG_FAIRY_BOW);});}),
Entrance(RR_DEKU_TREE_MQ_BASEMENT, []{return true;}),
Entrance(RR_DEKU_TREE_MQ_3F, []{return logic->CanKillEnemy(RE_DEKU_BABA);}),
});
areaTable[RR_DEKU_TREE_MQ_EYE_TARGET_ROOM] = Region("Deku Tree MQ Eye Target Room", SCENE_DEKU_TREE, {}, {

View File

@@ -255,6 +255,7 @@ typedef enum {
LOGIC_DEKU_TREE_PUSHED_BASEMENT_BLOCK,
LOGIC_DEKU_TREE_MQ_CLEARED_SE_ROOM,
LOGIC_DEKU_TREE_MQ_WATER_ROOM_TORCHES,
LOGIC_DEKU_TREE_MQ_2F_BURNED_WEB,
LOGIC_DC_EYES_LIT,
LOGIC_DC_STAIRS_ROOM_DOOR,
LOGIC_DC_LIFT_PLATFORM,
@@ -710,6 +711,7 @@ typedef enum {
RR_DEKU_TREE_MQ_EYE_TARGET_ROOM,
RR_DEKU_TREE_MQ_COMPASS_ROOM,
RR_DEKU_TREE_MQ_PAST_BOULDER_VINES,
RR_DEKU_TREE_MQ_SLINGSHOT_ROOM,
RR_DEKU_TREE_MQ_BASEMENT,
RR_DEKU_TREE_MQ_BASEMENT_SOUTHEAST_ROOM,
RR_DEKU_TREE_MQ_BASEMENT_WATER_ROOM_FRONT,