Allow seeded enemy rando to use the values of the enemy list selection. (#5371)
This commit is contained in:
@@ -318,26 +318,20 @@ extern "C" uint8_t GetRandomizedEnemy(PlayState* play, int16_t* actorId, f32* po
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<EnemyEntry> selectedEnemyList;
|
static std::vector<EnemyEntry> selectedEnemyList;
|
||||||
|
|
||||||
void GetSelectedEnemies() {
|
void GetSelectedEnemies() {
|
||||||
selectedEnemyList.clear();
|
selectedEnemyList.clear();
|
||||||
if (CVarGetInteger(CVAR_ENHANCEMENT("RandomizedEnemies"), ENEMY_RANDOMIZER_OFF) == ENEMY_RANDOMIZER_RANDOM) {
|
for (int i = 0; i < 49; i++) {
|
||||||
for (int i = 0; i < 49; i++) {
|
if (CVarGetInteger(CVAR_ENHANCEMENT("RandomizedEnemyList.All"), 0)) {
|
||||||
if (CVarGetInteger(CVAR_ENHANCEMENT("RandomizedEnemyList.All"), 0)) {
|
selectedEnemyList.push_back(randomizedEnemySpawnTable[i]);
|
||||||
selectedEnemyList.push_back(randomizedEnemySpawnTable[i]);
|
} else if (CVarGetInteger(enemyCVarList[i], 1)) {
|
||||||
} 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++) {
|
|
||||||
selectedEnemyList.push_back(randomizedEnemySpawnTable[i]);
|
selectedEnemyList.push_back(randomizedEnemySpawnTable[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (selectedEnemyList.size() == 0) {
|
||||||
|
selectedEnemyList.push_back(randomizedEnemySpawnTable[0]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EnemyEntry GetRandomizedEnemyEntry(uint32_t seed) {
|
EnemyEntry GetRandomizedEnemyEntry(uint32_t seed) {
|
||||||
@@ -348,7 +342,7 @@ EnemyEntry GetRandomizedEnemyEntry(uint32_t seed) {
|
|||||||
uint32_t finalSeed =
|
uint32_t finalSeed =
|
||||||
seed + (IS_RANDO ? Rando::Context::GetInstance()->GetSeed() : gSaveContext.ship.stats.fileCreatedAt);
|
seed + (IS_RANDO ? Rando::Context::GetInstance()->GetSeed() : gSaveContext.ship.stats.fileCreatedAt);
|
||||||
Random_Init(finalSeed);
|
Random_Init(finalSeed);
|
||||||
uint32_t randomNumber = Random(0, RANDOMIZED_ENEMY_SPAWN_TABLE_SIZE);
|
uint32_t randomNumber = Random(0, selectedEnemyList.size());
|
||||||
return selectedEnemyList[randomNumber];
|
return selectedEnemyList[randomNumber];
|
||||||
} else {
|
} else {
|
||||||
uint32_t randomSelectedEnemy = Random(0, selectedEnemyList.size());
|
uint32_t randomSelectedEnemy = Random(0, selectedEnemyList.size());
|
||||||
|
|||||||
Reference in New Issue
Block a user