From 2b97f38cd176d5638053c87199e6ac175d5ee1e4 Mon Sep 17 00:00:00 2001 From: rubidium Date: Mon, 11 Jan 2010 18:46:09 +0000 Subject: (svn r18781) -Codechange: pass the CommandCost to the callback instead of whether it succeeded or not. -Fix: AIs did update their last cost incorrectly in network games if the cost of the DC_EXEC phase differed from the ~DC_EXEC phase. --- src/ai/ai_core.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/ai/ai_core.cpp') diff --git a/src/ai/ai_core.cpp b/src/ai/ai_core.cpp index baf738920..eb93ecff3 100644 --- a/src/ai/ai_core.cpp +++ b/src/ai/ai_core.cpp @@ -218,14 +218,15 @@ event->Release(); } -void CcAI(bool success, TileIndex tile, uint32 p1, uint32 p2) +void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) { - AIObject::SetLastCommandRes(success); + AIObject::SetLastCommandRes(result.Succeeded()); - if (!success) { - AIObject::SetLastError(AIError::StringToError(_error_message)); + if (result.Failed()) { + AIObject::SetLastError(AIError::StringToError(result.GetErrorMessage())); } else { - AIObject::IncreaseDoCommandCosts(AIObject::GetLastCost()); + AIObject::IncreaseDoCommandCosts(result.GetCost()); + AIObject::SetLastCost(result.GetCost()); } Company::Get(_current_company)->ai_instance->Continue(); -- cgit v1.2.3-70-g09d2