2022-04-13 01:25:33 +02:00
|
|
|
//=============================================================================
|
|
|
|
//
|
|
|
|
//
|
|
|
|
//=============================================================================
|
|
|
|
|
2021-12-25 22:36:38 +01:00
|
|
|
#include "core/stdafx.h"
|
|
|
|
/*****************************************************************************/
|
2022-04-09 16:16:40 +02:00
|
|
|
#include "tier1/cvar.h"
|
2022-01-10 02:47:19 +01:00
|
|
|
#include "tier0/commandline.h"
|
2021-12-25 22:36:38 +01:00
|
|
|
#include "engine/net_chan.h"
|
2022-05-20 11:52:19 +02:00
|
|
|
#include "engine/client/cl_rcon.h"
|
2022-08-09 17:34:10 +02:00
|
|
|
#include "networksystem/bansystem.h"
|
2021-12-25 22:36:38 +01:00
|
|
|
#include "vpc/keyvalues.h"
|
2023-09-12 11:06:16 +02:00
|
|
|
#include "windows/id3dx.h"
|
|
|
|
#include "geforce/reflex.h"
|
2023-05-10 00:05:38 +02:00
|
|
|
#include "vengineclient_impl.h"
|
|
|
|
#include "cdll_engine_int.h"
|
2023-12-25 19:23:01 +01:00
|
|
|
#include "materialsystem/cmaterialsystem.h"
|
2021-12-25 22:36:38 +01:00
|
|
|
/*****************************************************************************/
|
|
|
|
|
2023-01-26 02:59:50 +01:00
|
|
|
#ifndef DEDICATED
|
2024-04-05 16:45:05 +02:00
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// Purpose: pre frame stage notify hook
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void FrameStageNotify_Pre(const ClientFrameStage_t frameStage)
|
|
|
|
{
|
|
|
|
switch (frameStage)
|
|
|
|
{
|
|
|
|
case ClientFrameStage_t::FRAME_START:
|
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_START:
|
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_POSTDATAUPDATE_START:
|
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_POSTDATAUPDATE_END:
|
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_END:
|
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_RENDER_START:
|
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_RENDER_END:
|
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_NET_FULL_FRAME_UPDATE_ON_REMOVE:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// Purpose: post frame stage notify hook
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void FrameStageNotify_Post(const ClientFrameStage_t frameStage)
|
|
|
|
{
|
|
|
|
switch (frameStage)
|
|
|
|
{
|
|
|
|
case ClientFrameStage_t::FRAME_START:
|
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_START:
|
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_POSTDATAUPDATE_START:
|
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_POSTDATAUPDATE_END:
|
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_NET_UPDATE_END:
|
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_RENDER_START:
|
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_RENDER_END:
|
2023-12-25 19:23:01 +01:00
|
|
|
GFX_SetLatencyMarker(D3D11Device(), SIMULATION_END, MaterialSystem()->GetCurrentFrameCount());
|
2024-04-05 16:45:05 +02:00
|
|
|
break;
|
|
|
|
case ClientFrameStage_t::FRAME_NET_FULL_FRAME_UPDATE_ON_REMOVE:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-12-25 22:36:38 +01:00
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// Purpose:
|
|
|
|
//-----------------------------------------------------------------------------
|
2022-04-13 01:25:33 +02:00
|
|
|
void CHLClient::FrameStageNotify(CHLClient* pHLClient, ClientFrameStage_t frameStage)
|
2021-12-25 22:36:38 +01:00
|
|
|
{
|
2024-04-05 16:45:05 +02:00
|
|
|
FrameStageNotify_Pre(frameStage);
|
2022-04-13 01:25:33 +02:00
|
|
|
CHLClient_FrameStageNotify(pHLClient, frameStage);
|
2024-04-05 16:45:05 +02:00
|
|
|
FrameStageNotify_Post(frameStage);
|
2021-12-25 22:36:38 +01:00
|
|
|
}
|
|
|
|
|
2022-05-02 23:53:26 +02:00
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// Purpose: Get g_pClientClassHead Pointer for all ClientClasses.
|
|
|
|
// Input :
|
|
|
|
// Output : ClientClass*
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
ClientClass* CHLClient::GetAllClasses()
|
|
|
|
{
|
|
|
|
return CHLClient_GetAllClasses();
|
|
|
|
}
|
2023-01-26 02:59:50 +01:00
|
|
|
#endif // !DEDICATED
|
2022-05-02 23:53:26 +02:00
|
|
|
|
2021-12-25 22:36:38 +01:00
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
2023-11-26 13:21:20 +01:00
|
|
|
void VDll_Engine_Int::Detour(const bool bAttach) const
|
2021-12-25 22:36:38 +01:00
|
|
|
{
|
2023-01-25 02:26:52 +01:00
|
|
|
#ifndef DEDICATED
|
2023-11-26 13:21:20 +01:00
|
|
|
DetourSetup(&CHLClient_FrameStageNotify, &CHLClient::FrameStageNotify, bAttach);
|
2023-01-25 02:26:52 +01:00
|
|
|
#endif // !DEDICATED
|
2021-12-25 22:36:38 +01:00
|
|
|
}
|