Files
Seaside/SpyCustom/sdk/GameEventListener.h

66 lines
1.2 KiB
C
Raw Normal View History

2021-06-16 18:45:17 +03:00
#ifndef GAME_EVENT_LISTENER_H
#define GAME_EVENT_LISTENER_H
#ifdef _WIN32
#pragma once
#endif
#include "igameevents.h"
extern IGameEventManager2* gameeventmanager;
class CGameEventListener : public IGameEventListener2
{
public:
CGameEventListener() : m_bRegisteredForEvents(false)
{
}
~CGameEventListener()
{
StopListeningForAllEvents();
}
void ListenForGameEvent(const char* name)
{
m_bRegisteredForEvents = true;
#ifdef CLIENT_DLL
bool bServerSide = false;
#else
bool bServerSide = true;
#endif
if (gameeventmanager)
gameeventmanager->AddListener(this, name, bServerSide);
}
2022-11-12 14:43:02 +03:00
void ListenForAllGameEvents()
{
#ifdef CLIENT_DLL
bool bServerSide = false;
#else
bool bServerSide = true;
#endif
gameeventmanager->AddListenerGlobal(this, bServerSide);
}
2021-06-16 18:45:17 +03:00
void StopListeningForAllEvents()
{
if (m_bRegisteredForEvents)
{
if (gameeventmanager)
gameeventmanager->RemoveListener(this);
m_bRegisteredForEvents = false;
}
}
virtual void FireGameEvent(IGameEvent* event) = 0;
2022-11-12 14:43:02 +03:00
int m_nDebugID;
virtual int GetEventDebugID(void);
2021-06-16 18:45:17 +03:00
private:
bool m_bRegisteredForEvents;
};
#endif