diff options
| author | Malkierian <malkierian@gmail.com> | 2025-04-09 15:18:44 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-09 18:18:44 -0400 |
| commit | a99e8836fb113ae72f69e0e0821706f3edddac3f (patch) | |
| tree | bfdef298d223f416966a6f28077977fe5d857906 | |
| parent | c12349a7a3643931aa0853ef6d2f18e76094c36d (diff) | |
Allow seeded enemy rando to use the values of the enemy list selection. (#5371)
| -rw-r--r-- | soh/soh/Enhancements/enemyrandomizer.cpp | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/soh/soh/Enhancements/enemyrandomizer.cpp b/soh/soh/Enhancements/enemyrandomizer.cpp index f202e1b1f..84e1d040e 100644 --- a/soh/soh/Enhancements/enemyrandomizer.cpp +++ b/soh/soh/Enhancements/enemyrandomizer.cpp @@ -318,26 +318,20 @@ extern "C" uint8_t GetRandomizedEnemy(PlayState* play, int16_t* actorId, f32* po return 1; } -std::vector<EnemyEntry> selectedEnemyList; +static std::vector<EnemyEntry> selectedEnemyList; void GetSelectedEnemies() { selectedEnemyList.clear(); - if (CVarGetInteger(CVAR_ENHANCEMENT("RandomizedEnemies"), ENEMY_RANDOMIZER_OFF) == ENEMY_RANDOMIZER_RANDOM) { - for (int i = 0; i < 49; i++) { - if (CVarGetInteger(CVAR_ENHANCEMENT("RandomizedEnemyList.All"), 0)) { - selectedEnemyList.push_back(randomizedEnemySpawnTable[i]); - } else if (CVarGetInteger(enemyCVarList[i], 1)) { - selectedEnemyList.push_back(randomizedEnemySpawnTable[i]); - } - } - if (selectedEnemyList.size() == 0) { - selectedEnemyList.push_back(randomizedEnemySpawnTable[0]); - } - } else { - for (int i = 0; i < 49; i++) { + for (int i = 0; i < 49; i++) { + if (CVarGetInteger(CVAR_ENHANCEMENT("RandomizedEnemyList.All"), 0)) { + selectedEnemyList.push_back(randomizedEnemySpawnTable[i]); + } else if (CVarGetInteger(enemyCVarList[i], 1)) { selectedEnemyList.push_back(randomizedEnemySpawnTable[i]); } } + if (selectedEnemyList.size() == 0) { + selectedEnemyList.push_back(randomizedEnemySpawnTable[0]); + } } EnemyEntry GetRandomizedEnemyEntry(uint32_t seed) { @@ -348,7 +342,7 @@ EnemyEntry GetRandomizedEnemyEntry(uint32_t seed) { uint32_t finalSeed = seed + (IS_RANDO ? Rando::Context::GetInstance()->GetSeed() : gSaveContext.ship.stats.fileCreatedAt); Random_Init(finalSeed); - uint32_t randomNumber = Random(0, RANDOMIZED_ENEMY_SPAWN_TABLE_SIZE); + uint32_t randomNumber = Random(0, selectedEnemyList.size()); return selectedEnemyList[randomNumber]; } else { uint32_t randomSelectedEnemy = Random(0, selectedEnemyList.size()); |
