(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:
@@ -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();
|
||||
|
Reference in New Issue
Block a user