1
0
Fork 0

Fix #11975, 27a920c: Running AIs also occupy a slot (#11976)

pull/11988/head
Loïc Guilloux 2024-02-04 13:19:35 +01:00 committed by GitHub
parent ff618230fe
commit 64611a7d12
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 11 additions and 7 deletions

View File

@ -164,6 +164,17 @@ struct AIConfigWindow : public Window {
switch (widget) {
case WID_AIC_LIST: {
Rect tr = r.Shrink(WidgetDimensions::scaled.matrix);
int max_slot = GetGameSettings().difficulty.max_no_competitors;
if (_game_mode == GM_NORMAL) {
for (const Company *c : Company::Iterate()) {
if (c->is_ai) max_slot--;
}
for (CompanyID cid = COMPANY_FIRST; cid < (CompanyID)max_slot && cid < MAX_COMPANIES; cid++) {
if (Company::IsValidID(cid)) max_slot++;
}
} else {
max_slot++; // Slot 0 is human
}
for (int i = this->vscroll->GetPosition(); this->vscroll->IsVisible(i) && i < MAX_COMPANIES; i++) {
StringID text;
@ -180,13 +191,6 @@ struct AIConfigWindow : public Window {
if (this->selected_slot == i) {
tc = TC_WHITE;
} else if (IsEditable((CompanyID)i)) {
int max_slot = GetGameSettings().difficulty.max_no_competitors;
for (const Company *c : Company::Iterate()) {
if (c->is_ai) max_slot--;
}
for (CompanyID cid = COMPANY_FIRST; cid < (CompanyID)max_slot && cid < MAX_COMPANIES; cid++) {
if (Company::IsValidHumanID(cid)) max_slot++;
}
if (i < max_slot) tc = TC_ORANGE;
} else if (Company::IsValidAiID(i)) {
tc = TC_GREEN;