feat: allow bots to be added into the game even if no default spawn points (ref #511)

This commit is contained in:
jeefo 2024-01-21 00:59:15 +03:00
commit 05e10bae6e
No known key found for this signature in database
GPG key ID: 927BCA0779BEA8ED
6 changed files with 36 additions and 4 deletions

View file

@ -441,7 +441,12 @@ void BotManager::maintainQuota () {
else {
desiredBotCount = cr::min <int> (desiredBotCount, maxClients - humanPlayersInGame);
}
int maxSpawnCount = game.getSpawnCount (Team::Terrorist) + game.getSpawnCount (Team::CT) - humanPlayersInGame;
auto maxSpawnCount = game.getSpawnCount (Team::Terrorist) + game.getSpawnCount (Team::CT) - humanPlayersInGame;
// if has some custom spawn points, max out spawn point counter
if (desiredBotCount > botsInGame && hasCustomCSDMSpawnEntities ()) {
maxSpawnCount = game.maxClients () + 1;
}
// sent message only to console from here
ctrl.setFromConsole (true);
@ -760,6 +765,16 @@ bool BotManager::kickRandom (bool decQuota, Team fromTeam) {
return false;
}
bool BotManager::hasCustomCSDMSpawnEntities () {
if (!game.is (GameFlags::CSDM | GameFlags::FreeForAll)) {
return false;
}
auto customSpawnClass = conf.fetchCustom ("CustomCSDMSpawnPoint");
// check for custom entity
return game.hasEntityInGame (customSpawnClass);
}
void BotManager::setLastWinner (int winner) {
m_lastWinner = winner;
m_roundOver = true;