(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.
This commit is contained in:
rubidium
2010-01-11 18:46:09 +00:00
parent 4d3871f594
commit 26b203e3ff
25 changed files with 137 additions and 150 deletions

View File

@@ -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();