From 6ccf3baa5a0fd58cac939ff15e59a49b56013033 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Wed, 19 Jul 2023 02:27:28 +0200 Subject: [PATCH] Split server/client specific game utils Split into their respective libraries, this is to avoid linker errors regarding undefined symbols. --- r5dev/game/CMakeLists.txt | 4 ++++ r5dev/game/client/util_client.cpp | 8 ++++++++ r5dev/game/client/util_client.h | 9 +++++++++ r5dev/game/server/gameinterface.cpp | 2 +- r5dev/game/server/physics_main.cpp | 4 ++-- r5dev/game/server/util_server.cpp | 25 +++++++++++++++++++++++++ r5dev/game/server/util_server.h | 12 ++++++++++++ r5dev/game/shared/util_shared.cpp | 22 ---------------------- r5dev/game/shared/util_shared.h | 8 -------- 9 files changed, 61 insertions(+), 33 deletions(-) create mode 100644 r5dev/game/client/util_client.cpp create mode 100644 r5dev/game/client/util_client.h create mode 100644 r5dev/game/server/util_server.cpp create mode 100644 r5dev/game/server/util_server.h diff --git a/r5dev/game/CMakeLists.txt b/r5dev/game/CMakeLists.txt index cf902931..6984ca98 100644 --- a/r5dev/game/CMakeLists.txt +++ b/r5dev/game/CMakeLists.txt @@ -69,6 +69,8 @@ add_sources( SOURCE_GROUP "Server" "server/player.cpp" "server/player.h" "server/playerlocaldata.h" + "server/util_server.cpp" + "server/util_server.h" "server/vscript_server.cpp" "server/vscript_server.h" ) @@ -95,6 +97,8 @@ add_sources( SOURCE_GROUP "Client" "client/movehelper_client.cpp" "client/movehelper_client.h" "client/spritemodel.cpp" + "client/util_client.cpp" + "client/util_client.h" "client/viewrender.cpp" "client/viewrender.h" "client/vscript_client.cpp" diff --git a/r5dev/game/client/util_client.cpp b/r5dev/game/client/util_client.cpp new file mode 100644 index 00000000..1884ca3b --- /dev/null +++ b/r5dev/game/client/util_client.cpp @@ -0,0 +1,8 @@ +//===== Copyright � 1996-2005, Valve Corporation, All rights reserved. ======// +// +// Purpose: +// +//===========================================================================// +#include "util_client.h" + +// Currently empty; add client specific game utils here... diff --git a/r5dev/game/client/util_client.h b/r5dev/game/client/util_client.h new file mode 100644 index 00000000..a449bf1d --- /dev/null +++ b/r5dev/game/client/util_client.h @@ -0,0 +1,9 @@ +//===== Copyright � 1996-2005, Valve Corporation, All rights reserved. ======// +// +// Purpose: +// +//===========================================================================// +#ifndef UTIL_CLIENT_H +#define UTIL_CLIENT_H + +#endif // UTIL_CLIENT_H diff --git a/r5dev/game/server/gameinterface.cpp b/r5dev/game/server/gameinterface.cpp index 5fac56bc..1273ef65 100644 --- a/r5dev/game/server/gameinterface.cpp +++ b/r5dev/game/server/gameinterface.cpp @@ -16,7 +16,7 @@ #include "entitylist.h" #include "baseanimating.h" #include "game/shared/usercmd.h" -#include "game/shared/util_shared.h" +#include "game/server/util_server.h" //----------------------------------------------------------------------------- // This is called when a new game is started. (restart, map) diff --git a/r5dev/game/server/physics_main.cpp b/r5dev/game/server/physics_main.cpp index 22aae7ee..f3ee0e49 100644 --- a/r5dev/game/server/physics_main.cpp +++ b/r5dev/game/server/physics_main.cpp @@ -8,9 +8,9 @@ #include "tier1/cvar.h" #include "player.h" #include "physics_main.h" -#include "engine/server/server.h" +#include "engine/server/server.h" #include "engine/client/client.h" -#include "game/shared/util_shared.h" +#include "game/server/util_server.h" //----------------------------------------------------------------------------- // Purpose: Runs the command simulation for fake players diff --git a/r5dev/game/server/util_server.cpp b/r5dev/game/server/util_server.cpp new file mode 100644 index 00000000..63d77a4f --- /dev/null +++ b/r5dev/game/server/util_server.cpp @@ -0,0 +1,25 @@ +//===== Copyright � 1996-2005, Valve Corporation, All rights reserved. ======// +// +// Purpose: +// +//===========================================================================// +#include "game/server/player.h" +#include "game/server/gameinterface.h" + +#include "util_server.h" + +//----------------------------------------------------------------------------- +// Purpose: returns the player instance by edict +//----------------------------------------------------------------------------- +CPlayer* UTIL_PlayerByIndex(int nIndex) +{ + if (nIndex < 1 || nIndex >(*g_pGlobals)->m_nMaxClients || nIndex == FL_EDICT_INVALID) + { + assert(0); + return nullptr; + } + + // !TODO: Improve this!!! + CPlayer* pPlayer = reinterpret_cast((*g_pGlobals)->m_pEdicts[nIndex + 0x7808]); + return pPlayer; +} diff --git a/r5dev/game/server/util_server.h b/r5dev/game/server/util_server.h new file mode 100644 index 00000000..14a60557 --- /dev/null +++ b/r5dev/game/server/util_server.h @@ -0,0 +1,12 @@ +//===== Copyright � 1996-2005, Valve Corporation, All rights reserved. ======// +// +// Purpose: +// +//===========================================================================// +#ifndef UTIL_SERVER_H +#define UTIL_SERVER_H +#include "game/server/player.h" + +CPlayer* UTIL_PlayerByIndex(int nIndex); + +#endif // UTIL_SERVER_H diff --git a/r5dev/game/shared/util_shared.cpp b/r5dev/game/shared/util_shared.cpp index 5f2a0b66..d407caa8 100644 --- a/r5dev/game/shared/util_shared.cpp +++ b/r5dev/game/shared/util_shared.cpp @@ -5,28 +5,6 @@ //===========================================================================// #include "core/stdafx.h" #include "util_shared.h" -#ifndef CLIENT_DLL -#include "game/server/player.h" -#include "game/server/gameinterface.h" -#endif // !CLIENT_DLL - -#ifndef CLIENT_DLL -//----------------------------------------------------------------------------- -// Purpose: returns the player instance by edict -//----------------------------------------------------------------------------- -CPlayer* UTIL_PlayerByIndex(int nIndex) -{ - if (nIndex < 1 || nIndex >(*g_pGlobals)->m_nMaxClients || nIndex == FL_EDICT_INVALID) - { - assert(0); - return nullptr; - } - - // !TODO: Improve this!!! - CPlayer* pPlayer = reinterpret_cast((*g_pGlobals)->m_pEdicts[nIndex + 0x7808]); - return pPlayer; -} -#endif // CLIENT_DLL //----------------------------------------------------------------------------- // Purpose: returns the class name, script name, and edict of the entity diff --git a/r5dev/game/shared/util_shared.h b/r5dev/game/shared/util_shared.h index 1862a067..0b854aaf 100644 --- a/r5dev/game/shared/util_shared.h +++ b/r5dev/game/shared/util_shared.h @@ -5,16 +5,9 @@ //===========================================================================// #ifndef UTIL_SHARED_H #define UTIL_SHARED_H -#ifndef CLIENT_DLL -#include "game/server/player.h" -#endif #include "public/engine/IEngineTrace.h" class CTraceFilterSimple; - -#ifndef CLIENT_DLL -CPlayer* UTIL_PlayerByIndex(int nIndex); -#endif // CLIENT_DLL const char* UTIL_GetEntityScriptInfo(CBaseEntity* pEnt); inline CMemory p_UTIL_GetEntityScriptInfo; @@ -46,7 +39,6 @@ private: int m_traceType; }; - /////////////////////////////////////////////////////////////////////////////// class VUtil_Shared : public IDetour {