@@ -76,15 +76,17 @@ void Randomizer::AdjustSpeed() {
7676void 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