1
This commit is contained in:
147
csgo2/sdk/public/igameeventsystem.h
Normal file
147
csgo2/sdk/public/igameeventsystem.h
Normal file
@@ -0,0 +1,147 @@
|
||||
#include "../sdk.h"
|
||||
class IAppSystem;
|
||||
class CUtlSlot;
|
||||
class CUtlAbstractDelegate;
|
||||
class CBaseHandle;
|
||||
typedef uint16 NetworkMessageId;
|
||||
typedef uint8 NetworkGroupId;
|
||||
typedef uint NetworkCategoryId;
|
||||
|
||||
enum NetChannelBufType_t
|
||||
{
|
||||
kFuckOffAss
|
||||
};
|
||||
|
||||
enum NetworkValidationMode_t
|
||||
{
|
||||
kFuckOffAss_NetworkValidationMode
|
||||
};
|
||||
class IProtobufBinding
|
||||
{
|
||||
public:
|
||||
virtual const char* GetName() = 0;
|
||||
virtual int GetSize() = 0;
|
||||
|
||||
virtual const char* ToString(const void* pData, CUtlString& sResult) = 0;
|
||||
|
||||
virtual const char* GetGroup() = 0;
|
||||
virtual Color GetGroupColor() = 0;
|
||||
virtual NetChannelBufType_t GetBufType() = 0;
|
||||
|
||||
virtual bool ReadFromBuffer(void* pData, bf_read& pBuf) = 0;
|
||||
virtual bool WriteToBuffer(const void* pData, bf_write& pBuf) = 0;
|
||||
|
||||
virtual void* AllocateMessage() = 0;
|
||||
virtual void DeallocateMessage(void* pMsg) = 0;
|
||||
virtual void* AllocateAndCopyConstructNetMessage(const void* pOther) = 0;
|
||||
|
||||
virtual bool OkToRedispatch() = 0;
|
||||
virtual void Copy(const void* pFrom, void* pTo) = 0;
|
||||
virtual bool unk001() = 0;
|
||||
};
|
||||
|
||||
struct NetMessageInfo_t
|
||||
{
|
||||
int m_nCategories;
|
||||
IProtobufBinding* m_pBinding;
|
||||
CUtlString m_szGroup;
|
||||
NetworkMessageId m_MessageId;
|
||||
NetworkGroupId m_GroupId;
|
||||
|
||||
// (1 << 0) - FLAG_RELIABLE
|
||||
// (1 << 6) - FLAG_AUTOASSIGNEDID
|
||||
// (1 << 7) - FLAG_UNK001
|
||||
uint8 m_nFlags;
|
||||
|
||||
int m_unk001;
|
||||
int m_unk002;
|
||||
bool m_bOkayToRedispatch;
|
||||
};
|
||||
enum NetworkSerializationMode_t
|
||||
{
|
||||
NET_SERIALIZATION_MODE_0 = 0x0,
|
||||
NET_SERIALIZATION_MODE_1 = 0x1,
|
||||
NET_SERIALIZATION_MODE_COUNT = 0x2,
|
||||
NET_SERIALIZATION_MODE_DEFAULT = 0x0,
|
||||
NET_SERIALIZATION_MODE_SERVER = 0x0,
|
||||
NET_SERIALIZATION_MODE_CLIENT = 0x1,
|
||||
};
|
||||
enum ETEProtobufIds_t {
|
||||
TE_EffectDispatchId = 400,
|
||||
TE_ArmorRicochetId = 401,
|
||||
TE_BeamEntPointId = 402,
|
||||
TE_BeamEntsId = 403,
|
||||
TE_BeamPointsId = 404,
|
||||
TE_BeamRingId = 405,
|
||||
TE_BSPDecalId = 407,
|
||||
TE_BubblesId = 408,
|
||||
TE_BubbleTrailId = 409,
|
||||
TE_DecalId = 410,
|
||||
TE_WorldDecalId = 411,
|
||||
TE_EnergySplashId = 412,
|
||||
TE_FizzId = 413,
|
||||
TE_ShatterSurfaceId = 414,
|
||||
TE_GlowSpriteId = 415,
|
||||
TE_ImpactId = 416,
|
||||
TE_MuzzleFlashId = 417,
|
||||
TE_BloodStreamId = 418,
|
||||
TE_ExplosionId = 419,
|
||||
TE_DustId = 420,
|
||||
TE_LargeFunnelId = 421,
|
||||
TE_SparksId = 422,
|
||||
TE_PhysicsPropId = 423,
|
||||
TE_PlayerDecalId = 424,
|
||||
TE_ProjectedDecalId = 425,
|
||||
TE_SmokeId = 426
|
||||
};
|
||||
class INetworkSerializable
|
||||
{
|
||||
public:
|
||||
virtual ~INetworkSerializable() = 0;
|
||||
|
||||
virtual const char* GetUnscopedName() = 0;
|
||||
virtual NetMessageInfo_t* GetNetMessageInfo() = 0;
|
||||
|
||||
virtual void SetMessageId(unsigned short nMessageId) = 0;
|
||||
|
||||
virtual void AddCategoryMask(int nMask, bool) = 0;
|
||||
|
||||
virtual void SwitchMode(NetworkValidationMode_t nMode) = 0;
|
||||
|
||||
virtual void* AllocateMessage() = 0;
|
||||
virtual void DeallocateMessage(void* pMsg) = 0;
|
||||
virtual void* AllocateAndCopyConstructNetMessage(void const* pOther) = 0;
|
||||
|
||||
virtual bool Serialize(bf_write& pBuf, void const* pData, NetworkSerializationMode_t unused) = 0;
|
||||
virtual bool Unserialize(bf_read& pBuf, void* pData, NetworkSerializationMode_t unused) = 0;
|
||||
};
|
||||
|
||||
class IGameEventSystem : public IAppSystem
|
||||
{
|
||||
public:
|
||||
//vmt index 11
|
||||
virtual void RegisterGameEvent(INetworkSerializable * pEvent) = 0;
|
||||
|
||||
virtual void RegisterGameEventHandlerAbstract(CUtlSlot* nSlot, const CUtlAbstractDelegate& delegate, INetworkSerializable* pEvent) = 0;
|
||||
virtual void UnregisterGameEventHandlerAbstract(CUtlSlot* nSlot, const CUtlAbstractDelegate& delegate, INetworkSerializable* pEvent) = 0;
|
||||
|
||||
// Providing nSize has no effect and is unused.
|
||||
virtual void PostEventAbstract_Local(CSplitScreenSlot nSlot, INetworkSerializable* pEvent, const void* pData, unsigned long nSize) = 0;
|
||||
|
||||
// Providing nSlot as -1 would select 0nth slot.
|
||||
// clients pointer is a masked uint64 value where (client index - 1) is mapped to each bit.
|
||||
// Providing nClientCount as -1 and clients pointer as NULL would post event to all available clients.
|
||||
// Providing nSize has no effect and is unused.
|
||||
virtual void PostEventAbstract(CSplitScreenSlot nSlot, bool bLocalOnly, int nClientCount, const uint64* clients,
|
||||
INetworkSerializable* pEvent, const void* pData, unsigned long nSize, NetChannelBufType_t bufType) = 0;
|
||||
virtual void PostEventAbstract(CSplitScreenSlot nSlot, bool bLocalOnly, IRecipientFilter* pFilter,
|
||||
INetworkSerializable* pEvent, const void* pData, unsigned long nSize) = 0;
|
||||
|
||||
// Posts the event to all clients, even tho the function name tells otherwise
|
||||
// Providing nSize has no effect and is unused.
|
||||
virtual void PostEntityEventAbstract(const CBaseHandle& hndl, INetworkSerializable* pEvent, const void* pData, unsigned long nSize, NetChannelBufType_t bufType) = 0;
|
||||
|
||||
virtual void ProcessQueuedEvents() = 0;
|
||||
virtual int GetEventSource() const = 0;
|
||||
virtual void PurgeQueuedEvents() = 0;
|
||||
};
|
||||
Reference in New Issue
Block a user