summaryrefslogtreecommitdiff
path: root/src/ai/ai_core.cpp
diff options
context:
space:
mode:
authortruebrain <truebrain@openttd.org>2011-11-13 20:43:48 +0000
committertruebrain <truebrain@openttd.org>2011-11-13 20:43:48 +0000
commitb7a655bf4cafc68e14cade593e8b1aca7f04f7dd (patch)
tree1880bbb64896193511e72c23c9387af2bb19acae /src/ai/ai_core.cpp
parent407514a590dc06c8b80c5304b5e9227c8c844f91 (diff)
downloadopenttd-b7a655bf4cafc68e14cade593e8b1aca7f04f7dd.tar.xz
(svn r23209) -Codechange: track the current active script instance directly, instead of assuming the current company points you to the right one.
Diffstat (limited to 'src/ai/ai_core.cpp')
-rw-r--r--src/ai/ai_core.cpp17
1 files changed, 5 insertions, 12 deletions
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<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()