diff options
| -rw-r--r-- | WitnessRandomizer/Panels.h | 682 | ||||
| -rw-r--r-- | WitnessRandomizer/WitnessRandomizer.cpp | 54 |
2 files changed, 365 insertions, 371 deletions
| diff --git a/WitnessRandomizer/Panels.h b/WitnessRandomizer/Panels.h index 8d594b1..fff7053 100644 --- a/WitnessRandomizer/Panels.h +++ b/WitnessRandomizer/Panels.h | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | #pragma once | 1 | #pragma once |
| 2 | #include <vector> | 2 | #include <vector> |
| 3 | 3 | ||
| 4 | // Some of these (the puzzle ones) are duplicated elsewhere | ||
| 4 | std::vector<int> lasers = { | 5 | std::vector<int> lasers = { |
| 5 | 0x0360D, // Symmetry | 6 | 0x0360D, // Symmetry |
| 6 | 0x03615, // Swamp | 7 | 0x03615, // Swamp |
| @@ -11,8 +12,10 @@ std::vector<int> lasers = { | |||
| 11 | // 0x03608, // Desert | 12 | // 0x03608, // Desert |
| 12 | 0x03612, // Quarry | 13 | 0x03612, // Quarry |
| 13 | 0x03616, // Jungle | 14 | 0x03616, // Jungle |
| 15 | 0x19650, // Shadows | ||
| 14 | }; | 16 | }; |
| 15 | 17 | ||
| 18 | // Note: Some of these (non-desert) are duplicated elsewhere | ||
| 16 | std::vector<int> burnablePanels = { | 19 | std::vector<int> burnablePanels = { |
| 17 | 0x17D9C, // Treehouse Yellow 7 | 20 | 0x17D9C, // Treehouse Yellow 7 |
| 18 | 0x17DC2, // Treehouse Yellow 8 | 21 | 0x17DC2, // Treehouse Yellow 8 |
| @@ -31,19 +34,233 @@ std::vector<int> burnablePanels = { | |||
| 31 | 0x28ACB, // Town Blue 4 | 34 | 0x28ACB, // Town Blue 4 |
| 32 | 0x28ACC, // Town Blue 5 | 35 | 0x28ACC, // Town Blue 5 |
| 33 | 0x17CF0, // Mill Discard | 36 | 0x17CF0, // Mill Discard |
| 37 | 0x17C31, // Desert Final Transparent | ||
| 38 | |||
| 39 | 0x00698, // Desert Surface 1 | ||
| 40 | 0x0048F, // Desert Surface 2 | ||
| 41 | 0x09F92, // Desert Surface 3 | ||
| 42 | 0x0A036, // Desert Surface 4 | ||
| 43 | 0x09DA6, // Desert Surface 5 | ||
| 44 | 0x0A049, // Desert Surface 6 | ||
| 45 | 0x0A053, // Desert Surface 7 | ||
| 46 | 0x09F94, // Desert Surface 8 | ||
| 47 | 0x00422, // Desert Light 1 | ||
| 48 | 0x006E3, // Desert Light 2 | ||
| 49 | 0x0A02D, // Desert Light 3 | ||
| 50 | 0x00C72, // Desert Pond 1 | ||
| 51 | 0x0129D, // Desert Pond 2 | ||
| 52 | 0x008BB, // Desert Pond 3 | ||
| 53 | 0x0078D, // Desert Pond 4 | ||
| 54 | 0x18313, // Desert Pond 5 | ||
| 55 | 0x04D18, // Desert Flood 1 | ||
| 56 | 0x01205, // Desert Flood 2 | ||
| 57 | 0x181AB, // Desert Flood 3 | ||
| 58 | 0x0117A, // Desert Flood 4 | ||
| 59 | 0x17ECA, // Desert Flood 5 | ||
| 60 | 0x012D7, // Desert Final Far | ||
| 61 | }; | ||
| 62 | |||
| 63 | // Note: Some of these (non-switches) are duplicated elsewhere | ||
| 64 | std::vector<int> leftRightPanels = { | ||
| 65 | 0x17D02, // Town Windmill Control | ||
| 66 | }; | ||
| 67 | |||
| 68 | // Note: Some of these (non-switches) are duplicated elsewhere | ||
| 69 | std::vector<int> upDownPanels = { | ||
| 70 | 0x0A3B5, // Tutorial Back Left | ||
| 71 | 0x17CC4, // Mill Elevator Control | ||
| 72 | }; | ||
| 73 | |||
| 74 | std::vector<int> leftForwardRightPanels = { | ||
| 75 | 0x17DD1, // Treehouse Left Orange 9 has to pivot | ||
| 76 | 0x17CE3, // Treehouse Right Orange 4 has to pivot | ||
| 77 | 0x17DB7, // Treehouse Right Orange 10 has to pivot | ||
| 78 | 0x17E52, // Treehouse Green 4 has to pivot | ||
| 79 | }; | ||
| 80 | |||
| 81 | std::vector<int> pillars = { | ||
| 82 | 0x0383D, // Mountain 3 Left Pillar 1 | ||
| 83 | 0x0383F, // Mountain 3 Left Pillar 2 | ||
| 84 | 0x03859, // Mountain 3 Left Pillar 3 | ||
| 85 | 0x339BB, // Mountain 3 Left Pillar 4 | ||
| 86 | 0x0383A, // Mountain 3 Right Pillar 1 | ||
| 87 | 0x09E56, // Mountain 3 Right Pillar 2 | ||
| 88 | 0x09E5A, // Mountain 3 Right Pillar 3 | ||
| 89 | 0x33961, // Mountain 3 Right Pillar 4 | ||
| 90 | 0x09DD5, // UTM Challenge Pillar | ||
| 91 | // 0x1C31A, // Challenge Left Pillar | ||
| 92 | // 0x1C319, // Challenge Right Pillar | ||
| 93 | }; | ||
| 94 | |||
| 95 | std::vector<int> mountainMultipanel = { | ||
| 96 | 0x09FCC, // Mountain 2 Multipanel 1 | ||
| 97 | 0x09FCE, // Mountain 2 Multipanel 2 | ||
| 98 | 0x09FCF, // Mountain 2 Multipanel 3 | ||
| 99 | 0x09FD0, // Mountain 2 Multipanel 4 | ||
| 100 | 0x09FD1, // Mountain 2 Multipanel 5 | ||
| 101 | 0x09FD2, // Mountain 2 Multipanel 6 | ||
| 34 | }; | 102 | }; |
| 35 | 103 | ||
| 36 | std::vector<int> tutorialPanels = { | 104 | // There might be something to do with these, I haven't decided yet. |
| 37 | // 0x0A3B5, // Back Left | 105 | std::vector<int> nothingPanels = { |
| 38 | 0x0A3B2, // Back Right | 106 | // Doors & Shortcuts & Shortcut doors & Door controls |
| 39 | 0x00295, // Center Left | 107 | 0x0C339, // Desert Surface Door |
| 40 | 0x00293, // Front Center | 108 | 0x0A249, // Desert Pond Exit Door |
| 41 | 0x002C2, // Front Left | 109 | 0x275ED, // Mill EP Door |
| 42 | 0x0C335, // Pillar | 110 | 0x17CAC, // Mill Stairs Shortcut Door |
| 43 | 0x0C373, // Patio floor | 111 | 0x38663, // Boathouse Shortcut |
| 112 | 0x09E49, // Keep Shadows Shortcut | ||
| 113 | 0x0361B, // Keep Tower Shortcut | ||
| 114 | 0x334DC, // Shadows Inner Door Control | ||
| 115 | 0x334DB, // Shadows Outer Door Control | ||
| 116 | 0x2700B, // Treehouse Exterior Door Control | ||
| 117 | 0x17CBC, // Treehouse Interior Door Control | ||
| 118 | // 0x337FA, // Jungle Shortcut | ||
| 119 | |||
| 120 | // Controls (?) | ||
| 121 | 0x09FA0, // Desert Surface 3 Control | ||
| 122 | 0x09F86, // Desert Surface 8 Control | ||
| 123 | 0x1C2DF, // Desert Flood Control Lower Far Left | ||
| 124 | 0x1831E, // Desert Flood Control Lower Far Right | ||
| 125 | 0x1C260, // Desert Flood Control Lower Near Left | ||
| 126 | 0x1831C, // Desert Flood Control Lower Near Right | ||
| 127 | 0x1C2F3, // Desert Flood Control Raise Far Left | ||
| 128 | 0x1831D, // Desert Flood Control Raise Far Right | ||
| 129 | 0x1C2B1, // Desert Flood Control Raise Near Left | ||
| 130 | 0x1831B, // Desert Flood Control Raise Near Right | ||
| 131 | 0x0A015, // Desert Final Far Control | ||
| 132 | 0x03678, // Mill Lower Ramp Contol | ||
| 133 | 0x03679, // Mill Lower Lift Control | ||
| 134 | 0x03675, // Mill Upper Lift Control | ||
| 135 | 0x03676, // Mill Upper Ramp Control | ||
| 136 | 0x03852, // Boathouse Ramp Angle Control | ||
| 137 | 0x03858, // Boathouse Ramp Position Control | ||
| 138 | 0x275FA, // Boathouse Hook Control | ||
| 139 | 0x037FF, // Treehouse Drawbridge Control | ||
| 140 | 0x09F98, // Town Laser Redirect Control | ||
| 141 | 0x334D8, // Town RGB Light Control | ||
| 142 | 0x17E2B, // Swamp Flood Gate Control | ||
| 143 | 0x00609, // Swamp Surface Sliding Bridge Control | ||
| 144 | 0x18488, // Swamp Underwater Sliding Bridge Control | ||
| 145 | 0x17C0A, // Swamp Island Control 1 | ||
| 146 | 0x17E07, // Swamp Island Control 2 | ||
| 147 | 0x181F5, // Swamp Rotating Bridge Control | ||
| 148 | |||
| 149 | // Vault Boxes | ||
| 150 | 0x03481, // Outside Tutorial Vault Box | ||
| 151 | 0x0339E, // Desert Vault Box | ||
| 152 | 0x03535, // Shipwreck Vault Box | ||
| 153 | 0x03702, // Jungle Vault Box | ||
| 154 | 0x03542, // Mountainside Vault Box | ||
| 155 | |||
| 156 | // Boat Summons | ||
| 157 | 0x17CC8, // Glass Factory Summon Boat | ||
| 158 | 0x17CA6, // Boathouse Summon Boat | ||
| 159 | 0x17C95, // Treehouse Summon Boat | ||
| 160 | 0x0A054, // Town Summon Boat | ||
| 161 | 0x09DB8, // Swamp Summon Boat | ||
| 162 | 0x17CDF, // Jungle Summon Boat | ||
| 163 | |||
| 164 | // Identical sets | ||
| 165 | 0x00143, // Orchard Apple Tree 1 | ||
| 166 | 0x0003B, // Orchard Apple Tree 2 | ||
| 167 | 0x00055, // Orchard Apple Tree 3 | ||
| 168 | 0x032F7, // Orchard Apple Tree 4 | ||
| 169 | 0x032FF, // Orchard Apple Tree 5 | ||
| 170 | 0x009B8, // Symmetry Island Transparent 1 | ||
| 171 | 0x003E8, // Symmetry Island Transparent 2 | ||
| 172 | 0x00A15, // Symmetry Island Transparent 3 | ||
| 173 | 0x00B53, // Symmetry Island Transparent 4 | ||
| 174 | 0x00B8D, // Symmetry Island Transparent 5 | ||
| 175 | |||
| 176 | // Misc | ||
| 177 | 0x03629, // Tutorial Gate Open | ||
| 178 | 0x09FAA, // Desert Lightswitch | ||
| 179 | 0x0C335, // Tutorial Pillar | ||
| 180 | 0x0C373, // Tutorial Patio floor | ||
| 181 | 0x1C349, // Symmetry Island Door 2 - Collision fails here, sadly | ||
| 182 | 0x18076, // Desert Flood Exit - I am doing something with this -- but it's a very unique panel. | ||
| 183 | 0x0A15C, // Desert Final Left Convex | ||
| 184 | 0x09FFF, // Desert Final Left Concave | ||
| 185 | 0x0A15F, // Desert Final Near | ||
| 186 | 0x033EA, // Keep Yellow Pressure Plates | ||
| 187 | 0x0A3A8, // Keep Yellow Reset | ||
| 188 | 0x01BE9, // Keep Purple Pressure Plates | ||
| 189 | 0x0A3B9, // Keep Purple Reset | ||
| 190 | 0x01CD3, // Keep Green Pressure Plates | ||
| 191 | 0x0A3BB, // Keep Green Reset | ||
| 192 | 0x01D3F, // Keep Blue Pressure Plates | ||
| 193 | 0x0A3AD, // Keep Blue Reset | ||
| 194 | 0x2896A, // Town Bridge | ||
| 195 | 0x28A69, // Town Lattice | ||
| 196 | 0x28A79, // Town Maze | ||
| 197 | 0x28B39, // Town Red Hexagonal | ||
| 198 | 0x034E3, // Town Soundproof Dots | ||
| 199 | 0x034E4, // Town Soundproof Waves | ||
| 200 | 0x079DF, // Town Triple | ||
| 201 | 0x00815, // Theater Video Input | ||
| 202 | 0x03553, // Theater Tutorial Video | ||
| 203 | 0x03552, // Theater Desert Video | ||
| 204 | 0x0354E, // Theater Jungle Video | ||
| 205 | 0x03549, // Theater Challenge Video | ||
| 206 | 0x0354F, // Theater Shipwreck Video | ||
| 207 | 0x03545, // Theater Mountain Video | ||
| 208 | 0x18590, // Town Transparent | ||
| 209 | 0x28AE3, // Town Wire | ||
| 210 | |||
| 211 | |||
| 212 | // 0x09E39, // Mountain 1 Purple Pathway | ||
| 213 | // 0x33AF5, // Mountain 1 Blue 1 | ||
| 214 | // 0x33AF7, // Mountain 1 Blue 2 | ||
| 215 | // 0x09F6E, // Mountain 1 Blue 3 | ||
| 216 | // 0x09FD8, // Mountain 2 Rainbow 5 | ||
| 217 | // 0x09E86, // Mountain 2 Blue Pathway | ||
| 218 | // 0x09ED8, // Mountain 2 Orange Pathway | ||
| 219 | // 0x09EEB, // Mountain 2 Elevator | ||
| 220 | 0x09F8E, // Mountain 3 Near Right Floor | ||
| 221 | 0x09FC1, // Mountain 3 Near Left Floor | ||
| 222 | 0x09F01, // Mountain 3 Far Right Floor | ||
| 223 | 0x09EFF, // Mountain 3 Far Left Floor | ||
| 224 | 0x09FDA, // Mountain 3 Giant Floor | ||
| 225 | // 0x01983, // Mountain 3 Left Peekaboo | ||
| 226 | // 0x01987, // Mountain 3 Right Peekaboo | ||
| 227 | // 0x3D9A6, // Mountain 3 Left Close Door | ||
| 228 | // 0x3D9A7, // Mountain 3 Right Close Door | ||
| 229 | // 0x3D9AA, // Mountain 3 Left Activate Elevator | ||
| 230 | // 0x3D9A8, // Mountain 3 Right Activate Elevator | ||
| 231 | // 0x3D9A9, // Mountain 3 Launch Elevator | ||
| 232 | // 0x3C113, // Mountain 3 Left Open Door | ||
| 233 | // 0x3C114, // Mountain 3 Right Open Door | ||
| 234 | // 0x09F7F, // Mountaintop Laser Box | ||
| 235 | // 0x17C34, // Mountaintop Perspective | ||
| 236 | // 0x0A16E, // UTM Challenge Entrance | ||
| 237 | // 0x335AB, // UTM In Elevator Control | ||
| 238 | // 0x3369D, // UTM Lower Elevator Control | ||
| 239 | // 0x288EA, // UTM Perspective 1 | ||
| 240 | // 0x288FC, // UTM Perspective 2 | ||
| 241 | // 0x289E7, // UTM Perspective 3 | ||
| 242 | // 0x288AA, // UTM Perspective 4 | ||
| 243 | // 0x334E1, // UTM Secret Door Control | ||
| 244 | // 0x335AC, // UTM Upper Elevator Control | ||
| 245 | // 0x2773D, // Tunnels Desert Shortcut | ||
| 246 | // 0x27732, // Tunnels Theater Shortcut | ||
| 247 | // 0x2FAF6, // Tunnels Vault Box | ||
| 248 | // 0x0A099, // Bunker Glass Door | ||
| 249 | // 0x34BC5, // Bunker Open Ultraviolet | ||
| 250 | // 0x34BC6, // Bunker Close Ultraviolet | ||
| 251 | // 0x15ADD, // Jungle Vault | ||
| 252 | // 0x17CAA, // Jungle Courtyard Gate | ||
| 253 | // 0x17CAB, // Jungle Pop-up Wall | ||
| 254 | 0x0005C, // Glass Factory Vertical Symmetry 5 | ||
| 44 | }; | 255 | }; |
| 45 | 256 | ||
| 46 | std::vector<int> outsideTutorialPanels = { | 257 | std::vector<int> squarePanels = { |
| 258 | 0x00064, // Tutorial Straight | ||
| 259 | 0x00182, // Tutorial Bend | ||
| 260 | 0x0A3B2, // Tutorial Back Right | ||
| 261 | 0x00295, // Tutorial Center Left | ||
| 262 | 0x00293, // Tutorial Front Center | ||
| 263 | 0x002C2, // Tutorial Front Left | ||
| 47 | 0x0005D, // Outside Tutorial Dots Tutorial 1 | 264 | 0x0005D, // Outside Tutorial Dots Tutorial 1 |
| 48 | 0x0005E, // Outside Tutorial Dots Tutorial 2 | 265 | 0x0005E, // Outside Tutorial Dots Tutorial 2 |
| 49 | 0x0005F, // Outside Tutorial Dots Tutorial 3 | 266 | 0x0005F, // Outside Tutorial Dots Tutorial 3 |
| @@ -59,33 +276,21 @@ std::vector<int> outsideTutorialPanels = { | |||
| 59 | 0x00020, // Outside Tutorial Stones Tutorial 8 | 276 | 0x00020, // Outside Tutorial Stones Tutorial 8 |
| 60 | 0x00021, // Outside Tutorial Stones Tutorial 9 | 277 | 0x00021, // Outside Tutorial Stones Tutorial 9 |
| 61 | 0x033D4, // Outside Tutorial Vault | 278 | 0x033D4, // Outside Tutorial Vault |
| 62 | // 0x03481, // Outside Tutorial Vault Box | ||
| 63 | 0x0A171, // Tutorial Optional Door 1 | 279 | 0x0A171, // Tutorial Optional Door 1 |
| 64 | 0x04CA4, // Tutorial Optional Door 2 | 280 | 0x04CA4, // Tutorial Optional Door 2 |
| 65 | 0x17CFB, // Outside Tutorial Discard | 281 | 0x17CFB, // Outside Tutorial Discard |
| 66 | // 0x00143, // Orchard Apple Tree 1 | ||
| 67 | // 0x0003B, // Orchard Apple Tree 2 | ||
| 68 | // 0x00055, // Orchard Apple Tree 3 | ||
| 69 | // 0x032F7, // Orchard Apple Tree 4 | ||
| 70 | // 0x032FF, // Orchard Apple Tree 5 | ||
| 71 | }; | ||
| 72 | |||
| 73 | std::vector<int> symmetryPanels = { | ||
| 74 | 0x3C12B, // Glass Factory Discard | 282 | 0x3C12B, // Glass Factory Discard |
| 75 | 0x01A54, // Glass Factory Entry | 283 | 0x01A54, // Glass Factory Entry |
| 76 | 0x00086, // Glass Factory Vertical Symmetry 1 | 284 | 0x00086, // Glass Factory Vertical Symmetry 1 |
| 77 | 0x00087, // Glass Factory Vertical Symmetry 2 | 285 | 0x00087, // Glass Factory Vertical Symmetry 2 |
| 78 | 0x00059, // Glass Factory Vertical Symmetry 3 | 286 | 0x00059, // Glass Factory Vertical Symmetry 3 |
| 79 | 0x00062, // Glass Factory Vertical Symmetry 4 | 287 | 0x00062, // Glass Factory Vertical Symmetry 4 |
| 80 | 0x0005C, // Glass Factory Vertical Symmetry 5 | ||
| 81 | // 0x17CC8, // Glass Factory Summon Boat | ||
| 82 | 0x0008D, // Glass Factory Rotational Symmetry 1 | 288 | 0x0008D, // Glass Factory Rotational Symmetry 1 |
| 83 | 0x00081, // Glass Factory Rotational Symmetry 2 | 289 | 0x00081, // Glass Factory Rotational Symmetry 2 |
| 84 | 0x00083, // Glass Factory Rotational Symmetry 3 | 290 | 0x00083, // Glass Factory Rotational Symmetry 3 |
| 85 | 0x00084, // Glass Factory Melting 1 | 291 | 0x00084, // Glass Factory Melting 1 |
| 86 | 0x00082, // Glass Factory Melting 2 | 292 | 0x00082, // Glass Factory Melting 2 |
| 87 | 0x0343A, // Glass Factory Melting 3 | 293 | 0x0343A, // Glass Factory Melting 3 |
| 88 | |||
| 89 | 0x000B0, // Symmetry Island Door 1 | 294 | 0x000B0, // Symmetry Island Door 1 |
| 90 | 0x00022, // Symmetry Island Black Dots 1 | 295 | 0x00022, // Symmetry Island Black Dots 1 |
| 91 | 0x00023, // Symmetry Island Black Dots 2 | 296 | 0x00023, // Symmetry Island Black Dots 2 |
| @@ -105,12 +310,6 @@ std::vector<int> symmetryPanels = { | |||
| 105 | 0x00070, // Symmetry Island Fading Lines 5 | 310 | 0x00070, // Symmetry Island Fading Lines 5 |
| 106 | 0x00071, // Symmetry Island Fading Lines 6 | 311 | 0x00071, // Symmetry Island Fading Lines 6 |
| 107 | 0x00076, // Symmetry Island Fading Lines 7 | 312 | 0x00076, // Symmetry Island Fading Lines 7 |
| 108 | // 0x009B8, // Symmetry Island Transparent 1 // Too mean for right now | ||
| 109 | // 0x003E8, // Symmetry Island Transparent 2 // Too mean for right now | ||
| 110 | // 0x00A15, // Symmetry Island Transparent 3 // Too mean for right now | ||
| 111 | // 0x00B53, // Symmetry Island Transparent 4 // Too mean for right now | ||
| 112 | // 0x00B8D, // Symmetry Island Transparent 5 // Too mean for right now | ||
| 113 | // 0x1C349, // Symmetry Island Door 2 - Collision fails here, sadly | ||
| 114 | 0x00A52, // Symmetry Island Laser Yellow 1 | 313 | 0x00A52, // Symmetry Island Laser Yellow 1 |
| 115 | 0x00A57, // Symmetry Island Laser Yellow 2 | 314 | 0x00A57, // Symmetry Island Laser Yellow 2 |
| 116 | 0x00A5B, // Symmetry Island Laser Yellow 3 | 315 | 0x00A5B, // Symmetry Island Laser Yellow 3 |
| @@ -119,64 +318,15 @@ std::vector<int> symmetryPanels = { | |||
| 119 | 0x00A68, // Symmetry Island Laser Blue 3 | 318 | 0x00A68, // Symmetry Island Laser Blue 3 |
| 120 | 0x17CE7, // Desert Discard | 319 | 0x17CE7, // Desert Discard |
| 121 | 0x0CC7B, // Desert Vault | 320 | 0x0CC7B, // Desert Vault |
| 122 | }; | 321 | 0x17C31, // Desert Final Transparent |
| 123 | |||
| 124 | std::vector<int> desertPanels = { | ||
| 125 | // 0x0339E, // Desert Vault Box | ||
| 126 | 0x00698, // Desert Surface 1 | ||
| 127 | 0x0048F, // Desert Surface 2 | ||
| 128 | 0x09F92, // Desert Surface 3 | ||
| 129 | // 0x09FA0, // Desert Surface 3 Control | ||
| 130 | 0x0A036, // Desert Surface 4 | ||
| 131 | 0x09DA6, // Desert Surface 5 | ||
| 132 | 0x0A049, // Desert Surface 6 | ||
| 133 | 0x0A053, // Desert Surface 7 | ||
| 134 | 0x09F94, // Desert Surface 8 | ||
| 135 | // 0x09F86, // Desert Surface 8 Control | ||
| 136 | // 0x0C339, // Desert Surface Door | ||
| 137 | // 0x09FAA, // Desert Lightswitch | ||
| 138 | 0x00422, // Desert Light 1 | ||
| 139 | 0x006E3, // Desert Light 2 | ||
| 140 | // 0x0A02D, // Desert Light 3 | ||
| 141 | 0x00C72, // Desert Pond 1 | ||
| 142 | 0x0129D, // Desert Pond 2 | ||
| 143 | 0x008BB, // Desert Pond 3 | ||
| 144 | 0x0078D, // Desert Pond 4 | ||
| 145 | 0x18313, // Desert Pond 5 | ||
| 146 | // 0x0A249, // Desert Pond Exit Door | ||
| 147 | // 0x1C2DF, // Desert Flood Control Lower Far Left | ||
| 148 | // 0x1831E, // Desert Flood Control Lower Far Right | ||
| 149 | // 0x1C260, // Desert Flood Control Lower Near Left | ||
| 150 | // 0x1831C, // Desert Flood Control Lower Near Right | ||
| 151 | // 0x1C2F3, // Desert Flood Control Raise Far Left | ||
| 152 | // 0x1831D, // Desert Flood Control Raise Far Right | ||
| 153 | // 0x1C2B1, // Desert Flood Control Raise Near Left | ||
| 154 | // 0x1831B, // Desert Flood Control Raise Near Right | ||
| 155 | 0x04D18, // Desert Flood 1 | ||
| 156 | 0x01205, // Desert Flood 2 | ||
| 157 | 0x181AB, // Desert Flood 3 | ||
| 158 | 0x0117A, // Desert Flood 4 | ||
| 159 | 0x17ECA, // Desert Flood 5 | ||
| 160 | // 0x18076, // Desert Flood Exit | ||
| 161 | // 0x0A15C, // Desert Final Left Convex | ||
| 162 | // 0x09FFF, // Desert Final Left Concave | ||
| 163 | // 0x0A15F, // Desert Final Near | ||
| 164 | // 0x17C31, // Desert Final Transparent | ||
| 165 | 0x012D7, // Desert Final Far | ||
| 166 | // 0x0A015, // Desert Final Far Control | ||
| 167 | }; | ||
| 168 | |||
| 169 | std::vector<int> quarryPanels = { | ||
| 170 | 0x01E5A, // Mill Entry Door Left | 322 | 0x01E5A, // Mill Entry Door Left |
| 171 | 0x01E59, // Mill Entry Door Right | 323 | 0x01E59, // Mill Entry Door Right |
| 172 | // 0x03678, // Mill Lower Ramp Contol | ||
| 173 | 0x00E0C, // Mill Lower Row 1 | 324 | 0x00E0C, // Mill Lower Row 1 |
| 174 | 0x01489, // Mill Lower Row 2 | 325 | 0x01489, // Mill Lower Row 2 |
| 175 | 0x0148A, // Mill Lower Row 3 | 326 | 0x0148A, // Mill Lower Row 3 |
| 176 | 0x014D9, // Mill Lower Row 4 | 327 | 0x014D9, // Mill Lower Row 4 |
| 177 | 0x014E7, // Mill Lower Row 5 | 328 | 0x014E7, // Mill Lower Row 5 |
| 178 | 0x014E8, // Mill Lower Row 6 | 329 | 0x014E8, // Mill Lower Row 6 |
| 179 | // 0x03679, // Mill Lower Lift Control | ||
| 180 | 0x00557, // Mill Upper Row 1 | 330 | 0x00557, // Mill Upper Row 1 |
| 181 | 0x005F1, // Mill Upper Row 2 | 331 | 0x005F1, // Mill Upper Row 2 |
| 182 | 0x00620, // Mill Upper Row 3 | 332 | 0x00620, // Mill Upper Row 3 |
| @@ -186,25 +336,17 @@ std::vector<int> quarryPanels = { | |||
| 186 | 0x03686, // Mill Upper Row 7 | 336 | 0x03686, // Mill Upper Row 7 |
| 187 | 0x014E9, // Mill Upper Row 8 | 337 | 0x014E9, // Mill Upper Row 8 |
| 188 | 0x0367C, // Mill Control Room 1 | 338 | 0x0367C, // Mill Control Room 1 |
| 189 | // 0x03675, // Mill Upper Lift Control | ||
| 190 | // 0x03676, // Mill Upper Ramp Control | ||
| 191 | 0x3C125, // Mill Control Room 2 | 339 | 0x3C125, // Mill Control Room 2 |
| 192 | // 0x275ED, // Mill EP Door | ||
| 193 | // 0x17CAC, // Mill Stairs Shortcut Door | ||
| 194 | 0x03677, // Mill Stairs Control | 340 | 0x03677, // Mill Stairs Control |
| 195 | 0x17CF0, // Mill Discard | 341 | 0x17CF0, // Mill Discard |
| 196 | // 0x17CC4, // Mill Elevator Control | 342 | 0x03612, // Quarry Laser |
| 197 | 0x021D5, // Boathouse Ramp Activation Shapers | 343 | 0x021D5, // Boathouse Ramp Activation Shapers |
| 198 | 0x034D4, // Boathouse Ramp Activation Stars | 344 | 0x034D4, // Boathouse Ramp Activation Stars |
| 199 | // 0x03852, // Boathouse Ramp Angle Control | ||
| 200 | 0x021B3, // Boathouse Erasers and Shapers 1 | 345 | 0x021B3, // Boathouse Erasers and Shapers 1 |
| 201 | 0x021B4, // Boathouse Erasers and Shapers 2 | 346 | 0x021B4, // Boathouse Erasers and Shapers 2 |
| 202 | 0x021B0, // Boathouse Erasers and Shapers 3 | 347 | 0x021B0, // Boathouse Erasers and Shapers 3 |
| 203 | 0x021AF, // Boathouse Erasers and Shapers 4 | 348 | 0x021AF, // Boathouse Erasers and Shapers 4 |
| 204 | 0x021AE, // Boathouse Erasers and Shapers 5 | 349 | 0x021AE, // Boathouse Erasers and Shapers 5 |
| 205 | // 0x17CA6, // Boathouse Summon Boat | ||
| 206 | // 0x03858, // Boathouse Ramp Position Control | ||
| 207 | // 0x38663, // Boathouse Shortcut | ||
| 208 | 0x021B5, // Boathouse Erasers and Stars 1 | 350 | 0x021B5, // Boathouse Erasers and Stars 1 |
| 209 | 0x021B6, // Boathouse Erasers and Stars 2 | 351 | 0x021B6, // Boathouse Erasers and Stars 2 |
| 210 | 0x021B7, // Boathouse Erasers and Stars 3 | 352 | 0x021B7, // Boathouse Erasers and Stars 3 |
| @@ -217,13 +359,8 @@ std::vector<int> quarryPanels = { | |||
| 217 | 0x0A3CB, // Boathouse Erasers Shapers and Stars 3 | 359 | 0x0A3CB, // Boathouse Erasers Shapers and Stars 3 |
| 218 | 0x0A3CC, // Boathouse Erasers Shapers and Stars 4 | 360 | 0x0A3CC, // Boathouse Erasers Shapers and Stars 4 |
| 219 | 0x0A3D0, // Boathouse Erasers Shapers and Stars 5 | 361 | 0x0A3D0, // Boathouse Erasers Shapers and Stars 5 |
| 220 | // 0x275FA, // Boathouse Hook Control | ||
| 221 | 0x09E57, // Quarry Entry Gate 1 | 362 | 0x09E57, // Quarry Entry Gate 1 |
| 222 | 0x17C09, // Quarry Entry Gate 2 | 363 | 0x17C09, // Quarry Entry Gate 2 |
| 223 | }; | ||
| 224 | |||
| 225 | std::vector<int> treehousePanels = { //worked fine until I commented out pivoting panels, puzzles solve fine if you know solution but star and dot colors are all messed up | ||
| 226 | // 0x17C95, // Treehouse Summon Boat | ||
| 227 | 0x0288C, // Treehouse Door 1 | 364 | 0x0288C, // Treehouse Door 1 |
| 228 | 0x02886, // Treehouse Door 2 | 365 | 0x02886, // Treehouse Door 2 |
| 229 | 0x17D72, // Treehouse Yellow 1 | 366 | 0x17D72, // Treehouse Yellow 1 |
| @@ -256,7 +393,6 @@ std::vector<int> treehousePanels = { //worked fine until I commented out pivotin | |||
| 256 | 0x17DD9, // Treehouse Left Orange 6 | 393 | 0x17DD9, // Treehouse Left Orange 6 |
| 257 | 0x17DB8, // Treehouse Left Orange 7 | 394 | 0x17DB8, // Treehouse Left Orange 7 |
| 258 | 0x17DDC, // Treehouse Left Orange 8 | 395 | 0x17DDC, // Treehouse Left Orange 8 |
| 259 | // 0x17DD1, // Treehouse Left Orange 9 has to pivot | ||
| 260 | 0x17DDE, // Treehouse Left Orange 10 | 396 | 0x17DDE, // Treehouse Left Orange 10 |
| 261 | 0x17DE3, // Treehouse Left Orange 11 | 397 | 0x17DE3, // Treehouse Left Orange 11 |
| 262 | 0x17DEC, // Treehouse Left Orange 12 | 398 | 0x17DEC, // Treehouse Left Orange 12 |
| @@ -266,80 +402,31 @@ std::vector<int> treehousePanels = { //worked fine until I commented out pivotin | |||
| 266 | 0x17D88, // Treehouse Right Orange 1 | 402 | 0x17D88, // Treehouse Right Orange 1 |
| 267 | 0x17DB4, // Treehouse Right Orange 2 | 403 | 0x17DB4, // Treehouse Right Orange 2 |
| 268 | 0x17D8C, // Treehouse Right Orange 3 | 404 | 0x17D8C, // Treehouse Right Orange 3 |
| 269 | 0x17CE3, // Treehouse Right Orange 4 | 405 | 0x17DCD, // Treehouse Right Orange 5 |
| 270 | // 0x17DCD, // Treehouse Right Orange 5 has to pivot | ||
| 271 | 0x17DB2, // Treehouse Right Orange 6 | 406 | 0x17DB2, // Treehouse Right Orange 6 |
| 272 | 0x17DCC, // Treehouse Right Orange 7 | 407 | 0x17DCC, // Treehouse Right Orange 7 |
| 273 | 0x17DCA, // Treehouse Right Orange 8 | 408 | 0x17DCA, // Treehouse Right Orange 8 |
| 274 | 0x17D8E, // Treehouse Right Orange 9 | 409 | 0x17D8E, // Treehouse Right Orange 9 |
| 275 | // 0x17DB7, // Treehouse Right Orange 10 has to pivot | ||
| 276 | 0x17DB1, // Treehouse Right Orange 11 | 410 | 0x17DB1, // Treehouse Right Orange 11 |
| 277 | 0x17DA2, // Treehouse Right Orange 12 | 411 | 0x17DA2, // Treehouse Right Orange 12 |
| 278 | 0x17E3C, // Treehouse Green 1 | 412 | 0x17E3C, // Treehouse Green 1 |
| 279 | 0x17E4D, // Treehouse Green 2 | 413 | 0x17E4D, // Treehouse Green 2 |
| 280 | 0x17E4F, // Treehouse Green 3 | 414 | 0x17E4F, // Treehouse Green 3 |
| 281 | // 0x17E52, // Treehouse Green 4 has to pivot | ||
| 282 | 0x17E5B, // Treehouse Green 5 | 415 | 0x17E5B, // Treehouse Green 5 |
| 283 | 0x17E5F, // Treehouse Green 6 | 416 | 0x17E5F, // Treehouse Green 6 |
| 284 | 0x17E61, // Treehouse Green 7 | 417 | 0x17E61, // Treehouse Green 7 |
| 285 | 0x17FA9, // Treehouse Green Bridge Discard | 418 | 0x17FA9, // Treehouse Green Bridge Discard |
| 286 | 0x17FA0, // Treehouse Laser Discard | 419 | 0x17FA0, // Treehouse Laser Discard |
| 287 | // 0x2700B, // Treehouse Exterior Door Control | ||
| 288 | // 0x17CBC, // Treehouse Interior Door Control | ||
| 289 | // 0x037FF, // Treehouse Drawbridge Control | ||
| 290 | }; | ||
| 291 | |||
| 292 | std::vector<int> keepPanels = { | ||
| 293 | 0x00139, // Keep Hedges 1 | 420 | 0x00139, // Keep Hedges 1 |
| 294 | 0x019DC, // Keep Hedges 2 | 421 | 0x019DC, // Keep Hedges 2 |
| 295 | 0x019E7, // Keep Hedges 3 | 422 | 0x019E7, // Keep Hedges 3 |
| 296 | 0x01A0F, // Keep Hedges 4 | 423 | 0x01A0F, // Keep Hedges 4 |
| 297 | // 0x033EA, // Keep Yellow Pressure Plates | ||
| 298 | // 0x0A3A8, // Keep Yellow Reset | ||
| 299 | // 0x01BE9, // Keep Purple Pressure Plates | ||
| 300 | // 0x0A3B9, // Keep Purple Reset | ||
| 301 | // 0x01CD3, // Keep Green Pressure Plates | ||
| 302 | // 0x0A3BB, // Keep Green Reset | ||
| 303 | // 0x01D3F, // Keep Blue Pressure Plates | ||
| 304 | // 0x0A3AD, // Keep Blue Reset | ||
| 305 | 0x0360E, // Keep Front Laser | 424 | 0x0360E, // Keep Front Laser |
| 306 | 0x03317, // Keep Back Laser | 425 | 0x03317, // Keep Back Laser |
| 307 | // 0x09E49, // Keep Shadows Shortcut | ||
| 308 | // 0x0361B, // Keep Tower Shortcut | ||
| 309 | 0x17D27, // Keep Discard | 426 | 0x17D27, // Keep Discard |
| 310 | 0x17D28, // Shipwreck Discard | 427 | 0x17D28, // Shipwreck Discard |
| 311 | 0x00AFB, // Shipwreck Vault | 428 | 0x00AFB, // Shipwreck Vault |
| 312 | // 0x03535, // Shipwreck Vault Box | ||
| 313 | }; | ||
| 314 | |||
| 315 | std::vector<int> shadowsPanels = { // works beautifully, can solve based on panel color and where start/end points are if your memory is good | ||
| 316 | 0x386FA, // Shadows Avoid 1 | ||
| 317 | 0x1C33F, // Shadows Avoid 2 | ||
| 318 | 0x196E2, // Shadows Avoid 3 | ||
| 319 | 0x1972A, // Shadows Avoid 4 | ||
| 320 | 0x19809, // Shadows Avoid 5 | ||
| 321 | 0x19806, // Shadows Avoid 6 | ||
| 322 | 0x196F8, // Shadows Avoid 7 | ||
| 323 | 0x1972F, // Shadows Avoid 8 | ||
| 324 | 0x19797, // Shadows Follow 1 | ||
| 325 | 0x1979A, // Shadows Follow 2 | ||
| 326 | 0x197E0, // Shadows Follow 3 | ||
| 327 | 0x197E8, // Shadows Follow 4 | ||
| 328 | 0x197E5, // Shadows Follow 5 | ||
| 329 | // 0x334DC, // Shadows Inner Door Control | ||
| 330 | 0x19650, // Shadows Laser | 429 | 0x19650, // Shadows Laser |
| 331 | // 0x334DB, // Shadows Outer Door Control | ||
| 332 | 0x198B5, // Shadows Tutorial 1 | ||
| 333 | 0x198BD, // Shadows Tutorial 2 | ||
| 334 | 0x198BF, // Shadows Tutorial 3 | ||
| 335 | 0x19771, // Shadows Tutorial 4 | ||
| 336 | 0x0A8DC, // Shadows Tutorial 5 | ||
| 337 | 0x0AC74, // Shadows Tutorial 6 | ||
| 338 | 0x0AC7A, // Shadows Tutorial 7 | ||
| 339 | 0x0A8E0, // Shadows Tutorial 8 | ||
| 340 | }; | ||
| 341 | |||
| 342 | std::vector<int> townPanels = { // appears to be ok but keeps crashing game? | ||
| 343 | 0x2899C, // Town 25 Dots 1 | 430 | 0x2899C, // Town 25 Dots 1 |
| 344 | 0x28A33, // Town 25 Dots 2 | 431 | 0x28A33, // Town 25 Dots 2 |
| 345 | 0x28ABF, // Town 25 Dots 3 | 432 | 0x28ABF, // Town 25 Dots 3 |
| @@ -351,103 +438,21 @@ std::vector<int> townPanels = { // appears to be ok but keeps crashing game? | |||
| 351 | 0x28ACA, // Town Blue 3 | 438 | 0x28ACA, // Town Blue 3 |
| 352 | 0x28ACB, // Town Blue 4 | 439 | 0x28ACB, // Town Blue 4 |
| 353 | 0x28ACC, // Town Blue 5 | 440 | 0x28ACC, // Town Blue 5 |
| 354 | // 0x0A054, // Town Summon Boat | ||
| 355 | // 0x2896A, // Town Bridge | ||
| 356 | 0x28A0D, // Town Church Stars | 441 | 0x28A0D, // Town Church Stars |
| 357 | 0x28AD9, // Town Eraser | 442 | 0x28AD9, // Town Eraser |
| 358 | 0x28998, // Town Green Door | 443 | 0x28998, // Town Green Door |
| 359 | // 0x09F98, // Town Laser Redirect Control | ||
| 360 | // 0x1C344, // Town Laser Redirect Panel 1 | ||
| 361 | // 0x1C343, // Town Laser Redirect Panel 2 | ||
| 362 | // 0x28A69, // Town Lattice | ||
| 363 | // 0x28A79, // Town Maze | ||
| 364 | 0x0A0C8, // Town Orange Crate | 444 | 0x0A0C8, // Town Orange Crate |
| 365 | 0x17D01, // Town Orange Crate Discard | 445 | 0x17D01, // Town Orange Crate Discard |
| 366 | // 0x28B39, // Town Red Hexagonal | ||
| 367 | // 0x334D8, // Town RGB Light Control | ||
| 368 | 0x03C08, // Town RGB Stars | 446 | 0x03C08, // Town RGB Stars |
| 369 | 0x03C0C, // Town RGB Stones | 447 | 0x03C0C, // Town RGB Stones |
| 370 | 0x17C71, // Town Rooftop Discard | 448 | 0x17C71, // Town Rooftop Discard |
| 371 | // 0x034E3, // Town Soundproof Dots panels in their locations must match so can't swap unless that is fixed | ||
| 372 | // 0x034E4, // Town Soundproof Waves | ||
| 373 | 0x18590, // Town Transparent | ||
| 374 | // 0x079DF, // Town Triple | ||
| 375 | 0x17D02, // Town Windmill Control | ||
| 376 | 0x17F5F, // Town Windmill Door | 449 | 0x17F5F, // Town Windmill Door |
| 377 | 0x28AE3, // Town Wire | ||
| 378 | 0x17F89, // Theater Entrance | 450 | 0x17F89, // Theater Entrance |
| 379 | // 0x00815, // Theater Video Input | ||
| 380 | // 0x03553, // Theater Tutorial Video | ||
| 381 | // 0x03552, // Theater Desert Video | ||
| 382 | // 0x0354E, // Theater Jungle Video | ||
| 383 | // 0x03549, // Theater Challenge Video | ||
| 384 | // 0x0354F, // Theater Shipwreck Video | ||
| 385 | // 0x03545, // Theater Mountain Video | ||
| 386 | 0x17CF7, // Theater Discard | 451 | 0x17CF7, // Theater Discard |
| 387 | 0x33AB2, // Theater Corona Exit | 452 | 0x33AB2, // Theater Corona Exit |
| 388 | 0x0A168, // Theater Sun Exit | 453 | 0x0A168, // Theater Sun Exit |
| 389 | }; | 454 | 0x00B10, // Monastery Left Door |
| 390 | 455 | 0x00C92, // Monastery Right Door | |
| 391 | std::vector<int> monasteryPanels = { | ||
| 392 | // 0x00B10, // Monastery Left Door | ||
| 393 | // 0x00C92, // Monastery Right Door | ||
| 394 | 0x00290, // Monastery Exterior 1 | ||
| 395 | 0x00038, // Monastery Exterior 2 | ||
| 396 | 0x00037, // Monastery Exterior 3 | ||
| 397 | // 0x09D9B, // Monastery Bonsai | ||
| 398 | 0x193A7, // Monastery Interior 1 | ||
| 399 | 0x193AA, // Monastery Interior 2 | ||
| 400 | 0x193AB, // Monastery Interior 3 | ||
| 401 | 0x193A6, // Monastery Interior 4 | ||
| 402 | // 0x03713, // Monastery Shortcut | ||
| 403 | }; | ||
| 404 | |||
| 405 | std::vector<int> junglePanels = { | ||
| 406 | // 0x17CDF, // Jungle Summon Boat | ||
| 407 | 0x17F9B, // Jungle Discard | ||
| 408 | 0x002C4, // Jungle Waves 1 | ||
| 409 | 0x00767, // Jungle Waves 2 | ||
| 410 | 0x002C6, // Jungle Waves 3 | ||
| 411 | 0x0070E, // Jungle Waves 4 | ||
| 412 | 0x0070F, // Jungle Waves 5 | ||
| 413 | 0x0087D, // Jungle Waves 6 | ||
| 414 | 0x002C7, // Jungle Waves 7 | ||
| 415 | // 0x15ADD, // Jungle Vault | ||
| 416 | // 0x03702, // Jungle Vault Box | ||
| 417 | // 0x17CAA, // Jungle Courtyard Gate | ||
| 418 | 0x0026D, // Jungle Dots 1 | ||
| 419 | 0x0026E, // Jungle Dots 2 | ||
| 420 | 0x0026F, // Jungle Dots 3 | ||
| 421 | 0x00C3F, // Jungle Dots 4 | ||
| 422 | 0x00C41, // Jungle Dots 5 | ||
| 423 | 0x014B2, // Jungle Dots 6 | ||
| 424 | // 0x17CAB, // Jungle Pop-up Wall | ||
| 425 | // 0x337FA, // Jungle Shortcut | ||
| 426 | }; | ||
| 427 | |||
| 428 | std::vector<int> bunkerPanels = { // this doesn't want to behave, I have no idea | ||
| 429 | 0x17C2E, // Bunker Entry Door | ||
| 430 | 0x09F7D, // Bunker Tutorial 1 | ||
| 431 | 0x09FDC, // Bunker Tutorial 2 | ||
| 432 | 0x09FF7, // Bunker Tutorial 3 | ||
| 433 | 0x09F82, // Bunker Tutorial 4 | ||
| 434 | 0x09FF8, // Bunker Tutorial 5 | ||
| 435 | 0x09D9F, // Bunker Advanced 1 | ||
| 436 | 0x09DA1, // Bunker Advanced 2 | ||
| 437 | 0x09DA2, // Bunker Advanced 3 | ||
| 438 | 0x09DAF, // Bunker Advanced 4 | ||
| 439 | // 0x0A099, // Bunker Glass Door | ||
| 440 | 0x0A010, // Bunker Glass 1 | ||
| 441 | 0x0A01B, // Bunker Glass 2 | ||
| 442 | 0x0A01F, // Bunker Glass 3 | ||
| 443 | 0x34BC5, // Bunker Open Ultraviolet | ||
| 444 | 0x34BC6, // Bunker Close Ultraviolet | ||
| 445 | 0x17E63, // Bunker Ultraviolet 1 | ||
| 446 | 0x17E67, // Bunker Ultraviolet 2 | ||
| 447 | 0x0A079, // Bunker Elevator | ||
| 448 | }; | ||
| 449 | |||
| 450 | std::vector<int> swampPanels = { // appears to work ok swapping panels but keeps crashing game? | ||
| 451 | 0x0056E, // Swamp Entry | 456 | 0x0056E, // Swamp Entry |
| 452 | 0x00469, // Swamp Tutorial 1 | 457 | 0x00469, // Swamp Tutorial 1 |
| 453 | 0x00472, // Swamp Tutorial 2 | 458 | 0x00472, // Swamp Tutorial 2 |
| @@ -463,7 +468,6 @@ std::vector<int> swampPanels = { // appears to work ok swapping panels but keeps | |||
| 463 | 0x00985, // Swamp Tutorial 12 | 468 | 0x00985, // Swamp Tutorial 12 |
| 464 | 0x00987, // Swamp Tutorial 13 | 469 | 0x00987, // Swamp Tutorial 13 |
| 465 | 0x181A9, // Swamp Tutorial 14 | 470 | 0x181A9, // Swamp Tutorial 14 |
| 466 | // 0x00609, // Swamp Surface Sliding Bridge Control | ||
| 467 | 0x00982, // Swamp Red 1 | 471 | 0x00982, // Swamp Red 1 |
| 468 | 0x0097F, // Swamp Red 2 | 472 | 0x0097F, // Swamp Red 2 |
| 469 | 0x0098F, // Swamp Red 3 | 473 | 0x0098F, // Swamp Red 3 |
| @@ -478,7 +482,6 @@ std::vector<int> swampPanels = { // appears to work ok swapping panels but keeps | |||
| 478 | 0x00008, // Swamp Rotation Tutorial 2 | 482 | 0x00008, // Swamp Rotation Tutorial 2 |
| 479 | 0x00009, // Swamp Rotation Tutorial 3 | 483 | 0x00009, // Swamp Rotation Tutorial 3 |
| 480 | 0x0000A, // Swamp Rotation Tutorial 4 | 484 | 0x0000A, // Swamp Rotation Tutorial 4 |
| 481 | // 0x181F5, // Swamp Rotating Bridge Control | ||
| 482 | 0x009AB, // Swamp Blue Underwater 1 | 485 | 0x009AB, // Swamp Blue Underwater 1 |
| 483 | 0x009AD, // Swamp Blue Underwater 2 | 486 | 0x009AD, // Swamp Blue Underwater 2 |
| 484 | 0x009AE, // Swamp Blue Underwater 3 | 487 | 0x009AE, // Swamp Blue Underwater 3 |
| @@ -488,10 +491,7 @@ std::vector<int> swampPanels = { // appears to work ok swapping panels but keeps | |||
| 488 | 0x00A1E, // Swamp Rotation Advanced 2 | 491 | 0x00A1E, // Swamp Rotation Advanced 2 |
| 489 | 0x00C2E, // Swamp Rotation Advanced 3 | 492 | 0x00C2E, // Swamp Rotation Advanced 3 |
| 490 | 0x00E3A, // Swamp Rotation Advanced 4 | 493 | 0x00E3A, // Swamp Rotation Advanced 4 |
| 491 | // 0x17E2B, // Swamp Flood Gate Control | ||
| 492 | // 0x09DB8, // Swamp Summon Boat | ||
| 493 | 0x009A6, // Swamp Purple Tetris | 494 | 0x009A6, // Swamp Purple Tetris |
| 494 | // 0x18488, // Swamp Underwater Sliding Bridge Control | ||
| 495 | 0x00002, // Swamp Teal Underwater 1 | 495 | 0x00002, // Swamp Teal Underwater 1 |
| 496 | 0x00004, // Swamp Teal Underwater 2 | 496 | 0x00004, // Swamp Teal Underwater 2 |
| 497 | 0x00005, // Swamp Teal Underwater 3 | 497 | 0x00005, // Swamp Teal Underwater 3 |
| @@ -501,14 +501,9 @@ std::vector<int> swampPanels = { // appears to work ok swapping panels but keeps | |||
| 501 | 0x014D2, // Swamp Red Underwater 2 | 501 | 0x014D2, // Swamp Red Underwater 2 |
| 502 | 0x014D4, // Swamp Red Underwater 3 | 502 | 0x014D4, // Swamp Red Underwater 3 |
| 503 | 0x014D1, // Swamp Red Underwater 4 | 503 | 0x014D1, // Swamp Red Underwater 4 |
| 504 | // 0x17C0A, // Swamp Island Control 1 | ||
| 505 | // 0x17E07, // Swamp Island Control 2 | ||
| 506 | 0x17C05, // Swamp Laser Shortcut 1 | 504 | 0x17C05, // Swamp Laser Shortcut 1 |
| 507 | 0x17C02, // Swamp Laser Shortcut 2 | 505 | 0x17C02, // Swamp Laser Shortcut 2 |
| 508 | }; | 506 | 0x17F9B, // Jungle Discard |
| 509 | |||
| 510 | std::vector<int> mountainPanels = { | ||
| 511 | // 0x09E39, // Mountain 1 Purple Pathway | ||
| 512 | 0x09E73, // Mountain 1 Orange 1 | 507 | 0x09E73, // Mountain 1 Orange 1 |
| 513 | 0x09E75, // Mountain 1 Orange 2 | 508 | 0x09E75, // Mountain 1 Orange 2 |
| 514 | 0x09E78, // Mountain 1 Orange 3 | 509 | 0x09E78, // Mountain 1 Orange 3 |
| @@ -516,9 +511,6 @@ std::vector<int> mountainPanels = { | |||
| 516 | 0x09E6C, // Mountain 1 Orange 5 | 511 | 0x09E6C, // Mountain 1 Orange 5 |
| 517 | 0x09E6F, // Mountain 1 Orange 6 | 512 | 0x09E6F, // Mountain 1 Orange 6 |
| 518 | 0x09E6B, // Mountain 1 Orange 7 | 513 | 0x09E6B, // Mountain 1 Orange 7 |
| 519 | // 0x33AF5, // Mountain 1 Blue 1 | ||
| 520 | // 0x33AF7, // Mountain 1 Blue 2 | ||
| 521 | // 0x09F6E, // Mountain 1 Blue 3 | ||
| 522 | 0x09EAD, // Mountain 1 Purple 1 | 514 | 0x09EAD, // Mountain 1 Purple 1 |
| 523 | 0x09EAF, // Mountain 1 Purple 2 | 515 | 0x09EAF, // Mountain 1 Purple 2 |
| 524 | 0x09E7A, // Mountain 1 Green 1 | 516 | 0x09E7A, // Mountain 1 Green 1 |
| @@ -530,112 +522,124 @@ std::vector<int> mountainPanels = { | |||
| 530 | 0x09FD4, // Mountain 2 Rainbow 2 | 522 | 0x09FD4, // Mountain 2 Rainbow 2 |
| 531 | 0x09FD6, // Mountain 2 Rainbow 3 | 523 | 0x09FD6, // Mountain 2 Rainbow 3 |
| 532 | 0x09FD7, // Mountain 2 Rainbow 4 | 524 | 0x09FD7, // Mountain 2 Rainbow 4 |
| 533 | // 0x09FD8, // Mountain 2 Rainbow 5 | ||
| 534 | // 0x09E86, // Mountain 2 Blue Pathway | ||
| 535 | // 0x09ED8, // Mountain 2 Orange Pathway | ||
| 536 | // 0x09EEB, // Mountain 2 Elevator | ||
| 537 | 0x17F93, // Mountain 2 Discard | 525 | 0x17F93, // Mountain 2 Discard |
| 538 | 0x09F8E, // Mountain 3 Near Right Floor | ||
| 539 | 0x09FC1, // Mountain 3 Near Left Floor | ||
| 540 | 0x09F01, // Mountain 3 Far Right Floor | ||
| 541 | 0x09EFF, // Mountain 3 Far Left Floor | ||
| 542 | 0x09FDA, // Mountain 3 Giant Floor | ||
| 543 | 0x17FA2, // Mountain 3 Secret Door | 526 | 0x17FA2, // Mountain 3 Secret Door |
| 544 | // 0x01983, // Mountain 3 Left Peekaboo | ||
| 545 | // 0x01987, // Mountain 3 Right Peekaboo | ||
| 546 | // 0x3D9A6, // Mountain 3 Left Close Door | ||
| 547 | // 0x3D9A7, // Mountain 3 Right Close Door | ||
| 548 | // 0x3D9AA, // Mountain 3 Left Activate Elevator | ||
| 549 | // 0x3D9A8, // Mountain 3 Right Activate Elevator | ||
| 550 | // 0x3D9A9, // Mountain 3 Launch Elevator | ||
| 551 | // 0x3C113, // Mountain 3 Left Open Door | ||
| 552 | // 0x3C114, // Mountain 3 Right Open Door | ||
| 553 | 0x17C42, // Mountainside Discard | 527 | 0x17C42, // Mountainside Discard |
| 554 | 0x002A6, // Mountainside Vault | 528 | 0x002A6, // Mountainside Vault |
| 555 | // 0x03542, // Mountainside Vault Box | 529 | 0x0042D, // Mountaintop River |
| 556 | // 0x09F7F, // Mountaintop Laser Box | 530 | 0x00FF8, // UTM Entrance Door |
| 557 | // 0x17C34, // Mountaintop Perspective | 531 | 0x0A16B, // UTM Green Dots 1 |
| 558 | // 0x0042D, // Mountaintop River | 532 | 0x0A2CE, // UTM Green Dots 2 |
| 533 | 0x0A2D7, // UTM Green Dots 3 | ||
| 534 | 0x0A2DD, // UTM Green Dots 4 | ||
| 535 | 0x0A2EA, // UTM Green Dots 5 | ||
| 536 | 0x17FB9, // UTM Green Dots 6 | ||
| 537 | 0x0008F, // UTM Invisible Dots 1 | ||
| 538 | 0x0006B, // UTM Invisible Dots 2 | ||
| 539 | 0x0008B, // UTM Invisible Dots 3 | ||
| 540 | 0x0008C, // UTM Invisible Dots 4 | ||
| 541 | 0x0008A, // UTM Invisible Dots 5 | ||
| 542 | 0x00089, // UTM Invisible Dots 6 | ||
| 543 | 0x0006A, // UTM Invisible Dots 7 | ||
| 544 | 0x0006C, // UTM Invisible Dots 8 | ||
| 545 | 0x00027, // UTM Invisible Dots Symmetry 1 | ||
| 546 | 0x00028, // UTM Invisible Dots Symmetry 2 | ||
| 547 | 0x00029, // UTM Invisible Dots Symmetry 3 | ||
| 548 | 0x021D7, // UTM Mountainside Shortcut | ||
| 549 | 0x00B71, // UTM Quarry | ||
| 550 | 0x01A31, // UTM Rainbow | ||
| 551 | 0x32962, // UTM Swamp | ||
| 552 | 0x32966, // UTM Treehouse | ||
| 553 | 0x17CF2, // UTM Waterfall Shortcut | ||
| 554 | 0x00A72, // UTM Blue Cave In | ||
| 555 | 0x009A4, // UTM Blue Discontinuous | ||
| 556 | 0x018A0, // UTM Blue Easy Symmetry | ||
| 557 | 0x01A0D, // UTM Blue Hard Symmetry | ||
| 558 | 0x008B8, // UTM Blue Left 1 | ||
| 559 | 0x00973, // UTM Blue Left 2 | ||
| 560 | 0x0097B, // UTM Blue Left 3 | ||
| 561 | 0x0097D, // UTM Blue Left 4 | ||
| 562 | 0x0097E, // UTM Blue Left 5 | ||
| 563 | 0x00994, // UTM Blue Right Far 1 | ||
| 564 | 0x334D5, // UTM Blue Right Far 2 | ||
| 565 | 0x00995, // UTM Blue Right Far 3 | ||
| 566 | 0x00996, // UTM Blue Right Far 4 | ||
| 567 | 0x00998, // UTM Blue Right Far 5 | ||
| 568 | 0x00190, // UTM Blue Right Near 1 | ||
| 569 | 0x00558, // UTM Blue Right Near 2 | ||
| 570 | 0x00567, // UTM Blue Right Near 3 | ||
| 571 | 0x006FE, // UTM Blue Right Near 4 | ||
| 572 | 0x039B4, // Tunnels Theater Catwalk | ||
| 573 | 0x09E85, // Tunnels Town Shortcut | ||
| 559 | }; | 574 | }; |
| 560 | 575 | ||
| 561 | std::vector<int> pillars = { | 576 | std::vector<int> shadowsPanels = { // works beautifully, can solve based on panel color and where start/end points are if your memory is good |
| 562 | 0x0383D, // Mountain 3 Left Pillar 1 | 577 | 0x386FA, // Shadows Avoid 1 |
| 563 | 0x0383F, // Mountain 3 Left Pillar 2 | 578 | 0x1C33F, // Shadows Avoid 2 |
| 564 | 0x03859, // Mountain 3 Left Pillar 3 | 579 | 0x196E2, // Shadows Avoid 3 |
| 565 | 0x339BB, // Mountain 3 Left Pillar 4 | 580 | 0x1972A, // Shadows Avoid 4 |
| 566 | 0x0383A, // Mountain 3 Right Pillar 1 | 581 | 0x19809, // Shadows Avoid 5 |
| 567 | 0x09E56, // Mountain 3 Right Pillar 2 | 582 | 0x19806, // Shadows Avoid 6 |
| 568 | 0x09E5A, // Mountain 3 Right Pillar 3 | 583 | 0x196F8, // Shadows Avoid 7 |
| 569 | 0x33961, // Mountain 3 Right Pillar 4 | 584 | 0x1972F, // Shadows Avoid 8 |
| 570 | 0x09DD5, // UTM Challenge Pillar | 585 | 0x19797, // Shadows Follow 1 |
| 571 | // 0x1C31A, // Challenge Left Pillar | 586 | 0x1979A, // Shadows Follow 2 |
| 572 | // 0x1C319, // Challenge Right Pillar | 587 | 0x197E0, // Shadows Follow 3 |
| 588 | 0x197E8, // Shadows Follow 4 | ||
| 589 | 0x197E5, // Shadows Follow 5 | ||
| 590 | 0x198B5, // Shadows Tutorial 1 | ||
| 591 | 0x198BD, // Shadows Tutorial 2 | ||
| 592 | 0x198BF, // Shadows Tutorial 3 | ||
| 593 | 0x19771, // Shadows Tutorial 4 | ||
| 594 | 0x0A8DC, // Shadows Tutorial 5 | ||
| 595 | 0x0AC74, // Shadows Tutorial 6 | ||
| 596 | 0x0AC7A, // Shadows Tutorial 7 | ||
| 597 | 0x0A8E0, // Shadows Tutorial 8 | ||
| 573 | }; | 598 | }; |
| 574 | 599 | ||
| 575 | std::vector<int> mountainMultipanel = { | 600 | std::vector<int> monasteryPanels = { |
| 576 | 0x09FCC, // Mountain 2 Multipanel 1 | 601 | 0x00290, // Monastery Exterior 1 |
| 577 | 0x09FCE, // Mountain 2 Multipanel 2 | 602 | 0x00038, // Monastery Exterior 2 |
| 578 | 0x09FCF, // Mountain 2 Multipanel 3 | 603 | 0x00037, // Monastery Exterior 3 |
| 579 | 0x09FD0, // Mountain 2 Multipanel 4 | 604 | // 0x09D9B, // Monastery Bonsai |
| 580 | 0x09FD1, // Mountain 2 Multipanel 5 | 605 | 0x193A7, // Monastery Interior 1 |
| 581 | 0x09FD2, // Mountain 2 Multipanel 6 | 606 | 0x193AA, // Monastery Interior 2 |
| 607 | 0x193AB, // Monastery Interior 3 | ||
| 608 | 0x193A6, // Monastery Interior 4 | ||
| 609 | // 0x03713, // Monastery Shortcut | ||
| 610 | }; | ||
| 611 | |||
| 612 | std::vector<int> bunkerPanels = { // this doesn't want to behave, I have no idea | ||
| 613 | 0x17C2E, // Bunker Entry Door | ||
| 614 | 0x09F7D, // Bunker Tutorial 1 | ||
| 615 | 0x09FDC, // Bunker Tutorial 2 | ||
| 616 | 0x09FF7, // Bunker Tutorial 3 | ||
| 617 | 0x09F82, // Bunker Tutorial 4 | ||
| 618 | 0x09FF8, // Bunker Tutorial 5 | ||
| 619 | 0x09D9F, // Bunker Advanced 1 | ||
| 620 | 0x09DA1, // Bunker Advanced 2 | ||
| 621 | 0x09DA2, // Bunker Advanced 3 | ||
| 622 | 0x09DAF, // Bunker Advanced 4 | ||
| 623 | 0x0A010, // Bunker Glass 1 | ||
| 624 | 0x0A01B, // Bunker Glass 2 | ||
| 625 | 0x0A01F, // Bunker Glass 3 | ||
| 626 | 0x17E63, // Bunker Ultraviolet 1 | ||
| 627 | 0x17E67, // Bunker Ultraviolet 2 | ||
| 628 | 0x0A079, // Bunker Elevator | ||
| 582 | }; | 629 | }; |
| 583 | 630 | ||
| 584 | std::vector<int> utmPanels = { // this looks like it swaps ok but crashes to much to tell, not sure why it's not happy | 631 | std::vector<int> junglePanels = { |
| 585 | // 0x0A16E, // UTM Challenge Entrance | 632 | 0x002C4, // Jungle Waves 1 |
| 586 | // 0x00FF8, // UTM Entrance Door | 633 | 0x00767, // Jungle Waves 2 |
| 587 | // 0x0A16B, // UTM Green Dots 1 | 634 | 0x002C6, // Jungle Waves 3 |
| 588 | // 0x0A2CE, // UTM Green Dots 2 | 635 | 0x0070E, // Jungle Waves 4 |
| 589 | // 0x0A2D7, // UTM Green Dots 3 | 636 | 0x0070F, // Jungle Waves 5 |
| 590 | // 0x0A2DD, // UTM Green Dots 4 | 637 | 0x0087D, // Jungle Waves 6 |
| 591 | // 0x0A2EA, // UTM Green Dots 5 | 638 | 0x002C7, // Jungle Waves 7 |
| 592 | // 0x17FB9, // UTM Green Dots 6 | 639 | 0x0026D, // Jungle Dots 1 |
| 593 | // 0x335AB, // UTM In Elevator Control | 640 | 0x0026E, // Jungle Dots 2 |
| 594 | // 0x0008F, // UTM Invisible Dots 1 | 641 | 0x0026F, // Jungle Dots 3 |
| 595 | // 0x0006B, // UTM Invisible Dots 2 | 642 | 0x00C3F, // Jungle Dots 4 |
| 596 | // 0x0008B, // UTM Invisible Dots 3 | 643 | 0x00C41, // Jungle Dots 5 |
| 597 | // 0x0008C, // UTM Invisible Dots 4 | 644 | 0x014B2, // Jungle Dots 6 |
| 598 | // 0x0008A, // UTM Invisible Dots 5 | 645 | }; |
| 599 | // 0x00089, // UTM Invisible Dots 6 | ||
| 600 | // 0x0006A, // UTM Invisible Dots 7 | ||
| 601 | // 0x0006C, // UTM Invisible Dots 8 | ||
| 602 | // 0x00027, // UTM Invisible Dots Symmetry 1 | ||
| 603 | // 0x00028, // UTM Invisible Dots Symmetry 2 | ||
| 604 | // 0x00029, // UTM Invisible Dots Symmetry 3 | ||
| 605 | // 0x3369D, // UTM Lower Elevator Control | ||
| 606 | // 0x021D7, // UTM Mountainside Shortcut | ||
| 607 | // // 0x288EA, // UTM Perspective 1 | ||
| 608 | // // 0x288FC, // UTM Perspective 2 | ||
| 609 | // // 0x289E7, // UTM Perspective 3 | ||
| 610 | // // 0x288AA, // UTM Perspective 4 | ||
| 611 | // 0x00B71, // UTM Quarry | ||
| 612 | // 0x01A31, // UTM Rainbow | ||
| 613 | // // 0x334E1, // UTM Secret Door Control | ||
| 614 | // 0x32962, // UTM Swamp | ||
| 615 | // 0x32966, // UTM Treehouse | ||
| 616 | // 0x335AC, // UTM Upper Elevator Control | ||
| 617 | // 0x17CF2, // UTM Waterfall Shortcut | ||
| 618 | // 0x00A72, // UTM Blue Cave In | ||
| 619 | // 0x009A4, // UTM Blue Discontinuous | ||
| 620 | // 0x018A0, // UTM Blue Easy Symmetry | ||
| 621 | // 0x01A0D, // UTM Blue Hard Symmetry | ||
| 622 | // 0x008B8, // UTM Blue Left 1 | ||
| 623 | // 0x00973, // UTM Blue Left 2 | ||
| 624 | // 0x0097B, // UTM Blue Left 3 | ||
| 625 | // 0x0097D, // UTM Blue Left 4 | ||
| 626 | // 0x0097E, // UTM Blue Left 5 | ||
| 627 | // 0x00994, // UTM Blue Right Far 1 | ||
| 628 | // 0x334D5, // UTM Blue Right Far 2 | ||
| 629 | // 0x00995, // UTM Blue Right Far 3 | ||
| 630 | // 0x00996, // UTM Blue Right Far 4 | ||
| 631 | // 0x00998, // UTM Blue Right Far 5 | ||
| 632 | // 0x00190, // UTM Blue Right Near 1 | ||
| 633 | // 0x00558, // UTM Blue Right Near 2 | ||
| 634 | // 0x00567, // UTM Blue Right Near 3 | ||
| 635 | // 0x006FE, // UTM Blue Right Near 4 | ||
| 636 | // // 0x2773D, // Tunnels Desert Shortcut | ||
| 637 | // 0x039B4, // Tunnels Theater Catwalk | ||
| 638 | // // 0x27732, // Tunnels Theater Shortcut | ||
| 639 | // // 0x2FAF6, // Tunnels Vault Box | ||
| 640 | // 0x09E85, // Tunnels Town Shortcut | ||
| 641 | }; \ No newline at end of file | ||
| diff --git a/WitnessRandomizer/WitnessRandomizer.cpp b/WitnessRandomizer/WitnessRandomizer.cpp index 79fb721..2a06ee2 100644 --- a/WitnessRandomizer/WitnessRandomizer.cpp +++ b/WitnessRandomizer/WitnessRandomizer.cpp | |||
| @@ -1,15 +1,14 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * BUGS: | ||
| 3 | * Bunker has physical panel objects which I can't move :( | ||
| 4 | * Shipwreck vault does not copy well | ||
| 5 | * FEATURES: | 2 | * FEATURES: |
| 6 | * SWAP_TARGETS should still require the full panel sequence (and have ways to prevent softlocks?) | 3 | * SWAP_TARGETS should still require the full panel sequence (and have ways to prevent softlocks?) |
| 4 | ** Jungle(?), Bunker, Monastery, Challenge(!), Shadows | ||
| 7 | * Randomize audio logs | 5 | * Randomize audio logs |
| 8 | * List of panels which can be valid "Burn" (aka desert) substitutes: Prevent (or limit) panel counting | ||
| 9 | * List of panels which split left/right (for left/right controls) | 6 | * List of panels which split left/right (for left/right controls) |
| 10 | * List of panels which split up/down (for up/down controls) | 7 | * List of panels which split up/down (for up/down controls) |
| 11 | * Swap sounds in jungle (along with panels) -- maybe impossible | 8 | * Swap sounds in jungle (along with panels) -- maybe impossible |
| 12 | * Make orange 7 (all of oranges?) hard. Like big = hard. | 9 | * Make orange 7 (all of oranges?) hard. Like big = hard. |
| 10 | * Kill panel slowdown in tutorial | ||
| 11 | * Fix desert elevator (laser rando) / Add keep? | ||
| 13 | * TRY: | 12 | * TRY: |
| 14 | * Swap treehouse pivots | 13 | * Swap treehouse pivots |
| 15 | */ | 14 | */ |
| @@ -27,25 +26,21 @@ int main(int argc, char** argv) | |||
| 27 | srand(atoi(argv[1])); // Seed with RNG from command line | 26 | srand(atoi(argv[1])); // Seed with RNG from command line |
| 28 | } | 27 | } |
| 29 | 28 | ||
| 30 | // randomizer.Randomize(bunkerPanels, SWAP_LINES | SWAP_STYLE); | 29 | //* |
| 31 | /* | ||
| 32 | randomizer.Randomize(lasers, SWAP_TARGETS); | 30 | randomizer.Randomize(lasers, SWAP_TARGETS); |
| 33 | randomizer.Randomize(tutorialPanels, SWAP_TARGETS); | ||
| 34 | randomizer.Randomize(monasteryPanels, SWAP_TARGETS); | ||
| 35 | randomizer.Randomize(shadowsPanels, SWAP_TARGETS); | ||
| 36 | 31 | ||
| 37 | randomizer.Randomize(desertPanels, SWAP_LINES); | ||
| 38 | randomizer.Randomize(treehousePanels, SWAP_LINES); | ||
| 39 | |||
| 40 | std::vector<int> squarePanels; | ||
| 41 | for (auto panelSet : {outsideTutorialPanels, symmetryPanels, quarryPanels, keepPanels, townPanels, bunkerPanels, swampPanels, mountainPanels, utmPanels}) { | ||
| 42 | squarePanels.insert(squarePanels.end(), panelSet.begin(), panelSet.end()); | ||
| 43 | } | ||
| 44 | randomizer.Randomize(squarePanels, SWAP_LINES | SWAP_STYLE); | 32 | randomizer.Randomize(squarePanels, SWAP_LINES | SWAP_STYLE); |
| 33 | randomizer.Randomize(burnablePanels, SWAP_LINES | SWAP_STYLE); | ||
| 34 | |||
| 35 | |||
| 36 | // randomizer.Randomize(monasteryPanels, SWAP_TARGETS); | ||
| 37 | // randomizer.Randomize(shadowsPanels, SWAP_TARGETS); | ||
| 38 | // randomizer.Randomize(bunkerPanels, SWAP_TARGETS); | ||
| 39 | |||
| 40 | // randomizer.Randomize(junglePanels, SWAP_LINES | SWAP_STYLE); | ||
| 41 | // randomizer.Randomize(mountainMultipanel, SWAP_LINES | SWAP_STYLE); | ||
| 42 | // randomizer.Randomize(pillars, SWAP_LINES | SWAP_STYLE | SWAP_BACK_DISTANCE); | ||
| 45 | 43 | ||
| 46 | randomizer.Randomize(junglePanels, SWAP_LINES | SWAP_STYLE); | ||
| 47 | randomizer.Randomize(mountainMultipanel, SWAP_LINES | SWAP_STYLE); | ||
| 48 | randomizer.Randomize(pillars, SWAP_LINES | SWAP_STYLE | SWAP_BACK_DISTANCE); | ||
| 49 | /*/ | 44 | /*/ |
| 50 | int BOATH_3_1 = 0x21B5; | 45 | int BOATH_3_1 = 0x21B5; |
| 51 | int MILL_L_1 = 0xE0C; | 46 | int MILL_L_1 = 0xE0C; |
| @@ -65,14 +60,6 @@ int main(int argc, char** argv) | |||
| 65 | int DESERT_L_2 = 0x006E3; | 60 | int DESERT_L_2 = 0x006E3; |
| 66 | int TOWN_S_1 = 0x28AC7; | 61 | int TOWN_S_1 = 0x28AC7; |
| 67 | 62 | ||
| 68 | std::vector<int> squarePanels; | ||
| 69 | for (auto panelSet : {outsideTutorialPanels, symmetryPanels, quarryPanels, keepPanels, townPanels, bunkerPanels, swampPanels, mountainPanels, utmPanels, treehousePanels}) { | ||
| 70 | squarePanels.insert(squarePanels.end(), panelSet.begin(), panelSet.end()); | ||
| 71 | } | ||
| 72 | for (int panel : squarePanels) { | ||
| 73 | randomizer.SwapPanels(DESERT_L_2, panel, SWAP_LINES | SWAP_STYLE); | ||
| 74 | } | ||
| 75 | |||
| 76 | 63 | ||
| 77 | //randomizer.SwapPanels(PILLAR_L_1, PILLAR_C_L, SWAP_LINES | SWAP_STYLE | SWAP_BACK_DISTANCE); | 64 | //randomizer.SwapPanels(PILLAR_L_1, PILLAR_C_L, SWAP_LINES | SWAP_STYLE | SWAP_BACK_DISTANCE); |
| 78 | //randomizer.SwapPanelData(PILLAR_L_1, PILLAR_C_L, 0x200, 0x50); | 65 | //randomizer.SwapPanelData(PILLAR_L_1, PILLAR_C_L, 0x200, 0x50); |
| @@ -89,10 +76,13 @@ WitnessRandomizer::WitnessRandomizer() : _memory("witness64_d3d11.exe") | |||
| 89 | _memory.WriteData<float>({0x5B28C0, 0x18, 0x18076*8, 0x2A8}, {0.0f, 0.0f}); | 76 | _memory.WriteData<float>({0x5B28C0, 0x18, 0x18076*8, 0x2A8}, {0.0f, 0.0f}); |
| 90 | // Change desert floating target to desert flood final | 77 | // Change desert floating target to desert flood final |
| 91 | _memory.WriteData<int>({0x5B28C0, 0x18, 0x17ECA*8, 0x2BC}, {0x18077}); | 78 | _memory.WriteData<int>({0x5B28C0, 0x18, 0x17ECA*8, 0x2BC}, {0x18077}); |
| 79 | // Distance-gate shadows laser to prevent sniping through the bars | ||
| 80 | _memory.WriteData<float>({0x5B28C0, 0x18, 0x19650*8, 0x3C0}, {2.0f}); | ||
| 81 | |||
| 92 | // Explicitly set back-off distance for the challenge entry & final 2 pillars | 82 | // Explicitly set back-off distance for the challenge entry & final 2 pillars |
| 93 | _memory.WriteData<float>({0x5B28C0, 0x18, 0x9DD5*8, 0x22C}, {2.5f}); | 83 | // _memory.WriteData<float>({0x5B28C0, 0x18, 0x9DD5*8, 0x22C}, {2.5f}); |
| 94 | _memory.WriteData<float>({0x5B28C0, 0x18, 0x1C31A*8, 0x22C}, {3.0f}); | 84 | // _memory.WriteData<float>({0x5B28C0, 0x18, 0x1C31A*8, 0x22C}, {3.0f}); |
| 95 | _memory.WriteData<float>({0x5B28C0, 0x18, 0x1C319*8, 0x22C}, {3.0f}); | 85 | // _memory.WriteData<float>({0x5B28C0, 0x18, 0x1C319*8, 0x22C}, {3.0f}); |
| 96 | } | 86 | } |
| 97 | 87 | ||
| 98 | void WitnessRandomizer::Randomize(std::vector<int> panels, int flags) { | 88 | void WitnessRandomizer::Randomize(std::vector<int> panels, int flags) { |
| @@ -196,8 +186,8 @@ void WitnessRandomizer::SwapPanelData(int panel1, int panel2, int finalOffset, i | |||
| 196 | std::vector<int> panel2Offset = {0x5B28C0, 0x18, panel2*8, finalOffset}; | 186 | std::vector<int> panel2Offset = {0x5B28C0, 0x18, panel2*8, finalOffset}; |
| 197 | 187 | ||
| 198 | std::vector<byte> panel1Data = _memory.ReadData<byte>(panel1Offset, dataSize); | 188 | std::vector<byte> panel1Data = _memory.ReadData<byte>(panel1Offset, dataSize); |
| 199 | //std::vector<byte> panel2Data = _memory.ReadData<byte>(panel2Offset, dataSize); | 189 | std::vector<byte> panel2Data = _memory.ReadData<byte>(panel2Offset, dataSize); |
| 200 | 190 | ||
| 201 | _memory.WriteData<byte>(panel2Offset, panel1Data); | 191 | _memory.WriteData<byte>(panel2Offset, panel1Data); |
| 202 | //_memory.WriteData<byte>(panel1Offset, panel2Data); | 192 | _memory.WriteData<byte>(panel1Offset, panel2Data); |
| 203 | } | 193 | } |
