(svn r23361) -Codechange: move multiplayer DoCommand callback code so other script users can call their own
This commit is contained in:
@@ -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()) {
|
||||
|
@@ -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.
|
||||
|
Reference in New Issue
Block a user