(svn r23361) -Codechange: move multiplayer DoCommand callback code so other script users can call their own

This commit is contained in:
truebrain
2011-11-29 23:21:42 +00:00
parent 3da8b5097a
commit ae8540f5e0
6 changed files with 28 additions and 15 deletions

View File

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

View File

@@ -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.