diff options
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Randomizer.cpp | 38 | ||||
| -rw-r--r-- | Source/Randomizer.h | 1 |
2 files changed, 24 insertions, 15 deletions
| diff --git a/Source/Randomizer.cpp b/Source/Randomizer.cpp index 48e9a4b..e0cbb2b 100644 --- a/Source/Randomizer.cpp +++ b/Source/Randomizer.cpp | |||
| @@ -1,24 +1,29 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Random *rotation* of desert laser redirect? | ||
| 3 | * Disable wonkavator and hotel, so that 100% runs are possible | ||
| 4 | * Try to wire up both keep halves | ||
| 5 | * Wire up both halves of symmetry laser | ||
| 6 | * Turn off floating panel in desert | ||
| 7 | |||
| 8 | |||
| 9 | * Speed up *everything* ? Or maybe we'll just stop using this setting entirely. | ||
| 10 | |||
| 11 | |||
| 2 | * BUGS: | 12 | * BUGS: |
| 3 | * Shipwreck vault is solved reversed? -> Not reversed, just "half", you can normally solve orange. Seems to need pattern name. | 13 | * Shipwreck vault is solved reversed? -> Not reversed, just "half", you can normally solve orange. Seems to need pattern name. |
| 4 | * Tutorial sounds don't always play -> Unsure. Not controlled by pattern name. | 14 | * Tutorial sounds don't always play -> Unsure. Not controlled by pattern name. |
| 5 | * Make sure that monastery 1 isn't forced to trigger monastery 2 | ||
| 6 | * Rainbow seems to be not copying background? | 15 | * Rainbow seems to be not copying background? |
| 7 | ** Rainbow 1 <-> Green 3 (the poly one) worked | 16 | ** Rainbow 1 <-> Green 3 (the poly one) worked |
| 8 | ** Rainbow 2 <-> Treehouse Right Orange 1 didn't | 17 | ** Rainbow 2 <-> Treehouse Right Orange 1 didn't |
| 9 | * FEATURES: | 18 | * FEATURES: |
| 10 | * Start the game if it isn't running? | 19 | * Start the game if it isn't running? |
| 11 | * Stop swapping colors in desert | ||
| 12 | * Randomize audio logs -- Hard, seem to be unloaded some times? | 20 | * Randomize audio logs -- Hard, seem to be unloaded some times? |
| 13 | * Swap sounds in jungle (along with panels) -- maybe impossible | 21 | * Swap sounds in jungle (along with panels) -- maybe impossible |
| 14 | * Make orange 7 (all of oranges?) hard. Like big = hard. (See: HARD_MODE) | 22 | * Make orange 7 (all of oranges?) hard. Like big = hard. (See: HARD_MODE) |
| 15 | * Add a setting for "disable wonkavator and hotel", so that 100% runs are possible | ||
| 16 | * I probably can randomize targets in bunker UV | ||
| 17 | * Random *rotation* of desert laser redirect? | ||
| 18 | * Add setting to disable laser randomization | ||
| 19 | * Try randomizing default-on for pitches & bunker | 23 | * Try randomizing default-on for pitches & bunker |
| 20 | * Try turning on first half of wire in shadows once tutorial is done | 24 | * Try turning on first half of wire in shadows once tutorial is done |
| 21 | * It might be possible to remove the texture on top of rainbow 5 (so that any panel can be placed there) | 25 | * It might be possible to remove the texture on top of rainbow 5 (so that any panel can be placed there) |
| 26 | * 20 challenges with 20 consecutive seeds | ||
| 22 | */ | 27 | */ |
| 23 | #include "Memory.h" | 28 | #include "Memory.h" |
| 24 | #include "Randomizer.h" | 29 | #include "Randomizer.h" |
| @@ -58,10 +63,10 @@ void Randomizer::Randomize() | |||
| 58 | RandomizeChallenge(); | 63 | RandomizeChallenge(); |
| 59 | 64 | ||
| 60 | // Content swaps -- must happen before squarePanels | 65 | // Content swaps -- must happen before squarePanels |
| 61 | Randomize(upDownPanels, SWAP::LINES); | 66 | Randomize(upDownPanels, SWAP::LINES | SWAP::COLORS); |
| 62 | Randomize(leftForwardRightPanels, SWAP::LINES); | 67 | Randomize(leftForwardRightPanels, SWAP::LINES | SWAP::COLORS); |
| 63 | 68 | ||
| 64 | Randomize(squarePanels, SWAP::LINES); | 69 | Randomize(squarePanels, SWAP::LINES | SWAP::COLORS); |
| 65 | 70 | ||
| 66 | // Individual area modifications | 71 | // Individual area modifications |
| 67 | RandomizeTutorial(); | 72 | RandomizeTutorial(); |
| @@ -200,7 +205,7 @@ void Randomizer::RandomizeSwamp() { | |||
| 200 | 205 | ||
| 201 | void Randomizer::RandomizeMountain() { | 206 | void Randomizer::RandomizeMountain() { |
| 202 | // Randomize multipanel | 207 | // Randomize multipanel |
| 203 | Randomize(mountainMultipanel, SWAP::LINES); | 208 | Randomize(mountainMultipanel, SWAP::LINES | SWAP::COLORS); |
| 204 | 209 | ||
| 205 | // Randomize final pillars order | 210 | // Randomize final pillars order |
| 206 | std::vector<int> targets = {pillars[0] + 1}; | 211 | std::vector<int> targets = {pillars[0] + 1}; |
| @@ -262,7 +267,7 @@ void Randomizer::SwapPanels(int panel1, int panel2, int flags) { | |||
| 262 | if (flags & SWAP::AUDIO_NAMES) { | 267 | if (flags & SWAP::AUDIO_NAMES) { |
| 263 | offsets[AUDIO_LOG_NAME] = sizeof(void*); | 268 | offsets[AUDIO_LOG_NAME] = sizeof(void*); |
| 264 | } | 269 | } |
| 265 | if (flags & SWAP::LINES) { | 270 | if (flags & SWAP::COLORS) { |
| 266 | offsets[PATH_COLOR] = 16; | 271 | offsets[PATH_COLOR] = 16; |
| 267 | offsets[REFLECTION_PATH_COLOR] = 16; | 272 | offsets[REFLECTION_PATH_COLOR] = 16; |
| 268 | offsets[DOT_COLOR] = 16; | 273 | offsets[DOT_COLOR] = 16; |
| @@ -284,14 +289,19 @@ void Randomizer::SwapPanels(int panel1, int panel2, int flags) { | |||
| 284 | offsets[PUSH_SYMBOL_COLORS] = sizeof(int); | 289 | offsets[PUSH_SYMBOL_COLORS] = sizeof(int); |
| 285 | offsets[OUTER_BACKGROUND] = 16; | 290 | offsets[OUTER_BACKGROUND] = 16; |
| 286 | offsets[OUTER_BACKGROUND_MODE] = sizeof(int); | 291 | offsets[OUTER_BACKGROUND_MODE] = sizeof(int); |
| 292 | // These two control the "burn intensity", but I can't swap out burn marks in new ver, so they should probably stay tied to each frame. | ||
| 293 | // offsets[SPECULAR_ADD] = sizeof(float); | ||
| 294 | // offsets[SPECULAR_POWER] = sizeof(int); | ||
| 295 | offsets[NUM_COLORED_REGIONS] = sizeof(int); | ||
| 296 | offsets[COLORED_REGIONS] = sizeof(void*); | ||
| 297 | } | ||
| 298 | if (flags & SWAP::LINES) { | ||
| 287 | offsets[TRACED_EDGES] = 16; | 299 | offsets[TRACED_EDGES] = 16; |
| 288 | offsets[AUDIO_PREFIX] = sizeof(void*); | 300 | offsets[AUDIO_PREFIX] = sizeof(void*); |
| 289 | // offsets[IS_CYLINDER] = sizeof(int); | 301 | // offsets[IS_CYLINDER] = sizeof(int); |
| 290 | // offsets[CYLINDER_Z0] = sizeof(float); | 302 | // offsets[CYLINDER_Z0] = sizeof(float); |
| 291 | // offsets[CYLINDER_Z1] = sizeof(float); | 303 | // offsets[CYLINDER_Z1] = sizeof(float); |
| 292 | // offsets[CYLINDER_RADIUS] = sizeof(float); | 304 | // offsets[CYLINDER_RADIUS] = sizeof(float); |
| 293 | offsets[SPECULAR_ADD] = sizeof(float); | ||
| 294 | offsets[SPECULAR_POWER] = sizeof(int); | ||
| 295 | offsets[PATH_WIDTH_SCALE] = sizeof(float); | 305 | offsets[PATH_WIDTH_SCALE] = sizeof(float); |
| 296 | offsets[STARTPOINT_SCALE] = sizeof(float); | 306 | offsets[STARTPOINT_SCALE] = sizeof(float); |
| 297 | offsets[NUM_DOTS] = sizeof(int); | 307 | offsets[NUM_DOTS] = sizeof(int); |
| @@ -314,8 +324,6 @@ void Randomizer::SwapPanels(int panel1, int panel2, int flags) { | |||
| 314 | offsets[DOT_SEQUENCE] = sizeof(void*); | 324 | offsets[DOT_SEQUENCE] = sizeof(void*); |
| 315 | offsets[DOT_SEQUENCE_LEN_REFLECTION] = sizeof(int); | 325 | offsets[DOT_SEQUENCE_LEN_REFLECTION] = sizeof(int); |
| 316 | offsets[DOT_SEQUENCE_REFLECTION] = sizeof(void*); | 326 | offsets[DOT_SEQUENCE_REFLECTION] = sizeof(void*); |
| 317 | offsets[NUM_COLORED_REGIONS] = sizeof(int); | ||
| 318 | offsets[COLORED_REGIONS] = sizeof(void*); | ||
| 319 | offsets[PANEL_TARGET] = sizeof(void*); | 327 | offsets[PANEL_TARGET] = sizeof(void*); |
| 320 | offsets[SPECULAR_TEXTURE] = sizeof(void*); | 328 | offsets[SPECULAR_TEXTURE] = sizeof(void*); |
| 321 | } | 329 | } |
| diff --git a/Source/Randomizer.h b/Source/Randomizer.h index 88afcc6..8c4d253 100644 --- a/Source/Randomizer.h +++ b/Source/Randomizer.h | |||
| @@ -18,6 +18,7 @@ public: | |||
| 18 | TARGETS = 1, | 18 | TARGETS = 1, |
| 19 | LINES = 2, | 19 | LINES = 2, |
| 20 | AUDIO_NAMES = 4, | 20 | AUDIO_NAMES = 4, |
| 21 | COLORS = 8, | ||
| 21 | }; | 22 | }; |
| 22 | 23 | ||
| 23 | private: | 24 | private: |
