summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalkierian <malkierian@gmail.com>2025-04-09 15:18:44 -0700
committerGitHub <noreply@github.com>2025-04-09 18:18:44 -0400
commita99e8836fb113ae72f69e0e0821706f3edddac3f (patch)
treebfdef298d223f416966a6f28077977fe5d857906
parentc12349a7a3643931aa0853ef6d2f18e76094c36d (diff)
Allow seeded enemy rando to use the values of the enemy list selection. (#5371)
-rw-r--r--soh/soh/Enhancements/enemyrandomizer.cpp24
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());