mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-20 13:23:45 -07:00
deblob shadow trial
This commit is contained in:
parent
7d70cc5ec6
commit
003edd2c7a
4 changed files with 89 additions and 37 deletions
|
@ -31,7 +31,7 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
Entrance(RR_GANONS_CASTLE_FOREST_TRIAL_WOLFOS_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_FOREST_TRIAL_WOLFOS_ROOM, []{return true;}),
|
||||||
Entrance(RR_GANONS_CASTLE_FIRE_TRIAL_MAIN_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_FIRE_TRIAL_MAIN_ROOM, []{return true;}),
|
||||||
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM, []{return true;}),
|
||||||
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_MAIN_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_START, []{return true;}),
|
||||||
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEAMOS_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEAMOS_ROOM, []{return true;}),
|
||||||
Entrance(RR_GANONS_CASTLE_LIGHT_TRIAL_CHESTS_ROOM, []{return Here(RR_GANONS_CASTLE_MAIN, []{return logic->CanUse(RG_GOLDEN_GAUNTLETS);});}),
|
Entrance(RR_GANONS_CASTLE_LIGHT_TRIAL_CHESTS_ROOM, []{return Here(RR_GANONS_CASTLE_MAIN, []{return logic->CanUse(RG_GOLDEN_GAUNTLETS);});}),
|
||||||
Entrance(RR_GANONS_TOWER_ENTRYWAY, []{return true;}),
|
Entrance(RR_GANONS_TOWER_ENTRYWAY, []{return true;}),
|
||||||
|
@ -160,19 +160,63 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_SHADOW_TRIAL_MAIN_ROOM] = Region("Ganon's Castle Shadow Trial Main Room", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
areaTable[RR_GANONS_CASTLE_SHADOW_TRIAL_START] = Region("Ganon's Castle Shadow Trial Start", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST, logic->CanUse(RG_FIRE_ARROWS) || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_SONG_OF_TIME) || logic->IsChild),
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST, logic->CanUse(RG_FIRE_ARROWS) || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_SONG_OF_TIME) || logic->IsChild),
|
||||||
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST, logic->CanUse(RG_FIRE_ARROWS) || (logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_DINS_FIRE)))),
|
|
||||||
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_1, logic->CanUse(RG_FIRE_ARROWS) || logic->CanUse(RG_LONGSHOT)),
|
|
||||||
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_2, logic->CanUse(RG_FIRE_ARROWS) || logic->CanUse(RG_LONGSHOT)),
|
|
||||||
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_1, (logic->CanUse(RG_FIRE_ARROWS) || (logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_DINS_FIRE)))) && (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH) || logic->CanUse(RG_BOOMERANG))),
|
|
||||||
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_2, (logic->CanUse(RG_FIRE_ARROWS) || (logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_DINS_FIRE)))) && (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH) || logic->CanUse(RG_BOOMERANG))),
|
|
||||||
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_3, (logic->CanUse(RG_FIRE_ARROWS) || (logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_DINS_FIRE)))) && (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH) || logic->CanUse(RG_BOOMERANG))),
|
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_MAIN, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_MAIN, []{return true;}),
|
||||||
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_FINAL_ROOM, []{return logic->CanUse(RG_MEGATON_HAMMER) && ((logic->CanUse(RG_FIRE_ARROWS) && (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH))) || (logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || (logic->CanUse(RG_DINS_FIRE) && (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH))))));}),
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_POTS_PLATFORM, []{return logic->CanUse(RG_FIRE_ARROWS) || logic->CanUse(RG_LONGSHOT);}),
|
||||||
|
// shortcut for longshot to torch, dins, longshot to like like, run to chest platform
|
||||||
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_CHEST_PLATFORM, []{return logic->CanUse(RG_DINS_FIRE) && logic->CanUse(RG_LONGSHOT);}),
|
||||||
|
});
|
||||||
|
|
||||||
|
areaTable[RR_GANONS_CASTLE_SHADOW_TRIAL_POTS_PLATFORM] = Region("Ganon's Castle Shadow Pots Platform", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
||||||
|
//Locations
|
||||||
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_1, logic->CanBreakPots()),
|
||||||
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_2, logic->CanBreakPots()),
|
||||||
|
}, {
|
||||||
|
//Exits
|
||||||
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_START, []{return logic->CanUse(RG_FIRE_ARROWS) || logic->CanUse(RG_LONGSHOT);}),
|
||||||
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_CHEST_PLATFORM, []{return logic->CanUse(RG_FIRE_ARROWS) || logic->CanUse(RG_HOVER_BOOTS) || (logic->ShadowTrialLowerSwitch && logic->CanUse(RG_HOOKSHOT));}),
|
||||||
|
});
|
||||||
|
|
||||||
|
areaTable[RR_GANONS_CASTLE_SHADOW_TRIAL_CHEST_PLATFORM] = Region("Ganon's Castle Shadow Chest Platform", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
|
//Events
|
||||||
|
EventAccess(&logic->ShadowTrialRustedSwitch, []{return (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->CanUse(RG_MEGATON_HAMMER);}),
|
||||||
|
}, {
|
||||||
|
//Locations
|
||||||
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST, logic->ShadowTrialLowerSwitch),
|
||||||
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_1, ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH) || logic->CanUse(RG_BOOMERANG)),
|
||||||
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_2, ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH) || logic->CanUse(RG_BOOMERANG)),
|
||||||
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_3, ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH) || logic->CanUse(RG_BOOMERANG)),
|
||||||
|
}, {
|
||||||
|
//Exits
|
||||||
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_POTS_PLATFORM, []{return logic->CanUse(RG_FIRE_ARROWS) || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_HOVER_BOOTS);}),
|
||||||
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_LOWER_SWITCH, []{return logic->CanUse(RG_FIRE_ARROWS) || ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH) || logic->CanUse(RG_HOVER_BOOTS);}),
|
||||||
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_END, []{return ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH);}),
|
||||||
|
});
|
||||||
|
|
||||||
|
areaTable[RR_GANONS_CASTLE_SHADOW_TRIAL_LOWER_SWITCH] = Region("Ganon's Castle Shadow Trial Lower Switch", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
|
//Events
|
||||||
|
EventAccess(&logic->ShadowTrialLowerSwitch, []{return true;}),
|
||||||
|
}, {}, {
|
||||||
|
//Exits
|
||||||
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_CHEST_PLATFORM, []{return logic->CanUse(RG_FIRE_ARROWS) || (logic->ShadowTrialLowerSwitch && logic->CanUse(RG_LONGSHOT));}),
|
||||||
|
});
|
||||||
|
|
||||||
|
areaTable[RR_GANONS_CASTLE_SHADOW_TRIAL_END] = Region("Ganon's Castle Shadow Trial End", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
||||||
|
//Locations
|
||||||
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST, logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->HasFireSource())),
|
||||||
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_1, logic->CanUse(RG_BOOMERANG)),
|
||||||
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_2, logic->CanUse(RG_BOOMERANG)),
|
||||||
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_3, logic->CanUse(RG_BOOMERANG)),
|
||||||
|
}, {
|
||||||
|
//Exits
|
||||||
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_CHEST_PLATFORM, []{return (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)) || (logic->CanUse(RG_HOVER_BOOTS) && logic->HasFireSource()) || (logic->ShadowTrialLowerSwitch && logic->CanUse(RG_LONGSHOT));}),
|
||||||
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_POTS_PLATFORM, []{return (logic->CanUse(RG_FIRE_ARROWS) && (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH))) || (logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || (logic->CanUse(RG_DINS_FIRE) && (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)))));}),
|
||||||
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_LOWER_SWITCH, []{return logic->CanUse(RG_HOVER_BOOTS);}),
|
||||||
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_FINAL_ROOM, []{return logic->ShadowTrialRustedSwitch;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_SHADOW_TRIAL_FINAL_ROOM] = Region("Ganon's Castle Shadow Trial Final Room", SCENE_INSIDE_GANONS_CASTLE, {
|
areaTable[RR_GANONS_CASTLE_SHADOW_TRIAL_FINAL_ROOM] = Region("Ganon's Castle Shadow Trial Final Room", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
|
@ -184,7 +228,7 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_4, logic->CanBreakPots()),
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_4, logic->CanBreakPots()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_MAIN_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_END, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_SPIRIT_TRIAL_BEAMOS_ROOM] = Region("Ganon's Castle Spirit Trial Beamos Room", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
areaTable[RR_GANONS_CASTLE_SPIRIT_TRIAL_BEAMOS_ROOM] = Region("Ganon's Castle Spirit Trial Beamos Room", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
||||||
|
@ -194,12 +238,12 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_MAIN, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_MAIN, []{return true;}),
|
||||||
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEFORE_SWITCH, []{return ctx->GetTrickOption(RT_GANON_SPIRIT_TRIAL_HOOKSHOT) || logic->CanUse(RG_HOOKSHOT);}),
|
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEFORE_SWITCH, []{return Here(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEAMOS_ROOM, []{return logic->CanUse(RG_HOOKSHOT) || (ctx->GetTrickOption(RT_GANON_SPIRIT_TRIAL_HOOKSHOT) && logic->IsAdult && logic->CanJumpslash());});}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_SPIRIT_TRIAL_BEFORE_SWITCH] = Region("Ganon's Castle Spirit Trial Before Switch", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
areaTable[RR_GANONS_CASTLE_SPIRIT_TRIAL_BEFORE_SWITCH] = Region("Ganon's Castle Spirit Trial Before Switch", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST, logic->CanJumpslashExceptHammer()),
|
LOCATION(RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST, logic->CanJumpslash() || logic->HasExplosives()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEAMOS_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEAMOS_ROOM, []{return true;}),
|
||||||
|
@ -237,7 +281,7 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST, true),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST, true),
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST, true),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST, true),
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST, true),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST, true),
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST, ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST, (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->CanKillEnemy(RE_BIG_SKULLTULA)),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_MAIN, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_MAIN, []{return true;}),
|
||||||
|
@ -249,15 +293,15 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST, logic->CanUse(RG_ZELDAS_LULLABY)),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST, logic->CanUse(RG_ZELDAS_LULLABY)),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_LIGHT_TRIAL_CHESTS_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_LIGHT_TRIAL_CHESTS_ROOM, []{return logic->SmallKeys(RR_GANONS_CASTLE, 1);}),
|
||||||
Entrance(RR_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_ROOM, []{return logic->SmallKeys(RR_GANONS_CASTLE, 2);}),
|
Entrance(RR_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_ROOM, []{return logic->SmallKeys(RR_GANONS_CASTLE, 2);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_ROOM] = Region("Ganon's Castle Light Trial Boulder Room", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
areaTable[RR_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_ROOM] = Region("Ganon's Castle Light Trial Boulder Room", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1, logic->CanBreakPots()),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1, logic->CanBreakPots()),
|
||||||
}, {
|
}, {
|
||||||
Entrance(RR_GANONS_CASTLE_LIGHT_TRIAL_TRIFORCE_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_LIGHT_TRIAL_TRIFORCE_ROOM, []{return logic->SmallKeys(RR_GANONS_CASTLE, 2);}),
|
||||||
Entrance(RR_GANONS_CASTLE_LIGHT_TRIAL_FINAL_ROOM, []{return logic->CanUse(RG_HOOKSHOT) && logic->SmallKeys(RR_GANONS_CASTLE, 2);}),
|
Entrance(RR_GANONS_CASTLE_LIGHT_TRIAL_FINAL_ROOM, []{return Here(RR_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_ROOM, []{return logic->CanUse(RG_HOOKSHOT);});}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_LIGHT_TRIAL_FINAL_ROOM] = Region("Ganon's Castle Light Trial Final Room", SCENE_INSIDE_GANONS_CASTLE, {
|
areaTable[RR_GANONS_CASTLE_LIGHT_TRIAL_FINAL_ROOM] = Region("Ganon's Castle Light Trial Final Room", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
|
@ -269,7 +313,7 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_POT_2, logic->CanBreakPots() && (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH))),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_POT_2, logic->CanBreakPots() && (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH))),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_ROOM, []{return logic->SmallKeys(RR_GANONS_CASTLE, 2);}),
|
Entrance(RR_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_ROOM, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
@ -408,19 +452,19 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_STARTING_LEDGE] = Region("Ganon's Castle MQ Shadow Trial Starting Ledge", SCENE_INSIDE_GANONS_CASTLE, {
|
areaTable[RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_STARTING_LEDGE] = Region("Ganon's Castle MQ Shadow Trial Starting Ledge", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->ShadowTrialFirstChest, []{return logic->CanUse(RG_FAIRY_BOW);}),
|
EventAccess(&logic->MQShadowTrialFirstChest, []{return logic->CanUse(RG_FAIRY_BOW);}),
|
||||||
}, {}, {
|
}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_MQ_MAIN, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_MQ_MAIN, []{return true;}),
|
||||||
Entrance(RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_CHEST_PLATFORM, []{return (logic->ShadowTrialFirstChest && logic->CanUse(RG_HOOKSHOT)) || (logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS));}),
|
Entrance(RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_CHEST_PLATFORM, []{return (logic->MQShadowTrialFirstChest && logic->CanUse(RG_HOOKSHOT)) || (logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS));}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_CHEST_PLATFORM] = Region("Ganon's Castle MQ Shadow Trial Chest Platform", SCENE_INSIDE_GANONS_CASTLE, {
|
areaTable[RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_CHEST_PLATFORM] = Region("Ganon's Castle MQ Shadow Trial Chest Platform", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->ShadowTrialFirstChest, []{return logic->CanUse(RG_FAIRY_BOW);}),
|
EventAccess(&logic->MQShadowTrialFirstChest, []{return logic->CanUse(RG_FAIRY_BOW);}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_BOMB_FLOWER_CHEST, logic->ShadowTrialFirstChest),
|
LOCATION(RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_BOMB_FLOWER_CHEST, logic->MQShadowTrialFirstChest),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
//Hookshot here is possible but very tight, but it's basically never relevant
|
//Hookshot here is possible but very tight, but it's basically never relevant
|
||||||
|
@ -431,7 +475,7 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
areaTable[RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_MOVING_PLATFORM] = Region("Ganon's Castle MQ Shadow Trial Moving Platform", SCENE_INSIDE_GANONS_CASTLE, {
|
areaTable[RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_MOVING_PLATFORM] = Region("Ganon's Castle MQ Shadow Trial Moving Platform", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
//Events
|
//Events
|
||||||
//A torch run from RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_STARTING_LEDGE is possible but tight, so would be a trick
|
//A torch run from RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_STARTING_LEDGE is possible but tight, so would be a trick
|
||||||
EventAccess(&logic->ShadowTrialFirstChest, []{return logic->CanDetonateUprightBombFlower();}),
|
EventAccess(&logic->MQShadowTrialFirstChest, []{return logic->CanDetonateUprightBombFlower();}),
|
||||||
}, {}, {
|
}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_CHEST_PLATFORM, []{return logic->IsAdult || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_HOVER_BOOTS);}),
|
Entrance(RR_GANONS_CASTLE_MQ_SHADOW_TRIAL_CHEST_PLATFORM, []{return logic->IsAdult || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_HOVER_BOOTS);}),
|
||||||
|
|
|
@ -2508,7 +2508,9 @@ void Logic::Reset(bool resetSaveContext /*= true*/) {
|
||||||
ForestCanTwistHallway = false;
|
ForestCanTwistHallway = false;
|
||||||
ForestClearBelowBowChest = false;
|
ForestClearBelowBowChest = false;
|
||||||
ForestOpenBossCorridor = false;
|
ForestOpenBossCorridor = false;
|
||||||
ShadowTrialFirstChest = false;
|
ShadowTrialRustedSwitch = false;
|
||||||
|
ShadowTrialLowerSwitch = false;
|
||||||
|
MQShadowTrialFirstChest = false;
|
||||||
MQGTGMazeSwitch = false;
|
MQGTGMazeSwitch = false;
|
||||||
MQGTGRightSideSwitch = false;
|
MQGTGRightSideSwitch = false;
|
||||||
GTGPlatformSilverRupees = false;
|
GTGPlatformSilverRupees = false;
|
||||||
|
|
|
@ -158,7 +158,9 @@ class Logic {
|
||||||
bool ForestCanTwistHallway = false;
|
bool ForestCanTwistHallway = false;
|
||||||
bool ForestClearBelowBowChest = false; // a better name that covers both versions would be nice
|
bool ForestClearBelowBowChest = false; // a better name that covers both versions would be nice
|
||||||
bool ForestOpenBossCorridor = false;
|
bool ForestOpenBossCorridor = false;
|
||||||
bool ShadowTrialFirstChest = false;
|
bool ShadowTrialRustedSwitch = false;
|
||||||
|
bool ShadowTrialLowerSwitch = false;
|
||||||
|
bool MQShadowTrialFirstChest = false;
|
||||||
bool MQGTGMazeSwitch = false;
|
bool MQGTGMazeSwitch = false;
|
||||||
bool MQGTGRightSideSwitch = false;
|
bool MQGTGRightSideSwitch = false;
|
||||||
bool GTGPlatformSilverRupees = false;
|
bool GTGPlatformSilverRupees = false;
|
||||||
|
|
|
@ -1044,7 +1044,11 @@ typedef enum {
|
||||||
RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM,
|
RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM,
|
||||||
RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM,
|
RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM,
|
||||||
RR_GANONS_CASTLE_WATER_TRIAL_FINAL_ROOM,
|
RR_GANONS_CASTLE_WATER_TRIAL_FINAL_ROOM,
|
||||||
RR_GANONS_CASTLE_SHADOW_TRIAL_MAIN_ROOM,
|
RR_GANONS_CASTLE_SHADOW_TRIAL_START,
|
||||||
|
RR_GANONS_CASTLE_SHADOW_TRIAL_POTS_PLATFORM,
|
||||||
|
RR_GANONS_CASTLE_SHADOW_TRIAL_CHEST_PLATFORM,
|
||||||
|
RR_GANONS_CASTLE_SHADOW_TRIAL_LOWER_SWITCH,
|
||||||
|
RR_GANONS_CASTLE_SHADOW_TRIAL_END,
|
||||||
RR_GANONS_CASTLE_SHADOW_TRIAL_FINAL_ROOM,
|
RR_GANONS_CASTLE_SHADOW_TRIAL_FINAL_ROOM,
|
||||||
RR_GANONS_CASTLE_SPIRIT_TRIAL_BEAMOS_ROOM,
|
RR_GANONS_CASTLE_SPIRIT_TRIAL_BEAMOS_ROOM,
|
||||||
RR_GANONS_CASTLE_SPIRIT_TRIAL_BEFORE_SWITCH,
|
RR_GANONS_CASTLE_SPIRIT_TRIAL_BEFORE_SWITCH,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue