(svn r23209) -Codechange: track the current active script instance directly, instead of assuming the current company points you to the right one.
This commit is contained in:
@@ -52,7 +52,8 @@
|
||||
|
||||
c->ai_info = info;
|
||||
assert(c->ai_instance == NULL);
|
||||
c->ai_instance = new AIInstance(info);
|
||||
c->ai_instance = new AIInstance();
|
||||
c->ai_instance->Initialize(info);
|
||||
|
||||
cur_company.Restore();
|
||||
|
||||
@@ -214,7 +215,7 @@
|
||||
|
||||
/* Queue the event */
|
||||
Backup<CompanyByte> cur_company(_current_company, company, FILE_LINE);
|
||||
AIEventController::InsertEvent(event);
|
||||
Company::Get(_current_company)->ai_instance->InsertEvent(event);
|
||||
cur_company.Restore();
|
||||
|
||||
event->Release();
|
||||
@@ -248,15 +249,7 @@
|
||||
*/
|
||||
void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
|
||||
{
|
||||
AIObject::SetLastCommandRes(result.Succeeded());
|
||||
|
||||
if (result.Failed()) {
|
||||
AIObject::SetLastError(AIError::StringToError(result.GetErrorMessage()));
|
||||
} else {
|
||||
AIObject::IncreaseDoCommandCosts(result.GetCost());
|
||||
AIObject::SetLastCost(result.GetCost());
|
||||
}
|
||||
|
||||
Company::Get(_current_company)->ai_instance->DoCommandCallback(result, tile, p1, p2);
|
||||
Company::Get(_current_company)->ai_instance->Continue();
|
||||
}
|
||||
|
||||
@@ -327,7 +320,7 @@ void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
|
||||
|
||||
/* static */ bool AI::ImportLibrary(const char *library, const char *class_name, int version, HSQUIRRELVM vm)
|
||||
{
|
||||
return AI::ai_scanner->ImportLibrary(library, class_name, version, vm, Company::Get(_current_company)->ai_instance->GetController());
|
||||
return AI::ai_scanner->ImportLibrary(library, class_name, version, vm, AIObject::GetActiveInstance()->GetController());
|
||||
}
|
||||
|
||||
/* static */ void AI::Rescan()
|
||||
|
Reference in New Issue
Block a user