From 05748e6184fab5a3b20a1889b7d5ea2f3144e6f5 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Thu, 19 Jan 2023 19:39:15 +0100 Subject: [PATCH] Add client movehelper to SDK Structure and vftable align 100%. --- r5dev/game/client/movehelper_client.cpp | 18 +++++++++ r5dev/game/client/movehelper_client.h | 53 +++++++++++++++++++++++++ r5dev/vproj/clientsdk.vcxproj | 2 + r5dev/vproj/clientsdk.vcxproj.filters | 6 +++ r5dev/vproj/gamesdk.vcxproj | 2 + r5dev/vproj/gamesdk.vcxproj.filters | 6 +++ 6 files changed, 87 insertions(+) create mode 100644 r5dev/game/client/movehelper_client.cpp create mode 100644 r5dev/game/client/movehelper_client.h diff --git a/r5dev/game/client/movehelper_client.cpp b/r5dev/game/client/movehelper_client.cpp new file mode 100644 index 00000000..37f9d9e9 --- /dev/null +++ b/r5dev/game/client/movehelper_client.cpp @@ -0,0 +1,18 @@ +//====== Copyright � 1996-2005, Valve Corporation, All rights reserved. =======// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// +#include "core/stdafx.h" +#include "movehelper_client.h" + +//----------------------------------------------------------------------------- +// Purpose: Gets the client movehelper +//----------------------------------------------------------------------------- +IMoveHelper* MoveHelperClient() +{ + return s_MoveHelperClient; +} + +CMoveHelperClient* s_MoveHelperClient = nullptr; \ No newline at end of file diff --git a/r5dev/game/client/movehelper_client.h b/r5dev/game/client/movehelper_client.h new file mode 100644 index 00000000..2189d3d7 --- /dev/null +++ b/r5dev/game/client/movehelper_client.h @@ -0,0 +1,53 @@ +//====== Copyright � 1996-2005, Valve Corporation, All rights reserved. =======// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef MOVEHELPER_CLIENT_H +#define MOVEHELPER_CLIENT_H +#include "game/shared/imovehelper.h" +#include "tier1/utlvector.h" + +class CMoveHelperClient : public IMoveHelper +{ + // results, tallied on client and server, but only used by server to run SV_Impact. + // we store off our velocity in the trace_t structure so that we can determine results + // of shoving boxes etc. around. + struct touchlist_t + { + Vector3D deltavelocity; + //trace_t trace; // !TODO: Reverse CGameTrace! + }; + + CUtlVector m_TouchList; + CBaseEntity* m_pHost; +}; + +IMoveHelper* MoveHelperClient(); +extern CMoveHelperClient* s_MoveHelperClient; + +/////////////////////////////////////////////////////////////////////////////// +class VMoveHelperClient : public IDetour +{ + virtual void GetAdr(void) const + { + spdlog::debug("| VAR: s_MoveHelperClient : {:#18x} |\n", reinterpret_cast(s_MoveHelperClient)); + spdlog::debug("+----------------------------------------------------------------+\n"); + } + virtual void GetFun(void) const { } + virtual void GetVar(void) const + { + CMemory pFunc = g_GameDll.FindPatternSIMD("40 53 48 83 EC 30 80 3D ?? ?? ?? ?? ?? 48 8B D9 74 1A"); + s_MoveHelperClient = pFunc.FindPattern("4C 8D 0D").ResolveRelativeAddressSelf(0x3, 0x7).RCast(); + } + virtual void GetCon(void) const { } + virtual void Attach(void) const { } + virtual void Detach(void) const { } +}; +/////////////////////////////////////////////////////////////////////////////// + +REGISTER(VMoveHelperClient); + +#endif // MOVEHELPER_CLIENT_H \ No newline at end of file diff --git a/r5dev/vproj/clientsdk.vcxproj b/r5dev/vproj/clientsdk.vcxproj index 396108de..6ca5c352 100644 --- a/r5dev/vproj/clientsdk.vcxproj +++ b/r5dev/vproj/clientsdk.vcxproj @@ -60,6 +60,7 @@ + @@ -231,6 +232,7 @@ + diff --git a/r5dev/vproj/clientsdk.vcxproj.filters b/r5dev/vproj/clientsdk.vcxproj.filters index 9cbba524..cae54511 100644 --- a/r5dev/vproj/clientsdk.vcxproj.filters +++ b/r5dev/vproj/clientsdk.vcxproj.filters @@ -660,6 +660,9 @@ sdk\game\shared + + sdk\game\client + @@ -1937,6 +1940,9 @@ sdk\game\shared + + sdk\game\client + diff --git a/r5dev/vproj/gamesdk.vcxproj b/r5dev/vproj/gamesdk.vcxproj index 6d988e71..185c64d0 100644 --- a/r5dev/vproj/gamesdk.vcxproj +++ b/r5dev/vproj/gamesdk.vcxproj @@ -63,6 +63,7 @@ + @@ -250,6 +251,7 @@ + diff --git a/r5dev/vproj/gamesdk.vcxproj.filters b/r5dev/vproj/gamesdk.vcxproj.filters index de350626..9f49ebec 100644 --- a/r5dev/vproj/gamesdk.vcxproj.filters +++ b/r5dev/vproj/gamesdk.vcxproj.filters @@ -714,6 +714,9 @@ sdk\game\server + + sdk\game\client + @@ -2087,6 +2090,9 @@ sdk\game\shared + + sdk\game\client +