diff options
author | truebrain <truebrain@openttd.org> | 2011-11-29 23:21:42 +0000 |
---|---|---|
committer | truebrain <truebrain@openttd.org> | 2011-11-29 23:21:42 +0000 |
commit | ae8540f5e080adebca3e54c69aa7cd85a87e550b (patch) | |
tree | 31e3724978141eedb9841f1028c18c02edc23733 /src/script | |
parent | 3da8b5097a4643d531182173df36ca4d3b45a4e2 (diff) | |
download | openttd-ae8540f5e080adebca3e54c69aa7cd85a87e550b.tar.xz |
(svn r23361) -Codechange: move multiplayer DoCommand callback code so other script users can call their own
Diffstat (limited to 'src/script')
-rw-r--r-- | src/script/api/script_object.cpp | 2 | ||||
-rw-r--r-- | src/script/script_instance.hpp | 7 |
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. |