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? //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 //Locations
LOCATION(RC_DEKU_TREE_MQ_MAP_CHEST, true), LOCATION(RC_DEKU_TREE_MQ_MAP_CHEST, true),
LOCATION(RC_DEKU_TREE_MQ_GS_LOBBY, logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA)), 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;}), Entrance(RR_DEKU_TREE_MQ_1F, []{return true;}),
//Will need canAvoid logic with enemy shuffle //Will need canAvoid logic with enemy shuffle
Entrance(RR_DEKU_TREE_MQ_3F, []{return true;}), 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, { areaTable[RR_DEKU_TREE_MQ_3F] = Region("Deku Tree MQ 3F", SCENE_DEKU_TREE, {
//Events //Events
EventAccess(LOGIC_STICK_ACCESS, []{return logic->CanGetDekuBabaSticks();}), EventAccess(LOGIC_STICK_ACCESS, []{return logic->CanGetDekuBabaSticks();}),
EventAccess(LOGIC_NUT_ACCESS, []{return logic->CanGetDekuBabaNuts();}), EventAccess(LOGIC_NUT_ACCESS, []{return logic->CanGetDekuBabaNuts();}),
EventAccess(LOGIC_DEKU_TREE_1F_BROKE_WEB, []{return true;}), 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 //Locations
//Implies CanKillEnemy(RE_GOHMA_LARVA) //Implies CanKillEnemy(RE_GOHMA_LARVA)
@@ -248,10 +263,7 @@ void RegionTable_Init_DekuTree() {
LOCATION(RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_CRATE_2, logic->CanBreakCrates()), LOCATION(RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_CRATE_2, logic->CanBreakCrates()),
}, { }, {
//Exits //Exits
Entrance(RR_DEKU_TREE_MQ_2F, []{return true;}), Entrance(RR_DEKU_TREE_MQ_3F, []{return logic->CanKillEnemy(RE_DEKU_BABA);}),
//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;}),
}); });
areaTable[RR_DEKU_TREE_MQ_EYE_TARGET_ROOM] = Region("Deku Tree MQ Eye Target Room", SCENE_DEKU_TREE, {}, { 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_PUSHED_BASEMENT_BLOCK,
LOGIC_DEKU_TREE_MQ_CLEARED_SE_ROOM, LOGIC_DEKU_TREE_MQ_CLEARED_SE_ROOM,
LOGIC_DEKU_TREE_MQ_WATER_ROOM_TORCHES, LOGIC_DEKU_TREE_MQ_WATER_ROOM_TORCHES,
LOGIC_DEKU_TREE_MQ_2F_BURNED_WEB,
LOGIC_DC_EYES_LIT, LOGIC_DC_EYES_LIT,
LOGIC_DC_STAIRS_ROOM_DOOR, LOGIC_DC_STAIRS_ROOM_DOOR,
LOGIC_DC_LIFT_PLATFORM, LOGIC_DC_LIFT_PLATFORM,
@@ -710,6 +711,7 @@ typedef enum {
RR_DEKU_TREE_MQ_EYE_TARGET_ROOM, RR_DEKU_TREE_MQ_EYE_TARGET_ROOM,
RR_DEKU_TREE_MQ_COMPASS_ROOM, RR_DEKU_TREE_MQ_COMPASS_ROOM,
RR_DEKU_TREE_MQ_PAST_BOULDER_VINES, RR_DEKU_TREE_MQ_PAST_BOULDER_VINES,
RR_DEKU_TREE_MQ_SLINGSHOT_ROOM,
RR_DEKU_TREE_MQ_BASEMENT, RR_DEKU_TREE_MQ_BASEMENT,
RR_DEKU_TREE_MQ_BASEMENT_SOUTHEAST_ROOM, RR_DEKU_TREE_MQ_BASEMENT_SOUTHEAST_ROOM,
RR_DEKU_TREE_MQ_BASEMENT_WATER_ROOM_FRONT, RR_DEKU_TREE_MQ_BASEMENT_WATER_ROOM_FRONT,