summaryrefslogtreecommitdiff
path: root/src/script/script_instance.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/script_instance.cpp')
-rw-r--r--src/script/script_instance.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/script/script_instance.cpp b/src/script/script_instance.cpp
index 5734c2c83..64ae51cf3 100644
--- a/src/script/script_instance.cpp
+++ b/src/script/script_instance.cpp
@@ -680,10 +680,12 @@ SQInteger ScriptInstance::GetOpsTillSuspend()
return this->engine->GetOpsTillSuspend();
}
-void ScriptInstance::DoCommandCallback(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
+bool ScriptInstance::DoCommandCallback(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2, uint32 cmd)
{
ScriptObject::ActiveInstance active(this);
+ if (!ScriptObject::CheckLastCommand(tile, p1, p2, cmd)) return false;
+
ScriptObject::SetLastCommandRes(result.Succeeded());
if (result.Failed()) {
@@ -692,6 +694,10 @@ void ScriptInstance::DoCommandCallback(const CommandCost &result, TileIndex tile
ScriptObject::IncreaseDoCommandCosts(result.GetCost());
ScriptObject::SetLastCost(result.GetCost());
}
+
+ ScriptObject::SetLastCommand(INVALID_TILE, 0, 0, CMD_END);
+
+ return true;
}
void ScriptInstance::InsertEvent(class ScriptEvent *event)