Skip to content

Commit c03f192

Browse files
committed
Prevent needing to guess on Desert Surface 3
1 parent 5567f63 commit c03f192

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

Source/Randomizer.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,17 @@ void Randomizer::AdjustSpeed() {
7676
void Randomizer::RandomizeDesert() {
7777
std::vector<int> puzzles = desertPanels;
7878
std::vector<int> valid1 = { 0x00698, 0x0048F, 0x09F92, 0x09DA6, 0x0078D, 0x04D18, 0x0117A, 0x17ECA, 0x0A02D };
79-
std::vector<int> valid2 = { 0x00698, 0x09F92, 0x0A036, 0x0A049, 0x0A053, 0x00422, 0x006E3, 0x00C72, 0x008BB, 0x0078D, 0x01205, 0x181AB, 0x012D7, 0x17ECA, 0x0A02D };
79+
std::vector<int> valid2 = { 0x00698, 0x0048F, 0x09F92, 0x0A036, 0x0A049, 0x0A053, 0x00422, 0x006E3, 0x00C72, 0x008BB, 0x0078D, 0x04D18, 0x01205, 0x181AB, 0x012D7, 0x17ECA, 0x0A02D };
8080
std::vector<int> valid3 = { 0x00698, 0x0048F, 0x09F92, 0x0A036, 0x0A049, 0x00422, 0x008BB, 0x0078D, 0x18313, 0x01205 };
8181
std::vector<int> validSurfaceSeven = { 0x00698, 0x0048F, 0x09F92, 0x0A036, 0x0A049, 0x0A053, 0x00422, 0x006E3, 0x0A02D, 0x00C72, 0x0129D, 0x008BB, 0x0078D, 0x18313, 0x04D18, 0x01205, 0x181AB, 0x17ECA, 0x012D7 };
82+
std::vector<int> validSurfaceThree = { 0x00698, 0x0048F, 0x09F92, 0x0A049, 0x006E3, 0x008BB, 0x0078D, 0x01205, 0x012D7, 0x17ECA, 0x0A02D };
8283
int endIndex = static_cast<int>(desertPanels.size());
8384
for (int i = 0; i < endIndex - 1; i++) {
8485
const int target = Random::rand() % (endIndex - i) + i;
8586
//Prevent ambiguity caused by shadows, and ensure all latches on Surface 7 and Light 3 must be opened
8687
if (i == target || i == 1 && std::find(valid1.begin(), valid1.end(), desertPanels[target]) == valid1.end() ||
87-
(i == 2 || i == 9) && std::find(valid2.begin(), valid2.end(), desertPanels[target]) == valid2.end() ||
88+
i == 2 && std::find(validSurfaceThree.begin(), validSurfaceThree.end(), desertPanels[target]) == validSurfaceThree.end() ||
89+
i == 9 && std::find(valid2.begin(), valid2.end(), desertPanels[target]) == valid2.end() ||
8890
i == 6 && std::find(validSurfaceSeven.begin(), validSurfaceSeven.end(), desertPanels[target]) == validSurfaceSeven.end() ||
8991
i == 10 && std::find(valid3.begin(), valid3.end(), desertPanels[target]) == valid3.end()) {
9092
i--;

0 commit comments

Comments
 (0)