#ifndef __SCRIPTHOOK_H #define __SCRIPTHOOK_H #include #include #include class ScriptObject; class ScriptObjectController; // ---------------------------------------------------------------------------------------------------------- class ScriptHook : public Dispatchable { protected: ScriptHook() {}; public: int eventCallback(ScriptObject *object, int dlfid, scriptVar **params, int nparams); enum { EVENTCALLBACK = 100, }; }; inline int ScriptHook::eventCallback(ScriptObject *object, int dlfid, scriptVar **params, int nparams) { return _call(EVENTCALLBACK, 0, object, dlfid, params, nparams); } class ScriptHookI : public ScriptHook { public: ScriptHookI(); virtual ~ScriptHookI(); virtual int eventCallback(ScriptObject *object, int dlfid, scriptVar **params, int nparams)=0; void addMonitorObject(ScriptObject *o, const GUID *hookedclass=NULL); // NULL = all classes of object o void addMonitorClass(ScriptObject *o); protected: RECVS_DISPATCH; PtrList controllers; }; #endif