summaryrefslogtreecommitdiff
path: root/src/script
diff options
context:
space:
mode:
Diffstat (limited to 'src/script')
-rw-r--r--src/script/api/script_object.cpp2
-rw-r--r--src/script/script_instance.hpp7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/script/api/script_object.cpp b/src/script/api/script_object.cpp
index 5afe76beb..d5b512152 100644
--- a/src/script/api/script_object.cpp
+++ b/src/script/api/script_object.cpp
@@ -243,7 +243,7 @@ ScriptObject::ActiveInstance::~ActiveInstance()
#endif
/* Try to perform the command. */
- CommandCost res = ::DoCommandPInternal(tile, p1, p2, cmd, _networking ? CcAI : NULL, text, false, estimate_only);
+ CommandCost res = ::DoCommandPInternal(tile, p1, p2, cmd, _networking ? ScriptObject::GetActiveInstance()->GetDoCommandCallback() : NULL, text, false, estimate_only);
/* We failed; set the error and bail out */
if (res.Failed()) {
diff --git a/src/script/script_instance.hpp b/src/script/script_instance.hpp
index 232218912..21edf981a 100644
--- a/src/script/script_instance.hpp
+++ b/src/script/script_instance.hpp
@@ -15,6 +15,8 @@
#include <squirrel.h>
#include "script_suspend.hpp"
+#include "../command_type.h"
+
/** Runtime information about a script like a pointer to the squirrel vm and the current state. */
class ScriptInstance {
public:
@@ -155,6 +157,11 @@ protected:
*/
virtual void Died();
+ /**
+ * Get the callback handling DoCommands in case of networking.
+ */
+ virtual CommandCallback *GetDoCommandCallback() = 0;
+
private:
class ScriptController *controller; ///< The script main class.
class ScriptStorage *storage; ///< Some global information for each running script.