mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-24 07:05:34 -07:00
update logic, get it working
This commit is contained in:
parent
415ada9631
commit
f64aaeadeb
21 changed files with 753 additions and 681 deletions
|
@ -811,16 +811,16 @@ void GenerateItemPool() {
|
||||||
|
|
||||||
// Gerudo Fortress
|
// Gerudo Fortress
|
||||||
if (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE)) {
|
if (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE)) {
|
||||||
ctx->PlaceItemInLocation(RC_TH_NORTH_F1_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_1_TORCH_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_NORTH_F2_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DEAD_END_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_SOUTH_F1_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DOUBLE_CELL_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_SOUTH_F2_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_STEEP_SLOPE_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
} else if (ctx->GetOption(RSK_GERUDO_KEYS).IsNot(RO_GERUDO_KEYS_VANILLA)) {
|
} else if (ctx->GetOption(RSK_GERUDO_KEYS).IsNot(RO_GERUDO_KEYS_VANILLA)) {
|
||||||
if (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST)) {
|
if (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST)) {
|
||||||
AddItemToMainPool(RG_GERUDO_FORTRESS_SMALL_KEY);
|
AddItemToMainPool(RG_GERUDO_FORTRESS_SMALL_KEY);
|
||||||
ctx->PlaceItemInLocation(RC_TH_NORTH_F2_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DEAD_END_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_SOUTH_F1_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DOUBLE_CELL_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_SOUTH_F2_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_STEEP_SLOPE_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
} else {
|
} else {
|
||||||
// Only add key ring if 4 Fortress keys necessary
|
// Only add key ring if 4 Fortress keys necessary
|
||||||
if (ctx->GetOption(RSK_KEYRINGS_GERUDO_FORTRESS) && ctx->GetOption(RSK_KEYRINGS)) {
|
if (ctx->GetOption(RSK_KEYRINGS_GERUDO_FORTRESS) && ctx->GetOption(RSK_KEYRINGS)) {
|
||||||
|
@ -843,15 +843,15 @@ void GenerateItemPool() {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST)) {
|
if (ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST)) {
|
||||||
ctx->PlaceItemInLocation(RC_TH_NORTH_F1_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
ctx->PlaceItemInLocation(RC_TH_1_TORCH_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_NORTH_F2_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DEAD_END_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_SOUTH_F1_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DOUBLE_CELL_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_SOUTH_F2_CARPENTER, RG_RECOVERY_HEART, false, true);
|
ctx->PlaceItemInLocation(RC_TH_STEEP_SLOPE_CARPENTER, RG_RECOVERY_HEART, false, true);
|
||||||
} else {
|
} else {
|
||||||
ctx->PlaceItemInLocation(RC_TH_NORTH_F1_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
ctx->PlaceItemInLocation(RC_TH_1_TORCH_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_NORTH_F2_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DEAD_END_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_SOUTH_F1_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
ctx->PlaceItemInLocation(RC_TH_DOUBLE_CELL_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
||||||
ctx->PlaceItemInLocation(RC_TH_SOUTH_F2_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
ctx->PlaceItemInLocation(RC_TH_STEEP_SLOPE_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -862,9 +862,9 @@ void GenerateItemPool() {
|
||||||
ctx->possibleIceTrapModels.push_back(RG_GERUDO_MEMBERSHIP_CARD);
|
ctx->possibleIceTrapModels.push_back(RG_GERUDO_MEMBERSHIP_CARD);
|
||||||
} else if (ctx->GetOption(RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD)) {
|
} else if (ctx->GetOption(RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD)) {
|
||||||
AddItemToPool(PendingJunkPool, RG_GERUDO_MEMBERSHIP_CARD);
|
AddItemToPool(PendingJunkPool, RG_GERUDO_MEMBERSHIP_CARD);
|
||||||
ctx->PlaceItemInLocation(RC_TH_GERUDO_MEMBERSHIP_CARD, RG_ICE_TRAP, false, true);
|
ctx->PlaceItemInLocation(RC_TH_FREED_CARPENTERS, RG_ICE_TRAP, false, true);
|
||||||
} else {
|
} else {
|
||||||
ctx->PlaceItemInLocation(RC_TH_GERUDO_MEMBERSHIP_CARD, RG_GERUDO_MEMBERSHIP_CARD, false, true);
|
ctx->PlaceItemInLocation(RC_TH_FREED_CARPENTERS, RG_GERUDO_MEMBERSHIP_CARD, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Keys
|
// Keys
|
||||||
|
|
|
@ -304,38 +304,38 @@ void Rando::StaticData::RegisterCrateLocations() {
|
||||||
locationTable[RC_GV_FREESTANDING_POH_CRATE] = Location::Crate(RC_GV_FREESTANDING_POH_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, TWO_ACTOR_PARAMS(-350, 1480), "Freestanding PoH Crate", RHT_CRATE_GERUDO_VALLEY, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GV_FREESTANDING_POH_CRATE));
|
locationTable[RC_GV_FREESTANDING_POH_CRATE] = Location::Crate(RC_GV_FREESTANDING_POH_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, TWO_ACTOR_PARAMS(-350, 1480), "Freestanding PoH Crate", RHT_CRATE_GERUDO_VALLEY, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GV_FREESTANDING_POH_CRATE));
|
||||||
locationTable[RC_GV_NEAR_COW_CRATE] = Location::Crate(RC_GV_NEAR_COW_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, TWO_ACTOR_PARAMS(-449, 123), "Near Cow Crate", RHT_CRATE_GERUDO_VALLEY, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GV_NEAR_COW_CRATE));
|
locationTable[RC_GV_NEAR_COW_CRATE] = Location::Crate(RC_GV_NEAR_COW_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, TWO_ACTOR_PARAMS(-449, 123), "Near Cow Crate", RHT_CRATE_GERUDO_VALLEY, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GV_NEAR_COW_CRATE));
|
||||||
locationTable[RC_GF_ABOVE_JAIL_CRATE] = Location::Crate(RC_GF_ABOVE_JAIL_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(51, -2997), "Above Jail Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_PURPLE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ABOVE_JAIL_CRATE));
|
locationTable[RC_GF_ABOVE_JAIL_CRATE] = Location::Crate(RC_GF_ABOVE_JAIL_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(51, -2997), "Above Jail Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_PURPLE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ABOVE_JAIL_CRATE));
|
||||||
locationTable[RC_GF_OUTSIDE_CENTER_CRATE_1] = Location::Crate(RC_GF_OUTSIDE_CENTER_CRATE_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(315, -1534), "Outside Center Crate 1", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_OUTSIDE_CENTER_CRATE_1));
|
locationTable[RC_GF_SOUTHMOST_CENTER_CRATE] = Location::Crate(RC_GF_SOUTHMOST_CENTER_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(315, -1534), "Southmost Center Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTHMOST_CENTER_CRATE));
|
||||||
locationTable[RC_GF_OUTSIDE_CENTER_CRATE_2] = Location::Crate(RC_GF_OUTSIDE_CENTER_CRATE_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(315, -1594), "Outside Center Crate 2", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_OUTSIDE_CENTER_CRATE_2));
|
locationTable[RC_GF_MID_SOUTH_CENTER_CRATE] = Location::Crate(RC_GF_MID_SOUTH_CENTER_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(315, -1594), "Middle South Center Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_MID_SOUTH_CENTER_CRATE));
|
||||||
locationTable[RC_GF_OUTSIDE_CENTER_CRATE_3] = Location::Crate(RC_GF_OUTSIDE_CENTER_CRATE_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(310, -1782), "Outside Center Crate 3", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_OUTSIDE_CENTER_CRATE_3));
|
locationTable[RC_GF_MID_NORTH_CENTER_CRATE] = Location::Crate(RC_GF_MID_NORTH_CENTER_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(310, -1782), "Middle North Center Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_MID_NORTH_CENTER_CRATE));
|
||||||
locationTable[RC_GF_OUTSIDE_CENTER_CRATE_4] = Location::Crate(RC_GF_OUTSIDE_CENTER_CRATE_4, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(310, -1842), "Outside Center Crate 4", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_OUTSIDE_CENTER_CRATE_4));
|
locationTable[RR_GF_NORTHMOST_CENTER_CRATE] = Location::Crate(RR_GF_NORTHMOST_CENTER_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(310, -1842), "Northmost Center Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTHMOST_CENTER_CRATE));
|
||||||
locationTable[RC_GF_OUTSIDE_LEFT_CRATE_1] = Location::Crate(RC_GF_OUTSIDE_LEFT_CRATE_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(-60, -2210), "Outside Left Crate 1", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_OUTSIDE_LEFT_CRATE_1));
|
locationTable[RC_GF_OUTSKIRTS_NE_CRATE] = Location::Crate(RC_GF_OUTSKIRTS_NE_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(-60, -2210), "Outskirts Northeast Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_OUTSKIRTS_NE_CRATE));
|
||||||
locationTable[RC_GF_OUTSIDE_LEFT_CRATE_2] = Location::Crate(RC_GF_OUTSIDE_LEFT_CRATE_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(-120, -2210), "Outside Left Crate 2", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_OUTSIDE_LEFT_CRATE_2));
|
locationTable[RC_GF_OUTSKIRTS_NW_CRATE] = Location::Crate(RC_GF_OUTSKIRTS_NW_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(-120, -2210), "Outskirts Northwest Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_OUTSKIRTS_NW_CRATE));
|
||||||
locationTable[RC_GF_ARCHERY_RANGE_CRATE_2] = Location::Crate(RC_GF_ARCHERY_RANGE_CRATE_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -1780), "Archery Range Crate 2", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_RANGE_CRATE_2));
|
locationTable[RC_GF_HBA_RANGE_CRATE_2] = Location::Crate(RC_GF_HBA_RANGE_CRATE_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -1780), "Horseback Archery Range Crate 2", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_HBA_RANGE_CRATE_2));
|
||||||
locationTable[RC_GF_ARCHERY_RANGE_CRATE_3] = Location::Crate(RC_GF_ARCHERY_RANGE_CRATE_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -2020), "Archery Range Crate 3", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_RANGE_CRATE_3));
|
locationTable[RC_GF_HBA_RANGE_CRATE_3] = Location::Crate(RC_GF_HBA_RANGE_CRATE_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -2020), "Horseback Archery Range Crate 3", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_HBA_RANGE_CRATE_3));
|
||||||
locationTable[RC_GF_ARCHERY_RANGE_CRATE_4] = Location::Crate(RC_GF_ARCHERY_RANGE_CRATE_4, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -2260), "Archery Range Crate 4", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_RANGE_CRATE_4));
|
locationTable[RC_GF_HBA_RANGE_CRATE_4] = Location::Crate(RC_GF_HBA_RANGE_CRATE_4, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -2260), "Horseback Archery Range Crate 4", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_HBA_RANGE_CRATE_4));
|
||||||
locationTable[RC_GF_ARCHERY_RANGE_CRATE_1] = Location::Crate(RC_GF_ARCHERY_RANGE_CRATE_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -1540), "Archery Range Crate 1", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_RANGE_CRATE_1));
|
locationTable[RC_GF_HBA_RANGE_CRATE_1] = Location::Crate(RC_GF_HBA_RANGE_CRATE_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -1540), "Horseback Archery Range Crate 1", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_HBA_RANGE_CRATE_1));
|
||||||
locationTable[RC_GF_ARCHERY_RANGE_CRATE_5] = Location::Crate(RC_GF_ARCHERY_RANGE_CRATE_5, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -2500), "Archery Range Crate 5", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_RANGE_CRATE_5));
|
locationTable[RC_GF_HBA_RANGE_CRATE_5] = Location::Crate(RC_GF_HBA_RANGE_CRATE_5, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -2500), "Horseback Archery Range Crate 5", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_HBA_RANGE_CRATE_5));
|
||||||
locationTable[RC_GF_ARCHERY_RANGE_CRATE_6] = Location::Crate(RC_GF_ARCHERY_RANGE_CRATE_6, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -2740), "Archery Range Crate 6", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_RANGE_CRATE_6));
|
locationTable[RC_GF_HBA_RANGE_CRATE_6] = Location::Crate(RC_GF_HBA_RANGE_CRATE_6, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -2740), "Horseback Archery Range Crate 6", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_HBA_RANGE_CRATE_6));
|
||||||
locationTable[RC_GF_ARCHERY_RANGE_CRATE_7] = Location::Crate(RC_GF_ARCHERY_RANGE_CRATE_7, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -2980), "Archery Range Crate 7", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_RANGE_CRATE_7));
|
locationTable[RC_GF_HBA_RANGE_CRATE_7] = Location::Crate(RC_GF_HBA_RANGE_CRATE_7, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(4090, -2980), "Horseback Archery Range Crate 7", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_HBA_RANGE_CRATE_7));
|
||||||
locationTable[RC_GF_ARCHERY_START_CRATE_1] = Location::Crate(RC_GF_ARCHERY_START_CRATE_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3727, -243), "Near Archery Start Crate 1", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_START_CRATE_1));
|
locationTable[RC_GF_HBA_CANOPY_EAST_CRATE] = Location::Crate(RC_GF_HBA_CANOPY_EAST_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3727, -243), "Horseback Archery Canopy East Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_HBA_CANOPY_EAST_CRATE));
|
||||||
locationTable[RC_GF_ARCHERY_START_CRATE_2] = Location::Crate(RC_GF_ARCHERY_START_CRATE_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3667, -243), "Near Archery Start Crate 2", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_START_CRATE_2));
|
locationTable[RC_GF_HBA_CANOPY_WEST_CRATE] = Location::Crate(RC_GF_HBA_CANOPY_WEST_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3667, -243), "Horseback Archery Canopy West Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_HBA_CANOPY_WEST_CRATE));
|
||||||
locationTable[RC_GF_ARCHERY_LEFT_END_CRATE_1] = Location::Crate(RC_GF_ARCHERY_LEFT_END_CRATE_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3446, -4875), "Archery Left End Crate 1", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_LEFT_END_CRATE_1));
|
locationTable[RC_GF_NORTH_TARGET_EAST_CRATE] = Location::Crate(RC_GF_NORTH_TARGET_EAST_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3446, -4875), "North Target East Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_TARGET_EAST_CRATE));
|
||||||
locationTable[RC_GF_ARCHERY_LEFT_END_CRATE_2] = Location::Crate(RC_GF_ARCHERY_LEFT_END_CRATE_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3303, -5018), "Archery Left End Crate 2", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_LEFT_END_CRATE_2));
|
locationTable[RC_GF_NORTH_TARGET_WEST_CRATE] = Location::Crate(RC_GF_NORTH_TARGET_WEST_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3303, -5018), "North Target West Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_TARGET_WEST_CRATE));
|
||||||
locationTable[RC_GF_ARCHERY_RIGHT_END_CRATE_1] = Location::Crate(RC_GF_ARCHERY_RIGHT_END_CRATE_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3406, 414), "Archery Right End Crate 1", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_RIGHT_END_CRATE_1));
|
locationTable[RC_GF_SOUTH_TARGET_EAST_CRATE] = Location::Crate(RC_GF_SOUTH_TARGET_EAST_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3406, 414), "South Target East Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_TARGET_EAST_CRATE));
|
||||||
locationTable[RC_GF_ARCHERY_RIGHT_END_CRATE_2] = Location::Crate(RC_GF_ARCHERY_RIGHT_END_CRATE_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3330, 406), "Archery Right End Crate 2", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_RIGHT_END_CRATE_2));
|
locationTable[RC_GF_SOUTH_TARGET_WEST_CRATE] = Location::Crate(RC_GF_SOUTH_TARGET_WEST_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3330, 406), "South Target West Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_TARGET_WEST_CRATE));
|
||||||
locationTable[RC_GF_KITCHEN_CRATE_1] = Location::Crate(RC_GF_KITCHEN_CRATE_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1144, -1251), "Kitchen Crate 1", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_KITCHEN_CRATE_1));
|
locationTable[RC_TH_NEAR_KITCHEN_LEFTMOST_CRATE] = Location::Crate(RC_TH_NEAR_KITCHEN_LEFTMOST_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1144, -1251), "Near Kitchen Leftmost Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NEAR_KITCHEN_LEFTMOST_CRATE));
|
||||||
locationTable[RC_GF_KITCHEN_CRATE_2] = Location::Crate(RC_GF_KITCHEN_CRATE_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1144, -1191), "Kitchen Crate 2", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_KITCHEN_CRATE_2));
|
locationTable[RC_TH_NEAR_KITCHEN_MID_LEFT_CRATE] = Location::Crate(RC_TH_NEAR_KITCHEN_MID_LEFT_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1144, -1191), "Near Kitchen Middle Left Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NEAR_KITCHEN_MID_LEFT_CRATE));
|
||||||
locationTable[RC_GF_KITCHEN_CRATE_3] = Location::Crate(RC_GF_KITCHEN_CRATE_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1256, -847), "Kitchen Crate 3", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_KITCHEN_CRATE_3));
|
locationTable[RC_TH_NEAR_KITCHEN_MID_RIGHT_CRATE] = Location::Crate(RC_TH_NEAR_KITCHEN_MID_RIGHT_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1256, -847), "Near Kitchen Middle Right Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NEAR_KITCHEN_MID_RIGHT_CRATE));
|
||||||
locationTable[RC_GF_KITCHEN_CRATE_4] = Location::Crate(RC_GF_KITCHEN_CRATE_4, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1256, -787), "Kitchen Crate 4", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_KITCHEN_CRATE_4));
|
locationTable[RC_TH_NEAR_KITCHEN_RIGHTMOST_CRATE] = Location::Crate(RC_TH_NEAR_KITCHEN_RIGHTMOST_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1256, -787), "Near Kitchen Rightmost Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NEAR_KITCHEN_RIGHTMOST_CRATE));
|
||||||
locationTable[RC_GF_KITCHEN_CRATE_5] = Location::Crate(RC_GF_KITCHEN_CRATE_5, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1610, -624), "Kitchen Crate 5", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_KITCHEN_CRATE_5));
|
locationTable[RC_TH_KITCHEN_CRATE] = Location::Crate(RC_TH_KITCHEN_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1610, -624), "Kitchen Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_KITCHEN_CRATE));
|
||||||
locationTable[RC_GF_BREAK_ROOM_CRATE_1] = Location::Crate(RC_GF_BREAK_ROOM_CRATE_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1260, -3155), "Break Room Crate 1", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_BREAK_ROOM_CRATE_1));
|
locationTable[RC_TH_BREAK_HALLWAY_OUTER_CRATE] = Location::Crate(RC_TH_BREAK_HALLWAY_OUTER_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1260, -3155), "Break Hallway Outer Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_BREAK_HALLWAY_OUTER_CRATE));
|
||||||
locationTable[RC_GF_BREAK_ROOM_CRATE_4] = Location::Crate(RC_GF_BREAK_ROOM_CRATE_4, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1600, -3550), "Break Room Crate 4", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_BREAK_ROOM_CRATE_4));
|
locationTable[RC_TH_BREAK_ROOM_LEFT_CRATE] = Location::Crate(RC_TH_BREAK_ROOM_LEFT_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1600, -3550), "Break Room Left Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_BREAK_ROOM_LEFT_CRATE));
|
||||||
locationTable[RC_GF_BREAK_ROOM_CRATE_2] = Location::Crate(RC_GF_BREAK_ROOM_CRATE_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1360, -3325), "Break Room Crate 2", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_BREAK_ROOM_CRATE_2));
|
locationTable[RC_TH_BREAK_HALLWAY_INNER_CRATE] = Location::Crate(RC_TH_BREAK_HALLWAY_INNER_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1360, -3325), "Break Hallway Inner Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_BREAK_HALLWAY_INNER_CRATE));
|
||||||
locationTable[RC_GF_BREAK_ROOM_CRATE_3] = Location::Crate(RC_GF_BREAK_ROOM_CRATE_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1600, -3502), "Break Room Crate 3", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_BREAK_ROOM_CRATE_3));
|
locationTable[RC_TH_BREAK_ROOM_RIGHT_CRATE] = Location::Crate(RC_TH_BREAK_ROOM_RIGHT_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1600, -3502), "Break Room Right Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_BREAK_ROOM_RIGHT_CRATE));
|
||||||
locationTable[RC_GF_NORTH_F1_CARPENTER_CRATE] = Location::Crate(RC_GF_NORTH_F1_CARPENTER_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-510, -2213), "North F1 Carpenter Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_F1_CARPENTER_CRATE));
|
locationTable[RC_TH_1_TORCH_CELL_CRATE] = Location::Crate(RC_TH_1_TORCH_CELL_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-510, -2213), "1 Torch Cell Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_1_TORCH_CELL_CRATE));
|
||||||
locationTable[RC_GF_NORTH_F3_CARPENTER_CRATE] = Location::Crate(RC_GF_NORTH_F3_CARPENTER_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1090, -2210), "North F3 Carpenter Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_F3_CARPENTER_CRATE));
|
locationTable[RC_TH_DEAD_END_CELL_CRATE] = Location::Crate(RC_TH_DEAD_END_CELL_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1090, -2210), "Dead End Cell Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_DEAD_END_CELL_CRATE));
|
||||||
locationTable[RC_GF_SOUTH_F2_CARPENTER_CRATE_1] = Location::Crate(RC_GF_SOUTH_F2_CARPENTER_CRATE_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-49, 11), "South F2 Carpenter Crate 1", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F2_CARPENTER_CRATE_1));
|
locationTable[RC_TH_DOUBLE_CELL_LEFT_CRATE] = Location::Crate(RC_TH_DOUBLE_CELL_LEFT_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-49, 11), "Double Cell Left Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_DOUBLE_CELL_LEFT_CRATE));
|
||||||
locationTable[RC_GF_SOUTH_F2_CARPENTER_CRATE_2] = Location::Crate(RC_GF_SOUTH_F2_CARPENTER_CRATE_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(11, 11), "South F2 Carpenter Crate 2", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F2_CARPENTER_CRATE_2));
|
locationTable[RC_TH_DOUBLE_CELL_RIGHT_CRATE] = Location::Crate(RC_TH_DOUBLE_CELL_RIGHT_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(11, 11), "Double Cell Right Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_DOUBLE_CELL_RIGHT_CRATE));
|
||||||
locationTable[RC_HW_BEFORE_QUICKSAND_CRATE] = Location::Crate(RC_HW_BEFORE_QUICKSAND_CRATE, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(3832, 2840), "Before Quicksand Crate", RHT_CRATE_WASTELAND, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HW_BEFORE_QUICKSAND_CRATE));
|
locationTable[RC_HW_BEFORE_QUICKSAND_CRATE] = Location::Crate(RC_HW_BEFORE_QUICKSAND_CRATE, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(3832, 2840), "Before Quicksand Crate", RHT_CRATE_WASTELAND, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HW_BEFORE_QUICKSAND_CRATE));
|
||||||
locationTable[RC_HW_AFTER_QUICKSAND_CRATE_1] = Location::Crate(RC_HW_AFTER_QUICKSAND_CRATE_1, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(3235, 2313), "After Quicksand Crate 1", RHT_CRATE_WASTELAND, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HW_AFTER_QUICKSAND_CRATE_1));
|
locationTable[RC_HW_AFTER_QUICKSAND_CRATE_1] = Location::Crate(RC_HW_AFTER_QUICKSAND_CRATE_1, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(3235, 2313), "After Quicksand Crate 1", RHT_CRATE_WASTELAND, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HW_AFTER_QUICKSAND_CRATE_1));
|
||||||
locationTable[RC_HW_AFTER_QUICKSAND_CRATE_2] = Location::Crate(RC_HW_AFTER_QUICKSAND_CRATE_2, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(3125, 2459), "After Quicksand Crate 2", RHT_CRATE_WASTELAND, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HW_AFTER_QUICKSAND_CRATE_2));
|
locationTable[RC_HW_AFTER_QUICKSAND_CRATE_2] = Location::Crate(RC_HW_AFTER_QUICKSAND_CRATE_2, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(3125, 2459), "After Quicksand Crate 2", RHT_CRATE_WASTELAND, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HW_AFTER_QUICKSAND_CRATE_2));
|
||||||
|
@ -380,7 +380,7 @@ void Rando::StaticData::RegisterCrateLocations() {
|
||||||
locationTable[RC_GV_CRATE_BRIDGE_2] = Location::NLCrate(RC_GV_CRATE_BRIDGE_2, RCQUEST_BOTH, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, TWO_ACTOR_PARAMS(-860, -125), "Near Bridge Crate 2", RHT_CRATE_GERUDO_VALLEY, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GV_CRATE_BRIDGE_2));
|
locationTable[RC_GV_CRATE_BRIDGE_2] = Location::NLCrate(RC_GV_CRATE_BRIDGE_2, RCQUEST_BOTH, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, TWO_ACTOR_PARAMS(-860, -125), "Near Bridge Crate 2", RHT_CRATE_GERUDO_VALLEY, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GV_CRATE_BRIDGE_2));
|
||||||
locationTable[RC_GV_CRATE_BRIDGE_3] = Location::NLCrate(RC_GV_CRATE_BRIDGE_3, RCQUEST_BOTH, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, TWO_ACTOR_PARAMS(-860, -150), "Near Bridge Crate 3", RHT_CRATE_GERUDO_VALLEY, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GV_CRATE_BRIDGE_3));
|
locationTable[RC_GV_CRATE_BRIDGE_3] = Location::NLCrate(RC_GV_CRATE_BRIDGE_3, RCQUEST_BOTH, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, TWO_ACTOR_PARAMS(-860, -150), "Near Bridge Crate 3", RHT_CRATE_GERUDO_VALLEY, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GV_CRATE_BRIDGE_3));
|
||||||
locationTable[RC_GV_CRATE_BRIDGE_4] = Location::NLCrate(RC_GV_CRATE_BRIDGE_4, RCQUEST_BOTH, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, TWO_ACTOR_PARAMS(-860, -90), "Near Bridge Crate 4", RHT_CRATE_GERUDO_VALLEY, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GV_CRATE_BRIDGE_4));
|
locationTable[RC_GV_CRATE_BRIDGE_4] = Location::NLCrate(RC_GV_CRATE_BRIDGE_4, RCQUEST_BOTH, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, TWO_ACTOR_PARAMS(-860, -90), "Near Bridge Crate 4", RHT_CRATE_GERUDO_VALLEY, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GV_CRATE_BRIDGE_4));
|
||||||
locationTable[RC_GF_ARCHERY_LEFT_END_CHILD_CRATE] = Location::NLCrate(RC_GF_ARCHERY_LEFT_END_CHILD_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3443, -4876), "Archery Left End Child Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ARCHERY_LEFT_END_CHILD_CRATE));
|
locationTable[RC_GF_NORTH_TARGET_CHILD_CRATE] = Location::NLCrate(RC_GF_NORTH_TARGET_CHILD_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(3443, -4876), "North Target Child Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_TARGET_CHILD_CRATE));
|
||||||
|
|
||||||
// MQ Crates
|
// MQ Crates
|
||||||
// Randomizer Check Randomizer Check Quest Area Scene ID Params Short Name Hint Text Key Vanilla Spoiler Collection Check
|
// Randomizer Check Randomizer Check Quest Area Scene ID Params Short Name Hint Text Key Vanilla Spoiler Collection Check
|
||||||
|
|
|
@ -108,22 +108,22 @@ void Rando::StaticData::RegisterPotLocations() {
|
||||||
locationTable[RC_KF_TWINS_HOUSE_POT_1] = Location::Pot(RC_KF_TWINS_HOUSE_POT_1, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_TWINS_HOUSE, TWO_ACTOR_PARAMS(33, -55), "Twins House Pot 1", RHT_POT_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_TWINS_HOUSE_POT_1));
|
locationTable[RC_KF_TWINS_HOUSE_POT_1] = Location::Pot(RC_KF_TWINS_HOUSE_POT_1, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_TWINS_HOUSE, TWO_ACTOR_PARAMS(33, -55), "Twins House Pot 1", RHT_POT_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_TWINS_HOUSE_POT_1));
|
||||||
locationTable[RC_KF_BROTHERS_HOUSE_POT_1] = Location::Pot(RC_KF_BROTHERS_HOUSE_POT_1, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KNOW_IT_ALL_BROS_HOUSE, TWO_ACTOR_PARAMS(-134, -29), "Brothers House Pot 1", RHT_POT_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_BROTHERS_HOUSE_POT_1));
|
locationTable[RC_KF_BROTHERS_HOUSE_POT_1] = Location::Pot(RC_KF_BROTHERS_HOUSE_POT_1, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KNOW_IT_ALL_BROS_HOUSE, TWO_ACTOR_PARAMS(-134, -29), "Brothers House Pot 1", RHT_POT_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_BROTHERS_HOUSE_POT_1));
|
||||||
locationTable[RC_KF_BROTHERS_HOUSE_POT_2] = Location::Pot(RC_KF_BROTHERS_HOUSE_POT_2, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KNOW_IT_ALL_BROS_HOUSE, TWO_ACTOR_PARAMS(-68, 114), "Brothers House Pot 2", RHT_POT_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_BROTHERS_HOUSE_POT_2));
|
locationTable[RC_KF_BROTHERS_HOUSE_POT_2] = Location::Pot(RC_KF_BROTHERS_HOUSE_POT_2, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KNOW_IT_ALL_BROS_HOUSE, TWO_ACTOR_PARAMS(-68, 114), "Brothers House Pot 2", RHT_POT_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_BROTHERS_HOUSE_POT_2));
|
||||||
locationTable[RC_TH_BREAK_ROOM_POT_1] = Location::Pot(RC_TH_BREAK_ROOM_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1438, -3629), "Break Room Pot 1", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_BREAK_ROOM_POT_1));
|
locationTable[RC_TH_BREAK_ROOM_FRONT_POT] = Location::Pot(RC_TH_BREAK_ROOM_FRONT_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1438, -3629), "Break Room Pot 1", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_BREAK_ROOM_POT_1));
|
||||||
locationTable[RC_TH_BREAK_ROOM_POT_2] = Location::Pot(RC_TH_BREAK_ROOM_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1403, -3679), "Break Room Pot 2", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_BREAK_ROOM_POT_2));
|
locationTable[RC_TH_BREAK_ROOM_BACK_POT] = Location::Pot(RC_TH_BREAK_ROOM_BACK_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1403, -3679), "Break Room Pot 2", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_BREAK_ROOM_POT_2));
|
||||||
locationTable[RC_TH_KITCHEN_POT_1] = Location::Pot(RC_TH_KITCHEN_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1908, -789), "Kitchen Pot 1", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_KITCHEN_POT_1));
|
locationTable[RC_TH_KITCHEN_POT_1] = Location::Pot(RC_TH_KITCHEN_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1908, -789), "Kitchen Pot 1", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_KITCHEN_POT_1));
|
||||||
locationTable[RC_TH_KITCHEN_POT_2] = Location::Pot(RC_TH_KITCHEN_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1951, -850), "Kitchen Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_KITCHEN_POT_2));
|
locationTable[RC_TH_KITCHEN_POT_2] = Location::Pot(RC_TH_KITCHEN_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1951, -850), "Kitchen Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_KITCHEN_POT_2));
|
||||||
locationTable[RC_TH_NORTH_F1_CARPENTER_POT_1] = Location::Pot(RC_TH_NORTH_F1_CARPENTER_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-475, -2622), "North F1 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F1_CARPENTER_POT_1));
|
locationTable[RC_TH_1_TORCH_CELL_RIGHT_POT] = Location::Pot(RC_TH_1_TORCH_CELL_RIGHT_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-475, -2622), "North F1 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F1_CARPENTER_POT_1));
|
||||||
locationTable[RC_TH_NORTH_F1_CARPENTER_POT_2] = Location::Pot(RC_TH_NORTH_F1_CARPENTER_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-512, -2621), "North F1 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RED_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F1_CARPENTER_POT_2));
|
locationTable[RC_TH_1_TORCH_CELL_MID_POT] = Location::Pot(RC_TH_1_TORCH_CELL_MID_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-512, -2621), "North F1 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RED_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F1_CARPENTER_POT_2));
|
||||||
locationTable[RC_TH_NORTH_F1_CARPENTER_POT_3] = Location::Pot(RC_TH_NORTH_F1_CARPENTER_POT_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-511, -2582), "North F1 Carpenter Pot 3", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F1_CARPENTER_POT_3));
|
locationTable[RC_TH_1_TORCH_CELL_LEFT_POT] = Location::Pot(RC_TH_1_TORCH_CELL_LEFT_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-511, -2582), "North F1 Carpenter Pot 3", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F1_CARPENTER_POT_3));
|
||||||
locationTable[RC_TH_NORTH_F2_CARPENTER_POT_1] = Location::Pot(RC_TH_NORTH_F2_CARPENTER_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(67, -1975), "North F2 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F2_CARPENTER_POT_1));
|
locationTable[RC_TH_STEEP_SLOPE_RIGHT_POT] = Location::Pot(RC_TH_STEEP_SLOPE_RIGHT_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(67, -1975), "North F2 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F2_CARPENTER_POT_1));
|
||||||
locationTable[RC_TH_NORTH_F2_CARPENTER_POT_2] = Location::Pot(RC_TH_NORTH_F2_CARPENTER_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(39, -1943), "North F2 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F2_CARPENTER_POT_2));
|
locationTable[RC_TH_STEEP_SLOPE_LEFT_POT] = Location::Pot(RC_TH_STEEP_SLOPE_LEFT_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(39, -1943), "North F2 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_NORTH_F2_CARPENTER_POT_2));
|
||||||
locationTable[RC_TH_SOUTH_F1_CARPENTER_POT_1] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(691, 48), "South F1 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_POT_1));
|
locationTable[RC_TH_NEAR_DOUBLE_CELL_RIGHT_POT] = Location::Pot(RC_TH_NEAR_DOUBLE_CELL_RIGHT_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(691, 48), "South F1 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_POT_1));
|
||||||
locationTable[RC_TH_SOUTH_F1_CARPENTER_POT_2] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(691, 16), "South F1 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RED_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_POT_2));
|
locationTable[RC_TH_NEAR_DOUBLE_CELL_MID_POT] = Location::Pot(RC_TH_NEAR_DOUBLE_CELL_MID_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(691, 16), "South F1 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RED_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_POT_2));
|
||||||
locationTable[RC_TH_SOUTH_F1_CARPENTER_POT_3] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_POT_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(661, 16), "South F1 Carpenter Pot 3", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_POT_3));
|
locationTable[RC_TH_NEAR_DOUBLE_CELL_LEFT_POT] = Location::Pot(RC_TH_NEAR_DOUBLE_CELL_LEFT_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(661, 16), "South F1 Carpenter Pot 3", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_POT_3));
|
||||||
locationTable[RC_TH_SOUTH_F1_CARPENTER_CELL_POT_1] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_1, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(26, 524), "South F1 Carpenter Cell Pot 1", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_1));
|
locationTable[RC_TH_RIGHTMOST_JAILED_POT] = Location::Pot(RC_TH_RIGHTMOST_JAILED_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(26, 524), "South F1 Carpenter Cell Pot 1", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_1));
|
||||||
locationTable[RC_TH_SOUTH_F1_CARPENTER_CELL_POT_2] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_2, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(61, 549), "South F1 Carpenter Cell Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_2));
|
locationTable[RC_TH_RIGHT_MIDDLE_JAILED_POT] = Location::Pot(RC_TH_RIGHT_MIDDLE_JAILED_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(61, 549), "South F1 Carpenter Cell Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_2));
|
||||||
locationTable[RC_TH_SOUTH_F1_CARPENTER_CELL_POT_3] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_3, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(215, 549), "South F1 Carpenter Cell Pot 3", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_3));
|
locationTable[RC_TH_LEFT_MIDDLE_JAILED_POT] = Location::Pot(RC_TH_LEFT_MIDDLE_JAILED_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(215, 549), "South F1 Carpenter Cell Pot 3", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_3));
|
||||||
locationTable[RC_TH_SOUTH_F1_CARPENTER_CELL_POT_4] = Location::Pot(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_4, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(254, 529), "South F1 Carpenter Cell Pot 4", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_4));
|
locationTable[RC_TH_LEFTMOST_JAILED_POT] = Location::Pot(RC_TH_LEFTMOST_JAILED_POT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(254, 529), "South F1 Carpenter Cell Pot 4", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_4));
|
||||||
locationTable[RC_WASTELAND_NEAR_GS_POT_1] = Location::Pot(RC_WASTELAND_NEAR_GS_POT_1, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(488, -2424), "Near GS Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WASTELAND_NEAR_GS_POT_1));
|
locationTable[RC_WASTELAND_NEAR_GS_POT_1] = Location::Pot(RC_WASTELAND_NEAR_GS_POT_1, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(488, -2424), "Near GS Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WASTELAND_NEAR_GS_POT_1));
|
||||||
locationTable[RC_WASTELAND_NEAR_GS_POT_2] = Location::Pot(RC_WASTELAND_NEAR_GS_POT_2, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(485, -2463), "Near GS Pot 2", RHT_POT_GERUDO_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WASTELAND_NEAR_GS_POT_2));
|
locationTable[RC_WASTELAND_NEAR_GS_POT_2] = Location::Pot(RC_WASTELAND_NEAR_GS_POT_2, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(485, -2463), "Near GS Pot 2", RHT_POT_GERUDO_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WASTELAND_NEAR_GS_POT_2));
|
||||||
locationTable[RC_WASTELAND_NEAR_GS_POT_3] = Location::Pot(RC_WASTELAND_NEAR_GS_POT_3, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(806, -2426), "Near GS Pot 3", RHT_POT_GERUDO_FORTRESS, RG_DEKU_NUTS_5, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WASTELAND_NEAR_GS_POT_3));
|
locationTable[RC_WASTELAND_NEAR_GS_POT_3] = Location::Pot(RC_WASTELAND_NEAR_GS_POT_3, RCQUEST_BOTH, RCAREA_WASTELAND, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(806, -2426), "Near GS Pot 3", RHT_POT_GERUDO_FORTRESS, RG_DEKU_NUTS_5, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WASTELAND_NEAR_GS_POT_3));
|
||||||
|
|
|
@ -880,8 +880,8 @@ int EntranceShuffler::ShuffleAllEntrances() {
|
||||||
{ EntranceType::Dungeon, RR_BOTTOM_OF_THE_WELL_ENTRYWAY, RR_KAK_WELL, ENTR_KAKARIKO_VILLAGE_OUTSIDE_BOTTOM_OF_THE_WELL } },
|
{ EntranceType::Dungeon, RR_BOTTOM_OF_THE_WELL_ENTRYWAY, RR_KAK_WELL, ENTR_KAKARIKO_VILLAGE_OUTSIDE_BOTTOM_OF_THE_WELL } },
|
||||||
{ { EntranceType::Dungeon, RR_ZORAS_FOUNTAIN, RR_ICE_CAVERN_ENTRYWAY, ENTR_ICE_CAVERN_ENTRANCE },
|
{ { EntranceType::Dungeon, RR_ZORAS_FOUNTAIN, RR_ICE_CAVERN_ENTRYWAY, ENTR_ICE_CAVERN_ENTRANCE },
|
||||||
{ EntranceType::Dungeon, RR_ICE_CAVERN_ENTRYWAY, RR_ZORAS_FOUNTAIN, ENTR_ZORAS_FOUNTAIN_OUTSIDE_ICE_CAVERN } },
|
{ EntranceType::Dungeon, RR_ICE_CAVERN_ENTRYWAY, RR_ZORAS_FOUNTAIN, ENTR_ZORAS_FOUNTAIN_OUTSIDE_ICE_CAVERN } },
|
||||||
{ { EntranceType::Dungeon, RR_GF_GROUND_OUTSIDE_GTG, RR_GERUDO_TRAINING_GROUND_ENTRYWAY, ENTR_GERUDO_TRAINING_GROUND_ENTRANCE },
|
{ { EntranceType::Dungeon, RR_GF_OUTSIDE_GTG, RR_GTG_ENTRYWAY, ENTR_GERUDO_TRAINING_GROUND_ENTRANCE },
|
||||||
{ EntranceType::Dungeon, RR_GERUDO_TRAINING_GROUND_ENTRYWAY, RR_GF_GROUND_OUTSIDE_GTG, ENTR_GERUDOS_FORTRESS_OUTSIDE_GERUDO_TRAINING_GROUND } },
|
{ EntranceType::Dungeon, RR_GTG_ENTRYWAY, RR_GF_OUTSIDE_GTG, ENTR_GERUDOS_FORTRESS_OUTSIDE_GERUDO_TRAINING_GROUND } },
|
||||||
{ { EntranceType::GanonDungeon, RR_GANONS_CASTLE_LEDGE, RR_GANONS_CASTLE_ENTRYWAY, ENTR_INSIDE_GANONS_CASTLE_ENTRANCE },
|
{ { EntranceType::GanonDungeon, RR_GANONS_CASTLE_LEDGE, RR_GANONS_CASTLE_ENTRYWAY, ENTR_INSIDE_GANONS_CASTLE_ENTRANCE },
|
||||||
{ EntranceType::GanonDungeon, RR_GANONS_CASTLE_ENTRYWAY, RR_CASTLE_GROUNDS_FROM_GANONS_CASTLE, ENTR_CASTLE_GROUNDS_RAINBOW_BRIDGE_EXIT } },
|
{ EntranceType::GanonDungeon, RR_GANONS_CASTLE_ENTRYWAY, RR_CASTLE_GROUNDS_FROM_GANONS_CASTLE, ENTR_CASTLE_GROUNDS_RAINBOW_BRIDGE_EXIT } },
|
||||||
|
|
||||||
|
@ -1033,8 +1033,8 @@ int EntranceShuffler::ShuffleAllEntrances() {
|
||||||
{ EntranceType::GrottoGrave, RR_KF_STORMS_GROTTO, RR_KOKIRI_FOREST, ENTRANCE_GROTTO_EXIT(GROTTO_KF_STORMS_OFFSET) } },
|
{ EntranceType::GrottoGrave, RR_KF_STORMS_GROTTO, RR_KOKIRI_FOREST, ENTRANCE_GROTTO_EXIT(GROTTO_KF_STORMS_OFFSET) } },
|
||||||
{ { EntranceType::GrottoGrave, RR_ZORAS_DOMAIN_ISLAND, RR_ZD_STORMS_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_ZD_STORMS_OFFSET) },
|
{ { EntranceType::GrottoGrave, RR_ZORAS_DOMAIN_ISLAND, RR_ZD_STORMS_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_ZD_STORMS_OFFSET) },
|
||||||
{ EntranceType::GrottoGrave, RR_ZD_STORMS_GROTTO, RR_ZORAS_DOMAIN_ISLAND, ENTRANCE_GROTTO_EXIT(GROTTO_ZD_STORMS_OFFSET) } },
|
{ EntranceType::GrottoGrave, RR_ZD_STORMS_GROTTO, RR_ZORAS_DOMAIN_ISLAND, ENTRANCE_GROTTO_EXIT(GROTTO_ZD_STORMS_OFFSET) } },
|
||||||
{ { EntranceType::GrottoGrave, RR_GF_GROUND_NEAR_GROTTO, RR_GF_STORMS_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_GF_STORMS_OFFSET) },
|
{ { EntranceType::GrottoGrave, RR_GF_NEAR_GROTTO, RR_GF_STORMS_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_GF_STORMS_OFFSET) },
|
||||||
{ EntranceType::GrottoGrave, RR_GF_STORMS_GROTTO, RR_GF_GROUND_NEAR_GROTTO, ENTRANCE_GROTTO_EXIT(GROTTO_GF_STORMS_OFFSET) } },
|
{ EntranceType::GrottoGrave, RR_GF_STORMS_GROTTO, RR_GF_NEAR_GROTTO, ENTRANCE_GROTTO_EXIT(GROTTO_GF_STORMS_OFFSET) } },
|
||||||
{ { EntranceType::GrottoGrave, RR_GV_FORTRESS_SIDE, RR_GV_STORMS_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_GV_STORMS_OFFSET) },
|
{ { EntranceType::GrottoGrave, RR_GV_FORTRESS_SIDE, RR_GV_STORMS_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_GV_STORMS_OFFSET) },
|
||||||
{ EntranceType::GrottoGrave, RR_GV_STORMS_GROTTO, RR_GV_FORTRESS_SIDE, ENTRANCE_GROTTO_EXIT(GROTTO_GV_STORMS_OFFSET) } },
|
{ EntranceType::GrottoGrave, RR_GV_STORMS_GROTTO, RR_GV_FORTRESS_SIDE, ENTRANCE_GROTTO_EXIT(GROTTO_GV_STORMS_OFFSET) } },
|
||||||
{ { EntranceType::GrottoGrave, RR_GV_GROTTO_LEDGE, RR_GV_OCTOROK_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_GV_OCTOROK_OFFSET) },
|
{ { EntranceType::GrottoGrave, RR_GV_GROTTO_LEDGE, RR_GV_OCTOROK_GROTTO, ENTRANCE_GROTTO_LOAD(GROTTO_GV_OCTOROK_OFFSET) },
|
||||||
|
@ -1078,8 +1078,8 @@ int EntranceShuffler::ShuffleAllEntrances() {
|
||||||
{ EntranceType::Overworld, RR_LON_LON_RANCH, RR_HYRULE_FIELD, ENTR_HYRULE_FIELD_CENTER_EXIT } },
|
{ EntranceType::Overworld, RR_LON_LON_RANCH, RR_HYRULE_FIELD, ENTR_HYRULE_FIELD_CENTER_EXIT } },
|
||||||
{ { EntranceType::Overworld, RR_LAKE_HYLIA, RR_ZORAS_DOMAIN, ENTR_ZORAS_DOMAIN_UNDERWATER_SHORTCUT },
|
{ { EntranceType::Overworld, RR_LAKE_HYLIA, RR_ZORAS_DOMAIN, ENTR_ZORAS_DOMAIN_UNDERWATER_SHORTCUT },
|
||||||
{ EntranceType::Overworld, RR_ZORAS_DOMAIN, RR_LAKE_HYLIA, ENTR_LAKE_HYLIA_UNDERWATER_SHORTCUT } },
|
{ EntranceType::Overworld, RR_ZORAS_DOMAIN, RR_LAKE_HYLIA, ENTR_LAKE_HYLIA_UNDERWATER_SHORTCUT } },
|
||||||
{ { EntranceType::Overworld, RR_GV_FORTRESS_SIDE, RR_GF_GROUND_BOTTOM, ENTR_GERUDOS_FORTRESS_EAST_EXIT },
|
{ { EntranceType::Overworld, RR_GV_FORTRESS_SIDE, RR_GF_OUTSKIRTS, ENTR_GERUDOS_FORTRESS_EAST_EXIT },
|
||||||
{ EntranceType::Overworld, RR_GF_GROUND_BOTTOM, RR_GV_FORTRESS_SIDE, ENTR_GERUDO_VALLEY_WEST_EXIT } },
|
{ EntranceType::Overworld, RR_GF_OUTSKIRTS, RR_GV_FORTRESS_SIDE, ENTR_GERUDO_VALLEY_WEST_EXIT } },
|
||||||
{ { EntranceType::Overworld, RR_GF_OUTSIDE_GATE, RR_WASTELAND_NEAR_FORTRESS, ENTR_HAUNTED_WASTELAND_EAST_EXIT },
|
{ { EntranceType::Overworld, RR_GF_OUTSIDE_GATE, RR_WASTELAND_NEAR_FORTRESS, ENTR_HAUNTED_WASTELAND_EAST_EXIT },
|
||||||
{ EntranceType::Overworld, RR_WASTELAND_NEAR_FORTRESS, RR_GF_OUTSIDE_GATE, ENTR_GERUDOS_FORTRESS_GATE_EXIT } },
|
{ EntranceType::Overworld, RR_WASTELAND_NEAR_FORTRESS, RR_GF_OUTSIDE_GATE, ENTR_GERUDOS_FORTRESS_GATE_EXIT } },
|
||||||
{ { EntranceType::Overworld, RR_WASTELAND_NEAR_COLOSSUS, RR_DESERT_COLOSSUS, ENTR_DESERT_COLOSSUS_EAST_EXIT },
|
{ { EntranceType::Overworld, RR_WASTELAND_NEAR_COLOSSUS, RR_DESERT_COLOSSUS, ENTR_DESERT_COLOSSUS_EAST_EXIT },
|
||||||
|
|
|
@ -327,11 +327,11 @@ void RegionTable_Init() {
|
||||||
//The big poes bottle softlock safety check does not account for the guard house lock if the guard house is not shuffled, so the key is needed before we can safely allow bottle use in logic
|
//The big poes bottle softlock safety check does not account for the guard house lock if the guard house is not shuffled, so the key is needed before we can safely allow bottle use in logic
|
||||||
//RANDOTODO a setting that lets you drink/dump big poes so we don't need this logic
|
//RANDOTODO a setting that lets you drink/dump big poes so we don't need this logic
|
||||||
EventAccess(&logic->CouldEmptyBigPoes, []{return !ctx->GetOption(RSK_SHUFFLE_INTERIOR_ENTRANCES).Is(RO_INTERIOR_ENTRANCE_SHUFFLE_OFF) || logic->CanOpenOverworldDoor(RG_GUARD_HOUSE_KEY);}),
|
EventAccess(&logic->CouldEmptyBigPoes, []{return !ctx->GetOption(RSK_SHUFFLE_INTERIOR_ENTRANCES).Is(RO_INTERIOR_ENTRANCE_SHUFFLE_OFF) || logic->CanOpenOverworldDoor(RG_GUARD_HOUSE_KEY);}),
|
||||||
EventAccess(&logic->TH_CouldRescueF1NorthCarpenter, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE);}),
|
EventAccess(&logic->THCouldFree1TorchCarpenter, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE);}),
|
||||||
EventAccess(&logic->TH_CouldRescueF1SouthCarpenter, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST);}),
|
EventAccess(&logic->THCouldFreeDoubleCellCarpenter, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST);}),
|
||||||
EventAccess(&logic->TH_CouldRescueF2NorthCarpenter, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST);}),
|
EventAccess(&logic->TH_CouldFreeDeadEndCarpenter, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST);}),
|
||||||
EventAccess(&logic->TH_CouldRescueF2SouthCarpenter, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST);}),
|
EventAccess(&logic->THCouldRescueSlopeCarpenter, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FAST);}),
|
||||||
EventAccess(&logic->TH_RescuedAllCarpenters, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE);}),
|
EventAccess(&logic->THRescuedAllCarpenters, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE);}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_LINKS_POCKET, true),
|
LOCATION(RC_LINKS_POCKET, true),
|
||||||
|
@ -416,6 +416,7 @@ void RegionTable_Init() {
|
||||||
RegionTable_Init_ZorasFountain();
|
RegionTable_Init_ZorasFountain();
|
||||||
RegionTable_Init_GerudoValley();
|
RegionTable_Init_GerudoValley();
|
||||||
RegionTable_Init_GerudoFortress();
|
RegionTable_Init_GerudoFortress();
|
||||||
|
RegionTable_Init_ThievesHideout();
|
||||||
RegionTable_Init_HauntedWasteland();
|
RegionTable_Init_HauntedWasteland();
|
||||||
RegionTable_Init_DesertColossus();
|
RegionTable_Init_DesertColossus();
|
||||||
// Dungeons
|
// Dungeons
|
||||||
|
|
|
@ -7,11 +7,11 @@ using namespace Rando;
|
||||||
void RegionTable_Init_GerudoTrainingGround() {
|
void RegionTable_Init_GerudoTrainingGround() {
|
||||||
// clang-format off
|
// clang-format off
|
||||||
// Vanilla/MQ Decider
|
// Vanilla/MQ Decider
|
||||||
areaTable[RR_GERUDO_TRAINING_GROUND_ENTRYWAY] = Region("Gerudo Training Ground Entryway", "Gerudo Training Ground", {RA_GERUDO_TRAINING_GROUND}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
areaTable[RR_GTG_ENTRYWAY] = Region("Gerudo Training Ground Entryway", "Gerudo Training Ground", {RA_GERUDO_TRAINING_GROUND}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GERUDO_TRAINING_GROUND_LOBBY, []{return ctx->GetDungeon(GERUDO_TRAINING_GROUND)->IsVanilla();}),
|
Entrance(RR_GERUDO_TRAINING_GROUND_LOBBY, []{return ctx->GetDungeon(GERUDO_TRAINING_GROUND)->IsVanilla();}),
|
||||||
Entrance(RR_GERUDO_TRAINING_GROUND_MQ_LOBBY, []{return ctx->GetDungeon(GERUDO_TRAINING_GROUND)->IsMQ();}),
|
Entrance(RR_GERUDO_TRAINING_GROUND_MQ_LOBBY, []{return ctx->GetDungeon(GERUDO_TRAINING_GROUND)->IsMQ();}),
|
||||||
Entrance(RR_GF_GROUND_BOTTOM, []{return true;}),
|
Entrance(RR_GF_OUTSIDE_GTG, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
#pragma region Vanilla
|
#pragma region Vanilla
|
||||||
|
@ -27,7 +27,7 @@ void RegionTable_Init_GerudoTrainingGround() {
|
||||||
LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_EAST_HEART, true),
|
LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_EAST_HEART, true),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GERUDO_TRAINING_GROUND_ENTRYWAY, []{return true;}),
|
Entrance(RR_GTG_ENTRYWAY, []{return true;}),
|
||||||
Entrance(RR_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_ROOM, []{return logic->CanKillEnemy(RE_STALFOS, ED_CLOSE, true, 2, true) && (logic->CanUse(RG_HOOKSHOT) || ctx->GetTrickOption(RT_GTG_WITHOUT_HOOKSHOT));}),
|
Entrance(RR_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_ROOM, []{return logic->CanKillEnemy(RE_STALFOS, ED_CLOSE, true, 2, true) && (logic->CanUse(RG_HOOKSHOT) || ctx->GetTrickOption(RT_GTG_WITHOUT_HOOKSHOT));}),
|
||||||
Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return Here(RR_GERUDO_TRAINING_GROUND_LOBBY, []{return logic->CanKillEnemy(RE_BEAMOS) && logic->CanKillEnemy(RE_DINOLFOS, ED_CLOSE, true, 2, true);});}),
|
Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return Here(RR_GERUDO_TRAINING_GROUND_LOBBY, []{return logic->CanKillEnemy(RE_BEAMOS) && logic->CanKillEnemy(RE_DINOLFOS, ED_CLOSE, true, 2, true);});}),
|
||||||
Entrance(RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE, []{return true;}),
|
Entrance(RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE, []{return true;}),
|
||||||
|
@ -124,7 +124,7 @@ void RegionTable_Init_GerudoTrainingGround() {
|
||||||
LOCATION(RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_POT_2, logic->CanBreakPots()),
|
LOCATION(RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_POT_2, logic->CanBreakPots()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GERUDO_TRAINING_GROUND_ENTRYWAY, []{return true;}),
|
Entrance(RR_GTG_ENTRYWAY, []{return true;}),
|
||||||
Entrance(RR_GERUDO_TRAINING_GROUND_MQ_MAZE_HIDDEN_ROOM, []{return ctx->GetTrickOption(RT_LENS_GTG_MQ) || logic->CanUse(RG_LENS_OF_TRUTH);}),
|
Entrance(RR_GERUDO_TRAINING_GROUND_MQ_MAZE_HIDDEN_ROOM, []{return ctx->GetTrickOption(RT_LENS_GTG_MQ) || logic->CanUse(RG_LENS_OF_TRUTH);}),
|
||||||
Entrance(RR_GERUDO_TRAINING_GROUND_MQ_MAZE_FIRST_LOCK, []{return logic->SmallKeys(RR_GERUDO_TRAINING_GROUND, 1);}),
|
Entrance(RR_GERUDO_TRAINING_GROUND_MQ_MAZE_FIRST_LOCK, []{return logic->SmallKeys(RR_GERUDO_TRAINING_GROUND, 1);}),
|
||||||
//It's possible to use the torch in RR_GERUDO_TRAINING_GROUND_MQ_MAZE_HIDDEN_ROOM with flame storage to light these
|
//It's possible to use the torch in RR_GERUDO_TRAINING_GROUND_MQ_MAZE_HIDDEN_ROOM with flame storage to light these
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.3 MiB |
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 1.3 MiB |
|
@ -6,181 +6,216 @@ using namespace Rando;
|
||||||
void RegionTable_Init_GerudoFortress() {
|
void RegionTable_Init_GerudoFortress() {
|
||||||
#pragma region Ground
|
#pragma region Ground
|
||||||
|
|
||||||
areaTable[RR_GF_GROUND_BOTTOM] = Region("Gerudo Fortress", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
areaTable[RR_GF_OUTSKIRTS] = Region("Gerudo Fortress Outskirts", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->GF_GateOpen, []{return logic->IsAdult && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD);}),
|
EventAccess(&logic->GF_GateOpen, []{return logic->IsAdult && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD);}), //needs climb
|
||||||
}, {}, {
|
}, {
|
||||||
|
//Locations
|
||||||
|
LOCATION(RC_GF_OUTSKIRTS_NE_CRATE, (logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD)) && logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_OUTSKIRTS_NW_CRATE, logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD)),
|
||||||
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GV_FORTRESS_SIDE, []{return true;}),
|
Entrance(RR_GV_FORTRESS_SIDE, []{return true;}),
|
||||||
Entrance(RR_GF_OUTSIDE_GATE, []{return logic->GF_GateOpen;}),
|
Entrance(RR_GF_OUTSIDE_GATE, []{return logic->GF_GateOpen;}),
|
||||||
// RANDTODO: Add tricks for getting past the gerudo guarding the hba range
|
Entrance(RR_TH_1_TORCH_CELL, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_RED, []{return true;}),
|
Entrance(RR_GF_NEAR_GROTTO, []{return logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
||||||
Entrance(RR_GF_GROUND_GREY, []{return true;}),
|
Entrance(RR_GF_OUTSIDE_GTG, []{return logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
||||||
|
//As of now there is no infinitly repeatable way to get thrown in jail, once one is added getting here only needs hookshot from jail
|
||||||
|
Entrance(RR_GF_JAIL_WINDOW, []{return logic->CanUse(RG_LONGSHOT);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_GROUND_RED] = Region("GF Ground Red", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
areaTable[RR_GF_NEAR_GROTTO] = Region("GF Near Grotto", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||||
|
//Locations
|
||||||
|
LOCATION(RC_GF_SOUTHMOST_CENTER_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_MID_SOUTH_CENTER_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_MID_NORTH_CENTER_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RR_GF_NORTHMOST_CENTER_CRATE, logic->CanBreakCrates()),
|
||||||
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_TH_NORTH_F1_CARPENTER_AREA, []{return true;}),
|
Entrance(RR_TH_KITCHEN_CORRIDOR, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_GREY, []{return true;}),
|
Entrance(RR_TH_1_TORCH_CELL, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_BOTTOM, []{return true;}),
|
Entrance(RR_TH_DOUBLE_CELL, []{return true;}),
|
||||||
});
|
|
||||||
|
|
||||||
areaTable[RR_GF_GROUND_GREY] = Region("GF Ground Grey", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
|
||||||
//Exits
|
|
||||||
Entrance(RR_GF_GROUND_RED, []{return logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
|
||||||
Entrance(RR_GF_GROUND_NEAR_GROTTO, []{return logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
|
||||||
Entrance(RR_GF_GROUND_OUTSIDE_GTG, []{return logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
|
||||||
Entrance(RR_GF_GROUND_BOTTOM, []{return true;}),
|
|
||||||
});
|
|
||||||
|
|
||||||
areaTable[RR_GF_GROUND_NEAR_GROTTO] = Region("GF Ground Near Grotto", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
|
||||||
//Exits
|
|
||||||
Entrance(RR_TH_KITCHEN_BOTTOM, []{return true;}),
|
|
||||||
Entrance(RR_TH_NORTH_F1_CARPENTER_AREA, []{return true;}),
|
|
||||||
Entrance(RR_TH_SOUTH_F1_CARPENTER_AREA, []{return true;}),
|
|
||||||
Entrance(RR_GF_STORMS_GROTTO, []{return logic->IsAdult && logic->CanOpenStormsGrotto();}),
|
Entrance(RR_GF_STORMS_GROTTO, []{return logic->IsAdult && logic->CanOpenStormsGrotto();}),
|
||||||
Entrance(RR_GF_GROUND_GREY, []{return true;}),
|
Entrance(RR_GF_TOP_OF_UPPER_VINES, []{return logic->CanUse(RG_LONGSHOT);}),
|
||||||
Entrance(RR_GF_ROOFTOP_TOP_OF_UPPER_VINES, []{return logic->CanUse(RG_LONGSHOT);}),
|
Entrance(RR_GF_OUTSIDE_GTG, []{return logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
||||||
|
Entrance(RR_GF_OUTSKIRTS, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_GROUND_OUTSIDE_GTG] = Region("GF Ground Outside GTG", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
areaTable[RR_GF_OUTSIDE_GTG] = Region("GF Outside GTG", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->GtG_GateOpen, []{return (logic->IsAdult && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && logic->HasItem(RG_CHILD_WALLET));}),
|
EventAccess(&logic->GtG_GateOpen, []{return (logic->IsAdult && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && logic->HasItem(RG_CHILD_WALLET));}),
|
||||||
}, {}, {
|
}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GERUDO_TRAINING_GROUND_ENTRYWAY, []{return logic->GtG_GateOpen && (logic->IsAdult || ctx->GetOption(RSK_SHUFFLE_DUNGEON_ENTRANCES));}),
|
Entrance(RR_GF_OUTSKIRTS, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_GREY, []{return true;}),
|
Entrance(RR_GTG_ENTRYWAY, []{return logic->GtG_GateOpen && (logic->IsAdult || ctx->GetOption(RSK_SHUFFLE_DUNGEON_ENTRANCES));}),
|
||||||
|
Entrance(RR_GF_NEAR_GROTTO, []{return logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
||||||
|
// RANDTODO: Add tricks for getting past the gerudo guarding the hba range
|
||||||
Entrance(RR_GF_HBA_RANGE, []{return logic->IsChild || logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD);}),
|
Entrance(RR_GF_HBA_RANGE, []{return logic->IsChild || logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD);}),
|
||||||
Entrance(RR_GF_GROUND_BOTTOM, []{return true;}),
|
Entrance(RR_GF_ABOVE_GTG, []{return logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
||||||
Entrance(RR_GF_ROOFTOP_ABOVE_GTG, []{return logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
Entrance(RR_GF_TOP_OF_UPPER_VINES, []{return logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && logic->CanUse(RG_LONGSHOT);}),
|
||||||
Entrance(RR_GF_ROOFTOP_TOP_OF_UPPER_VINES, []{return logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && logic->CanUse(RG_LONGSHOT);}),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
#pragma region Rooftops
|
#pragma region Rooftops
|
||||||
|
|
||||||
areaTable[RR_GF_ROOFTOP_YELLOW] = Region("GF Rooftop Yellow", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
areaTable[RR_GF_BELOW_CHEST] = Region("GF Below Chest", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_TH_BREAK_ROOM, []{return true;}),
|
Entrance(RR_TH_BREAK_ROOM, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_RED, []{return true;}),
|
Entrance(RR_GF_OUTSKIRTS, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_ROOFTOP_LIMEGREEN] = Region("GF Rooftop Limegreen", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
areaTable[RR_GF_LONG_ROOF] = Region("GF Long Roof", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_ROOFTOP_YELLOW, []{return true;}),
|
Entrance(RR_GF_BELOW_CHEST, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_RED, []{return true;}),
|
Entrance(RR_GF_OUTSKIRTS, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_GREY, []{return true;}),
|
Entrance(RR_GF_BOTTOM_OF_LOWER_VINES, []{return true;}),
|
||||||
|
Entrance(RR_GF_BELOW_GS, []{return true;}),
|
||||||
|
Entrance(RR_GF_NEAR_GS, []{return (logic->IsAdult && ctx->GetTrickOption(RT_GF_JUMP)) || logic->CanUse(RG_HOVER_BOOTS);}),
|
||||||
|
Entrance(RR_GF_NEAR_CHEST, []{return logic->CanUse(RG_LONGSHOT);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_ROOFTOP_ABOVE_GTG] = Region("GF Rooftop Above GTG", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
areaTable[RR_GF_ABOVE_GTG] = Region("GF Above GTG", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_TH_KITCHEN_BOTTOM, []{return true;}),
|
Entrance(RR_TH_KITCHEN_CORRIDOR, []{return true;}),
|
||||||
// need to explicitly convert it into a bool
|
// need to explicitly convert it into a bool
|
||||||
Entrance(RR_GF_ROOFTOP_BOTTOM_OF_LOWER_VINES, []{return ctx->GetTrickOption(RT_GF_JUMP).Get() != 0;}),
|
Entrance(RR_GF_BOTTOM_OF_LOWER_VINES, []{return ctx->GetTrickOption(RT_GF_JUMP).Get() != 0 ;}),
|
||||||
Entrance(RR_TH_SOUTH_F2_CARPENTER_AREA, []{return true;}),
|
Entrance(RR_TH_DOUBLE_CELL, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_GREY, []{return true;}),
|
Entrance(RR_GF_NEAR_GROTTO, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_NEAR_GROTTO, []{return true;}),
|
Entrance(RR_GF_OUTSKIRTS, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_OUTSIDE_GTG, []{return true;}),
|
Entrance(RR_GF_OUTSIDE_GTG, []{return logic->IsChild || logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_ROOFTOP_BOTTOM_OF_LOWER_VINES] = Region("GF Rooftop Bottom of Lower Vines", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
areaTable[RR_GF_BOTTOM_OF_LOWER_VINES] = Region("GF Bottom of Lower Vines", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_TH_SOUTH_F1_CARPENTER_AREA, []{return true;}),
|
Entrance(RR_TH_STEEP_SLOPE_CELL, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_TOP_OF_LOWER_VINES, []{return true /* logic->CanClimb() */;}),
|
Entrance(RR_GF_TOP_OF_LOWER_VINES, []{return true /* logic->CanClimb() */;}),
|
||||||
Entrance(RR_GF_ROOFTOP_ABOVE_GTG, []{return true;}),
|
Entrance(RR_GF_ABOVE_GTG, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_GREY, []{return true;}),
|
Entrance(RR_GF_NEAR_GROTTO, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_NEAR_GROTTO, []{return true;}),
|
Entrance(RR_GF_OUTSKIRTS, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_ROOFTOP_TOP_OF_LOWER_VINES] = Region("GF Rooftop Top of Lower Vines", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
areaTable[RR_GF_TOP_OF_LOWER_VINES] = Region("GF Top of Lower Vines", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_TH_KITCHEN_TOP, []{return true;}),
|
Entrance(RR_TH_KITCHEN_TOP, []{return true;}),
|
||||||
Entrance(RR_TH_SOUTH_F2_CARPENTER_AREA, []{return true;}),
|
Entrance(RR_TH_DOUBLE_CELL, []{return true;}),
|
||||||
// need to explicitly convert it into a bool
|
// need to explicitly convert it into a bool
|
||||||
Entrance(RR_GF_ROOFTOP_BOTTOM_OF_UPPER_VINES, []{return ctx->GetTrickOption(RT_GF_JUMP).Get() != 0;}),
|
Entrance(RR_GF_BOTTOM_OF_UPPER_VINES, []{return ctx->GetTrickOption(RT_GF_JUMP).Get() != 0;}),
|
||||||
Entrance(RR_GF_GROUND_NEAR_GROTTO, []{return true;}),
|
Entrance(RR_GF_BOTTOM_OF_LOWER_VINES, []{return true;}),
|
||||||
|
Entrance(RR_GF_NEAR_GROTTO, []{return true;}),
|
||||||
|
Entrance(RR_GF_ABOVE_GTG, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_ROOFTOP_BOTTOM_OF_UPPER_VINES] = Region("GF Rooftop Bottom of Upper Vines", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
areaTable[RR_GF_BOTTOM_OF_UPPER_VINES] = Region("GF Bottom of Upper Vines", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_ROOFTOP_TOP_OF_UPPER_VINES, []{return true /* logic->CanClimb() */;}),
|
Entrance(RR_GF_TOP_OF_UPPER_VINES, []{return true /* logic->CanClimb() */;}),
|
||||||
Entrance(RR_GF_ROOFTOP_TOP_OF_LOWER_VINES, []{return true;}),
|
Entrance(RR_GF_TOP_OF_LOWER_VINES, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_OUTSIDE_GTG, []{return true;}),
|
Entrance(RR_GF_OUTSIDE_GTG, []{return true;}),
|
||||||
|
Entrance(RR_GF_SLOPED_ROOF, []{return logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_ROOFTOP_BELOW_GS] = Region("GF Rooftop Below GS", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
areaTable[RR_GF_BELOW_GS] = Region("GF Below GS", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GF_GS_TOP_FLOOR, logic->IsAdult && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_LONGSHOT) && logic->CanGetNightTimeGS()),
|
LOCATION(RC_GF_GS_TOP_FLOOR, logic->IsAdult && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_LONGSHOT) && logic->CanGetNightTimeGS()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_TH_NORTH_F2_CARPENTER_AREA, []{return true;}),
|
Entrance(RR_TH_DEAD_END_CELL, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_BOTTOM_OF_LOWER_VINES, []{return true;}),
|
Entrance(RR_GF_BOTTOM_OF_LOWER_VINES, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_ROOFTOP_NEAR_GS] = Region("GF Rooftop Near GS", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
areaTable[RR_GF_NEAR_GS] = Region("GF Near GS", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GF_GS_TOP_FLOOR, logic->IsAdult && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_BOMB_THROW) && logic->CanGetNightTimeGS()),
|
LOCATION(RC_GF_GS_TOP_FLOOR, logic->IsAdult && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_BOMB_THROW) && logic->CanGetNightTimeGS()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_TH_KITCHEN_TOP, []{return true;}),
|
Entrance(RR_TH_KITCHEN_TOP, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_BOTTOM_OF_LOWER_VINES, []{return true;}),
|
Entrance(RR_GF_BOTTOM_OF_LOWER_VINES, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_BELOW_GS, []{return true;}),
|
Entrance(RR_GF_TOP_OF_LOWER_VINES, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_LIMEGREEN, []{return logic->CanUse(RG_HOVER_BOOTS) /* || bunny hood jump */;}),
|
Entrance(RR_GF_BELOW_GS, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_SLOPED, []{return logic->IsAdult;}),
|
Entrance(RR_GF_LONG_ROOF, []{return logic->CanUse(RG_HOVER_BOOTS) /* || bunny hood jump */ || logic->IsAdult && ctx->GetTrickOption(RT_GF_JUMP);}),
|
||||||
|
Entrance(RR_GF_SLOPED_ROOF, []{return logic->IsAdult;}),
|
||||||
|
Entrance(RR_GF_NEAR_CHEST, []{return logic->CanUse(RG_LONGSHOT);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_ROOFTOP_SLOPED] = Region("GF Rooftop Sloped", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
areaTable[RR_GF_SLOPED_ROOF] = Region("GF Sloped Roof", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_ROOFTOP_TOP_OF_UPPER_VINES, []{return logic->IsAdult;}),
|
Entrance(RR_GF_TOP_OF_UPPER_VINES, []{return logic->IsAdult;}),
|
||||||
Entrance(RR_GF_ROOFTOP_TOP_OF_LOWER_VINES, []{return true;}),
|
Entrance(RR_GF_TOP_OF_LOWER_VINES, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_NEAR_GS, []{return true;}),
|
Entrance(RR_GF_NEAR_GS, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_BOTTOM_OF_LOWER_VINES, []{return true;}),
|
Entrance(RR_GF_BOTTOM_OF_LOWER_VINES, []{return true;}),
|
||||||
|
Entrance(RR_GF_TOP_OF_LOWER_VINES, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_ROOFTOP_TOP_OF_UPPER_VINES] = Region("GF Rooftop Top of Upper Vines", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
areaTable[RR_GF_TOP_OF_UPPER_VINES] = Region("GF Top of Upper Vines", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GF_GS_TOP_FLOOR, logic->IsAdult && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_SHORT_JUMPSLASH) /* && logic->CanClimb() (to get back up) */ && logic->CanGetNightTimeGS()),
|
//if RR_GF_SLOPED_ROOF > RR_GF_TOP_OF_UPPER_VINES is ever made part of RT_GF_JUMP, climb is needed to get back up
|
||||||
|
LOCATION(RC_GF_GS_TOP_FLOOR, logic->IsAdult && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_SHORT_JUMPSLASH) && logic->CanGetNightTimeGS()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_ROOFTOP_TOP_OF_LOWER_VINES, []{return true;}),
|
Entrance(RR_GF_TOP_OF_LOWER_VINES, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_BOTTOM_OF_UPPER_VINES, []{return true;}),
|
Entrance(RR_GF_BOTTOM_OF_UPPER_VINES, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_NEAR_GS, []{return true;}),
|
Entrance(RR_GF_NEAR_GS, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_BELOW_GS, []{return true;}),
|
Entrance(RR_GF_SLOPED_ROOF, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_SLOPED, []{return true;}),
|
Entrance(RR_GF_NEAR_CHEST, []{return logic->CanUse(RG_HOVER_BOOTS) || (logic->IsAdult && logic->CanUse(RG_SCARECROW) && logic->CanUse(RG_HOOKSHOT)) || logic->CanUse(RG_LONGSHOT);}),
|
||||||
Entrance(RR_GF_ROOFTOP_CHEST, []{return logic->CanUse(RG_HOVER_BOOTS) || (logic->IsAdult && logic->CanUse(RG_SCARECROW) && logic->CanUse(RG_HOOKSHOT)) || logic->CanUse(RG_LONGSHOT);}),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_ROOFTOP_CHEST] = Region("GF Rooftop Chest", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
areaTable[RR_GF_NEAR_CHEST] = Region("GF Near Chest", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GF_CHEST, true),
|
LOCATION(RC_GF_CHEST, true),
|
||||||
LOCATION(RC_GF_GS_TOP_FLOOR, logic->IsAdult && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_LONG_JUMPSLASH) && logic->CanGetNightTimeGS()),
|
LOCATION(RC_GF_GS_TOP_FLOOR, logic->IsAdult && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_LONG_JUMPSLASH) && logic->CanGetNightTimeGS()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_ROOFTOP_NEAR_GS, []{return true;}),
|
Entrance(RR_GF_NEAR_GS, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_BELOW_GS, []{return true;}),
|
Entrance(RR_GF_BELOW_GS, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_LIMEGREEN, []{return true;}),
|
Entrance(RR_GF_LONG_ROOF, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_YELLOW, []{return true;}),
|
Entrance(RR_GF_BELOW_CHEST, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
areaTable[RR_GF_TOP_LEDGE] = Region("GF Top of Fortress", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
areaTable[RR_GF_ABOVE_JAIL] = Region("GF Above Jail", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
// 1 crate
|
LOCATION(RC_GF_ABOVE_JAIL_CRATE, true),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_GROUND_RED, []{return logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD);}),
|
//you don't take fall damage if you land on the rock with the flag on for some reason
|
||||||
|
//there's a trick to reach RR_GF_LONG_ROOF but that's too intricate for GF_JUMP
|
||||||
|
Entrance(RR_GF_OUTSKIRTS, []{return ctx->GetTrickOption(RT_GF_JUMP).Get() != 0;}),
|
||||||
|
Entrance(RR_GF_BELOW_CHEST, []{return logic->TakeDamage();}),
|
||||||
|
Entrance(RR_GF_NEAR_CHEST, []{return logic->CanUse(RG_LONGSHOT);}),
|
||||||
|
Entrance(RR_GF_JAIL_WINDOW, []{return logic->CanUse(RG_HOOKSHOT);}),
|
||||||
|
});
|
||||||
|
|
||||||
|
areaTable[RR_GF_JAIL_WINDOW] = Region("GF Jail Window", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
||||||
|
//Exits
|
||||||
|
//There's a trick where hovers backwalk into backflip gives access to RR_GF_LONG_ROOF from here
|
||||||
|
Entrance(RR_GF_OUTSKIRTS, []{return true;}),
|
||||||
|
Entrance(RR_GF_BELOW_CHEST, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_HBA_RANGE] = Region("GF HBA Range", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
areaTable[RR_GF_HBA_RANGE] = Region("GF HBA Range", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GF_HBA_1000_POINTS, logic->IsAdult && logic->HasItem(RG_CHILD_WALLET) && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && logic->CanUse(RG_EPONA) && logic->CanUse(RG_FAIRY_BOW) && logic->AtDay),
|
LOCATION(RC_GF_HBA_1000_POINTS, logic->IsAdult && logic->HasItem(RG_CHILD_WALLET) && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && logic->CanUse(RG_EPONA) && logic->CanUse(RG_FAIRY_BOW) && logic->AtDay),
|
||||||
LOCATION(RC_GF_HBA_1500_POINTS, logic->IsAdult && logic->HasItem(RG_CHILD_WALLET) && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && logic->CanUse(RG_EPONA) && logic->CanUse(RG_FAIRY_BOW) && logic->AtDay),
|
LOCATION(RC_GF_HBA_1500_POINTS, logic->IsAdult && logic->HasItem(RG_CHILD_WALLET) && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && logic->CanUse(RG_EPONA) && logic->CanUse(RG_FAIRY_BOW) && logic->AtDay),
|
||||||
LOCATION(RC_GF_GS_ARCHERY_RANGE, logic->IsAdult && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_BOOMERANG) && logic->CanGetNightTimeGS()),
|
LOCATION(RC_GF_HBA_RANGE_GS, logic->IsAdult && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_BOOMERANG) && logic->CanGetNightTimeGS()),
|
||||||
|
LOCATION(RC_GF_HBA_RANGE_CRATE_1, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_HBA_RANGE_CRATE_2, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_HBA_RANGE_CRATE_3, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_HBA_RANGE_CRATE_4, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_HBA_RANGE_CRATE_5, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_HBA_RANGE_CRATE_6, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_HBA_RANGE_CRATE_7, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_HBA_CANOPY_EAST_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_HBA_CANOPY_WEST_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_NORTH_TARGET_EAST_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_NORTH_TARGET_WEST_CRATE, logic->IsAdult || (logic->BlastOrSmash() || logic->HookshotOrBoomerang() || logic->CanUse(RG_HOVER_BOOTS))),
|
||||||
|
//implies logic->CanBreakCrates()
|
||||||
|
LOCATION(RC_GF_NORTH_TARGET_CHILD_CRATE, logic->IsChild && logic->BlastOrSmash()),
|
||||||
|
LOCATION(RC_GF_SOUTH_TARGET_EAST_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_GF_SOUTH_TARGET_WEST_CRATE, logic->CanBreakCrates()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_GROUND_OUTSIDE_GTG, []{return logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD);}),
|
Entrance(RR_GF_OUTSIDE_GTG, []{return logic->IsChild || logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GF_OUTSIDE_GATE] = Region("GF Outside Gate", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
areaTable[RR_GF_OUTSIDE_GATE] = Region("GF Outside Gate", "Gerudo Fortress", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
||||||
|
@ -188,7 +223,7 @@ void RegionTable_Init_GerudoFortress() {
|
||||||
EventAccess(&logic->GF_GateOpen, []{return logic->IsAdult && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && (ctx->GetOption(RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD) || ctx->GetOption(RSK_SHUFFLE_OVERWORLD_ENTRANCES) /*|| ShuffleSpecialIndoorEntrances*/);}),
|
EventAccess(&logic->GF_GateOpen, []{return logic->IsAdult && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD) && (ctx->GetOption(RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD) || ctx->GetOption(RSK_SHUFFLE_OVERWORLD_ENTRANCES) /*|| ShuffleSpecialIndoorEntrances*/);}),
|
||||||
}, {}, {
|
}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_GROUND_BOTTOM, []{return (logic->IsAdult && (logic->CanUse(RG_HOOKSHOT) || !ctx->GetOption(RSK_SHUFFLE_OVERWORLD_ENTRANCES))) || logic->GF_GateOpen;}),
|
Entrance(RR_GF_OUTSKIRTS, []{return (logic->IsAdult && (logic->CanUse(RG_HOOKSHOT) || !ctx->GetOption(RSK_SHUFFLE_OVERWORLD_ENTRANCES))) || logic->GF_GateOpen;}),
|
||||||
Entrance(RR_WASTELAND_NEAR_FORTRESS, []{return true;}),
|
Entrance(RR_WASTELAND_NEAR_FORTRESS, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -207,6 +242,6 @@ void RegionTable_Init_GerudoFortress() {
|
||||||
LOCATION(RC_GF_FAIRY_GROTTO_FAIRY_8, true),
|
LOCATION(RC_GF_FAIRY_GROTTO_FAIRY_8, true),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_GROUND_NEAR_GROTTO, []{return true;}),
|
Entrance(RR_GF_NEAR_GROTTO, []{return true;}),
|
||||||
});
|
});
|
||||||
}
|
}
|
|
@ -17,7 +17,7 @@ void RegionTable_Init_GerudoValley() {
|
||||||
Entrance(RR_GV_UPPER_STREAM, []{return logic->IsChild || logic->HasItem(RG_BRONZE_SCALE) || logic->TakeDamage();}),
|
Entrance(RR_GV_UPPER_STREAM, []{return logic->IsChild || logic->HasItem(RG_BRONZE_SCALE) || logic->TakeDamage();}),
|
||||||
Entrance(RR_GV_CRATE_LEDGE, []{return logic->IsChild || logic->CanUse(RG_LONGSHOT);}),
|
Entrance(RR_GV_CRATE_LEDGE, []{return logic->IsChild || logic->CanUse(RG_LONGSHOT);}),
|
||||||
Entrance(RR_GV_GROTTO_LEDGE, []{return true;}),
|
Entrance(RR_GV_GROTTO_LEDGE, []{return true;}),
|
||||||
Entrance(RR_GV_FORTRESS_SIDE, []{return (logic->IsAdult && (logic->CanUse(RG_EPONA) || logic->CanUse(RG_LONGSHOT) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || logic->TH_RescuedAllCarpenters)) || (logic->IsChild && logic->CanUse(RG_HOOKSHOT));}),
|
Entrance(RR_GV_FORTRESS_SIDE, []{return (logic->IsAdult && (logic->CanUse(RG_EPONA) || logic->CanUse(RG_LONGSHOT) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || logic->THRescuedAllCarpenters)) || (logic->IsChild && logic->CanUse(RG_HOOKSHOT));}),
|
||||||
Entrance(RR_GV_LOWER_STREAM, []{return logic->IsChild;}), //can use cucco as child
|
Entrance(RR_GV_LOWER_STREAM, []{return logic->IsChild;}), //can use cucco as child
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -78,9 +78,9 @@ void RegionTable_Init_GerudoValley() {
|
||||||
LOCATION(RC_GV_CRATE_BRIDGE_4, logic->IsChild && logic->CanBreakCrates()),
|
LOCATION(RC_GV_CRATE_BRIDGE_4, logic->IsChild && logic->CanBreakCrates()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_GROUND_BOTTOM, []{return true;}),
|
Entrance(RR_GF_OUTSKIRTS, []{return true;}),
|
||||||
Entrance(RR_GV_UPPER_STREAM, []{return true;}),
|
Entrance(RR_GV_UPPER_STREAM, []{return true;}),
|
||||||
Entrance(RR_GERUDO_VALLEY, []{return logic->IsChild || logic->CanUse(RG_EPONA) || logic->CanUse(RG_LONGSHOT) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || logic->TH_RescuedAllCarpenters;}),
|
Entrance(RR_GERUDO_VALLEY, []{return logic->IsChild || logic->CanUse(RG_EPONA) || logic->CanUse(RG_LONGSHOT) || ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_FREE) || logic->THRescuedAllCarpenters;}),
|
||||||
Entrance(RR_GV_CARPENTER_TENT, []{return logic->IsAdult;}),
|
Entrance(RR_GV_CARPENTER_TENT, []{return logic->IsAdult;}),
|
||||||
Entrance(RR_GV_STORMS_GROTTO, []{return logic->IsAdult && logic->CanOpenStormsGrotto();}),
|
Entrance(RR_GV_STORMS_GROTTO, []{return logic->IsAdult && logic->CanOpenStormsGrotto();}),
|
||||||
Entrance(RR_GV_CRATE_LEDGE, []{return ctx->GetTrickOption(RT_DAMAGE_BOOST_SIMPLE) && logic->HasExplosives();}),
|
Entrance(RR_GV_CRATE_LEDGE, []{return ctx->GetTrickOption(RT_DAMAGE_BOOST_SIMPLE) && logic->HasExplosives();}),
|
||||||
|
|
|
@ -4,105 +4,136 @@
|
||||||
using namespace Rando;
|
using namespace Rando;
|
||||||
|
|
||||||
void RegionTable_Init_ThievesHideout() {
|
void RegionTable_Init_ThievesHideout() {
|
||||||
areaTable[RR_TH_NORTH_F1_CARPENTER_AREA] = Region("Thieves Hideout North F1 Carpenter Area", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
areaTable[RR_TH_1_TORCH_CELL] = Region("Thieves Hideout 1 Torch Cell", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->TH_CouldRescueF1NorthCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
EventAccess(&logic->THCouldFree1TorchCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
||||||
EventAccess(&logic->TH_RescuedAllCarpenters, []{return logic->SmallKeys(RR_GF_GROUND_BOTTOM, ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) ? 4 : 1) && logic->TH_CouldRescueF1NorthCarpenter && logic->TH_CouldRescueF1SouthCarpenter && logic->TH_CouldRescueF2NorthCarpenter && logic->TH_CouldRescueF2SouthCarpenter;}),
|
EventAccess(&logic->THRescuedAllCarpenters, []{return logic->SmallKeys(RR_GF_OUTSKIRTS, ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) ? 4 : 1) && logic->THCouldFree1TorchCarpenter && logic->THCouldFreeDoubleCellCarpenter && logic->TH_CouldFreeDeadEndCarpenter && logic->THCouldRescueSlopeCarpenter;}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_TH_NORTH_F1_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
LOCATION(RC_TH_1_TORCH_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
||||||
LOCATION(RC_TH_NORTH_F1_CARPENTER_POT_1, logic->CanBreakPots()),
|
LOCATION(RC_TH_1_TORCH_CELL_RIGHT_POT, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_NORTH_F1_CARPENTER_POT_2, logic->CanBreakPots()),
|
LOCATION(RC_TH_1_TORCH_CELL_MID_POT, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_NORTH_F1_CARPENTER_POT_3, logic->CanBreakPots()),
|
LOCATION(RC_TH_1_TORCH_CELL_LEFT_POT, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_GERUDO_MEMBERSHIP_CARD, logic->TH_RescuedAllCarpenters),
|
LOCATION(RC_TH_1_TORCH_CELL_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_TH_FREED_CARPENTERS, logic->THRescuedAllCarpenters),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_GROUND_RED, []{return true;}),
|
Entrance(RR_GF_OUTSKIRTS, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_NEAR_GROTTO, []{return true;}),
|
Entrance(RR_GF_NEAR_GROTTO, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_TH_SOUTH_F1_CARPENTER_AREA] = Region("Thieves Hideout South F1 Carpenter Area", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
areaTable[RR_TH_DOUBLE_CELL] = Region("Thieves Hideout Double Cell", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->TH_CouldRescueF1SouthCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
EventAccess(&logic->THCouldFreeDoubleCellCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
||||||
EventAccess(&logic->TH_RescuedAllCarpenters, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && logic->SmallKeys(RR_GF_GROUND_BOTTOM, 4) && logic->TH_CouldRescueF1NorthCarpenter && logic->TH_CouldRescueF1SouthCarpenter && logic->TH_CouldRescueF2NorthCarpenter && logic->TH_CouldRescueF2SouthCarpenter;}),
|
EventAccess(&logic->THRescuedAllCarpenters, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && logic->SmallKeys(RR_GF_OUTSKIRTS, 4) && logic->THCouldFree1TorchCarpenter && logic->THCouldFreeDoubleCellCarpenter && logic->TH_CouldFreeDeadEndCarpenter && logic->THCouldRescueSlopeCarpenter;}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_TH_SOUTH_F1_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
LOCATION(RC_TH_DOUBLE_CELL_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
||||||
LOCATION(RC_TH_SOUTH_F1_CARPENTER_POT_1, logic->CanBreakPots()),
|
LOCATION(RC_TH_NEAR_DOUBLE_CELL_RIGHT_POT, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_SOUTH_F1_CARPENTER_POT_2, logic->CanBreakPots()),
|
LOCATION(RC_TH_NEAR_DOUBLE_CELL_MID_POT, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_SOUTH_F1_CARPENTER_POT_3, logic->CanBreakPots()),
|
LOCATION(RC_TH_NEAR_DOUBLE_CELL_LEFT_POT, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_1, logic->CanBreakPots()),
|
LOCATION(RC_TH_RIGHTMOST_JAILED_POT, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_2, logic->CanBreakPots()),
|
LOCATION(RC_TH_RIGHT_MIDDLE_JAILED_POT, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_3, logic->CanBreakPots()),
|
LOCATION(RC_TH_LEFT_MIDDLE_JAILED_POT, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_SOUTH_F1_CARPENTER_CELL_POT_4, logic->CanBreakPots()),
|
LOCATION(RC_TH_LEFTMOST_JAILED_POT, logic->CanBreakPots()),
|
||||||
LOCATION(RC_TH_GERUDO_MEMBERSHIP_CARD, logic->TH_RescuedAllCarpenters),
|
LOCATION(RC_TH_DOUBLE_CELL_LEFT_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_TH_DOUBLE_CELL_RIGHT_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_TH_FREED_CARPENTERS, logic->THRescuedAllCarpenters),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_GROUND_RED, []{return true;}),
|
Entrance(RR_GF_OUTSKIRTS, []{return true;}),
|
||||||
Entrance(RR_GF_GROUND_NEAR_GROTTO, []{return true;}),
|
Entrance(RR_GF_NEAR_GROTTO, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_TH_NORTH_F2_CARPENTER_AREA] = Region("Thieves Hideout North F2 Carpenter Area", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
areaTable[RR_TH_DEAD_END_CELL] = Region("Thieves Hideout Dead End Cell", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->TH_CouldRescueF2NorthCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
EventAccess(&logic->TH_CouldFreeDeadEndCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
||||||
EventAccess(&logic->TH_RescuedAllCarpenters, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && logic->SmallKeys(RR_GF_GROUND_BOTTOM, 4) && logic->TH_CouldRescueF1NorthCarpenter && logic->TH_CouldRescueF1SouthCarpenter && logic->TH_CouldRescueF2NorthCarpenter && logic->TH_CouldRescueF2SouthCarpenter;}),
|
EventAccess(&logic->THRescuedAllCarpenters, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && logic->SmallKeys(RR_GF_OUTSKIRTS, 4) && logic->THCouldFree1TorchCarpenter && logic->THCouldFreeDoubleCellCarpenter && logic->TH_CouldFreeDeadEndCarpenter && logic->THCouldRescueSlopeCarpenter;}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_TH_NORTH_F2_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
LOCATION(RC_TH_DEAD_END_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
||||||
LOCATION(RC_TH_NORTH_F2_CARPENTER_POT_1, logic->CanBreakPots()),
|
LOCATION(RC_TH_DEAD_END_CELL_CRATE, logic->CanBreakCrates()),
|
||||||
LOCATION(RC_TH_NORTH_F2_CARPENTER_POT_2, logic->CanBreakPots()),
|
LOCATION(RC_TH_FREED_CARPENTERS, logic->THRescuedAllCarpenters),
|
||||||
LOCATION(RC_TH_GERUDO_MEMBERSHIP_CARD, logic->TH_RescuedAllCarpenters),
|
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_ROOFTOP_BELOW_GS, []{return true;}),
|
Entrance(RR_GF_BELOW_GS, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_TH_SOUTH_F2_CARPENTER_AREA] = Region("Thieves Hideout South F2 Carpenter Area", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
areaTable[RR_TH_STEEP_SLOPE_CELL] = Region("Thieves Hideout Steep Slope Cell", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->TH_CouldRescueF2SouthCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
EventAccess(&logic->THCouldRescueSlopeCarpenter, []{return logic->CanKillEnemy(RE_GERUDO_WARRIOR);}),
|
||||||
EventAccess(&logic->TH_RescuedAllCarpenters, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && logic->SmallKeys(RR_GF_GROUND_BOTTOM, 4) && logic->TH_CouldRescueF1NorthCarpenter && logic->TH_CouldRescueF1SouthCarpenter && logic->TH_CouldRescueF2NorthCarpenter && logic->TH_CouldRescueF2SouthCarpenter;}),
|
EventAccess(&logic->THRescuedAllCarpenters, []{return ctx->GetOption(RSK_GERUDO_FORTRESS).Is(RO_GF_CARPENTERS_NORMAL) && logic->SmallKeys(RR_GF_OUTSKIRTS, 4) && logic->THCouldFree1TorchCarpenter && logic->THCouldFreeDoubleCellCarpenter && logic->TH_CouldFreeDeadEndCarpenter && logic->THCouldRescueSlopeCarpenter;}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_TH_SOUTH_F2_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
LOCATION(RC_TH_STEEP_SLOPE_CARPENTER, logic->CanKillEnemy(RE_GERUDO_WARRIOR)),
|
||||||
LOCATION(RC_TH_GERUDO_MEMBERSHIP_CARD, logic->TH_RescuedAllCarpenters),
|
LOCATION(RC_TH_STEEP_SLOPE_RIGHT_POT, logic->CanBreakPots()),
|
||||||
|
LOCATION(RC_TH_STEEP_SLOPE_LEFT_POT, logic->CanBreakPots()),
|
||||||
|
LOCATION(RC_TH_FREED_CARPENTERS, logic->THRescuedAllCarpenters),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_ROOFTOP_ABOVE_GTG, []{return true;}),
|
Entrance(RR_GF_ABOVE_GTG, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_TOP_OF_LOWER_VINES, []{return true;}),
|
Entrance(RR_GF_TOP_OF_LOWER_VINES, []{return true;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_TH_KITCHEN_BOTTOM] = Region("Thieves Hideout Kitchen Bottom", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
areaTable[RR_TH_KITCHEN_CORRIDOR] = Region("Thieves Hideout Kitchen Corridor", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||||
|
//Locations
|
||||||
|
LOCATION(RC_TH_NEAR_KITCHEN_LEFTMOST_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_TH_NEAR_KITCHEN_MID_LEFT_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_TH_NEAR_KITCHEN_MID_RIGHT_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_TH_NEAR_KITCHEN_RIGHTMOST_CRATE, logic->CanBreakCrates()),
|
||||||
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_GROUND_NEAR_GROTTO, []{return true;}),
|
Entrance(RR_GF_NEAR_GROTTO, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_ABOVE_GTG, []{return true;}),
|
Entrance(RR_GF_ABOVE_GTG, []{return true;}),
|
||||||
Entrance(RR_TH_KITCHEN_MAIN, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || ctx->GetTrickOption(RT_TH_KITCHEN);}),
|
Entrance(RR_TH_KITCHEN_MAIN, []{return logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_TH_KITCHEN_MAIN] = Region("Thieves Hideout Kitchen Bottom", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
areaTable[RR_TH_KITCHEN_MAIN] = Region("Thieves Hideout Kitchen Bottom", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_TH_KITCHEN_POT_1, logic->CanBreakPots() && logic->CanPassEnemy(RE_GERUDO_GUARD)),
|
LOCATION(RC_TH_KITCHEN_POT_1, logic->CanBreakPots() && logic->CanPassEnemy(RE_GERUDO_GUARD)),
|
||||||
LOCATION(RC_TH_KITCHEN_POT_2, logic->CanBreakPots() && logic->CanPassEnemy(RE_GERUDO_GUARD)),
|
LOCATION(RC_TH_KITCHEN_POT_2, logic->CanBreakPots() && logic->CanPassEnemy(RE_GERUDO_GUARD)),
|
||||||
|
LOCATION(RC_TH_KITCHEN_CRATE, logic->CanBreakCrates() && logic->CanPassEnemy(RE_GERUDO_GUARD)),
|
||||||
LOCATION(RC_TH_KITCHEN_SUN_FAIRY, logic->CanPassEnemy(RE_GERUDO_GUARD) && logic->CanUse(RG_SUNS_SONG)),
|
LOCATION(RC_TH_KITCHEN_SUN_FAIRY, logic->CanPassEnemy(RE_GERUDO_GUARD) && logic->CanUse(RG_SUNS_SONG)),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_TH_KITCHEN_BOTTOM, []{return logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
Entrance(RR_TH_KITCHEN_CORRIDOR, []{return logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
||||||
Entrance(RR_TH_KITCHEN_TOP, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || ctx->GetTrickOption(RT_TH_KITCHEN);}),
|
Entrance(RR_TH_KITCHEN_TOP, []{return logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_TH_KITCHEN_TOP] = Region("Thieves Hideout Kitchen Top", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
areaTable[RR_TH_KITCHEN_TOP] = Region("Thieves Hideout Kitchen Top", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||||
|
//Locations
|
||||||
|
LOCATION(RC_TH_KITCHEN_POT_1, logic->CanUse(RG_BOOMERANG)),
|
||||||
|
LOCATION(RC_TH_KITCHEN_POT_2, logic->CanUse(RG_BOOMERANG)),
|
||||||
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_TH_KITCHEN_MAIN, []{return true;}),
|
Entrance(RR_TH_KITCHEN_MAIN, []{return true;}),
|
||||||
Entrance(RR_GF_ROOFTOP_NEAR_GS, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || logic->CanUse(RG_HOVER_BOOTS) || ctx->GetTrickOption(RT_TH_KITCHEN);}),
|
//hookshot to cross using the rafters is implied in logic->CanPassEnemy(RE_GERUDO_GUARD)
|
||||||
Entrance(RR_GF_ROOFTOP_TOP_OF_LOWER_VINES, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || logic->CanUse(RG_HOVER_BOOTS) || ctx->GetTrickOption(RT_TH_KITCHEN);}),
|
Entrance(RR_GF_NEAR_GS, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || logic->CanUse(RG_HOVER_BOOTS);}),
|
||||||
|
Entrance(RR_GF_TOP_OF_LOWER_VINES, []{return logic->CanPassEnemy(RE_GERUDO_GUARD) || logic->CanUse(RG_HOVER_BOOTS);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_TH_BREAK_ROOM] = Region("Thieves Hideout Break Room", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
areaTable[RR_TH_BREAK_ROOM] = Region("Thieves Hideout Break Room", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_TH_BREAK_ROOM_POT_1, logic->CanBreakPots()),
|
LOCATION(RC_TH_BREAK_ROOM_FRONT_POT, (logic->CanPassEnemy(RE_BREAK_ROOM_GUARD) && logic->CanBreakPots()) ||
|
||||||
LOCATION(RC_TH_BREAK_ROOM_POT_2, logic->CanBreakPots()),
|
(logic->CanPassEnemy(RE_GERUDO_GUARD) && logic->CanUse(RG_BOOMERANG))),
|
||||||
|
LOCATION(RC_TH_BREAK_ROOM_BACK_POT, (logic->CanPassEnemy(RE_BREAK_ROOM_GUARD) && logic->CanBreakPots()) ||
|
||||||
|
(logic->CanPassEnemy(RE_GERUDO_GUARD) && logic->CanUse(RG_BOOMERANG))),
|
||||||
|
LOCATION(RC_TH_BREAK_HALLWAY_OUTER_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_TH_BREAK_HALLWAY_INNER_CRATE, logic->CanBreakCrates()),
|
||||||
|
LOCATION(RC_TH_BREAK_ROOM_RIGHT_CRATE, (logic->CanPassEnemy(RE_BREAK_ROOM_GUARD) && logic->CanBreakCrates()) ||
|
||||||
|
(logic->CanPassEnemy(RE_GERUDO_GUARD) && logic->HasExplosives() && logic->CanUse(RG_BOOMERANG))),
|
||||||
|
LOCATION(RC_TH_BREAK_ROOM_LEFT_CRATE, (logic->CanPassEnemy(RE_BREAK_ROOM_GUARD) && logic->CanBreakCrates()) ||
|
||||||
|
(logic->CanPassEnemy(RE_GERUDO_GUARD) && logic->HasExplosives() && logic->CanUse(RG_BOOMERANG))),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GF_ROOFTOP_YELLOW, []{return true;}),
|
Entrance(RR_GF_BELOW_CHEST, []{return logic->CanPassEnemy(RE_GERUDO_GUARD);}),
|
||||||
Entrance(RR_GF_TOP_LEDGE, []{return true;}),
|
//Implies logic->CanPassEnemy(RE_GERUDO_GUARD)
|
||||||
|
Entrance(RR_TH_BREAK_ROOM_CORRIDOR, []{return logic->CanUse(RG_HOOKSHOT);}),
|
||||||
|
});
|
||||||
|
|
||||||
|
areaTable[RR_TH_BREAK_ROOM_CORRIDOR] = Region("Thieves Hideout Break Room", "Thieves Hideout", {RA_GERUDO_FORTRESS}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
||||||
|
//Exits
|
||||||
|
Entrance(RR_TH_BREAK_ROOM, []{return logic->CanUse(RG_HOOKSHOT);}),
|
||||||
|
Entrance(RR_GF_ABOVE_JAIL, []{return true;}),
|
||||||
});
|
});
|
||||||
}
|
}
|
|
@ -174,11 +174,11 @@ void Rando::StaticData::InitLocationTable() {
|
||||||
locationTable[RC_GF_HBA_1000_POINTS] = Location::Base(RC_GF_HBA_1000_POINTS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_GERUDOS_FORTRESS, 0x00, "HBA 1000 Points", RHT_GF_HBA_1000_POINTS, RG_PIECE_OF_HEART, SpoilerCollectionCheck::InfTable(INFTABLE_190), true);
|
locationTable[RC_GF_HBA_1000_POINTS] = Location::Base(RC_GF_HBA_1000_POINTS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_GERUDOS_FORTRESS, 0x00, "HBA 1000 Points", RHT_GF_HBA_1000_POINTS, RG_PIECE_OF_HEART, SpoilerCollectionCheck::InfTable(INFTABLE_190), true);
|
||||||
locationTable[RC_GF_HBA_1500_POINTS] = Location::Base(RC_GF_HBA_1500_POINTS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_GERUDOS_FORTRESS, 0x00, "HBA 1500 Points", RHT_GF_HBA_1500_POINTS, RG_PROGRESSIVE_BOW, SpoilerCollectionCheck::ItemGetInf(15), true);
|
locationTable[RC_GF_HBA_1500_POINTS] = Location::Base(RC_GF_HBA_1500_POINTS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_GERUDOS_FORTRESS, 0x00, "HBA 1500 Points", RHT_GF_HBA_1500_POINTS, RG_PROGRESSIVE_BOW, SpoilerCollectionCheck::ItemGetInf(15), true);
|
||||||
// Thieves Hideout
|
// Thieves Hideout
|
||||||
locationTable[RC_TH_GERUDO_MEMBERSHIP_CARD] = Location::Base(RC_TH_GERUDO_MEMBERSHIP_CARD, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_THIEVES_HIDEOUT, 0x00, "Gerudo Membership Card", RHT_GF_GERUDO_MEMBERSHIP_CARD, RG_GERUDO_MEMBERSHIP_CARD, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_ITEM_FROM_LEADER_OF_FORTRESS), true);
|
locationTable[RC_TH_FREED_CARPENTERS] = Location::Base(RC_TH_FREED_CARPENTERS, RCQUEST_BOTH, RCTYPE_STANDARD, ACTOR_ID_MAX, SCENE_THIEVES_HIDEOUT, 0x00, "Gerudo Membership Card", RHT_GF_GERUDO_MEMBERSHIP_CARD, RG_GERUDO_MEMBERSHIP_CARD, SpoilerCollectionCheck::RandomizerInf(RAND_INF_TH_ITEM_FROM_LEADER_OF_FORTRESS), true);
|
||||||
locationTable[RC_TH_NORTH_F1_CARPENTER] = Location::Collectable(RC_TH_NORTH_F1_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3089, 0x0C, "North F1 Carpenter", RHT_GF_NORTH_F1_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true);
|
locationTable[RC_TH_1_TORCH_CARPENTER] = Location::Collectable(RC_TH_1_TORCH_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3089, 0x0C, "North F1 Carpenter", RHT_GF_NORTH_F1_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true);
|
||||||
locationTable[RC_TH_NORTH_F2_CARPENTER] = Location::Collectable(RC_TH_NORTH_F2_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 2577, 0x0A, "North F2 Carpenter", RHT_GF_NORTH_F2_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true);
|
locationTable[RC_TH_DEAD_END_CARPENTER] = Location::Collectable(RC_TH_DEAD_END_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 2577, 0x0A, "North F2 Carpenter", RHT_GF_NORTH_F2_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true);
|
||||||
locationTable[RC_TH_SOUTH_F1_CARPENTER] = Location::Collectable(RC_TH_SOUTH_F1_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3601, 0x0E, "South F1 Carpenter", RHT_GF_SOUTH_F1_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true);
|
locationTable[RC_TH_DOUBLE_CELL_CARPENTER] = Location::Collectable(RC_TH_DOUBLE_CELL_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3601, 0x0E, "South F1 Carpenter", RHT_GF_SOUTH_F1_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true);
|
||||||
locationTable[RC_TH_SOUTH_F2_CARPENTER] = Location::Collectable(RC_TH_SOUTH_F2_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3857, 0x0F, "South F2 Carpenter", RHT_GF_SOUTH_F2_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true);
|
locationTable[RC_TH_STEEP_SLOPE_CARPENTER] = Location::Collectable(RC_TH_STEEP_SLOPE_CARPENTER, RCQUEST_BOTH, RCTYPE_GF_KEY, ACTOR_EN_ITEM00, SCENE_THIEVES_HIDEOUT, 3857, 0x0F, "South F2 Carpenter", RHT_GF_SOUTH_F2_CARPENTER, RG_GERUDO_FORTRESS_SMALL_KEY, true);
|
||||||
// Haunted Wasteland
|
// Haunted Wasteland
|
||||||
locationTable[RC_WASTELAND_CHEST] = Location::Chest(RC_WASTELAND_CHEST, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_WASTELAND, ACTOR_EN_BOX, SCENE_HAUNTED_WASTELAND, -30048, 0x00, "Chest", RHT_WASTELAND_CHEST, RG_PURPLE_RUPEE);
|
locationTable[RC_WASTELAND_CHEST] = Location::Chest(RC_WASTELAND_CHEST, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_WASTELAND, ACTOR_EN_BOX, SCENE_HAUNTED_WASTELAND, -30048, 0x00, "Chest", RHT_WASTELAND_CHEST, RG_PURPLE_RUPEE);
|
||||||
locationTable[RC_WASTELAND_BOMBCHU_SALESMAN] = Location::Base(RC_WASTELAND_BOMBCHU_SALESMAN, RCQUEST_BOTH, RCTYPE_MERCHANT, RCAREA_WASTELAND, ACTOR_ID_MAX, SCENE_HAUNTED_WASTELAND, 0x00, "Carpet Salesman", RHT_WASTELAND_BOMBCHU_SALESMAN, RG_BUY_BOMBCHUS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MERCHANTS_CARPET_SALESMAN), false, 200);
|
locationTable[RC_WASTELAND_BOMBCHU_SALESMAN] = Location::Base(RC_WASTELAND_BOMBCHU_SALESMAN, RCQUEST_BOTH, RCTYPE_MERCHANT, RCAREA_WASTELAND, ACTOR_ID_MAX, SCENE_HAUNTED_WASTELAND, 0x00, "Carpet Salesman", RHT_WASTELAND_BOMBCHU_SALESMAN, RG_BUY_BOMBCHUS_10, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MERCHANTS_CARPET_SALESMAN), false, 200);
|
||||||
|
@ -748,7 +748,7 @@ void Rando::StaticData::InitLocationTable() {
|
||||||
locationTable[RC_GV_GS_PILLAR] = Location::GSToken(RC_GV_GS_PILLAR, RCQUEST_BOTH, SCENE_GERUDO_VALLEY, 21252, 0x04, "GS Pillar", RHT_GV_GS_PILLAR, 0x13);
|
locationTable[RC_GV_GS_PILLAR] = Location::GSToken(RC_GV_GS_PILLAR, RCQUEST_BOTH, SCENE_GERUDO_VALLEY, 21252, 0x04, "GS Pillar", RHT_GV_GS_PILLAR, 0x13);
|
||||||
locationTable[RC_GV_GS_BEHIND_TENT] = Location::GSToken(RC_GV_GS_BEHIND_TENT, RCQUEST_BOTH, SCENE_GERUDO_VALLEY, 21256, 0x08, "GS Behind Tent", RHT_GV_GS_BEHIND_TENT, 0x13);
|
locationTable[RC_GV_GS_BEHIND_TENT] = Location::GSToken(RC_GV_GS_BEHIND_TENT, RCQUEST_BOTH, SCENE_GERUDO_VALLEY, 21256, 0x08, "GS Behind Tent", RHT_GV_GS_BEHIND_TENT, 0x13);
|
||||||
// Gerudo Fortress
|
// Gerudo Fortress
|
||||||
locationTable[RC_GF_GS_ARCHERY_RANGE] = Location::GSToken(RC_GF_GS_ARCHERY_RANGE, RCQUEST_BOTH, SCENE_GERUDOS_FORTRESS, 21505, 0x01, "GS Archery Range", RHT_GF_GS_ARCHERY_RANGE, 0x14);
|
locationTable[RC_GF_HBA_RANGE_GS] = Location::GSToken(RC_GF_HBA_RANGE_GS, RCQUEST_BOTH, SCENE_GERUDOS_FORTRESS, 21505, 0x01, "GS Archery Range", RHT_GF_GS_ARCHERY_RANGE, 0x14);
|
||||||
locationTable[RC_GF_GS_TOP_FLOOR] = Location::GSToken(RC_GF_GS_TOP_FLOOR, RCQUEST_BOTH, SCENE_GERUDOS_FORTRESS, 21506, 0x02, "GS Top Floor", RHT_GF_GS_TOP_FLOOR, 0x14);
|
locationTable[RC_GF_GS_TOP_FLOOR] = Location::GSToken(RC_GF_GS_TOP_FLOOR, RCQUEST_BOTH, SCENE_GERUDOS_FORTRESS, 21506, 0x02, "GS Top Floor", RHT_GF_GS_TOP_FLOOR, 0x14);
|
||||||
// Wasteland & Desert Colossus
|
// Wasteland & Desert Colossus
|
||||||
locationTable[RC_WASTELAND_GS] = Location::GSToken(RC_WASTELAND_GS, RCQUEST_BOTH, SCENE_HAUNTED_WASTELAND, 13570, 0x02, "GS", RHT_WASTELAND_GS, 0x15);
|
locationTable[RC_WASTELAND_GS] = Location::GSToken(RC_WASTELAND_GS, RCQUEST_BOTH, SCENE_HAUNTED_WASTELAND, 13570, 0x02, "GS", RHT_WASTELAND_GS, 0x15);
|
||||||
|
|
|
@ -487,6 +487,7 @@ bool Logic::CanKillEnemy(RandomizerEnemy enemy, EnemyDistance distance, bool wal
|
||||||
bool killed = false;
|
bool killed = false;
|
||||||
switch (enemy) {
|
switch (enemy) {
|
||||||
case RE_GERUDO_GUARD:
|
case RE_GERUDO_GUARD:
|
||||||
|
case RE_BREAK_ROOM_GUARD:
|
||||||
return false;
|
return false;
|
||||||
case RE_GOLD_SKULLTULA:
|
case RE_GOLD_SKULLTULA:
|
||||||
switch (distance) {
|
switch (distance) {
|
||||||
|
@ -845,6 +846,8 @@ bool Logic::CanPassEnemy(RandomizerEnemy enemy, EnemyDistance distance, bool wal
|
||||||
case RE_OCTOROK:
|
case RE_OCTOROK:
|
||||||
return true;
|
return true;
|
||||||
case RE_GERUDO_GUARD:
|
case RE_GERUDO_GUARD:
|
||||||
|
return ctx->GetTrickOption(RT_PASS_GUARDS_WITH_NOTHING) || HasItem(RG_GERUDO_MEMBERSHIP_CARD) || CanUse(RG_FAIRY_BOW) || CanUse(RG_HOOKSHOT);
|
||||||
|
case RE_BREAK_ROOM_GUARD:
|
||||||
return HasItem(RG_GERUDO_MEMBERSHIP_CARD) || CanUse(RG_FAIRY_BOW) || CanUse(RG_HOOKSHOT);
|
return HasItem(RG_GERUDO_MEMBERSHIP_CARD) || CanUse(RG_FAIRY_BOW) || CanUse(RG_HOOKSHOT);
|
||||||
case RE_BIG_SKULLTULA:
|
case RE_BIG_SKULLTULA:
|
||||||
// hammer jumpslash can pass, but only on flat land where you can kill with hammer swing
|
// hammer jumpslash can pass, but only on flat land where you can kill with hammer swing
|
||||||
|
@ -854,6 +857,7 @@ bool Logic::CanPassEnemy(RandomizerEnemy enemy, EnemyDistance distance, bool wal
|
||||||
case RE_GIBDO:
|
case RE_GIBDO:
|
||||||
case RE_REDEAD:
|
case RE_REDEAD:
|
||||||
// we need a way to check if suns won't force a reload
|
// we need a way to check if suns won't force a reload
|
||||||
|
// RANDOTODO: check if stealthing past these guys works everywhere
|
||||||
return CanUse(RG_HOOKSHOT) || CanUse(RG_SUNS_SONG);
|
return CanUse(RG_HOOKSHOT) || CanUse(RG_SUNS_SONG);
|
||||||
case RE_IRON_KNUCKLE:
|
case RE_IRON_KNUCKLE:
|
||||||
case RE_BIG_OCTO:
|
case RE_BIG_OCTO:
|
||||||
|
@ -1435,7 +1439,7 @@ bool Logic::SmallKeys(RandomizerRegion dungeon, uint8_t requiredAmountGlitchless
|
||||||
}*/
|
}*/
|
||||||
return GetSmallKeyCount(SCENE_TREASURE_BOX_SHOP) >= requiredAmountGlitchless;
|
return GetSmallKeyCount(SCENE_TREASURE_BOX_SHOP) >= requiredAmountGlitchless;
|
||||||
|
|
||||||
case RR_GF_GROUND_BOTTOM:
|
case RR_GF_OUTSKIRTS:
|
||||||
return GetSmallKeyCount(SCENE_THIEVES_HIDEOUT) >= requiredAmountGlitchless;
|
return GetSmallKeyCount(SCENE_THIEVES_HIDEOUT) >= requiredAmountGlitchless;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -2459,10 +2463,10 @@ void Logic::Reset() {
|
||||||
|
|
||||||
//Events
|
//Events
|
||||||
ShowedMidoSwordAndShield = false;
|
ShowedMidoSwordAndShield = false;
|
||||||
TH_CouldRescueF1NorthCarpenter = false;
|
THCouldFree1TorchCarpenter = false;
|
||||||
TH_CouldRescueF1SouthCarpenter = false;
|
THCouldFreeDoubleCellCarpenter = false;
|
||||||
TH_CouldRescueF2NorthCarpenter = false;
|
TH_CouldFreeDeadEndCarpenter = false;
|
||||||
TH_CouldRescueF2SouthCarpenter = false;
|
THCouldRescueSlopeCarpenter = false;
|
||||||
GF_GateOpen = false;
|
GF_GateOpen = false;
|
||||||
GtG_GateOpen = false;
|
GtG_GateOpen = false;
|
||||||
DampesWindmillAccess = false;
|
DampesWindmillAccess = false;
|
||||||
|
|
|
@ -116,11 +116,11 @@ class Logic {
|
||||||
|
|
||||||
// Events
|
// Events
|
||||||
bool ShowedMidoSwordAndShield = false;
|
bool ShowedMidoSwordAndShield = false;
|
||||||
bool TH_CouldRescueF1NorthCarpenter = false;
|
bool THCouldFree1TorchCarpenter = false;
|
||||||
bool TH_CouldRescueF1SouthCarpenter = false;
|
bool THCouldFreeDoubleCellCarpenter = false;
|
||||||
bool TH_CouldRescueF2NorthCarpenter = false;
|
bool TH_CouldFreeDeadEndCarpenter = false;
|
||||||
bool TH_CouldRescueF2SouthCarpenter = false;
|
bool THCouldRescueSlopeCarpenter = false;
|
||||||
bool TH_RescuedAllCarpenters = false;
|
bool THRescuedAllCarpenters = false;
|
||||||
bool GF_GateOpen = false;
|
bool GF_GateOpen = false;
|
||||||
bool GtG_GateOpen = false;
|
bool GtG_GateOpen = false;
|
||||||
bool DampesWindmillAccess = false;
|
bool DampesWindmillAccess = false;
|
||||||
|
|
|
@ -1564,22 +1564,22 @@ std::map<RandomizerCheck, RandomizerInf> rcToRandomizerInf = {
|
||||||
{ RC_KF_TWINS_HOUSE_POT_2, RAND_INF_KF_TWINS_HOUSE_POT_2 },
|
{ RC_KF_TWINS_HOUSE_POT_2, RAND_INF_KF_TWINS_HOUSE_POT_2 },
|
||||||
{ RC_KF_BROTHERS_HOUSE_POT_1, RAND_INF_KF_BROTHERS_HOUSE_POT_1 },
|
{ RC_KF_BROTHERS_HOUSE_POT_1, RAND_INF_KF_BROTHERS_HOUSE_POT_1 },
|
||||||
{ RC_KF_BROTHERS_HOUSE_POT_2, RAND_INF_KF_BROTHERS_HOUSE_POT_2 },
|
{ RC_KF_BROTHERS_HOUSE_POT_2, RAND_INF_KF_BROTHERS_HOUSE_POT_2 },
|
||||||
{ RC_TH_BREAK_ROOM_POT_1, RAND_INF_TH_BREAK_ROOM_POT_1 },
|
{ RC_TH_BREAK_ROOM_FRONT_POT, RAND_INF_TH_BREAK_ROOM_POT_1 },
|
||||||
{ RC_TH_BREAK_ROOM_POT_2, RAND_INF_TH_BREAK_ROOM_POT_2 },
|
{ RC_TH_BREAK_ROOM_BACK_POT, RAND_INF_TH_BREAK_ROOM_POT_2 },
|
||||||
{ RC_TH_KITCHEN_POT_1, RAND_INF_TH_KITCHEN_POT_1 },
|
{ RC_TH_KITCHEN_POT_1, RAND_INF_TH_KITCHEN_POT_1 },
|
||||||
{ RC_TH_KITCHEN_POT_2, RAND_INF_TH_KITCHEN_POT_2 },
|
{ RC_TH_KITCHEN_POT_2, RAND_INF_TH_KITCHEN_POT_2 },
|
||||||
{ RC_TH_NORTH_F1_CARPENTER_POT_1, RAND_INF_TH_NORTH_F1_CARPENTER_POT_1 },
|
{ RC_TH_1_TORCH_CELL_RIGHT_POT, RAND_INF_TH_NORTH_F1_CARPENTER_POT_1 },
|
||||||
{ RC_TH_NORTH_F1_CARPENTER_POT_2, RAND_INF_TH_NORTH_F1_CARPENTER_POT_2 },
|
{ RC_TH_1_TORCH_CELL_MID_POT, RAND_INF_TH_NORTH_F1_CARPENTER_POT_2 },
|
||||||
{ RC_TH_NORTH_F1_CARPENTER_POT_3, RAND_INF_TH_NORTH_F1_CARPENTER_POT_3 },
|
{ RC_TH_1_TORCH_CELL_LEFT_POT, RAND_INF_TH_NORTH_F1_CARPENTER_POT_3 },
|
||||||
{ RC_TH_NORTH_F2_CARPENTER_POT_1, RAND_INF_TH_NORTH_F2_CARPENTER_POT_1 },
|
{ RC_TH_STEEP_SLOPE_RIGHT_POT, RAND_INF_TH_NORTH_F2_CARPENTER_POT_1 },
|
||||||
{ RC_TH_NORTH_F2_CARPENTER_POT_2, RAND_INF_TH_NORTH_F2_CARPENTER_POT_2 },
|
{ RC_TH_STEEP_SLOPE_LEFT_POT, RAND_INF_TH_NORTH_F2_CARPENTER_POT_2 },
|
||||||
{ RC_TH_SOUTH_F1_CARPENTER_POT_1, RAND_INF_TH_SOUTH_F1_CARPENTER_POT_1 },
|
{ RC_TH_NEAR_DOUBLE_CELL_RIGHT_POT, RAND_INF_TH_SOUTH_F1_CARPENTER_POT_1 },
|
||||||
{ RC_TH_SOUTH_F1_CARPENTER_POT_2, RAND_INF_TH_SOUTH_F1_CARPENTER_POT_2 },
|
{ RC_TH_NEAR_DOUBLE_CELL_MID_POT, RAND_INF_TH_SOUTH_F1_CARPENTER_POT_2 },
|
||||||
{ RC_TH_SOUTH_F1_CARPENTER_POT_3, RAND_INF_TH_SOUTH_F1_CARPENTER_POT_3 },
|
{ RC_TH_NEAR_DOUBLE_CELL_LEFT_POT, RAND_INF_TH_SOUTH_F1_CARPENTER_POT_3 },
|
||||||
{ RC_TH_SOUTH_F1_CARPENTER_CELL_POT_1, RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_1 },
|
{ RC_TH_RIGHTMOST_JAILED_POT, RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_1 },
|
||||||
{ RC_TH_SOUTH_F1_CARPENTER_CELL_POT_2, RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_2 },
|
{ RC_TH_RIGHT_MIDDLE_JAILED_POT, RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_2 },
|
||||||
{ RC_TH_SOUTH_F1_CARPENTER_CELL_POT_3, RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_3 },
|
{ RC_TH_LEFT_MIDDLE_JAILED_POT, RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_3 },
|
||||||
{ RC_TH_SOUTH_F1_CARPENTER_CELL_POT_4, RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_4 },
|
{ RC_TH_LEFTMOST_JAILED_POT, RAND_INF_TH_SOUTH_F1_CARPENTER_CELL_POT_4 },
|
||||||
{ RC_WASTELAND_NEAR_GS_POT_1, RAND_INF_WASTELAND_NEAR_GS_POT_1 },
|
{ RC_WASTELAND_NEAR_GS_POT_1, RAND_INF_WASTELAND_NEAR_GS_POT_1 },
|
||||||
{ RC_WASTELAND_NEAR_GS_POT_2, RAND_INF_WASTELAND_NEAR_GS_POT_2 },
|
{ RC_WASTELAND_NEAR_GS_POT_2, RAND_INF_WASTELAND_NEAR_GS_POT_2 },
|
||||||
{ RC_WASTELAND_NEAR_GS_POT_3, RAND_INF_WASTELAND_NEAR_GS_POT_3 },
|
{ RC_WASTELAND_NEAR_GS_POT_3, RAND_INF_WASTELAND_NEAR_GS_POT_3 },
|
||||||
|
@ -2130,136 +2130,136 @@ std::map<RandomizerCheck, RandomizerInf> rcToRandomizerInf = {
|
||||||
RAND_INF_GF_ABOVE_JAIL_CRATE,
|
RAND_INF_GF_ABOVE_JAIL_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_OUTSIDE_CENTER_CRATE_1,
|
RC_GF_SOUTHMOST_CENTER_CRATE,
|
||||||
RAND_INF_GF_OUTSIDE_CENTER_CRATE_1,
|
RAND_INF_GF_SOUTHMOST_CENTER_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_OUTSIDE_CENTER_CRATE_2,
|
RC_GF_MID_SOUTH_CENTER_CRATE,
|
||||||
RAND_INF_GF_OUTSIDE_CENTER_CRATE_2,
|
RAND_INF_GF_MID_SOUTH_CENTER_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_OUTSIDE_CENTER_CRATE_3,
|
RC_GF_MID_NORTH_CENTER_CRATE,
|
||||||
RAND_INF_GF_OUTSIDE_CENTER_CRATE_3,
|
RAND_INF_GF_MID_NORTH_CENTER_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_OUTSIDE_CENTER_CRATE_4,
|
RR_GF_NORTHMOST_CENTER_CRATE,
|
||||||
RAND_INF_GF_OUTSIDE_CENTER_CRATE_4,
|
RAND_INF_GF_NORTHMOST_CENTER_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_OUTSIDE_LEFT_CRATE_1,
|
RC_GF_OUTSKIRTS_NE_CRATE,
|
||||||
RAND_INF_GF_OUTSIDE_LEFT_CRATE_1,
|
RAND_INF_GF_OUTSKIRTS_NE_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_OUTSIDE_LEFT_CRATE_2,
|
RC_GF_OUTSKIRTS_NW_CRATE,
|
||||||
RAND_INF_GF_OUTSIDE_LEFT_CRATE_2,
|
RAND_INF_GF_OUTSKIRTS_NW_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_1,
|
RC_GF_HBA_RANGE_CRATE_1,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_1,
|
RAND_INF_GF_HBA_RANGE_CRATE_1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_2,
|
RC_GF_HBA_RANGE_CRATE_2,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_2,
|
RAND_INF_GF_HBA_RANGE_CRATE_2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_3,
|
RC_GF_HBA_RANGE_CRATE_3,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_3,
|
RAND_INF_GF_HBA_RANGE_CRATE_3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_4,
|
RC_GF_HBA_RANGE_CRATE_4,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_4,
|
RAND_INF_GF_HBA_RANGE_CRATE_4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_5,
|
RC_GF_HBA_RANGE_CRATE_5,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_5,
|
RAND_INF_GF_HBA_RANGE_CRATE_5,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_6,
|
RC_GF_HBA_RANGE_CRATE_6,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_6,
|
RAND_INF_GF_HBA_RANGE_CRATE_6,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_7,
|
RC_GF_HBA_RANGE_CRATE_7,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_7,
|
RAND_INF_GF_HBA_RANGE_CRATE_7,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_START_CRATE_1,
|
RC_GF_HBA_CANOPY_EAST_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_START_CRATE_1,
|
RAND_INF_GF_HBA_CANOPY_EAST_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_START_CRATE_2,
|
RC_GF_HBA_CANOPY_WEST_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_START_CRATE_2,
|
RAND_INF_GF_HBA_CANOPY_WEST_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_LEFT_END_CRATE_1,
|
RC_GF_NORTH_TARGET_EAST_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_LEFT_END_CRATE_1,
|
RAND_INF_GF_NORTH_TARGET_EAST_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_LEFT_END_CRATE_2,
|
RC_GF_NORTH_TARGET_WEST_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_LEFT_END_CRATE_2,
|
RAND_INF_GF_NORTH_TARGET_WEST_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_LEFT_END_CHILD_CRATE,
|
RC_GF_NORTH_TARGET_CHILD_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_LEFT_END_CHILD_CRATE,
|
RAND_INF_GF_NORTH_TARGET_CHILD_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_RIGHT_END_CRATE_1,
|
RC_GF_SOUTH_TARGET_EAST_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_RIGHT_END_CRATE_1,
|
RAND_INF_GF_SOUTH_TARGET_EAST_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_ARCHERY_RIGHT_END_CRATE_2,
|
RC_GF_SOUTH_TARGET_WEST_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_RIGHT_END_CRATE_2,
|
RAND_INF_GF_SOUTH_TARGET_WEST_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_KITCHEN_CRATE_1,
|
RC_TH_NEAR_KITCHEN_LEFTMOST_CRATE,
|
||||||
RAND_INF_GF_KITCHEN_CRATE_1,
|
RAND_INF_TH_NEAR_KITCHEN_LEFTMOST_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_KITCHEN_CRATE_2,
|
RC_TH_NEAR_KITCHEN_MID_LEFT_CRATE,
|
||||||
RAND_INF_GF_KITCHEN_CRATE_2,
|
RAND_INF_TH_NEAR_KITCHEN_MID_LEFT_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_KITCHEN_CRATE_3,
|
RC_TH_NEAR_KITCHEN_MID_RIGHT_CRATE,
|
||||||
RAND_INF_GF_KITCHEN_CRATE_3,
|
RAND_INF_TH_NEAR_KITCHEN_MID_RIGHT_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_KITCHEN_CRATE_4,
|
RC_TH_NEAR_KITCHEN_RIGHTMOST_CRATE,
|
||||||
RAND_INF_GF_KITCHEN_CRATE_4,
|
RAND_INF_TH_NEAR_KITCHEN_RIGHTMOST_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_KITCHEN_CRATE_5,
|
RC_TH_KITCHEN_CRATE,
|
||||||
RAND_INF_GF_KITCHEN_CRATE_5,
|
RAND_INF_TH_KITCHEN_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_BREAK_ROOM_CRATE_1,
|
RC_TH_BREAK_HALLWAY_OUTER_CRATE,
|
||||||
RAND_INF_GF_BREAK_ROOM_CRATE_1,
|
RAND_INF_TH_BREAK_HALLWAY_OUTER_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_BREAK_ROOM_CRATE_2,
|
RC_TH_BREAK_HALLWAY_INNER_CRATE,
|
||||||
RAND_INF_GF_BREAK_ROOM_CRATE_2,
|
RAND_INF_TH_BREAK_HALLWAY_INNER_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_BREAK_ROOM_CRATE_3,
|
RC_TH_BREAK_ROOM_RIGHT_CRATE,
|
||||||
RAND_INF_GF_BREAK_ROOM_CRATE_3,
|
RAND_INF_TH_BREAK_ROOM_RIGHT_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_BREAK_ROOM_CRATE_4,
|
RC_TH_BREAK_ROOM_LEFT_CRATE,
|
||||||
RAND_INF_GF_BREAK_ROOM_CRATE_4,
|
RAND_INF_TH_BREAK_ROOM_LEFT_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_NORTH_F1_CARPENTER_CRATE,
|
RC_TH_1_TORCH_CELL_CRATE,
|
||||||
RAND_INF_GF_NORTH_F1_CARPENTER_CRATE,
|
RAND_INF_TH_1_TORCH_CELL_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_NORTH_F3_CARPENTER_CRATE,
|
RC_TH_DEAD_END_CELL_CRATE,
|
||||||
RAND_INF_GF_NORTH_F3_CARPENTER_CRATE,
|
RAND_INF_TH_DEAD_END_CELL_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_SOUTH_F2_CARPENTER_CRATE_1,
|
RC_TH_DOUBLE_CELL_LEFT_CRATE,
|
||||||
RAND_INF_GF_SOUTH_F2_CARPENTER_CRATE_1,
|
RAND_INF_TH_DOUBLE_CELL_LEFT_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_GF_SOUTH_F2_CARPENTER_CRATE_2,
|
RC_TH_DOUBLE_CELL_RIGHT_CRATE,
|
||||||
RAND_INF_GF_SOUTH_F2_CARPENTER_CRATE_2,
|
RAND_INF_TH_DOUBLE_CELL_RIGHT_CRATE,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
RC_HW_BEFORE_QUICKSAND_CRATE,
|
RC_HW_BEFORE_QUICKSAND_CRATE,
|
||||||
|
|
|
@ -408,34 +408,34 @@ typedef enum {
|
||||||
RR_GV_FORTRESS_SIDE,
|
RR_GV_FORTRESS_SIDE,
|
||||||
RR_GV_CARPENTER_TENT,
|
RR_GV_CARPENTER_TENT,
|
||||||
RR_GV_STORMS_GROTTO,
|
RR_GV_STORMS_GROTTO,
|
||||||
RR_GF_GROUND_BOTTOM,
|
RR_GF_OUTSKIRTS,
|
||||||
RR_GF_GROUND_RED,
|
RR_GF_OUTSIDE_GTG,
|
||||||
RR_GF_GROUND_GREY,
|
RR_GF_NEAR_GROTTO,
|
||||||
RR_GF_GROUND_OUTSIDE_GTG,
|
RR_GF_BELOW_CHEST,
|
||||||
RR_GF_GROUND_NEAR_GROTTO,
|
RR_GF_LONG_ROOF,
|
||||||
RR_GF_ROOFTOP_YELLOW,
|
RR_GF_ABOVE_GTG,
|
||||||
RR_GF_ROOFTOP_LIMEGREEN,
|
RR_GF_BOTTOM_OF_LOWER_VINES,
|
||||||
RR_GF_ROOFTOP_ABOVE_GTG,
|
RR_GF_TOP_OF_LOWER_VINES,
|
||||||
RR_GF_ROOFTOP_BOTTOM_OF_LOWER_VINES,
|
RR_GF_BOTTOM_OF_UPPER_VINES,
|
||||||
RR_GF_ROOFTOP_TOP_OF_LOWER_VINES,
|
RR_GF_BELOW_GS,
|
||||||
RR_GF_ROOFTOP_BOTTOM_OF_UPPER_VINES,
|
RR_GF_NEAR_GS,
|
||||||
RR_GF_ROOFTOP_BELOW_GS,
|
RR_GF_SLOPED_ROOF,
|
||||||
RR_GF_ROOFTOP_NEAR_GS,
|
RR_GF_TOP_OF_UPPER_VINES,
|
||||||
RR_GF_ROOFTOP_SLOPED,
|
RR_GF_NEAR_CHEST,
|
||||||
RR_GF_ROOFTOP_TOP_OF_UPPER_VINES,
|
|
||||||
RR_GF_ROOFTOP_CHEST,
|
|
||||||
RR_GF_HBA_RANGE,
|
RR_GF_HBA_RANGE,
|
||||||
RR_GF_TOP_LEDGE,
|
RR_GF_ABOVE_JAIL,
|
||||||
|
RR_GF_JAIL_WINDOW,
|
||||||
RR_GF_OUTSIDE_GATE,
|
RR_GF_OUTSIDE_GATE,
|
||||||
RR_GF_STORMS_GROTTO,
|
RR_GF_STORMS_GROTTO,
|
||||||
RR_TH_NORTH_F1_CARPENTER_AREA,
|
RR_TH_1_TORCH_CELL,
|
||||||
RR_TH_SOUTH_F1_CARPENTER_AREA,
|
RR_TH_DOUBLE_CELL,
|
||||||
RR_TH_NORTH_F2_CARPENTER_AREA,
|
RR_TH_DEAD_END_CELL,
|
||||||
RR_TH_SOUTH_F2_CARPENTER_AREA,
|
RR_TH_STEEP_SLOPE_CELL,
|
||||||
RR_TH_KITCHEN_BOTTOM,
|
RR_TH_KITCHEN_CORRIDOR,
|
||||||
RR_TH_KITCHEN_MAIN,
|
RR_TH_KITCHEN_MAIN,
|
||||||
RR_TH_KITCHEN_TOP,
|
RR_TH_KITCHEN_TOP,
|
||||||
RR_TH_BREAK_ROOM,
|
RR_TH_BREAK_ROOM,
|
||||||
|
RR_TH_BREAK_ROOM_CORRIDOR,
|
||||||
RR_WASTELAND_NEAR_FORTRESS,
|
RR_WASTELAND_NEAR_FORTRESS,
|
||||||
RR_HAUNTED_WASTELAND,
|
RR_HAUNTED_WASTELAND,
|
||||||
RR_WASTELAND_NEAR_COLOSSUS,
|
RR_WASTELAND_NEAR_COLOSSUS,
|
||||||
|
@ -551,7 +551,7 @@ typedef enum {
|
||||||
RR_SHADOW_TEMPLE_ENTRYWAY,
|
RR_SHADOW_TEMPLE_ENTRYWAY,
|
||||||
RR_BOTTOM_OF_THE_WELL_ENTRYWAY,
|
RR_BOTTOM_OF_THE_WELL_ENTRYWAY,
|
||||||
RR_ICE_CAVERN_ENTRYWAY,
|
RR_ICE_CAVERN_ENTRYWAY,
|
||||||
RR_GERUDO_TRAINING_GROUND_ENTRYWAY,
|
RR_GTG_ENTRYWAY,
|
||||||
RR_GANONS_CASTLE_ENTRYWAY,
|
RR_GANONS_CASTLE_ENTRYWAY,
|
||||||
|
|
||||||
RR_DEKU_TREE_LOBBY,
|
RR_DEKU_TREE_LOBBY,
|
||||||
|
@ -1397,13 +1397,13 @@ typedef enum {
|
||||||
RC_GF_CHEST,
|
RC_GF_CHEST,
|
||||||
RC_GF_HBA_1000_POINTS,
|
RC_GF_HBA_1000_POINTS,
|
||||||
RC_GF_HBA_1500_POINTS,
|
RC_GF_HBA_1500_POINTS,
|
||||||
RC_TH_GERUDO_MEMBERSHIP_CARD,
|
RC_TH_FREED_CARPENTERS,
|
||||||
RC_TH_NORTH_F1_CARPENTER,
|
RC_TH_1_TORCH_CARPENTER,
|
||||||
RC_TH_NORTH_F2_CARPENTER,
|
RC_TH_DEAD_END_CARPENTER,
|
||||||
RC_TH_SOUTH_F1_CARPENTER,
|
RC_TH_DOUBLE_CELL_CARPENTER,
|
||||||
RC_TH_SOUTH_F2_CARPENTER,
|
RC_TH_STEEP_SLOPE_CARPENTER,
|
||||||
RC_GF_GS_TOP_FLOOR,
|
RC_GF_GS_TOP_FLOOR,
|
||||||
RC_GF_GS_ARCHERY_RANGE,
|
RC_GF_HBA_RANGE_GS,
|
||||||
RC_HIDEOUT_JAIL_GUARD_1_TORCH,
|
RC_HIDEOUT_JAIL_GUARD_1_TORCH,
|
||||||
RC_HIDEOUT_JAIL_GUARD_2_TORCHES,
|
RC_HIDEOUT_JAIL_GUARD_2_TORCHES,
|
||||||
RC_HIDEOUT_JAIL_GUARD_3_TORCHES,
|
RC_HIDEOUT_JAIL_GUARD_3_TORCHES,
|
||||||
|
@ -1821,22 +1821,22 @@ typedef enum {
|
||||||
RC_KF_TWINS_HOUSE_POT_2,
|
RC_KF_TWINS_HOUSE_POT_2,
|
||||||
RC_KF_BROTHERS_HOUSE_POT_1,
|
RC_KF_BROTHERS_HOUSE_POT_1,
|
||||||
RC_KF_BROTHERS_HOUSE_POT_2,
|
RC_KF_BROTHERS_HOUSE_POT_2,
|
||||||
RC_TH_BREAK_ROOM_POT_1,
|
RC_TH_BREAK_ROOM_FRONT_POT,
|
||||||
RC_TH_BREAK_ROOM_POT_2,
|
RC_TH_BREAK_ROOM_BACK_POT,
|
||||||
RC_TH_KITCHEN_POT_1,
|
RC_TH_KITCHEN_POT_1,
|
||||||
RC_TH_KITCHEN_POT_2,
|
RC_TH_KITCHEN_POT_2,
|
||||||
RC_TH_NORTH_F1_CARPENTER_POT_1,
|
RC_TH_1_TORCH_CELL_RIGHT_POT,
|
||||||
RC_TH_NORTH_F1_CARPENTER_POT_2,
|
RC_TH_1_TORCH_CELL_MID_POT,
|
||||||
RC_TH_NORTH_F1_CARPENTER_POT_3,
|
RC_TH_1_TORCH_CELL_LEFT_POT,
|
||||||
RC_TH_NORTH_F2_CARPENTER_POT_1,
|
RC_TH_STEEP_SLOPE_RIGHT_POT,
|
||||||
RC_TH_NORTH_F2_CARPENTER_POT_2,
|
RC_TH_STEEP_SLOPE_LEFT_POT,
|
||||||
RC_TH_SOUTH_F1_CARPENTER_POT_1,
|
RC_TH_NEAR_DOUBLE_CELL_RIGHT_POT,
|
||||||
RC_TH_SOUTH_F1_CARPENTER_POT_2,
|
RC_TH_NEAR_DOUBLE_CELL_MID_POT,
|
||||||
RC_TH_SOUTH_F1_CARPENTER_POT_3,
|
RC_TH_NEAR_DOUBLE_CELL_LEFT_POT,
|
||||||
RC_TH_SOUTH_F1_CARPENTER_CELL_POT_1,
|
RC_TH_RIGHTMOST_JAILED_POT,
|
||||||
RC_TH_SOUTH_F1_CARPENTER_CELL_POT_2,
|
RC_TH_RIGHT_MIDDLE_JAILED_POT,
|
||||||
RC_TH_SOUTH_F1_CARPENTER_CELL_POT_3,
|
RC_TH_LEFT_MIDDLE_JAILED_POT,
|
||||||
RC_TH_SOUTH_F1_CARPENTER_CELL_POT_4,
|
RC_TH_LEFTMOST_JAILED_POT,
|
||||||
RC_WASTELAND_NEAR_GS_POT_1,
|
RC_WASTELAND_NEAR_GS_POT_1,
|
||||||
RC_WASTELAND_NEAR_GS_POT_2,
|
RC_WASTELAND_NEAR_GS_POT_2,
|
||||||
RC_WASTELAND_NEAR_GS_POT_3,
|
RC_WASTELAND_NEAR_GS_POT_3,
|
||||||
|
@ -2370,39 +2370,39 @@ typedef enum {
|
||||||
RC_GV_CRATE_BRIDGE_3,
|
RC_GV_CRATE_BRIDGE_3,
|
||||||
RC_GV_CRATE_BRIDGE_4,
|
RC_GV_CRATE_BRIDGE_4,
|
||||||
RC_GF_ABOVE_JAIL_CRATE,
|
RC_GF_ABOVE_JAIL_CRATE,
|
||||||
RC_GF_OUTSIDE_CENTER_CRATE_1,
|
RC_GF_SOUTHMOST_CENTER_CRATE,
|
||||||
RC_GF_OUTSIDE_CENTER_CRATE_2,
|
RC_GF_MID_SOUTH_CENTER_CRATE,
|
||||||
RC_GF_OUTSIDE_CENTER_CRATE_3,
|
RC_GF_MID_NORTH_CENTER_CRATE,
|
||||||
RC_GF_OUTSIDE_CENTER_CRATE_4,
|
RR_GF_NORTHMOST_CENTER_CRATE,
|
||||||
RC_GF_OUTSIDE_LEFT_CRATE_1,
|
RC_GF_OUTSKIRTS_NE_CRATE,
|
||||||
RC_GF_OUTSIDE_LEFT_CRATE_2,
|
RC_GF_OUTSKIRTS_NW_CRATE,
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_1,
|
RC_GF_HBA_RANGE_CRATE_1,
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_2,
|
RC_GF_HBA_RANGE_CRATE_2,
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_3,
|
RC_GF_HBA_RANGE_CRATE_3,
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_4,
|
RC_GF_HBA_RANGE_CRATE_4,
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_5,
|
RC_GF_HBA_RANGE_CRATE_5,
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_6,
|
RC_GF_HBA_RANGE_CRATE_6,
|
||||||
RC_GF_ARCHERY_RANGE_CRATE_7,
|
RC_GF_HBA_RANGE_CRATE_7,
|
||||||
RC_GF_ARCHERY_START_CRATE_1,
|
RC_GF_HBA_CANOPY_EAST_CRATE,
|
||||||
RC_GF_ARCHERY_START_CRATE_2,
|
RC_GF_HBA_CANOPY_WEST_CRATE,
|
||||||
RC_GF_ARCHERY_LEFT_END_CRATE_1,
|
RC_GF_NORTH_TARGET_EAST_CRATE,
|
||||||
RC_GF_ARCHERY_LEFT_END_CRATE_2,
|
RC_GF_NORTH_TARGET_WEST_CRATE,
|
||||||
RC_GF_ARCHERY_LEFT_END_CHILD_CRATE,
|
RC_GF_NORTH_TARGET_CHILD_CRATE,
|
||||||
RC_GF_ARCHERY_RIGHT_END_CRATE_1,
|
RC_GF_SOUTH_TARGET_EAST_CRATE,
|
||||||
RC_GF_ARCHERY_RIGHT_END_CRATE_2,
|
RC_GF_SOUTH_TARGET_WEST_CRATE,
|
||||||
RC_GF_KITCHEN_CRATE_1,
|
RC_TH_NEAR_KITCHEN_LEFTMOST_CRATE,
|
||||||
RC_GF_KITCHEN_CRATE_2,
|
RC_TH_NEAR_KITCHEN_MID_LEFT_CRATE,
|
||||||
RC_GF_KITCHEN_CRATE_3,
|
RC_TH_NEAR_KITCHEN_MID_RIGHT_CRATE,
|
||||||
RC_GF_KITCHEN_CRATE_4,
|
RC_TH_NEAR_KITCHEN_RIGHTMOST_CRATE,
|
||||||
RC_GF_KITCHEN_CRATE_5,
|
RC_TH_KITCHEN_CRATE,
|
||||||
RC_GF_BREAK_ROOM_CRATE_1,
|
RC_TH_BREAK_HALLWAY_OUTER_CRATE,
|
||||||
RC_GF_BREAK_ROOM_CRATE_2,
|
RC_TH_BREAK_HALLWAY_INNER_CRATE,
|
||||||
RC_GF_BREAK_ROOM_CRATE_3,
|
RC_TH_BREAK_ROOM_RIGHT_CRATE,
|
||||||
RC_GF_BREAK_ROOM_CRATE_4,
|
RC_TH_BREAK_ROOM_LEFT_CRATE,
|
||||||
RC_GF_NORTH_F1_CARPENTER_CRATE,
|
RC_TH_1_TORCH_CELL_CRATE,
|
||||||
RC_GF_NORTH_F3_CARPENTER_CRATE,
|
RC_TH_DEAD_END_CELL_CRATE,
|
||||||
RC_GF_SOUTH_F2_CARPENTER_CRATE_1,
|
RC_TH_DOUBLE_CELL_LEFT_CRATE,
|
||||||
RC_GF_SOUTH_F2_CARPENTER_CRATE_2,
|
RC_TH_DOUBLE_CELL_RIGHT_CRATE,
|
||||||
RC_HW_BEFORE_QUICKSAND_CRATE,
|
RC_HW_BEFORE_QUICKSAND_CRATE,
|
||||||
RC_HW_AFTER_QUICKSAND_CRATE_1,
|
RC_HW_AFTER_QUICKSAND_CRATE_1,
|
||||||
RC_HW_AFTER_QUICKSAND_CRATE_2,
|
RC_HW_AFTER_QUICKSAND_CRATE_2,
|
||||||
|
@ -3551,7 +3551,7 @@ typedef enum {
|
||||||
RT_LH_LAB_DIVING,
|
RT_LH_LAB_DIVING,
|
||||||
RT_LH_WATER_HOOKSHOT,
|
RT_LH_WATER_HOOKSHOT,
|
||||||
RT_GV_CRATE_HOVERS,
|
RT_GV_CRATE_HOVERS,
|
||||||
RT_TH_KITCHEN,
|
RT_PASS_GUARDS_WITH_NOTHING,
|
||||||
RT_GF_JUMP,
|
RT_GF_JUMP,
|
||||||
RT_GF_WARRIOR_WITH_DIFFICULT_WEAPON,
|
RT_GF_WARRIOR_WITH_DIFFICULT_WEAPON,
|
||||||
RT_HW_BUNNY_CROSSING,
|
RT_HW_BUNNY_CROSSING,
|
||||||
|
@ -6445,6 +6445,7 @@ typedef enum {
|
||||||
RE_BIG_OCTO,
|
RE_BIG_OCTO,
|
||||||
RE_GERUDO_WARRIOR,
|
RE_GERUDO_WARRIOR,
|
||||||
RE_GERUDO_GUARD,
|
RE_GERUDO_GUARD,
|
||||||
|
RE_BREAK_ROOM_GUARD,
|
||||||
RE_GIBDO,
|
RE_GIBDO,
|
||||||
RE_GOHMA,
|
RE_GOHMA,
|
||||||
RE_KING_DODONGO,
|
RE_KING_DODONGO,
|
||||||
|
|
|
@ -231,20 +231,20 @@ void RandomizerCheckObjects::UpdateImGuiVisibility() {
|
||||||
(location.GetRandomizerCheck() != RC_KAK_100_GOLD_SKULLTULA_REWARD ||
|
(location.GetRandomizerCheck() != RC_KAK_100_GOLD_SKULLTULA_REWARD ||
|
||||||
CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleGanonBossKey"), RO_GANON_BOSS_KEY_VANILLA) !=
|
CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleGanonBossKey"), RO_GANON_BOSS_KEY_VANILLA) !=
|
||||||
RO_GANON_BOSS_KEY_KAK_TOKENS) && // 100 skull reward ganon boss key
|
RO_GANON_BOSS_KEY_KAK_TOKENS) && // 100 skull reward ganon boss key
|
||||||
(location.GetRCType() != RCTYPE_GF_KEY && location.GetRandomizerCheck() != RC_TH_GERUDO_MEMBERSHIP_CARD ||
|
(location.GetRCType() != RCTYPE_GF_KEY && location.GetRandomizerCheck() != RC_TH_FREED_CARPENTERS ||
|
||||||
(CVarGetInteger(CVAR_RANDOMIZER_SETTING("FortressCarpenters"), RO_GF_CARPENTERS_NORMAL) ==
|
(CVarGetInteger(CVAR_RANDOMIZER_SETTING("FortressCarpenters"), RO_GF_CARPENTERS_NORMAL) ==
|
||||||
RO_GF_CARPENTERS_FREE &&
|
RO_GF_CARPENTERS_FREE &&
|
||||||
location.GetRCType() != RCTYPE_GF_KEY && location.GetRandomizerCheck() != RC_TH_GERUDO_MEMBERSHIP_CARD) ||
|
location.GetRCType() != RCTYPE_GF_KEY && location.GetRandomizerCheck() != RC_TH_FREED_CARPENTERS) ||
|
||||||
(CVarGetInteger(CVAR_RANDOMIZER_SETTING("FortressCarpenters"), RO_GF_CARPENTERS_NORMAL) ==
|
(CVarGetInteger(CVAR_RANDOMIZER_SETTING("FortressCarpenters"), RO_GF_CARPENTERS_NORMAL) ==
|
||||||
RO_GF_CARPENTERS_FAST &&
|
RO_GF_CARPENTERS_FAST &&
|
||||||
((location.GetRandomizerCheck() == RC_TH_GERUDO_MEMBERSHIP_CARD &&
|
((location.GetRandomizerCheck() == RC_TH_FREED_CARPENTERS &&
|
||||||
CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleGerudoToken"), RO_GENERIC_NO) == RO_GENERIC_YES) ||
|
CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleGerudoToken"), RO_GENERIC_NO) == RO_GENERIC_YES) ||
|
||||||
(location.GetRandomizerCheck() == RC_TH_NORTH_F1_CARPENTER &&
|
(location.GetRandomizerCheck() == RC_TH_1_TORCH_CARPENTER &&
|
||||||
CVarGetInteger(CVAR_RANDOMIZER_SETTING("GerudoKeys"), RO_GERUDO_KEYS_VANILLA) !=
|
CVarGetInteger(CVAR_RANDOMIZER_SETTING("GerudoKeys"), RO_GERUDO_KEYS_VANILLA) !=
|
||||||
RO_GERUDO_KEYS_VANILLA))) ||
|
RO_GERUDO_KEYS_VANILLA))) ||
|
||||||
(CVarGetInteger(CVAR_RANDOMIZER_SETTING("FortressCarpenters"), RO_GF_CARPENTERS_NORMAL) ==
|
(CVarGetInteger(CVAR_RANDOMIZER_SETTING("FortressCarpenters"), RO_GF_CARPENTERS_NORMAL) ==
|
||||||
RO_GF_CARPENTERS_NORMAL &&
|
RO_GF_CARPENTERS_NORMAL &&
|
||||||
((location.GetRandomizerCheck() == RC_TH_GERUDO_MEMBERSHIP_CARD &&
|
((location.GetRandomizerCheck() == RC_TH_FREED_CARPENTERS &&
|
||||||
CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleGerudoToken"), RO_GENERIC_NO) == RO_GENERIC_YES) ||
|
CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleGerudoToken"), RO_GENERIC_NO) == RO_GENERIC_YES) ||
|
||||||
(location.GetRCType() == RCTYPE_GF_KEY &&
|
(location.GetRCType() == RCTYPE_GF_KEY &&
|
||||||
CVarGetInteger(CVAR_RANDOMIZER_SETTING("GerudoKeys"), RO_GERUDO_KEYS_VANILLA) !=
|
CVarGetInteger(CVAR_RANDOMIZER_SETTING("GerudoKeys"), RO_GERUDO_KEYS_VANILLA) !=
|
||||||
|
|
|
@ -746,7 +746,7 @@ void CheckTrackerFlagSet(int16_t flagType, int32_t flag) {
|
||||||
if ((flag == EVENTCHKINF_CARPENTERS_FREE(0) || flag == EVENTCHKINF_CARPENTERS_FREE(1) ||
|
if ((flag == EVENTCHKINF_CARPENTERS_FREE(0) || flag == EVENTCHKINF_CARPENTERS_FREE(1) ||
|
||||||
flag == EVENTCHKINF_CARPENTERS_FREE(2) || flag == EVENTCHKINF_CARPENTERS_FREE(3)) &&
|
flag == EVENTCHKINF_CARPENTERS_FREE(2) || flag == EVENTCHKINF_CARPENTERS_FREE(3)) &&
|
||||||
GET_EVENTCHKINF_CARPENTERS_FREE_ALL()) {
|
GET_EVENTCHKINF_CARPENTERS_FREE_ALL()) {
|
||||||
SetCheckCollected(RC_TH_GERUDO_MEMBERSHIP_CARD);
|
SetCheckCollected(RC_TH_FREED_CARPENTERS);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
checkMatchType = SpoilerCollectionCheckType::SPOILER_CHK_EVENT_CHK_INF;
|
checkMatchType = SpoilerCollectionCheckType::SPOILER_CHK_EVENT_CHK_INF;
|
||||||
|
@ -1549,10 +1549,10 @@ bool IsCheckShuffled(RandomizerCheck rc) {
|
||||||
(loc->GetRCType() != RCTYPE_BOSS_KEY || showBossKeysanity) &&
|
(loc->GetRCType() != RCTYPE_BOSS_KEY || showBossKeysanity) &&
|
||||||
(loc->GetRCType() != RCTYPE_GANON_BOSS_KEY || showGanonBossKey) &&
|
(loc->GetRCType() != RCTYPE_GANON_BOSS_KEY || showGanonBossKey) &&
|
||||||
(rc != RC_KAK_100_GOLD_SKULLTULA_REWARD || show100SkullReward) &&
|
(rc != RC_KAK_100_GOLD_SKULLTULA_REWARD || show100SkullReward) &&
|
||||||
(loc->GetRCType() != RCTYPE_GF_KEY && rc != RC_TH_GERUDO_MEMBERSHIP_CARD ||
|
(loc->GetRCType() != RCTYPE_GF_KEY && rc != RC_TH_FREED_CARPENTERS ||
|
||||||
(showGerudoCard && rc == RC_TH_GERUDO_MEMBERSHIP_CARD) ||
|
(showGerudoCard && rc == RC_TH_FREED_CARPENTERS) ||
|
||||||
(fortressNormal && showGerudoFortressKeys && loc->GetRCType() == RCTYPE_GF_KEY) ||
|
(fortressNormal && showGerudoFortressKeys && loc->GetRCType() == RCTYPE_GF_KEY) ||
|
||||||
(fortressFast && showGerudoFortressKeys && rc == RC_TH_NORTH_F1_CARPENTER));
|
(fortressFast && showGerudoFortressKeys && rc == RC_TH_1_TORCH_CARPENTER));
|
||||||
} else if (loc->IsVanillaCompletion()) {
|
} else if (loc->IsVanillaCompletion()) {
|
||||||
return (OTRGlobals::Instance->gRandoContext->IsQuestOfLocationActive(rc) || rc == RC_GIFT_FROM_RAURU) &&
|
return (OTRGlobals::Instance->gRandoContext->IsQuestOfLocationActive(rc) || rc == RC_GIFT_FROM_RAURU) &&
|
||||||
rc != RC_LINKS_POCKET;
|
rc != RC_LINKS_POCKET;
|
||||||
|
|
|
@ -751,39 +751,39 @@ typedef enum {
|
||||||
RAND_INF_GV_CRATE_BRIDGE_3,
|
RAND_INF_GV_CRATE_BRIDGE_3,
|
||||||
RAND_INF_GV_CRATE_BRIDGE_4,
|
RAND_INF_GV_CRATE_BRIDGE_4,
|
||||||
RAND_INF_GF_ABOVE_JAIL_CRATE,
|
RAND_INF_GF_ABOVE_JAIL_CRATE,
|
||||||
RAND_INF_GF_OUTSIDE_CENTER_CRATE_1,
|
RAND_INF_GF_SOUTHMOST_CENTER_CRATE,
|
||||||
RAND_INF_GF_OUTSIDE_CENTER_CRATE_2,
|
RAND_INF_GF_MID_SOUTH_CENTER_CRATE,
|
||||||
RAND_INF_GF_OUTSIDE_CENTER_CRATE_3,
|
RAND_INF_GF_MID_NORTH_CENTER_CRATE,
|
||||||
RAND_INF_GF_OUTSIDE_CENTER_CRATE_4,
|
RAND_INF_GF_NORTHMOST_CENTER_CRATE,
|
||||||
RAND_INF_GF_OUTSIDE_LEFT_CRATE_1,
|
RAND_INF_GF_OUTSKIRTS_NE_CRATE,
|
||||||
RAND_INF_GF_OUTSIDE_LEFT_CRATE_2,
|
RAND_INF_GF_OUTSKIRTS_NW_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_1,
|
RAND_INF_GF_HBA_RANGE_CRATE_1,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_2,
|
RAND_INF_GF_HBA_RANGE_CRATE_2,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_3,
|
RAND_INF_GF_HBA_RANGE_CRATE_3,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_4,
|
RAND_INF_GF_HBA_RANGE_CRATE_4,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_5,
|
RAND_INF_GF_HBA_RANGE_CRATE_5,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_6,
|
RAND_INF_GF_HBA_RANGE_CRATE_6,
|
||||||
RAND_INF_GF_ARCHERY_RANGE_CRATE_7,
|
RAND_INF_GF_HBA_RANGE_CRATE_7,
|
||||||
RAND_INF_GF_ARCHERY_START_CRATE_1,
|
RAND_INF_GF_HBA_CANOPY_EAST_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_START_CRATE_2,
|
RAND_INF_GF_HBA_CANOPY_WEST_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_LEFT_END_CRATE_1,
|
RAND_INF_GF_NORTH_TARGET_EAST_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_LEFT_END_CRATE_2,
|
RAND_INF_GF_NORTH_TARGET_WEST_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_LEFT_END_CHILD_CRATE,
|
RAND_INF_GF_NORTH_TARGET_CHILD_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_RIGHT_END_CRATE_1,
|
RAND_INF_GF_SOUTH_TARGET_EAST_CRATE,
|
||||||
RAND_INF_GF_ARCHERY_RIGHT_END_CRATE_2,
|
RAND_INF_GF_SOUTH_TARGET_WEST_CRATE,
|
||||||
RAND_INF_GF_KITCHEN_CRATE_1,
|
RAND_INF_TH_NEAR_KITCHEN_LEFTMOST_CRATE,
|
||||||
RAND_INF_GF_KITCHEN_CRATE_2,
|
RAND_INF_TH_NEAR_KITCHEN_MID_LEFT_CRATE,
|
||||||
RAND_INF_GF_KITCHEN_CRATE_3,
|
RAND_INF_TH_NEAR_KITCHEN_MID_RIGHT_CRATE,
|
||||||
RAND_INF_GF_KITCHEN_CRATE_4,
|
RAND_INF_TH_NEAR_KITCHEN_RIGHTMOST_CRATE,
|
||||||
RAND_INF_GF_KITCHEN_CRATE_5,
|
RAND_INF_TH_KITCHEN_CRATE,
|
||||||
RAND_INF_GF_BREAK_ROOM_CRATE_1,
|
RAND_INF_TH_BREAK_HALLWAY_OUTER_CRATE,
|
||||||
RAND_INF_GF_BREAK_ROOM_CRATE_2,
|
RAND_INF_TH_BREAK_HALLWAY_INNER_CRATE,
|
||||||
RAND_INF_GF_BREAK_ROOM_CRATE_3,
|
RAND_INF_TH_BREAK_ROOM_RIGHT_CRATE,
|
||||||
RAND_INF_GF_BREAK_ROOM_CRATE_4,
|
RAND_INF_TH_BREAK_ROOM_LEFT_CRATE,
|
||||||
RAND_INF_GF_NORTH_F1_CARPENTER_CRATE,
|
RAND_INF_TH_1_TORCH_CELL_CRATE,
|
||||||
RAND_INF_GF_NORTH_F3_CARPENTER_CRATE,
|
RAND_INF_TH_DEAD_END_CELL_CRATE,
|
||||||
RAND_INF_GF_SOUTH_F2_CARPENTER_CRATE_1,
|
RAND_INF_TH_DOUBLE_CELL_LEFT_CRATE,
|
||||||
RAND_INF_GF_SOUTH_F2_CARPENTER_CRATE_2,
|
RAND_INF_TH_DOUBLE_CELL_RIGHT_CRATE,
|
||||||
RAND_INF_HW_BEFORE_QUICKSAND_CRATE,
|
RAND_INF_HW_BEFORE_QUICKSAND_CRATE,
|
||||||
RAND_INF_HW_AFTER_QUICKSAND_CRATE_1,
|
RAND_INF_HW_AFTER_QUICKSAND_CRATE_1,
|
||||||
RAND_INF_HW_AFTER_QUICKSAND_CRATE_2,
|
RAND_INF_HW_AFTER_QUICKSAND_CRATE_2,
|
||||||
|
|
|
@ -569,13 +569,13 @@ void Settings::CreateOptions() {
|
||||||
"Gerudo Valley Crate PoH as Adult with Hover Boots",
|
"Gerudo Valley Crate PoH as Adult with Hover Boots",
|
||||||
"From the far side of Gerudo Valley, a precise Hover Boots movement and jump-slash recoil can allow "
|
"From the far side of Gerudo Valley, a precise Hover Boots movement and jump-slash recoil can allow "
|
||||||
"adult to reach the ledge with the crate PoH without needing Longshot. You will take fall damage.");
|
"adult to reach the ledge with the crate PoH without needing Longshot. You will take fall damage.");
|
||||||
OPT_TRICK(RT_TH_KITCHEN, RCQUEST_BOTH, RA_GERUDO_FORTRESS, { Tricks::Tag::NOVICE },
|
OPT_TRICK(RT_PASS_GUARDS_WITH_NOTHING, RCQUEST_BOTH, RA_GERUDO_FORTRESS, { Tricks::Tag::NOVICE },
|
||||||
"Thieves\' Hideout \"Kitchen\" with No Additional Items",
|
"Sneak Past Moving Gerudo Guards with No Items",
|
||||||
"Allows passing through the kitchen by avoiding being seen by the guards. The logic normally guarantees "
|
"The logic normally guarantees Bow or Hookshot to stun them from a distance,"
|
||||||
"Bow or Hookshot to stun them from a distance, or Hover Boots to cross the room without needing to deal "
|
"but every moving guard can be passed with basic movement and AI manipulation");
|
||||||
"with the guards.");
|
OPT_TRICK(RT_GF_JUMP, RCQUEST_BOTH, RA_GERUDO_FORTRESS, { Tricks::Tag::NOVICE },
|
||||||
OPT_TRICK(RT_GF_JUMP, RCQUEST_BOTH, RA_GERUDO_FORTRESS, { Tricks::Tag::NOVICE }, "Gerudo\'s Fortress Ledge Jumps",
|
"Gerudo\'s Fortress Ledge Jumps",
|
||||||
"Adult can jump onto the top roof of the fortress without going through the interior of the hideout.");
|
"It is possible to navigate the rooves of Fortress with unintuative jumps to reach additional areas without going inside.");
|
||||||
OPT_TRICK(RT_GF_WARRIOR_WITH_DIFFICULT_WEAPON, RCQUEST_BOTH, RA_GERUDO_FORTRESS, { Tricks::Tag::NOVICE },
|
OPT_TRICK(RT_GF_WARRIOR_WITH_DIFFICULT_WEAPON, RCQUEST_BOTH, RA_GERUDO_FORTRESS, { Tricks::Tag::NOVICE },
|
||||||
"Gerudo\'s Fortress Warriors with Difficult Weapons",
|
"Gerudo\'s Fortress Warriors with Difficult Weapons",
|
||||||
"Warriors can be defeated with Slingshot or Bombchus.");
|
"Warriors can be defeated with Slingshot or Bombchus.");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue