struct IGameObjectSystem { struct SEntitySpawnParamsForGameObjectWithPreactivatedExtension { bool (* hookFunction)(IEntity * pEntity, IGameObject*, void * pUserData); void * pUserData; }; const ExtensionID InvalidExtensionID = ~ExtensionID(0); const uint32 InvalidEventID = ~uint32(0); };
IGameObjectSystem.h
struct SEntitySpawnParamsForGameObjectWithPreactivatedExtension { bool (* hookFunction)(IEntity * pEntity, IGameObject*, void * pUserData); void * pUserData; };
IGameObjectSystem.h
If this is set as the user data for a GameObject with Preactivated Extension spawn, then it will be called back to provide additional initialization.
const uint32 InvalidEventID = ~uint32(0);
const ExtensionID InvalidExtensionID = ~ExtensionID(0);
virtual ~IGameObjectSystem();
virtual void AddSink(IGameObjectSystemSink * pSink) = 0;
virtual void BroadcastEvent(const SGameObjectEvent& evt) = 0;
virtual IGameObject * CreateGameObjectForEntity(EntityId entityId) = 0;
virtual void DefineProtocol(bool server, IProtocolBuilder * pBuilder) = 0;
virtual uint32 GetEventID(const char* name) = 0;
virtual const char* GetEventName(uint32 id) = 0;
virtual uint32 GetExtensionSerializationPriority(IGameObjectSystem::ExtensionID id) = 0;
virtual IGameObjectSystem::ExtensionID GetID(const char * name) = 0;
virtual const char * GetName(IGameObjectSystem::ExtensionID id) = 0;
virtual IGameObjectExtensionPtr Instantiate(IGameObjectSystem::ExtensionID id, IGameObject * pObject) = 0;
virtual void PostUpdate(float frameTime) = 0;
virtual void RegisterEvent(uint32 id, const char* name) = 0;
virtual void RegisterExtension(const char * name, IGameObjectExtensionCreatorBase * pCreator, IEntityClassRegistry::SEntityClassDesc * pEntityCls) = 0;
virtual void RemoveSink(IGameObjectSystemSink * pSink) = 0;
virtual void Reset() = 0;
virtual void SetPostUpdate(IGameObject * pGameObject, bool enable) = 0;
virtual void SetSpawnSerializer(TSerialize*) = 0;
typedef uint16 ExtensionID;
typedef IGameObjectExtension * (* GameObjectExtensionFactory)();