Fix #12133: [Script] Don't crash when emergency saving (#12138)

(cherry picked from commit 25d1238907)
This commit is contained in:
Loïc Guilloux
2024-02-20 18:55:18 +01:00
committed by Jonathan G Rennison
parent 5098c77c38
commit d310a04276

View File

@@ -283,14 +283,18 @@
{ {
if (!_networking || _network_server) { if (!_networking || _network_server) {
Company *c = Company::GetIfValid(company); Company *c = Company::GetIfValid(company);
assert(c != nullptr && c->ai_instance != nullptr); assert(c != nullptr);
Backup<CompanyID> cur_company(_current_company, company, FILE_LINE); /* When doing emergency saving, an AI can be not fully initialised. */
c->ai_instance->Save(); if (c->ai_instance != nullptr) {
cur_company.Restore(); Backup<CompanyID> cur_company(_current_company, company, FILE_LINE);
} else { c->ai_instance->Save();
AIInstance::SaveEmpty(); cur_company.Restore();
return;
}
} }
AIInstance::SaveEmpty();
} }
/* static */ std::string AI::GetConsoleList(bool newest_only) /* static */ std::string AI::GetConsoleList(bool newest_only)