Added paramater to CreateEvent to determine whether or not creation should be forced even if nothing is hooking/listening to the event.

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40719
This commit is contained in:
Scott Ehlert 2007-04-30 22:53:27 +00:00
parent 473e1d4135
commit 523e3d042d
4 changed files with 9 additions and 6 deletions

View File

@ -277,10 +277,10 @@ EventHookError EventManager::UnhookEvent(const char *name, IPluginFunction *pFun
return EventHookErr_Okay; return EventHookErr_Okay;
} }
EventInfo *EventManager::CreateEvent(IPluginContext *pContext, const char *name) EventInfo *EventManager::CreateEvent(IPluginContext *pContext, const char *name, bool force)
{ {
EventInfo *pInfo; EventInfo *pInfo;
IGameEvent *pEvent = gameevents->CreateEvent(name, true); IGameEvent *pEvent = gameevents->CreateEvent(name, force);
if (pEvent) if (pEvent)
{ {

View File

@ -93,7 +93,7 @@ public:
public: public:
EventHookError HookEvent(const char *name, IPluginFunction *pFunction, EventHookMode mode=EventHookMode_Post); EventHookError HookEvent(const char *name, IPluginFunction *pFunction, EventHookMode mode=EventHookMode_Post);
EventHookError UnhookEvent(const char *name, IPluginFunction *pFunction, EventHookMode mode=EventHookMode_Post); EventHookError UnhookEvent(const char *name, IPluginFunction *pFunction, EventHookMode mode=EventHookMode_Post);
EventInfo *CreateEvent(IPluginContext *pContext, const char *name); EventInfo *CreateEvent(IPluginContext *pContext, const char *name, bool force=false);
void FireEvent(EventInfo *pInfo, bool bDontBroadcast=false); void FireEvent(EventInfo *pInfo, bool bDontBroadcast=false);
void CancelCreatedEvent(EventInfo *pInfo); void CancelCreatedEvent(EventInfo *pInfo);
private: // IGameEventManager2 hooks private: // IGameEventManager2 hooks

View File

@ -71,7 +71,7 @@ static cell_t sm_CreateEvent(IPluginContext *pContext, const cell_t *params)
pContext->LocalToString(params[1], &name); pContext->LocalToString(params[1], &name);
pInfo = g_EventManager.CreateEvent(pContext, name); pInfo = g_EventManager.CreateEvent(pContext, name, params[2] ? true : false);
if (pInfo) if (pInfo)
{ {

View File

@ -81,9 +81,12 @@ native UnhookEvent(const String:name[], EventHook:callback, EventHookMode:mode=E
* Creates a game event to be fired later. * Creates a game event to be fired later.
* *
* @param name Name of event. * @param name Name of event.
* @return Handle to event or INVALID_HANDLE if event doesn't exist. * @param force If set to true, this forces the event to be created even if it's not being hooked.
* Note that this will not force it if the event doesn't exist at all.
* @return Handle to event. INVALID_HANDLE is returned if the event doesn't exist or isn't
being hooked (unless force is true).
*/ */
native Handle:CreateEvent(const String:name[]); native Handle:CreateEvent(const String:name[], bool:force=false);
/** /**
* Fires a game event. * Fires a game event.