From e9394e8deb3bec2c3be59976ef15e6a9c7d85b75 Mon Sep 17 00:00:00 2001 From: vanz696 <152704532+vanz696@users.noreply.github.com> Date: Wed, 28 Feb 2024 07:45:42 +0300 Subject: [PATCH] Update IVEngineServer2, IGameEventSystem, CEntityInstance methods (#214) --- public/eiface.h | 18 +++++++++++------- public/engine/igameeventsystem.h | 5 +++-- public/entity2/entityinstance.h | 18 ++++++++++-------- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/public/eiface.h b/public/eiface.h index f16e98b8..b7e87507 100644 --- a/public/eiface.h +++ b/public/eiface.h @@ -322,12 +322,9 @@ public: virtual void unk106() = 0; virtual void unk107() = 0; - virtual void OnKickClient( const CCommandContext &context, const CCommand &cmd ) = 0; - - // Kicks and bans the slot. - // Note that the internal reason is never displayed to the user. - // ENetworkDisconnectionReason reason is ignored, client is always kicked with ENetworkDisconnectionReason::NETWORK_DISCONNECT_KICKBANADDED - virtual void BanClient( CPlayerSlot nSlot, const char *szInternalReason, ENetworkDisconnectionReason reason ) = 0; + virtual void KickClient( CPlayerSlot nSlot, const char *szInternalReason, ENetworkDisconnectionReason reason ) = 0; + virtual void BanClient( CPlayerSlot nSlot, float flDuration, bool bKick ) = 0; + virtual void BanClient( CSteamID steamId, float flDuration, bool bKick ) = 0; virtual void unk200() = 0; virtual void unk201() = 0; @@ -337,12 +334,19 @@ public: virtual void unk205() = 0; virtual void unk206() = 0; virtual void unk207() = 0; - virtual void unk208() = 0; virtual void SetClientUpdateRate( CPlayerSlot nSlot, float flUpdateRate ) = 0; virtual void unk300() = 0; virtual void unk301() = 0; + virtual void unk302() = 0; + virtual void unk303() = 0; + virtual void unk304() = 0; + virtual void unk305() = 0; + virtual void unk306() = 0; + virtual void unk307() = 0; + virtual void unk308() = 0; + virtual void unk309() = 0; }; abstract_class IServerGCLobby diff --git a/public/engine/igameeventsystem.h b/public/engine/igameeventsystem.h index 55fbeb1a..339a5959 100644 --- a/public/engine/igameeventsystem.h +++ b/public/engine/igameeventsystem.h @@ -12,6 +12,7 @@ #include #include #include +#include class CUtlSlot; @@ -22,7 +23,7 @@ abstract_class IGameEventSystem : public IAppSystem public: virtual void RegisterGameEvent( INetworkSerializable *pEvent ) = 0; - virtual void RegisterGameEventHandlerAbstract( CUtlSlot *nSlot, const CUtlAbstractDelegate &delegate, INetworkSerializable *pEvent ) = 0; + virtual void RegisterGameEventHandlerAbstract( CUtlSlot *nSlot, const CUtlAbstractDelegate &delegate, INetworkSerializable *pEvent, int nPriority ) = 0; virtual void UnregisterGameEventHandlerAbstract( CUtlSlot *nSlot, const CUtlAbstractDelegate &delegate, INetworkSerializable *pEvent ) = 0; // Providing nSize has no effect and is unused. @@ -42,7 +43,7 @@ public: 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 CEntityIndex GetEventSource() const = 0; virtual void PurgeQueuedEvents() = 0; }; diff --git a/public/entity2/entityinstance.h b/public/entity2/entityinstance.h index 5ec151eb..433d9407 100644 --- a/public/entity2/entityinstance.h +++ b/public/entity2/entityinstance.h @@ -7,6 +7,7 @@ #include "tier1/utlsymbollarge.h" #include "entity2/entitycomponent.h" #include "entity2/entityidentity.h" +#include "variant.h" class CEntityKeyValues; class CFieldPath; @@ -24,19 +25,20 @@ public: virtual ~CEntityInstance() = 0; virtual void Connect() = 0; - virtual void unk001() = 0; // Related to memory allocation of services in pawn classes + virtual void Disconnect() = 0; virtual void Precache( const CEntityPrecacheContext* pContext ) = 0; virtual void AddedToEntityDatabase() = 0; virtual void Spawn( const CEntityKeyValues* pKeyValues ) = 0; virtual void PostDataUpdate( /*DataUpdateType_t*/int updateType ) = 0; - virtual void unk101() = 0; // Does the exact same thing as PostDataUpdate, sets g_bReceivedChainedPostDataUpdate to 1 but this function isn't overridden by any other child class. + virtual void OnDataUnchangedInPVS() = 0; virtual void Activate( /*ActivateType_t*/int activateType ) = 0; virtual void UpdateOnRemove() = 0; virtual void OnSetDormant( /*EntityDormancyType_t*/int prevDormancyType, /*EntityDormancyType_t*/int newDormancyType ) = 0; + + virtual void* ScriptEntityIO() = 0; + virtual int ScriptAcceptInput( const CUtlSymbolLarge &sInputName, CEntityInstance* pActivator, CEntityInstance* pCaller, const variant_t &value, int nOutputID ) = 0; - virtual void unk201() = 0; - virtual void unk202() = 0; - virtual void unk203() = 0; + virtual void PreDataUpdate( /*DataUpdateType_t*/int updateType ) = 0; virtual void DrawEntityDebugOverlays( uint64 debug_bits ) = 0; virtual void DrawDebugTextOverlays( void* unk, uint64 debug_bits, int flags ) = 0; @@ -65,16 +67,16 @@ public: virtual void LogFieldInfo( const char* pszFieldName, const char* pszInfo ) = 0; virtual bool FullEdictChanged() = 0; - virtual void unk301() = 0; + virtual void unk001() = 0; virtual ChangeAccessorFieldPathIndex_t AddChangeAccessorPath( const CFieldPath& path ) = 0; virtual void AssignChangeAccessorPathIds() = 0; virtual ChangeAccessorFieldPathIndexInfo_t* GetChangeAccessorPathInfo_1() = 0; virtual ChangeAccessorFieldPathIndexInfo_t* GetChangeAccessorPathInfo_2() = 0; - virtual void unk401() = 0; + virtual void unk101() = 0; virtual void ReloadPrivateScripts() = 0; virtual datamap_t* GetDataDescMap() = 0; - virtual void unk501() = 0; + virtual void unk201() = 0; virtual void Schema_DynamicBinding(void**) = 0; public: