From 799dac882a77c7d2a0c14699889224f184f9c598 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Mon, 25 Jul 2022 12:46:57 +0200 Subject: [PATCH] Add 'MainViewOrigin()' and 'MainViewAngles()' Implemented g_vecRenderOrigin and g_vecRenderAngles to SDK. --- r5dev/core/init.cpp | 5 +++- r5dev/game/client/view.cpp | 19 +++++++++++++++ r5dev/game/client/view.h | 34 +++++++++++++++++++++++++++ r5dev/vproj/clientsdk.vcxproj | 2 ++ r5dev/vproj/clientsdk.vcxproj.filters | 6 +++++ r5dev/vproj/gamesdk.vcxproj | 2 ++ r5dev/vproj/gamesdk.vcxproj.filters | 6 +++++ 7 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 r5dev/game/client/view.cpp create mode 100644 r5dev/game/client/view.h diff --git a/r5dev/core/init.cpp b/r5dev/core/init.cpp index b7482302..17b0a17e 100644 --- a/r5dev/core/init.cpp +++ b/r5dev/core/init.cpp @@ -98,9 +98,12 @@ #include "game/server/detour_impl.h" #include "game/server/fairfight_impl.h" #include "game/server/gameinterface.h" -#include "public/include/edict.h" #endif // !CLIENT_DLL #ifndef DEDICATED +#include "game/client/view.h" +#endif // !DEDICATED +#include "public/include/edict.h" +#ifndef DEDICATED #include "public/include/idebugoverlay.h" #include "inputsystem/inputsystem.h" #include "windows/id3dx.h" diff --git a/r5dev/game/client/view.cpp b/r5dev/game/client/view.cpp new file mode 100644 index 00000000..cb1da367 --- /dev/null +++ b/r5dev/game/client/view.cpp @@ -0,0 +1,19 @@ +//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======// +// +// Purpose: +// +//===========================================================================// + +#include "core/stdafx.h" +#include "mathlib/vector.h" +#include "game/client/view.h" + +const Vector3D& MainViewOrigin() +{ + return (*g_vecRenderOrigin); +} + +const QAngle& MainViewAngles() +{ + return (*g_vecRenderAngles); +} diff --git a/r5dev/game/client/view.h b/r5dev/game/client/view.h new file mode 100644 index 00000000..91058567 --- /dev/null +++ b/r5dev/game/client/view.h @@ -0,0 +1,34 @@ +#ifndef CL_VIEW_H +#define CL_VIEW_H + +const Vector3D& MainViewOrigin(); +const QAngle& MainViewAngles(); + +inline Vector3D* g_vecRenderOrigin = nullptr; +inline QAngle* g_vecRenderAngles = nullptr; + +/////////////////////////////////////////////////////////////////////////////// +class V_View : public IDetour +{ + virtual void GetAdr(void) const + { + spdlog::debug("| VAR: g_vecRenderOrigin : {:#18x} |\n", reinterpret_cast(g_vecRenderOrigin)); + spdlog::debug("| VAR: g_vecRenderAngles : {:#18x} |\n", reinterpret_cast(g_vecRenderAngles)); + spdlog::debug("+----------------------------------------------------------------+\n"); + } + virtual void GetFun(void) const { } + virtual void GetVar(void) const + { + CMemory base = g_mGameDll.FindPatternSIMD(reinterpret_cast("\x48\x89\x74\x24\x00\x57\x48\x83\xEC\x30\xF3\x0F\x10\x05\x00\x00\x00\x00\x00\x8B\x00"), "xxxx?xxxxxxxxx?????x?"); + + g_vecRenderOrigin = base.Offset(0x00).FindPatternSelf("F3 0F 10 05").ResolveRelativeAddressSelf(0x4, 0x8).RCast(); + g_vecRenderAngles = base.Offset(0x30).FindPatternSelf("F3 0F 10 0D").ResolveRelativeAddressSelf(0x4, 0x8).RCast(); + } + virtual void GetCon(void) const { } + virtual void Attach(void) const { } + virtual void Detach(void) const { } +}; +/////////////////////////////////////////////////////////////////////////////// + +REGISTER(V_View); +#endif // CL_VIEW_H \ No newline at end of file diff --git a/r5dev/vproj/clientsdk.vcxproj b/r5dev/vproj/clientsdk.vcxproj index 43876ec4..ec4f624b 100644 --- a/r5dev/vproj/clientsdk.vcxproj +++ b/r5dev/vproj/clientsdk.vcxproj @@ -53,6 +53,7 @@ + @@ -194,6 +195,7 @@ + diff --git a/r5dev/vproj/clientsdk.vcxproj.filters b/r5dev/vproj/clientsdk.vcxproj.filters index cf8bfd33..348f42e1 100644 --- a/r5dev/vproj/clientsdk.vcxproj.filters +++ b/r5dev/vproj/clientsdk.vcxproj.filters @@ -558,6 +558,9 @@ sdk\game\client + + sdk\game\client + @@ -1640,6 +1643,9 @@ sdk\public\include + + sdk\game\client + diff --git a/r5dev/vproj/gamesdk.vcxproj b/r5dev/vproj/gamesdk.vcxproj index 26f6e1cf..7e5c74e8 100644 --- a/r5dev/vproj/gamesdk.vcxproj +++ b/r5dev/vproj/gamesdk.vcxproj @@ -55,6 +55,7 @@ + @@ -205,6 +206,7 @@ + diff --git a/r5dev/vproj/gamesdk.vcxproj.filters b/r5dev/vproj/gamesdk.vcxproj.filters index 078d22aa..7117e3a7 100644 --- a/r5dev/vproj/gamesdk.vcxproj.filters +++ b/r5dev/vproj/gamesdk.vcxproj.filters @@ -594,6 +594,9 @@ sdk\game\client + + sdk\game\client + @@ -1724,6 +1727,9 @@ sdk\public\include + + sdk\game\client +