mirror of
https://github.com/rehlds/rehlds.git
synced 2024-12-28 15:45:46 +03:00
ReHLDS API: Implemented SV_ShouldSendConsistencyList
ReHLDS API: Bump minor
This commit is contained in:
parent
c11fdbe3f8
commit
f535b5b38f
@ -1,3 +1,3 @@
|
|||||||
majorVersion=3
|
majorVersion=3
|
||||||
minorVersion=7
|
minorVersion=8
|
||||||
maintenanceVersion=0
|
maintenanceVersion=0
|
||||||
|
@ -311,11 +311,27 @@ int EXT_FUNC SV_TransferConsistencyInfo_internal(void)
|
|||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool EXT_FUNC SV_ShouldSendConsistencyList_mod(IGameClient *cl, bool forceConsistency)
|
||||||
|
{
|
||||||
|
if (g_psvs.maxclients == 1 || g_psv.num_consistency == 0 || cl->IsProxy())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if ((!forceConsistency && mp_consistency.value == 0.0f))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool SV_ShouldSendConsistencyList(client_t *client, bool forceConsistency)
|
||||||
|
{
|
||||||
|
return g_RehldsHookchains.m_SV_ShouldSendConsistencyList.callChain(SV_ShouldSendConsistencyList_mod, GetRehldsApiClient(client), forceConsistency);
|
||||||
|
}
|
||||||
|
|
||||||
void SV_SendConsistencyList(sizebuf_t *msg)
|
void SV_SendConsistencyList(sizebuf_t *msg)
|
||||||
{
|
{
|
||||||
host_client->has_force_unmodified = FALSE;
|
host_client->has_force_unmodified = FALSE;
|
||||||
|
|
||||||
if (g_psvs.maxclients == 1 || mp_consistency.value == 0.0f || g_psv.num_consistency == 0 || host_client->proxy)
|
if (!SV_ShouldSendConsistencyList(host_client, false))
|
||||||
{
|
{
|
||||||
MSG_WriteBits(0, 1);
|
MSG_WriteBits(0, 1);
|
||||||
return;
|
return;
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
#include "pr_dlls.h"
|
#include "pr_dlls.h"
|
||||||
|
|
||||||
#define REHLDS_API_VERSION_MAJOR 3
|
#define REHLDS_API_VERSION_MAJOR 3
|
||||||
#define REHLDS_API_VERSION_MINOR 7
|
#define REHLDS_API_VERSION_MINOR 8
|
||||||
|
|
||||||
//Steam_NotifyClientConnect hook
|
//Steam_NotifyClientConnect hook
|
||||||
typedef IHookChain<qboolean, IGameClient*, const void*, unsigned int> IRehldsHook_Steam_NotifyClientConnect;
|
typedef IHookChain<qboolean, IGameClient*, const void*, unsigned int> IRehldsHook_Steam_NotifyClientConnect;
|
||||||
@ -203,6 +203,10 @@ typedef IHookChainRegistry<bool, netadr_t &, const uint8_t *, int> IRehldsHookRe
|
|||||||
typedef IVoidHookChain<> IRehldsHook_SV_Frame;
|
typedef IVoidHookChain<> IRehldsHook_SV_Frame;
|
||||||
typedef IVoidHookChainRegistry<> IRehldsHookRegistry_SV_Frame;
|
typedef IVoidHookChainRegistry<> IRehldsHookRegistry_SV_Frame;
|
||||||
|
|
||||||
|
//SV_ShouldSendConsistencyList hook
|
||||||
|
typedef IHookChain<bool, IGameClient *, bool> IRehldsHook_SV_ShouldSendConsistencyList;
|
||||||
|
typedef IHookChainRegistry<bool, IGameClient *, bool> IRehldsHookRegistry_SV_ShouldSendConsistencyList;
|
||||||
|
|
||||||
class IRehldsHookchains {
|
class IRehldsHookchains {
|
||||||
public:
|
public:
|
||||||
virtual ~IRehldsHookchains() { }
|
virtual ~IRehldsHookchains() { }
|
||||||
@ -248,6 +252,7 @@ public:
|
|||||||
virtual IRehldsHookRegistry_CreateFakeClient* CreateFakeClient() = 0;
|
virtual IRehldsHookRegistry_CreateFakeClient* CreateFakeClient() = 0;
|
||||||
virtual IRehldsHookRegistry_SV_CheckConnectionLessRateLimits* SV_CheckConnectionLessRateLimits() = 0;
|
virtual IRehldsHookRegistry_SV_CheckConnectionLessRateLimits* SV_CheckConnectionLessRateLimits() = 0;
|
||||||
virtual IRehldsHookRegistry_SV_Frame* SV_Frame() = 0;
|
virtual IRehldsHookRegistry_SV_Frame* SV_Frame() = 0;
|
||||||
|
virtual IRehldsHookRegistry_SV_ShouldSendConsistencyList* SV_ShouldSendConsistencyList() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct RehldsFuncs_t {
|
struct RehldsFuncs_t {
|
||||||
@ -316,7 +321,7 @@ struct RehldsFuncs_t {
|
|||||||
char*(*MSG_ReadStringLine)();
|
char*(*MSG_ReadStringLine)();
|
||||||
float(*MSG_ReadAngle)();
|
float(*MSG_ReadAngle)();
|
||||||
float(*MSG_ReadHiresAngle)();
|
float(*MSG_ReadHiresAngle)();
|
||||||
void(*MSG_ReadUsercmd)(usercmd_t *to, usercmd_t *from);
|
void(*MSG_ReadUsercmd)(struct usercmd_s *to, struct usercmd_s *from);
|
||||||
float(*MSG_ReadCoord)();
|
float(*MSG_ReadCoord)();
|
||||||
void(*MSG_ReadVec3Coord)(sizebuf_t *sb, vec3_t fa);
|
void(*MSG_ReadVec3Coord)(sizebuf_t *sb, vec3_t fa);
|
||||||
|
|
||||||
@ -340,7 +345,7 @@ struct RehldsFuncs_t {
|
|||||||
void(*MSG_WriteFloat)(sizebuf_t *sb, float f);
|
void(*MSG_WriteFloat)(sizebuf_t *sb, float f);
|
||||||
void(*MSG_WriteAngle)(sizebuf_t *sb, float f);
|
void(*MSG_WriteAngle)(sizebuf_t *sb, float f);
|
||||||
void(*MSG_WriteHiresAngle)(sizebuf_t *sb, float f);
|
void(*MSG_WriteHiresAngle)(sizebuf_t *sb, float f);
|
||||||
void(*MSG_WriteUsercmd)(sizebuf_t *sb, usercmd_t *to, usercmd_t *from);
|
void(*MSG_WriteUsercmd)(sizebuf_t *sb, struct usercmd_s *to, struct usercmd_s *from);
|
||||||
void(*MSG_WriteCoord)(sizebuf_t *sb, float f);
|
void(*MSG_WriteCoord)(sizebuf_t *sb, float f);
|
||||||
void(*MSG_WriteVec3Coord)(sizebuf_t *sb, const vec3_t fa);
|
void(*MSG_WriteVec3Coord)(sizebuf_t *sb, const vec3_t fa);
|
||||||
|
|
||||||
|
@ -73,6 +73,9 @@ public:
|
|||||||
virtual bool GetLoopback() = 0;
|
virtual bool GetLoopback() = 0;
|
||||||
virtual struct usercmd_s *GetLastCmd() = 0;
|
virtual struct usercmd_s *GetLastCmd() = 0;
|
||||||
|
|
||||||
|
virtual bool IsProxy() = 0;
|
||||||
|
virtual void SetProxy(bool proxy) = 0;
|
||||||
|
|
||||||
// this must be the last virtual function in class
|
// this must be the last virtual function in class
|
||||||
#ifdef REHLDS_SELF
|
#ifdef REHLDS_SELF
|
||||||
virtual client_t* GetClient() = 0;
|
virtual client_t* GetClient() = 0;
|
||||||
|
@ -827,6 +827,10 @@ IRehldsHookRegistry_SV_Frame* CRehldsHookchains::SV_Frame() {
|
|||||||
return &m_SV_Frame;
|
return &m_SV_Frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IRehldsHookRegistry_SV_ShouldSendConsistencyList* CRehldsHookchains::SV_ShouldSendConsistencyList() {
|
||||||
|
return &m_SV_ShouldSendConsistencyList;
|
||||||
|
}
|
||||||
|
|
||||||
int EXT_FUNC CRehldsApi::GetMajorVersion()
|
int EXT_FUNC CRehldsApi::GetMajorVersion()
|
||||||
{
|
{
|
||||||
return REHLDS_API_VERSION_MAJOR;
|
return REHLDS_API_VERSION_MAJOR;
|
||||||
|
@ -198,6 +198,10 @@ typedef IHookChainRegistryImpl<bool, netadr_t &, const uint8_t *, int> CRehldsHo
|
|||||||
typedef IVoidHookChainImpl<> CRehldsHook_SV_Frame;
|
typedef IVoidHookChainImpl<> CRehldsHook_SV_Frame;
|
||||||
typedef IVoidHookChainRegistryImpl<> CRehldsHookRegistry_SV_Frame;
|
typedef IVoidHookChainRegistryImpl<> CRehldsHookRegistry_SV_Frame;
|
||||||
|
|
||||||
|
//SV_ShouldSendConsistencyList hook
|
||||||
|
typedef IHookChainImpl<bool, IGameClient *, bool> CRehldsHook_SV_ShouldSendConsistencyList;
|
||||||
|
typedef IHookChainRegistryImpl<bool, IGameClient *, bool> CRehldsHookRegistry_SV_ShouldSendConsistencyList;
|
||||||
|
|
||||||
class CRehldsHookchains : public IRehldsHookchains {
|
class CRehldsHookchains : public IRehldsHookchains {
|
||||||
public:
|
public:
|
||||||
CRehldsHookRegistry_Steam_NotifyClientConnect m_Steam_NotifyClientConnect;
|
CRehldsHookRegistry_Steam_NotifyClientConnect m_Steam_NotifyClientConnect;
|
||||||
@ -241,6 +245,7 @@ public:
|
|||||||
CRehldsHookRegistry_CreateFakeClient m_CreateFakeClient;
|
CRehldsHookRegistry_CreateFakeClient m_CreateFakeClient;
|
||||||
CRehldsHookRegistry_SV_CheckConnectionLessRateLimits m_SV_CheckConnectionLessRateLimits;
|
CRehldsHookRegistry_SV_CheckConnectionLessRateLimits m_SV_CheckConnectionLessRateLimits;
|
||||||
CRehldsHookRegistry_SV_Frame m_SV_Frame;
|
CRehldsHookRegistry_SV_Frame m_SV_Frame;
|
||||||
|
CRehldsHookRegistry_SV_ShouldSendConsistencyList m_SV_ShouldSendConsistencyList;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
EXT_FUNC virtual IRehldsHookRegistry_Steam_NotifyClientConnect* Steam_NotifyClientConnect();
|
EXT_FUNC virtual IRehldsHookRegistry_Steam_NotifyClientConnect* Steam_NotifyClientConnect();
|
||||||
@ -284,6 +289,7 @@ public:
|
|||||||
EXT_FUNC virtual IRehldsHookRegistry_CreateFakeClient* CreateFakeClient();
|
EXT_FUNC virtual IRehldsHookRegistry_CreateFakeClient* CreateFakeClient();
|
||||||
EXT_FUNC virtual IRehldsHookRegistry_SV_CheckConnectionLessRateLimits* SV_CheckConnectionLessRateLimits();
|
EXT_FUNC virtual IRehldsHookRegistry_SV_CheckConnectionLessRateLimits* SV_CheckConnectionLessRateLimits();
|
||||||
EXT_FUNC virtual IRehldsHookRegistry_SV_Frame* SV_Frame();
|
EXT_FUNC virtual IRehldsHookRegistry_SV_Frame* SV_Frame();
|
||||||
|
EXT_FUNC virtual IRehldsHookRegistry_SV_ShouldSendConsistencyList* SV_ShouldSendConsistencyList();
|
||||||
};
|
};
|
||||||
|
|
||||||
extern CRehldsHookchains g_RehldsHookchains;
|
extern CRehldsHookchains g_RehldsHookchains;
|
||||||
|
@ -71,6 +71,16 @@ void EXT_FUNC CGameClient::SetSpawned(bool spawned)
|
|||||||
m_pClient->spawned = spawned ? 1 : 0;
|
m_pClient->spawned = spawned ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool EXT_FUNC CGameClient::IsProxy()
|
||||||
|
{
|
||||||
|
return m_pClient->proxy != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void EXT_FUNC CGameClient::SetProxy(bool proxy)
|
||||||
|
{
|
||||||
|
m_pClient->proxy = proxy ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
bool EXT_FUNC CGameClient::IsConnected() {
|
bool EXT_FUNC CGameClient::IsConnected() {
|
||||||
return m_pClient->connected != 0;
|
return m_pClient->connected != 0;
|
||||||
}
|
}
|
||||||
|
@ -98,6 +98,9 @@ public:
|
|||||||
virtual bool GetLoopback();
|
virtual bool GetLoopback();
|
||||||
virtual struct usercmd_s *GetLastCmd();
|
virtual struct usercmd_s *GetLastCmd();
|
||||||
|
|
||||||
|
virtual bool IsProxy();
|
||||||
|
virtual void SetProxy(bool proxy);
|
||||||
|
|
||||||
virtual client_t* GetClient();
|
virtual client_t* GetClient();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
Loading…
Reference in New Issue
Block a user