File tree Expand file tree Collapse file tree
Amalgam/src/SDK/Definitions/Misc Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11#pragma once
22#include " ../Interfaces/IGameEvents.h"
33
4+ // SAFETY: Base class for game event listeners with null-safe event handling
5+ // Derived classes must validate event pointer before use in FireGameEvent()
46class CGameEventListener : public IGameEventListener2
57{
68public:
9+ // SAFETY: Pure virtual - implementers MUST validate event parameter for null
10+ // Event pointer may be null in edge cases during shutdown or map changes
711 virtual void FireGameEvent (IGameEvent* event) = 0;
812
13+ // OPTIMIZED: Inline getter for registration state (avoids function call overhead)
14+ inline bool IsRegistered () const { return m_bRegisteredForEvents; }
15+
16+ protected:
17+ // SAFETY: Initialize registration state to prevent undefined behavior
18+ CGameEventListener () : m_bRegisteredForEvents(false ) {}
19+
20+ virtual ~CGameEventListener () = default ;
21+
922private:
10- bool m_bRegisteredForEvents;
23+ bool m_bRegisteredForEvents = false ; // FIXED: Initialize to prevent undefined behavior
1124};
You can’t perform that action at this time.
0 commit comments