Fix logic thinking child exiting OGC GFF leads to castle grounds, not past gate (#6207)
Also fix grotto's age redirection
This commit is contained in:
@@ -343,11 +343,11 @@ void SetAllEntrancesData() {
|
||||
{ { EntranceType::Interior, RR_DESERT_COLOSSUS, RR_COLOSSUS_GREAT_FAIRY_FOUNTAIN, ENTR_GREAT_FAIRYS_FOUNTAIN_SPELLS_NAYRUS_COLOSSUS },
|
||||
{ EntranceType::Interior, RR_COLOSSUS_GREAT_FAIRY_FOUNTAIN, RR_DESERT_COLOSSUS, ENTR_DESERT_COLOSSUS_GREAT_FAIRY_EXIT } },
|
||||
{ { EntranceType::Interior, RR_HC_PAST_GATE, RR_HC_GREAT_FAIRY_FOUNTAIN, ENTR_GREAT_FAIRYS_FOUNTAIN_SPELLS_DINS_HC },
|
||||
{ EntranceType::Interior, RR_HC_GREAT_FAIRY_FOUNTAIN, RR_HC_PAST_GATE, ENTR_CASTLE_GROUNDS_GREAT_FAIRY_EXIT } },
|
||||
{ EntranceType::Interior, RR_HC_GREAT_FAIRY_FOUNTAIN, RR_CASTLE_GROUNDS_FROM_GREAT_FAIRY, ENTR_CASTLE_GROUNDS_GREAT_FAIRY_EXIT } },
|
||||
{ { EntranceType::Interior, RR_GANONS_CASTLE_GROUNDS, RR_OGC_GREAT_FAIRY_FOUNTAIN, ENTR_GREAT_FAIRYS_FOUNTAIN_MAGIC_OGC_DD },
|
||||
// 0x3E8 is an unused entrance index repurposed to differentiate between the HC and OGC fairy
|
||||
// fountain exits (normally they both use 0x340)
|
||||
{ EntranceType::Interior, RR_OGC_GREAT_FAIRY_FOUNTAIN, RR_CASTLE_GROUNDS, ENTR_POTION_SHOP_KAKARIKO_1 } },
|
||||
// ENTR_POTION_SHOP_KAKARIKO_1 is an unused entrance index repurposed to differentiate between HC and OGC fairy fountain exits
|
||||
// (normally both use ENTR_CASTLE_GROUNDS_GREAT_FAIRY_EXIT)
|
||||
{ EntranceType::Interior, RR_OGC_GREAT_FAIRY_FOUNTAIN, RR_CASTLE_GROUNDS_FROM_GREAT_FAIRY, ENTR_POTION_SHOP_KAKARIKO_1 } },
|
||||
{ { EntranceType::Interior, RR_DMC_LOWER_NEARBY, RR_DMC_GREAT_FAIRY_FOUNTAIN, ENTR_GREAT_FAIRYS_FOUNTAIN_MAGIC_DMC },
|
||||
{ EntranceType::Interior, RR_DMC_GREAT_FAIRY_FOUNTAIN, RR_DMC_LOWER_LOCAL, ENTR_DEATH_MOUNTAIN_CRATER_GREAT_FAIRY_EXIT } },
|
||||
{ { EntranceType::Interior, RR_DEATH_MOUNTAIN_SUMMIT, RR_DMT_GREAT_FAIRY_FOUNTAIN, ENTR_GREAT_FAIRYS_FOUNTAIN_MAGIC_DMT },
|
||||
@@ -422,7 +422,7 @@ void SetAllEntrancesData() {
|
||||
{ { EntranceType::GrottoGrave, RR_KAKARIKO_VILLAGE, RR_KAK_REDEAD_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_KAK_REDEAD_OFFSET) },
|
||||
{ EntranceType::GrottoGrave, RR_KAK_REDEAD_GROTTO, RR_KAKARIKO_VILLAGE, ENTRANCE_GROTTO_EXIT(GROTTO_KAK_REDEAD_OFFSET) } },
|
||||
{ { EntranceType::GrottoGrave, RR_HC_MOAT, RR_HC_STORMS_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_HC_STORMS_OFFSET) },
|
||||
{ EntranceType::GrottoGrave, RR_HC_STORMS_GROTTO, RR_HC_MOAT, ENTRANCE_GROTTO_EXIT(GROTTO_HC_STORMS_OFFSET) } },
|
||||
{ EntranceType::GrottoGrave, RR_HC_STORMS_GROTTO, RR_CASTLE_GROUNDS_FROM_GROTTO, ENTRANCE_GROTTO_EXIT(GROTTO_HC_STORMS_OFFSET) } },
|
||||
{ { EntranceType::GrottoGrave, RR_HYRULE_FIELD, RR_HF_TEKTITE_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_HF_TEKTITE_OFFSET) },
|
||||
{ EntranceType::GrottoGrave, RR_HF_TEKTITE_GROTTO, RR_HYRULE_FIELD, ENTRANCE_GROTTO_EXIT(GROTTO_HF_TEKTITE_OFFSET) } },
|
||||
{ { EntranceType::GrottoGrave, RR_HYRULE_FIELD, RR_HF_NEAR_KAK_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_HF_NEAR_KAK_OFFSET) },
|
||||
|
||||
@@ -16,6 +16,11 @@ void RegionTable_Init_CastleGrounds() {
|
||||
ENTRANCE(RR_GANONS_CASTLE_GROUNDS, logic->IsAdult),
|
||||
});
|
||||
|
||||
areaTable[RR_CASTLE_GROUNDS_FROM_GREAT_FAIRY] = Region("Castle Grounds From Great Fairy", SCENE_OUTSIDE_GANONS_CASTLE, TIME_DOESNT_PASS, {RA_CASTLE_GROUNDS}, {}, {}, {
|
||||
ENTRANCE(RR_HC_PAST_GATE, logic->IsChild),
|
||||
ENTRANCE(RR_GANONS_CASTLE_GROUNDS, logic->IsAdult),
|
||||
});
|
||||
|
||||
areaTable[RR_HC_GATE] = Region("Hyrule Castle Gate", SCENE_HYRULE_CASTLE, {
|
||||
//Events
|
||||
EVENT_ACCESS(LOGIC_FAIRY_ACCESS, logic->CallGossipFairy() || logic->CanUse(RG_STICKS)),
|
||||
@@ -114,7 +119,7 @@ void RegionTable_Init_CastleGrounds() {
|
||||
LOCATION(RC_HC_GREAT_FAIRY_REWARD, logic->CanUse(RG_ZELDAS_LULLABY)),
|
||||
}, {
|
||||
//Exits
|
||||
ENTRANCE(RR_HC_PAST_GATE, true),
|
||||
ENTRANCE(RR_CASTLE_GROUNDS_FROM_GREAT_FAIRY, true),
|
||||
});
|
||||
|
||||
areaTable[RR_HC_STORMS_GROTTO] = Region("HC Storms Grotto", SCENE_GROTTOS, {}, {
|
||||
@@ -122,7 +127,7 @@ void RegionTable_Init_CastleGrounds() {
|
||||
LOCATION(RC_HC_GS_STORMS_GROTTO, logic->CanUse(RG_BOOMERANG) && ctx->GetTrickOption(RT_HC_STORMS_GS)),
|
||||
}, {
|
||||
//Exits
|
||||
ENTRANCE(RR_HC_MOAT, true),
|
||||
ENTRANCE(RR_CASTLE_GROUNDS_FROM_GROTTO, true),
|
||||
ENTRANCE(RR_HC_STORMS_GROTTO_BEHIND_WALLS, logic->CanBreakMudWalls()),
|
||||
});
|
||||
|
||||
@@ -146,6 +151,11 @@ void RegionTable_Init_CastleGrounds() {
|
||||
ENTRANCE(RR_HC_STORMS_GROTTO, true),
|
||||
});
|
||||
|
||||
areaTable[RR_CASTLE_GROUNDS_FROM_GROTTO] = Region("Castle Grounds From Grotto", SCENE_OUTSIDE_GANONS_CASTLE, TIME_DOESNT_PASS, {RA_CASTLE_GROUNDS}, {}, {}, {
|
||||
ENTRANCE(RR_HC_MOAT, logic->IsChild),
|
||||
ENTRANCE(RR_GANONS_CASTLE_GROUNDS, logic->IsAdult),
|
||||
});
|
||||
|
||||
areaTable[RR_GANONS_CASTLE_GROUNDS] = Region("Ganon's Castle Grounds", SCENE_OUTSIDE_GANONS_CASTLE, {
|
||||
//Events
|
||||
EVENT_ACCESS(LOGIC_BUILD_RAINBOW_BRIDGE, logic->CanBuildRainbowBridge()),
|
||||
@@ -164,7 +174,7 @@ void RegionTable_Init_CastleGrounds() {
|
||||
LOCATION(RC_OGC_GREAT_FAIRY_REWARD, logic->CanUse(RG_ZELDAS_LULLABY)),
|
||||
}, {
|
||||
//Exits
|
||||
ENTRANCE(RR_CASTLE_GROUNDS, true),
|
||||
ENTRANCE(RR_CASTLE_GROUNDS_FROM_GREAT_FAIRY, true),
|
||||
});
|
||||
|
||||
areaTable[RR_CASTLE_GROUNDS_FROM_GANONS_CASTLE] = Region("Castle Grounds From Ganon's Castle", SCENE_OUTSIDE_GANONS_CASTLE, {}, {}, {
|
||||
|
||||
@@ -111,7 +111,7 @@ void RegionTable_Init_LostWoods() {
|
||||
areaTable[RR_DEKU_THEATER] = Region("Deku Theater", SCENE_GROTTOS, {}, {
|
||||
//Locations
|
||||
LOCATION(RC_DEKU_THEATER_SKULL_MASK, logic->CanUse(RG_SKULL_MASK)),
|
||||
LOCATION(RC_DEKU_THEATER_MASK_OF_TRUTH, logic->CanUse(RG_MASK_OF_TRUTH) && logic->CanUse(RG_SPEAK_DEKU)),
|
||||
LOCATION(RC_DEKU_THEATER_MASK_OF_TRUTH, logic->CanUse(RG_MASK_OF_TRUTH) && logic->HasItem(RG_SPEAK_DEKU)),
|
||||
}, {
|
||||
//Exits
|
||||
ENTRANCE(RR_LW_BEYOND_MIDO, true),
|
||||
|
||||
@@ -647,6 +647,8 @@ typedef enum {
|
||||
RR_TEMPLE_OF_TIME,
|
||||
RR_TOT_BEYOND_DOOR_OF_TIME,
|
||||
RR_CASTLE_GROUNDS,
|
||||
RR_CASTLE_GROUNDS_FROM_GREAT_FAIRY,
|
||||
RR_CASTLE_GROUNDS_FROM_GROTTO,
|
||||
RR_CASTLE_GROUNDS_FROM_GANONS_CASTLE,
|
||||
RR_HC_GATE,
|
||||
RR_HC_ABOVE_VINE,
|
||||
|
||||
Reference in New Issue
Block a user