mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-22 14:23:44 -07:00
Address review
This commit is contained in:
parent
2d5023663c
commit
ca3f704301
11 changed files with 24 additions and 17 deletions
|
@ -352,7 +352,14 @@ std::vector<Entrance*> EntranceShuffler::AssumeEntrancePool(std::vector<Entrance
|
|||
static bool AreEntrancesCompatible(Entrance* entrance, Entrance* target, std::vector<EntrancePair>& rollbacks) {
|
||||
|
||||
// Entrances shouldn't connect to their own scene, fail in this situation
|
||||
if (entrance->GetParentRegion()->scene != SCENE_ID_MAX &&
|
||||
if (
|
||||
// allow "special" areas to connect to eachother
|
||||
entrance->GetParentRegion()->scene != SCENE_ID_MAX &&
|
||||
// allow grottos and fairy fountains to connect to eachother
|
||||
entrance->GetParentRegion()->scene != SCENE_GROTTOS &&
|
||||
entrance->GetParentRegion()->scene != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC &&
|
||||
entrance->GetParentRegion()->scene != SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS &&
|
||||
|
||||
entrance->GetParentRegion()->scene == target->GetConnectedRegion()->scene) {
|
||||
auto message = "Entrance " + entrance->GetName() + " attempted to connect with own scene target " +
|
||||
target->to_string() + ". Connection failed.\n";
|
||||
|
|
|
@ -90,7 +90,6 @@ std::set<RandomizerArea> CalculateAreas(SceneID scene) {
|
|||
return { RA_BOTTOM_OF_THE_WELL };
|
||||
case SCENE_ICE_CAVERN:
|
||||
return { RA_ICE_CAVERN };
|
||||
case SCENE_GANONS_TOWER:
|
||||
case SCENE_INSIDE_GANONS_CASTLE:
|
||||
case SCENE_GANONS_TOWER_COLLAPSE_INTERIOR:
|
||||
case SCENE_INSIDE_GANONS_CASTLE_COLLAPSE:
|
||||
|
@ -163,6 +162,7 @@ std::set<RandomizerArea> CalculateAreas(SceneID scene) {
|
|||
case SCENE_WATER_TEMPLE_BOSS:
|
||||
case SCENE_SPIRIT_TEMPLE_BOSS:
|
||||
case SCENE_SHADOW_TEMPLE_BOSS:
|
||||
case SCENE_GANONS_TOWER:
|
||||
case SCENE_GANONDORF_BOSS:
|
||||
case SCENE_KNOW_IT_ALL_BROS_HOUSE:
|
||||
case SCENE_TWINS_HOUSE:
|
||||
|
@ -324,23 +324,23 @@ bool Region::TimePass() {
|
|||
case SCENE_LOST_WOODS:
|
||||
case SCENE_GORON_CITY:
|
||||
case SCENE_OUTSIDE_GANONS_CASTLE:
|
||||
case SCENE_GRAVEYARD:
|
||||
case SCENE_ZORAS_DOMAIN:
|
||||
case SCENE_ZORAS_FOUNTAIN:
|
||||
case SCENE_GERUDOS_FORTRESS:
|
||||
case SCENE_HAUNTED_WASTELAND:
|
||||
case SCENE_DEATH_MOUNTAIN_CRATER:
|
||||
case SCENE_ID_MAX:
|
||||
return false;
|
||||
case SCENE_FISHING_POND:
|
||||
case SCENE_HYRULE_FIELD:
|
||||
case SCENE_KAKARIKO_VILLAGE:
|
||||
case SCENE_GRAVEYARD:
|
||||
case SCENE_ZORAS_RIVER:
|
||||
case SCENE_LAKE_HYLIA:
|
||||
case SCENE_ZORAS_DOMAIN:
|
||||
case SCENE_ZORAS_FOUNTAIN:
|
||||
case SCENE_GERUDO_VALLEY:
|
||||
case SCENE_DESERT_COLOSSUS:
|
||||
case SCENE_GERUDOS_FORTRESS:
|
||||
case SCENE_HAUNTED_WASTELAND:
|
||||
case SCENE_HYRULE_CASTLE:
|
||||
case SCENE_DEATH_MOUNTAIN_TRAIL:
|
||||
case SCENE_DEATH_MOUNTAIN_CRATER:
|
||||
case SCENE_LON_LON_RANCH:
|
||||
return true;
|
||||
case SCENE_TEST01:
|
||||
|
|
|
@ -436,7 +436,7 @@ void RegionTable_Init_DekuTree() {
|
|||
#pragma endregion
|
||||
|
||||
// Boss Room
|
||||
areaTable[RR_DEKU_TREE_BOSS_ENTRYWAY] = Region("Deku Tree Boss Entryway", SCENE_DEKU_TREE_BOSS, {}, {}, {
|
||||
areaTable[RR_DEKU_TREE_BOSS_ENTRYWAY] = Region("Deku Tree Boss Entryway", SCENE_DEKU_TREE, {}, {}, {
|
||||
// Exits
|
||||
Entrance(RR_DEKU_TREE_OUTSIDE_BOSS_ROOM, []{return ctx->GetDungeon(DEKU_TREE)->IsVanilla();}),
|
||||
Entrance(RR_DEKU_TREE_MQ_OUTSIDE_BOSS_ROOM, []{return ctx->GetDungeon(DEKU_TREE)->IsMQ();}),
|
||||
|
|
|
@ -565,7 +565,7 @@ void RegionTable_Init_DodongosCavern() {
|
|||
Entrance(RR_DODONGOS_CAVERN_BOSS_ROOM, []{return true;}),
|
||||
});
|
||||
|
||||
areaTable[RR_DODONGOS_CAVERN_BOSS_ROOM] = Region("Dodongos Cavern Boss Room", SCENE_DODONGOS_CAVERN_BOSS, {
|
||||
areaTable[RR_DODONGOS_CAVERN_BOSS_ROOM] = Region("Dodongos Cavern Boss Room", SCENE_DODONGOS_CAVERN, {
|
||||
// Events
|
||||
EventAccess(&logic->DodongosCavernClear, []{return logic->DodongosCavernClear || (Here(RR_DODONGOS_CAVERN_BOSS_ROOM, []{return logic->HasExplosives() || (logic->CanUse(RG_MEGATON_HAMMER) && ctx->GetTrickOption(RT_DC_HAMMER_FLOOR));}) && logic->CanKillEnemy(RE_KING_DODONGO)); /*todo add chu kill to tricks*/}),
|
||||
}, {
|
||||
|
|
|
@ -742,7 +742,7 @@ void RegionTable_Init_FireTemple() {
|
|||
Entrance(RR_FIRE_TEMPLE_BOSS_ROOM, []{return true;}),
|
||||
});
|
||||
|
||||
areaTable[RR_FIRE_TEMPLE_BOSS_ROOM] = Region("Fire Temple Boss Room", SCENE_FIRE_TEMPLE_BOSS, {
|
||||
areaTable[RR_FIRE_TEMPLE_BOSS_ROOM] = Region("Fire Temple Boss Room", SCENE_FIRE_TEMPLE, {
|
||||
// Events
|
||||
EventAccess(&logic->FireTempleClear, []{return logic->FireTempleClear || (logic->FireTimer() >= 64 && logic->CanKillEnemy(RE_VOLVAGIA));}),
|
||||
}, {
|
||||
|
|
|
@ -597,7 +597,7 @@ void RegionTable_Init_ForestTemple() {
|
|||
#pragma endregion
|
||||
|
||||
// Boss Room
|
||||
areaTable[RR_FOREST_TEMPLE_BOSS_ENTRYWAY] = Region("Forest Temple Boss Entryway", SCENE_FOREST_TEMPLE_BOSS, {}, {}, {
|
||||
areaTable[RR_FOREST_TEMPLE_BOSS_ENTRYWAY] = Region("Forest Temple Boss Entryway", SCENE_FOREST_TEMPLE, {}, {}, {
|
||||
// Exits
|
||||
Entrance(RR_FOREST_TEMPLE_BOSS_REGION, []{return ctx->GetDungeon(FOREST_TEMPLE)->IsVanilla() && false;}),
|
||||
Entrance(RR_FOREST_TEMPLE_MQ_BOSS_REGION, []{return ctx->GetDungeon(FOREST_TEMPLE)->IsMQ() && false;}),
|
||||
|
|
|
@ -432,7 +432,7 @@ void RegionTable_Init_GanonsCastle() {
|
|||
|
||||
#pragma region Tower and Escape
|
||||
|
||||
areaTable[RR_GANONS_TOWER_ENTRYWAY] = Region("Ganon's Tower Entryway", SCENE_GANONS_TOWER, {}, {}, {
|
||||
areaTable[RR_GANONS_TOWER_ENTRYWAY] = Region("Ganon's Tower Entryway", SCENE_INSIDE_GANONS_CASTLE, {}, {}, {
|
||||
//Exits
|
||||
Entrance(RR_GANONS_CASTLE_LOBBY, []{return ctx->GetDungeon(GANONS_CASTLE)->IsVanilla();}),
|
||||
Entrance(RR_GANONS_CASTLE_MQ_MAIN, []{return ctx->GetDungeon(GANONS_CASTLE)->IsMQ();}),
|
||||
|
|
|
@ -350,7 +350,7 @@ void RegionTable_Init_JabuJabusBelly() {
|
|||
#pragma endregion
|
||||
|
||||
// Boss Room
|
||||
areaTable[RR_JABU_JABUS_BELLY_BOSS_ENTRYWAY] = Region("Jabu Jabus Belly Boss Entryway", SCENE_JABU_JABU_BOSS, {}, {}, {
|
||||
areaTable[RR_JABU_JABUS_BELLY_BOSS_ENTRYWAY] = Region("Jabu Jabus Belly Boss Entryway", SCENE_JABU_JABU, {}, {}, {
|
||||
// Exits
|
||||
Entrance(RR_JABU_JABUS_BELLY_NEAR_BOSS_ROOM, []{return ctx->GetDungeon(JABU_JABUS_BELLY)->IsVanilla();}),
|
||||
Entrance(RR_JABU_JABUS_BELLY_MQ_EAST_ROOM, []{return ctx->GetDungeon(JABU_JABUS_BELLY)->IsMQ();}),
|
||||
|
|
|
@ -399,7 +399,7 @@ void RegionTable_Init_ShadowTemple() {
|
|||
#pragma endregion
|
||||
|
||||
// Boss Room
|
||||
areaTable[RR_SHADOW_TEMPLE_BOSS_ENTRYWAY] = Region("Shadow Temple Boss Entryway", SCENE_SHADOW_TEMPLE_BOSS, {}, {}, {
|
||||
areaTable[RR_SHADOW_TEMPLE_BOSS_ENTRYWAY] = Region("Shadow Temple Boss Entryway", SCENE_SHADOW_TEMPLE, {}, {}, {
|
||||
// Exits
|
||||
Entrance(RR_SHADOW_TEMPLE_BEYOND_BOAT, []{return ctx->GetDungeon(SHADOW_TEMPLE)->IsVanilla() && false;}),
|
||||
Entrance(RR_SHADOW_TEMPLE_MQ_BEYOND_BOAT, []{return ctx->GetDungeon(SHADOW_TEMPLE)->IsMQ() && false;}),
|
||||
|
|
|
@ -547,7 +547,7 @@ void RegionTable_Init_SpiritTemple() {
|
|||
#pragma endregion
|
||||
|
||||
// Boss Room
|
||||
areaTable[RR_SPIRIT_TEMPLE_BOSS_ENTRYWAY] = Region("Spirit Temple Boss Entryway", SCENE_SPIRIT_TEMPLE_BOSS, {}, {}, {
|
||||
areaTable[RR_SPIRIT_TEMPLE_BOSS_ENTRYWAY] = Region("Spirit Temple Boss Entryway", SCENE_SPIRIT_TEMPLE, {}, {}, {
|
||||
// Exits
|
||||
Entrance(RR_SPIRIT_TEMPLE_INSIDE_STATUE_HEAD, []{return ctx->GetDungeon(SPIRIT_TEMPLE)->IsVanilla() && false;}),
|
||||
Entrance(RR_SPIRIT_TEMPLE_MQ_INSIDE_STATUE_HEAD, []{return ctx->GetDungeon(SPIRIT_TEMPLE)->IsMQ() && false;}),
|
||||
|
|
|
@ -839,7 +839,7 @@ void RegionTable_Init_WaterTemple() {
|
|||
#pragma endregion
|
||||
|
||||
// Boss Room
|
||||
areaTable[RR_WATER_TEMPLE_BOSS_ENTRYWAY] = Region("Water Temple Boss Entryway", SCENE_WATER_TEMPLE_BOSS, {}, {}, {
|
||||
areaTable[RR_WATER_TEMPLE_BOSS_ENTRYWAY] = Region("Water Temple Boss Entryway", SCENE_WATER_TEMPLE, {}, {}, {
|
||||
// Exits
|
||||
Entrance(RR_WATER_TEMPLE_PRE_BOSS_ROOM, []{return ctx->GetDungeon(WATER_TEMPLE)->IsVanilla() && false;}),
|
||||
Entrance(RR_WATER_TEMPLE_MQ_BOSS_DOOR, []{return ctx->GetDungeon(WATER_TEMPLE)->IsMQ() && false;}),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue