From b7a655bf4cafc68e14cade593e8b1aca7f04f7dd Mon Sep 17 00:00:00 2001 From: truebrain Date: Sun, 13 Nov 2011 20:43:48 +0000 Subject: (svn r23209) -Codechange: track the current active script instance directly, instead of assuming the current company points you to the right one. --- src/ai/ai_core.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'src/ai/ai_core.cpp') diff --git a/src/ai/ai_core.cpp b/src/ai/ai_core.cpp index b98c88c30..18eeef3b0 100644 --- a/src/ai/ai_core.cpp +++ b/src/ai/ai_core.cpp @@ -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 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() -- cgit v1.2.3-70-g09d2