ScriptWwcommonEventBindery.h

Go to the documentation of this file.
00001 
00007 /* Copyright, 2004 Werewolf
00008  *
00009  * This file is part of Werewolf.
00010  * Werewolf is free software; you can redistribute it and/or modify
00011  * it under the terms of the GNU General Public License as published by
00012  * the Free Software Foundation; either version 2, or (at your option)
00013  * any later version.
00014 
00015  * Werewolf is distributed in the hope that it will be useful, but
00016  * WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00018  * General Public License for more details.
00019 
00020  * You should have received a copy of the GNU General Public License
00021  * along with Werewolf; see the file COPYING. If not, write to the
00022  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
00023  * MA 02111-1307, USA.
00024  */
00025 #ifndef __SCRIPTWWCOMMONEVENTBINDERY_H__
00026 #define __SCRIPTWWCOMMONEVENTBINDERY_H__
00027 
00028 //
00029 // Standard Includes
00030 //
00031 
00032 //
00033 // System Includes
00034 //
00035 #include <angelscript.h>
00036 
00037 //
00038 // NeL Includes
00039 //
00040 #include <nel/misc/types_nl.h>
00041 #include <nel/misc/debug.h>
00042 #include <nel/misc/matrix.h>
00043 
00044 //
00045 // Werewolf Includes
00046 //
00047 #include "wwscript/ScriptEngine/ScriptManager.h"
00048 #include "wwscript/ScriptBindings/ScriptBinding.h"
00049 #include "wwscript/GlobalProperty/IProperty.h"
00050 #include "wwcommon/CGameSpawnRequestEvent.h"
00051 #include "wwcommon/CGameUnspawnRequestEvent.h"
00052 #include "wwcommon/CGameEventServer.h"
00053 #include "wwcommon/CSobAddEvent.h"
00054 #include "wwcommon/CSobRemoveEvent.h"
00055 #include "wwcommon/CSobSpawnEvent.h"
00056 #include "wwcommon/CSobUnspawnEvent.h"
00057 #include "wwcommon/CSobStateRequestEvent.h"
00058 #include "wwcommon/ISobStateChangeEvent.h"
00059 
00060 //#include "bindclassutil.h"
00061 //#include "registrar.h"
00062 
00063 //
00064 // Namespaces
00065 //
00066 
00067 //       class          , name     , handle, create
00068 //ASTRAITS(WWCOMMON::CGameSpawnRequestEvent, "CGameSpawnRequestEvent", true, true, true);
00069 //ASTRAITS(WWCOMMON::CGameUnspawnRequestEvent, "CGameUnspawnRequestEvent", true, true, true);
00070 //ASTRAITS(WWCOMMON::IGameEvent, "IGameEvent", true, false, true);
00071 //ASTRAITS(WWCOMMON::CGameEventServer, "CGameEventServer", true, false, true);
00072 
00073 namespace WWSCRIPT {
00074 
00075 WWCOMMON::CGameEventServer &getGameEventServer() {
00076     return WWCOMMON::CGameEventServer::instance();
00077 }
00078 
00079 class ScriptWwcommonEventBindery : public ScriptBinding {
00080 public:
00081     ScriptWwcommonEventBindery() { }
00082 
00083     bool bindObjects() {
00084         // Game Events
00085         bindIGameEvent();
00086         bindCGameUnspawnRequestEvent();
00087         bindCGameSpawnRequestEvent();
00088         
00089         // Sob Events
00090         bindISobEvent();
00091         bindCSobAddEvent();
00092         bindCSobRemoveEvent();
00093         bindCSobSpawnEvent();
00094         bindCSobUnspawnEvent();
00095         bindCSobStateRequestEvent();
00096 
00097         // Game Event Server
00098         bindCGameEventServer();
00099         nlinfo("Done binding.");
00100         return true;
00101     }
00102 
00103     void bindCGameEventServer() {
00104         asIScriptEngine *engine = ScriptManager::getInstance().getEngine();
00105         int r;
00106         nlinfo("Binding CGameEventServer");
00107         // Register Object Type
00108         r = engine->RegisterObjectType("CGameEventServer", sizeof(WWCOMMON::CGameEventServer), asOBJ_REF); nlassert(r>=0);
00109 
00110         // Register Behaviors, omit factory behavior so this interface cannot be created.
00111         r = engine->RegisterObjectBehaviour("CGameEventServer", asBEHAVE_ADDREF, "void f()", asMETHOD(asRefDummy,addRef), asCALL_THISCALL); nlassert(r>=0);
00112         r = engine->RegisterObjectBehaviour("CGameEventServer", asBEHAVE_RELEASE, "void f()", asMETHOD(asRefDummy,release), asCALL_THISCALL); nlassert(r>=0);
00113 
00114         r = engine->RegisterGlobalFunction("CGameEventServer @getGameEventServer()", asFUNCTION(getGameEventServer), asCALL_CDECL); nlassert(r>=0);
00115         r = engine->RegisterObjectMethod("CGameEventServer", "void processEventQueue()", asMETHODPR(WWCOMMON::CGameEventServer, processEventQueue, (void), void), asCALL_THISCALL); nlassert(r>=0);
00116         r = engine->RegisterObjectMethod("CGameEventServer", "void postEvent(IGameEvent@)", asMETHODPR(WWCOMMON::CGameEventServer, postEvent, (WWCOMMON::IGameEvent*), void), asCALL_THISCALL); nlassert(r>=0);
00117     }   
00118 
00119     
00120     /*
00121      * Begin Game Events.
00122      */
00123     template<class T>
00124     void registerIGameEvent(std::string typeName) {
00125         asIScriptEngine *engine = ScriptManager::getInstance().getEngine();
00126         int r;
00127         r = engine->RegisterObjectMethod(typeName.c_str(), "uint32 getPlayerID()", asMETHODPR(T, getPlayerID, (void) const, uint32), asCALL_THISCALL); nlassert(r>=0);
00128         r = engine->RegisterObjectMethod(typeName.c_str(), "void setPlayerID(uint32)", asMETHODPR(T, setPlayerID, (uint32), void), asCALL_THISCALL); nlassert(r>=0);
00129         r = engine->RegisterObjectMethod(typeName.c_str(), "uint16 getId()", asMETHODPR(T, getId, (void) const, uint16), asCALL_THISCALL); nlassert(r>=0);
00130         r = engine->RegisterObjectMethod(typeName.c_str(), "string& getClassName()", asMETHOD(T, getClassName), asCALL_THISCALL); nlassert(r>=0);
00131     }
00132 
00133     void bindIGameEvent() {
00134         asIScriptEngine *engine = ScriptManager::getInstance().getEngine();
00135         int r;
00136         nlinfo("Binding IGameEvent");
00137         //REGISTER_TYPE(WWCOMMON::IGameEvent, engine);
00138         r = engine->RegisterObjectType("IGameEvent", 0, asOBJ_REF); nlassert(r>=0);
00139 
00140         // Register Behaviors, omit factory behavior so this interface cannot be created.
00141         r = engine->RegisterObjectBehaviour("IGameEvent", asBEHAVE_ADDREF, "void f()", asMETHOD(asRefDummy,addRef), asCALL_THISCALL); nlassert(r>=0);
00142         r = engine->RegisterObjectBehaviour("IGameEvent", asBEHAVE_RELEASE, "void f()", asMETHOD(asRefDummy,release), asCALL_THISCALL); nlassert(r>=0);
00143 
00144         registerIGameEvent<WWCOMMON::IGameEvent>("IGameEvent");
00145     }
00146 
00147     void bindCGameSpawnRequestEvent() {
00148         asIScriptEngine *engine = ScriptManager::getInstance().getEngine();
00149         int r;
00150         nlinfo("Binding CGameSpawnRequestEvent");       
00151         // Register Object Type
00152         r = engine->RegisterObjectType("CGameSpawnRequestEvent", 0, asOBJ_REF); nlassert(r>=0);
00153         
00154         // Register Behaviors.
00155         r = engine->RegisterObjectBehaviour("CGameSpawnRequestEvent", asBEHAVE_ADDREF, "void f()", asMETHOD(asRefDummy,addRef), asCALL_THISCALL); nlassert(r>=0);
00156         r = engine->RegisterObjectBehaviour("CGameSpawnRequestEvent", asBEHAVE_RELEASE, "void f()", asMETHOD(asRefDummy,release), asCALL_THISCALL); nlassert(r>=0);
00157         r = engine->RegisterObjectBehaviour("CGameSpawnRequestEvent", asBEHAVE_FACTORY, "CGameSpawnRequestEvent @f()", asFUNCTION((asCreateFactory0<WWCOMMON::CGameSpawnRequestEvent>)), asCALL_CDECL); nlassert(r>=0);
00158 
00159         // Register parents methods.
00160         registerIGameEvent<WWCOMMON::CGameSpawnRequestEvent>("CGameSpawnRequestEvent");
00161         
00162         // Register object properties.
00163         r = engine->RegisterObjectProperty("CGameSpawnRequestEvent", "uint32 CharacterID", offsetof(WWCOMMON::CGameSpawnRequestEvent, CharacterID)); nlassert(r>=0);
00164 
00165         // Register inheritance.
00166         r = engine->RegisterObjectBehaviour("CGameSpawnRequestEvent", asBEHAVE_IMPLICIT_REF_CAST, "IGameEvent@ f()", asFUNCTION((refCast<WWCOMMON::CGameSpawnRequestEvent,WWCOMMON::IGameEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00167         r = engine->RegisterObjectBehaviour("IGameEvent", asBEHAVE_REF_CAST, "CGameSpawnRequestEvent@ f()", asFUNCTION((refCast<WWCOMMON::IGameEvent,WWCOMMON::CGameSpawnRequestEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00168     }
00169 
00170     void bindCGameUnspawnRequestEvent() {
00171         asIScriptEngine *engine = ScriptManager::getInstance().getEngine();
00172         int r;
00173         nlinfo("Binding CGameUnspawnRequestEvent");     
00174         // Register Object Type
00175         r = engine->RegisterObjectType("CGameUnspawnRequestEvent", 0, asOBJ_REF); nlassert(r>=0);
00176         
00177         // Register Behaviors.
00178         r = engine->RegisterObjectBehaviour("CGameUnspawnRequestEvent", asBEHAVE_ADDREF, "void f()", asMETHOD(asRefDummy,addRef), asCALL_THISCALL); nlassert(r>=0);
00179         r = engine->RegisterObjectBehaviour("CGameUnspawnRequestEvent", asBEHAVE_RELEASE, "void f()", asMETHOD(asRefDummy,release), asCALL_THISCALL); nlassert(r>=0);
00180         r = engine->RegisterObjectBehaviour("CGameUnspawnRequestEvent", asBEHAVE_FACTORY, "CGameUnspawnRequestEvent @f()", asFUNCTION((asCreateFactory0<WWCOMMON::CGameUnspawnRequestEvent>)), asCALL_CDECL); nlassert(r>=0);
00181 
00182         // Register parents methods.
00183         registerIGameEvent<WWCOMMON::CGameUnspawnRequestEvent>("CGameUnspawnRequestEvent");
00184         
00185         // Register object properties.
00186         r = engine->RegisterObjectProperty("CGameUnspawnRequestEvent", "uint32 SobID", offsetof(WWCOMMON::CGameUnspawnRequestEvent, SobID)); nlassert(r>=0);
00187 
00188         // Register inheritance.
00189         r = engine->RegisterObjectBehaviour("CGameUnspawnRequestEvent", asBEHAVE_IMPLICIT_REF_CAST, "IGameEvent@ f()", asFUNCTION((refCast<WWCOMMON::CGameUnspawnRequestEvent,WWCOMMON::IGameEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00190         r = engine->RegisterObjectBehaviour("IGameEvent", asBEHAVE_REF_CAST, "CGameUnspawnRequestEvent@ f()", asFUNCTION((refCast<WWCOMMON::IGameEvent,WWCOMMON::CGameUnspawnRequestEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00191     }
00192 
00193 
00194 
00195 
00196     
00197     /*
00198      * Begin Sob Events.
00199      */
00200     template<class T>
00201     void registerISobEvent(std::string typeName) {
00202         asIScriptEngine *engine = ScriptManager::getInstance().getEngine();
00203         int r;
00204         
00205         // Register parents methods.
00206         registerIGameEvent<T>(typeName.c_str());
00207 
00208         // Register ISobEvent Properties.
00209         r = engine->RegisterObjectProperty(typeName.c_str(), "uint32 SourceID", offsetof(T, SourceID)); nlassert(r>=0);
00210         r = engine->RegisterObjectProperty(typeName.c_str(), "uint32 TargetID", offsetof(T, SourceID)); nlassert(r>=0);
00211     }
00212 
00213     void bindISobEvent() {
00214         asIScriptEngine *engine = ScriptManager::getInstance().getEngine();
00215         int r;
00216         nlinfo("Binding ISobEvent");
00217         r = engine->RegisterObjectType("ISobEvent", 0, asOBJ_REF); nlassert(r>=0);
00218 
00219         // Register Behaviors, omit factory behavior so this interface cannot be created.
00220         r = engine->RegisterObjectBehaviour("ISobEvent", asBEHAVE_ADDREF, "void f()", asMETHOD(asRefDummy,addRef), asCALL_THISCALL); nlassert(r>=0);
00221         r = engine->RegisterObjectBehaviour("ISobEvent", asBEHAVE_RELEASE, "void f()", asMETHOD(asRefDummy,release), asCALL_THISCALL); nlassert(r>=0);
00222 
00223         // Register parents methods.
00224         registerISobEvent<WWCOMMON::ISobEvent>("ISobEvent");
00225 
00226         // Register inheritance.
00227         r = engine->RegisterObjectBehaviour("ISobEvent", asBEHAVE_IMPLICIT_REF_CAST, "IGameEvent@ f()", asFUNCTION((refCast<WWCOMMON::ISobEvent,WWCOMMON::IGameEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);     
00228         r = engine->RegisterObjectBehaviour("IGameEvent", asBEHAVE_REF_CAST, "ISobEvent@ f()", asFUNCTION((refCast<WWCOMMON::IGameEvent,WWCOMMON::ISobEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00229 
00230     }
00231 
00232     void bindCSobAddEvent() {
00233         asIScriptEngine *engine = ScriptManager::getInstance().getEngine();
00234         int r;
00235         nlinfo("Binding CSobAddEvent");     
00236         // Register Object Type
00237         r = engine->RegisterObjectType("CSobAddEvent", 0, asOBJ_REF); nlassert(r>=0);
00238         
00239         // Register Behaviors.
00240         r = engine->RegisterObjectBehaviour("CSobAddEvent", asBEHAVE_ADDREF, "void f()", asMETHOD(asRefDummy,addRef), asCALL_THISCALL); nlassert(r>=0);
00241         r = engine->RegisterObjectBehaviour("CSobAddEvent", asBEHAVE_RELEASE, "void f()", asMETHOD(asRefDummy,release), asCALL_THISCALL); nlassert(r>=0);
00242         r = engine->RegisterObjectBehaviour("CSobAddEvent", asBEHAVE_FACTORY, "CSobAddEvent @f()", asFUNCTION((asCreateFactory0<WWCOMMON::CSobAddEvent>)), asCALL_CDECL); nlassert(r>=0);
00243 
00244         // Register parents methods.
00245         registerISobEvent<WWCOMMON::CSobAddEvent>("CSobAddEvent");
00246 
00247         // Register object properties.
00248         r = engine->RegisterObjectProperty("CSobAddEvent", "CVector Position", offsetof(WWCOMMON::CSobAddEvent, Position)); nlassert(r>=0);
00249         r = engine->RegisterObjectProperty("CSobAddEvent", "CVector Speed", offsetof(WWCOMMON::CSobAddEvent, Speed)); nlassert(r>=0);
00250         r = engine->RegisterObjectProperty("CSobAddEvent", "float Yaw", offsetof(WWCOMMON::CSobAddEvent, Yaw)); nlassert(r>=0);
00251         r = engine->RegisterObjectProperty("CSobAddEvent", "float YawVelocity", offsetof(WWCOMMON::CSobAddEvent, YawVelocity)); nlassert(r>=0);
00252         r = engine->RegisterObjectProperty("CSobAddEvent", "string EMD", offsetof(WWCOMMON::CSobAddEvent, EMD)); nlassert(r>=0);
00253         /* TODO: std::vector<uint32> ActiveStateList, is this necessary? */
00254 
00255         // Register inheritance.
00256         r = engine->RegisterObjectBehaviour("CSobAddEvent", asBEHAVE_IMPLICIT_REF_CAST, "ISobEvent@ f()", asFUNCTION((refCast<WWCOMMON::CSobAddEvent,WWCOMMON::ISobEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00257         r = engine->RegisterObjectBehaviour("CSobAddEvent", asBEHAVE_IMPLICIT_REF_CAST, "IGameEvent@ f()", asFUNCTION((refCast<WWCOMMON::CSobAddEvent,WWCOMMON::IGameEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00258         r = engine->RegisterObjectBehaviour("ISobEvent", asBEHAVE_REF_CAST, "CSobAddEvent@ f()", asFUNCTION((refCast<WWCOMMON::ISobEvent,WWCOMMON::CSobAddEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00259         r = engine->RegisterObjectBehaviour("IGameEvent", asBEHAVE_REF_CAST, "CSobAddEvent@ f()", asFUNCTION((refCast<WWCOMMON::IGameEvent,WWCOMMON::CSobAddEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00260     }
00261     void bindCSobRemoveEvent() {
00262         asIScriptEngine *engine = ScriptManager::getInstance().getEngine();
00263         int r;
00264         nlinfo("Binding CSobRemoveEvent");      
00265         // Register Object Type
00266         r = engine->RegisterObjectType("CSobRemoveEvent", 0, asOBJ_REF); nlassert(r>=0);
00267         
00268         // Register Behaviors.
00269         r = engine->RegisterObjectBehaviour("CSobRemoveEvent", asBEHAVE_ADDREF, "void f()", asMETHOD(asRefDummy,addRef), asCALL_THISCALL); nlassert(r>=0);
00270         r = engine->RegisterObjectBehaviour("CSobRemoveEvent", asBEHAVE_RELEASE, "void f()", asMETHOD(asRefDummy,release), asCALL_THISCALL); nlassert(r>=0);
00271         r = engine->RegisterObjectBehaviour("CSobRemoveEvent", asBEHAVE_FACTORY, "CSobRemoveEvent @f()", asFUNCTION((asCreateFactory0<WWCOMMON::CSobRemoveEvent>)), asCALL_CDECL); nlassert(r>=0);
00272 
00273         // Register parents methods.
00274         registerISobEvent<WWCOMMON::CSobRemoveEvent>("CSobRemoveEvent");
00275 
00276         // Register object properties.
00277         // Note: Currently there are no properties on this event.
00278 
00279         // Register inheritance.
00280         r = engine->RegisterObjectBehaviour("CSobRemoveEvent", asBEHAVE_IMPLICIT_REF_CAST, "ISobEvent@ f()", asFUNCTION((refCast<WWCOMMON::CSobRemoveEvent,WWCOMMON::ISobEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00281         r = engine->RegisterObjectBehaviour("CSobRemoveEvent", asBEHAVE_IMPLICIT_REF_CAST, "IGameEvent@ f()", asFUNCTION((refCast<WWCOMMON::CSobRemoveEvent,WWCOMMON::IGameEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00282         r = engine->RegisterObjectBehaviour("ISobEvent", asBEHAVE_REF_CAST, "CSobRemoveEvent@ f()", asFUNCTION((refCast<WWCOMMON::ISobEvent,WWCOMMON::CSobRemoveEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00283         r = engine->RegisterObjectBehaviour("IGameEvent", asBEHAVE_REF_CAST, "CSobRemoveEvent@ f()", asFUNCTION((refCast<WWCOMMON::IGameEvent,WWCOMMON::CSobRemoveEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00284     }
00285     void bindCSobSpawnEvent() {
00286         asIScriptEngine *engine = ScriptManager::getInstance().getEngine();
00287         int r;
00288         nlinfo("Binding CSobSpawnEvent");       
00289         // Register Object Type
00290         r = engine->RegisterObjectType("CSobSpawnEvent", 0, asOBJ_REF); nlassert(r>=0);
00291         
00292         // Register Behaviors.
00293         r = engine->RegisterObjectBehaviour("CSobSpawnEvent", asBEHAVE_ADDREF, "void f()", asMETHOD(asRefDummy,addRef), asCALL_THISCALL); nlassert(r>=0);
00294         r = engine->RegisterObjectBehaviour("CSobSpawnEvent", asBEHAVE_RELEASE, "void f()", asMETHOD(asRefDummy,release), asCALL_THISCALL); nlassert(r>=0);
00295         r = engine->RegisterObjectBehaviour("CSobSpawnEvent", asBEHAVE_FACTORY, "CSobSpawnEvent @f()", asFUNCTION((asCreateFactory0<WWCOMMON::CSobSpawnEvent>)), asCALL_CDECL); nlassert(r>=0);
00296 
00297         // Register parents methods.
00298         registerISobEvent<WWCOMMON::CSobSpawnEvent>("CSobSpawnEvent");
00299 
00300         // Register object properties.
00301         r = engine->RegisterObjectProperty("CSobSpawnEvent", "CVector Position", offsetof(WWCOMMON::CSobAddEvent, Position)); nlassert(r>=0);
00302         r = engine->RegisterObjectProperty("CSobSpawnEvent", "string EMD", offsetof(WWCOMMON::CSobSpawnEvent, EMD)); nlassert(r>=0);
00303 
00304         // Register inheritance.
00305         r = engine->RegisterObjectBehaviour("CSobSpawnEvent", asBEHAVE_IMPLICIT_REF_CAST, "ISobEvent@ f()", asFUNCTION((refCast<WWCOMMON::CSobSpawnEvent,WWCOMMON::ISobEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00306         r = engine->RegisterObjectBehaviour("CSobSpawnEvent", asBEHAVE_IMPLICIT_REF_CAST, "IGameEvent@ f()", asFUNCTION((refCast<WWCOMMON::CSobSpawnEvent,WWCOMMON::IGameEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00307         r = engine->RegisterObjectBehaviour("ISobEvent", asBEHAVE_REF_CAST, "CSobSpawnEvent@ f()", asFUNCTION((refCast<WWCOMMON::ISobEvent,WWCOMMON::CSobSpawnEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00308         r = engine->RegisterObjectBehaviour("IGameEvent", asBEHAVE_REF_CAST, "CSobSpawnEvent@ f()", asFUNCTION((refCast<WWCOMMON::IGameEvent,WWCOMMON::CSobSpawnEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00309     }
00310 
00311 
00312     void bindCSobUnspawnEvent() {
00313         asIScriptEngine *engine = ScriptManager::getInstance().getEngine();
00314         int r;
00315         nlinfo("Binding CSobUnspawnEvent");     
00316         // Register Object Type
00317         r = engine->RegisterObjectType("CSobUnspawnEvent", 0, asOBJ_REF); nlassert(r>=0);
00318         
00319         // Register Behaviors.
00320         r = engine->RegisterObjectBehaviour("CSobUnspawnEvent", asBEHAVE_ADDREF, "void f()", asMETHOD(asRefDummy,addRef), asCALL_THISCALL); nlassert(r>=0);
00321         r = engine->RegisterObjectBehaviour("CSobUnspawnEvent", asBEHAVE_RELEASE, "void f()", asMETHOD(asRefDummy,release), asCALL_THISCALL); nlassert(r>=0);
00322         r = engine->RegisterObjectBehaviour("CSobUnspawnEvent", asBEHAVE_FACTORY, "CSobUnspawnEvent @f()", asFUNCTION((asCreateFactory0<WWCOMMON::CSobUnspawnEvent>)), asCALL_CDECL); nlassert(r>=0);
00323 
00324         // Register parents methods.
00325         registerISobEvent<WWCOMMON::CSobUnspawnEvent>("CSobUnspawnEvent");
00326 
00327         // Register object properties.
00328         // Note: Currently there are no properties on this event.
00329 
00330         // Register inheritance.
00331         r = engine->RegisterObjectBehaviour("CSobUnspawnEvent", asBEHAVE_IMPLICIT_REF_CAST, "ISobEvent@ f()", asFUNCTION((refCast<WWCOMMON::CSobUnspawnEvent,WWCOMMON::ISobEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00332         r = engine->RegisterObjectBehaviour("CSobUnspawnEvent", asBEHAVE_IMPLICIT_REF_CAST, "IGameEvent@ f()", asFUNCTION((refCast<WWCOMMON::CSobUnspawnEvent,WWCOMMON::IGameEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00333         r = engine->RegisterObjectBehaviour("ISobEvent", asBEHAVE_REF_CAST, "CSobUnspawnEvent@ f()", asFUNCTION((refCast<WWCOMMON::ISobEvent,WWCOMMON::CSobUnspawnEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00334         r = engine->RegisterObjectBehaviour("IGameEvent", asBEHAVE_REF_CAST, "CSobUnspawnEvent@ f()", asFUNCTION((refCast<WWCOMMON::IGameEvent,WWCOMMON::CSobUnspawnEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00335     }
00336 
00337 
00338     void bindCSobStateRequestEvent() {
00339         asIScriptEngine *engine = ScriptManager::getInstance().getEngine();
00340         int r;
00341         nlinfo("Binding CSobStateRequestEvent");        
00342         // Register Object Type
00343         r = engine->RegisterObjectType("CSobStateRequestEvent", 0, asOBJ_REF); nlassert(r>=0);
00344         
00345         // Register Behaviors.
00346         r = engine->RegisterObjectBehaviour("CSobStateRequestEvent", asBEHAVE_ADDREF, "void f()", asMETHOD(asRefDummy,addRef), asCALL_THISCALL); nlassert(r>=0);
00347         r = engine->RegisterObjectBehaviour("CSobStateRequestEvent", asBEHAVE_RELEASE, "void f()", asMETHOD(asRefDummy,release), asCALL_THISCALL); nlassert(r>=0);
00348         r = engine->RegisterObjectBehaviour("CSobStateRequestEvent", asBEHAVE_FACTORY, "CSobStateRequestEvent @f()", asFUNCTION((asCreateFactory0<WWCOMMON::CSobStateRequestEvent>)), asCALL_CDECL); nlassert(r>=0);
00349 
00350         // Register parents methods.
00351         registerISobEvent<WWCOMMON::CSobStateRequestEvent>("CSobStateRequestEvent");
00352 
00353         // Register object properties.
00354         r = engine->RegisterObjectProperty("CSobSpawnEvent", "uint32 TargetState", offsetof(WWCOMMON::CSobStateRequestEvent, TargetState)); nlassert(r>=0);
00355 
00356         // Register inheritance.
00357         r = engine->RegisterObjectBehaviour("CSobStateRequestEvent", asBEHAVE_IMPLICIT_REF_CAST, "ISobEvent@ f()", asFUNCTION((refCast<WWCOMMON::CSobStateRequestEvent,WWCOMMON::ISobEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00358         r = engine->RegisterObjectBehaviour("CSobStateRequestEvent", asBEHAVE_IMPLICIT_REF_CAST, "IGameEvent@ f()", asFUNCTION((refCast<WWCOMMON::CSobStateRequestEvent,WWCOMMON::IGameEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00359         r = engine->RegisterObjectBehaviour("ISobEvent", asBEHAVE_REF_CAST, "CSobStateRequestEvent@ f()", asFUNCTION((refCast<WWCOMMON::ISobEvent,WWCOMMON::CSobStateRequestEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00360         r = engine->RegisterObjectBehaviour("IGameEvent", asBEHAVE_REF_CAST, "CSobStateRequestEvent@ f()", asFUNCTION((refCast<WWCOMMON::IGameEvent,WWCOMMON::CSobStateRequestEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00361     }
00362 
00363     void bindISobStateChangeEvent() {
00364         asIScriptEngine *engine = ScriptManager::getInstance().getEngine();
00365         int r;
00366         nlinfo("Binding ISobStateChangeEvent");     
00367         // Register Object Type
00368         r = engine->RegisterObjectType("ISobStateChangeEvent", 0, asOBJ_REF); nlassert(r>=0);
00369         
00370         // Register Behaviors.
00371         r = engine->RegisterObjectBehaviour("ISobStateChangeEvent", asBEHAVE_ADDREF, "void f()", asMETHOD(asRefDummy,addRef), asCALL_THISCALL); nlassert(r>=0);
00372         r = engine->RegisterObjectBehaviour("ISobStateChangeEvent", asBEHAVE_RELEASE, "void f()", asMETHOD(asRefDummy,release), asCALL_THISCALL); nlassert(r>=0);
00373         //r = engine->RegisterObjectBehaviour("CSobStateRequestEvent", asBEHAVE_FACTORY, "CSobStateRequestEvent @f()", asFUNCTION((asCreateFactory0<WWCOMMON::CSobStateRequestEvent>)), asCALL_CDECL); nlassert(r>=0);
00374 
00375         // Register parents methods.
00376         registerISobEvent<WWCOMMON::ISobStateChangeEvent>("ISobStateChangeEvent");
00377 
00378         // Register object properties.
00379         r = engine->RegisterObjectProperty("ISobStateChangeEvent", "uint32 TargetState", offsetof(WWCOMMON::ISobStateChangeEvent, TargetState)); nlassert(r>=0);
00380         // TODO: register property: double StateDuration;
00381         // Register inheritance.
00382         r = engine->RegisterObjectBehaviour("ISobStateChangeEvent", asBEHAVE_IMPLICIT_REF_CAST, "ISobEvent@ f()", asFUNCTION((refCast<WWCOMMON::ISobStateChangeEvent,WWCOMMON::ISobEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00383         r = engine->RegisterObjectBehaviour("ISobStateChangeEvent", asBEHAVE_IMPLICIT_REF_CAST, "IGameEvent@ f()", asFUNCTION((refCast<WWCOMMON::ISobStateChangeEvent,WWCOMMON::IGameEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00384         r = engine->RegisterObjectBehaviour("ISobEvent", asBEHAVE_REF_CAST, "ISobStateChangeEvent@ f()", asFUNCTION((refCast<WWCOMMON::ISobEvent,WWCOMMON::ISobStateChangeEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00385         r = engine->RegisterObjectBehaviour("IGameEvent", asBEHAVE_REF_CAST, "ISobStateChangeEvent@ f()", asFUNCTION((refCast<WWCOMMON::IGameEvent,WWCOMMON::ISobStateChangeEvent>)), asCALL_CDECL_OBJLAST); nlassert(r>=0);
00386     }
00387 };
00388 
00389 }; // END NAMESPACE WWSCRIPT
00390 
00391 #endif // __SCRIPTWWCOMMONEVENTBINDERY_H__

Generated on Mon Jan 11 12:03:39 2010 for Werewolf by  doxygen 1.6.1