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
|