From 34d2499e89787561d29623025632d8ef934e80c0 Mon Sep 17 00:00:00 2001 From: Wtz_LASR Date: Tue, 21 May 2024 22:23:39 +0800 Subject: [PATCH] hey it works :) --- primedev/Northstar.cmake | 5 +++++ primedev/client/debugoverlay.h | 2 ++ primedev/engine/r2engine.h | 1 + primedev/logging/logging.h | 1 - primedev/logging/sourceconsole.h | 2 +- primedev/mods/autodownload/moddownloader.cpp | 2 ++ primedev/mods/modmanager.cpp | 1 + primedev/mods/modmanager.h | 2 +- primedev/plugins/interfaces/interface.h | 7 +++---- primedev/plugins/pluginmanager.h | 7 ++----- primedev/server/ai_helper.cpp | 2 ++ primedev/shared/exploit_fixes/exploitfixes.cpp | 5 +++-- primedev/squirrel/squirrel.cpp | 13 ------------- primedev/squirrel/squirrel.h | 10 +++++++++- thirdparty/silver-bun | 2 +- 15 files changed, 33 insertions(+), 29 deletions(-) diff --git a/primedev/Northstar.cmake b/primedev/Northstar.cmake index 622b4b59c..beaa2b86c 100644 --- a/primedev/Northstar.cmake +++ b/primedev/Northstar.cmake @@ -191,6 +191,11 @@ target_link_libraries( version.lib ) +target_compile_options( + NorthstarDLL + PRIVATE -mavx +) + target_precompile_headers( NorthstarDLL PRIVATE diff --git a/primedev/client/debugoverlay.h b/primedev/client/debugoverlay.h index 498bfafd8..31cd63349 100644 --- a/primedev/client/debugoverlay.h +++ b/primedev/client/debugoverlay.h @@ -1,5 +1,7 @@ #pragma once +#include "core/math/vector.h" + // Render Line inline void (*RenderLine)(const Vector3& v1, const Vector3& v2, Color c, bool bZBuffer); diff --git a/primedev/engine/r2engine.h b/primedev/engine/r2engine.h index c8b2e013a..c865ed128 100644 --- a/primedev/engine/r2engine.h +++ b/primedev/engine/r2engine.h @@ -1,5 +1,6 @@ #pragma once #include "shared/keyvalues.h" +#include "core/convar/concommand.h" // Cbuf enum class ECommandTarget_t diff --git a/primedev/logging/logging.h b/primedev/logging/logging.h index 0c8349f5d..e0a293042 100644 --- a/primedev/logging/logging.h +++ b/primedev/logging/logging.h @@ -1,7 +1,6 @@ #pragma once #include "spdlog/sinks/base_sink.h" #include "spdlog/logger.h" -#include "squirrel/squirrel.h" #include "core/math/color.h" namespace fmt_lib = spdlog::fmt_lib; diff --git a/primedev/logging/sourceconsole.h b/primedev/logging/sourceconsole.h index 44d738434..7ab1eda14 100644 --- a/primedev/logging/sourceconsole.h +++ b/primedev/logging/sourceconsole.h @@ -39,7 +39,7 @@ class CConsoleDialog class CGameConsole { public: - virtual ~CGameConsole() = 0; + virtual void CGameConsoleDestructor() = 0; // activates the console, makes it visible and brings it to the foreground virtual void Activate() = 0; diff --git a/primedev/mods/autodownload/moddownloader.cpp b/primedev/mods/autodownload/moddownloader.cpp index 3a9462630..7c2c23785 100644 --- a/primedev/mods/autodownload/moddownloader.cpp +++ b/primedev/mods/autodownload/moddownloader.cpp @@ -1,5 +1,7 @@ #include "moddownloader.h" #include "util/utils.h" +#include "mods/modmanager.h" +#include "squirrel/squirrel.h" #include #include #include diff --git a/primedev/mods/modmanager.cpp b/primedev/mods/modmanager.cpp index 268a65a56..2775d21dd 100644 --- a/primedev/mods/modmanager.cpp +++ b/primedev/mods/modmanager.cpp @@ -6,6 +6,7 @@ #include "core/filesystem/filesystem.h" #include "core/filesystem/rpakfilesystem.h" #include "config/profile.h" +#include "squirrel/squirrel.h" #include "rapidjson/error/en.h" #include "rapidjson/document.h" diff --git a/primedev/mods/modmanager.h b/primedev/mods/modmanager.h index 233f004d4..81cf1927c 100644 --- a/primedev/mods/modmanager.h +++ b/primedev/mods/modmanager.h @@ -1,7 +1,7 @@ #pragma once #include "core/convar/convar.h" #include "core/memalloc.h" -#include "squirrel/squirrel.h" +#include "squirrel/squirrelclasstypes.h" #include "rapidjson/document.h" #include diff --git a/primedev/plugins/interfaces/interface.h b/primedev/plugins/interfaces/interface.h index 440db5b22..4101dc2df 100644 --- a/primedev/plugins/interfaces/interface.h +++ b/primedev/plugins/interfaces/interface.h @@ -1,5 +1,6 @@ -#ifndef INTERFACE_H -#define INTERFACE_H +#pragma once + +#include "core/sourceinterface.h" typedef void* (*InstantiateInterfaceFn)(); @@ -35,5 +36,3 @@ class InterfaceReg EXPOSE_SINGLE_INTERFACE_GLOBALVAR(className, interfaceName, versionName, __g_##className##_singleton) EXPORT void* CreateInterface(const char* pName, InterfaceStatus* pReturnCode); - -#endif diff --git a/primedev/plugins/pluginmanager.h b/primedev/plugins/pluginmanager.h index 8c0218510..7dfbabf6f 100644 --- a/primedev/plugins/pluginmanager.h +++ b/primedev/plugins/pluginmanager.h @@ -1,7 +1,6 @@ -#ifndef PLUGIN_MANAGER_H -#define PLUGIN_MANAGER_H +#pragma once -#include +#include "squirrel/squirreldatatypes.h" class Plugin; @@ -29,5 +28,3 @@ class PluginManager }; extern PluginManager* g_pPluginManager; - -#endif diff --git a/primedev/server/ai_helper.cpp b/primedev/server/ai_helper.cpp index ebb56af24..78d1e9e8f 100644 --- a/primedev/server/ai_helper.cpp +++ b/primedev/server/ai_helper.cpp @@ -5,8 +5,10 @@ #include "engine/hoststate.h" #include "core/math/vplane.h" +#include "core/convar/convar.h" #include +#include const int AINET_VERSION_NUMBER = 57; const int AINET_SCRIPT_VERSION_NUMBER = 21; diff --git a/primedev/shared/exploit_fixes/exploitfixes.cpp b/primedev/shared/exploit_fixes/exploitfixes.cpp index 967adeaf1..54bf53944 100644 --- a/primedev/shared/exploit_fixes/exploitfixes.cpp +++ b/primedev/shared/exploit_fixes/exploitfixes.cpp @@ -88,8 +88,9 @@ bool, __fastcall, (void* pMsg)) // 48 8B D1 48 8B 49 18 48 8B 01 48 FF 60 10 auto msg = (NET_SetConVar*)pMsg; bool bIsServerFrame = ThreadInServerFrameThread(); - std::string BLOCK_PREFIX = - std::string {"NET_SetConVar ("} + (bIsServerFrame ? "server" : "client") + "): Blocked dangerous/invalid msg: "; + std::string BLOCK_PREFIX = "NET_SetConVar ("; + BLOCK_PREFIX += (bIsServerFrame ? "server" : "client"); + BLOCK_PREFIX += "): Blocked dangerous/invalid msg: "; if (bIsServerFrame) { diff --git a/primedev/squirrel/squirrel.cpp b/primedev/squirrel/squirrel.cpp index 41a6a782f..af6a2fabd 100644 --- a/primedev/squirrel/squirrel.cpp +++ b/primedev/squirrel/squirrel.cpp @@ -31,19 +31,6 @@ std::shared_ptr getSquirrelLoggerByContext(ScriptContext context) } } -namespace NS::log -{ - template std::shared_ptr squirrel_logger() - { - // Switch statements can't be constexpr afaik - // clang-format off - if constexpr (context == ScriptContext::UI) { return SCRIPT_UI; } - if constexpr (context == ScriptContext::CLIENT) { return SCRIPT_CL; } - if constexpr (context == ScriptContext::SERVER) { return SCRIPT_SV; } - // clang-format on - } -}; // namespace NS::log - const char* GetContextName(ScriptContext context) { switch (context) diff --git a/primedev/squirrel/squirrel.h b/primedev/squirrel/squirrel.h index 0c1f24d36..359290e17 100644 --- a/primedev/squirrel/squirrel.h +++ b/primedev/squirrel/squirrel.h @@ -54,7 +54,15 @@ ScriptContext ScriptContextFromString(std::string string); namespace NS::log { - template std::shared_ptr squirrel_logger(); + template inline std::shared_ptr squirrel_logger() + { + // Switch statements can't be constexpr afaik + // clang-format off + if constexpr (context == ScriptContext::UI) { return SCRIPT_UI; } + if constexpr (context == ScriptContext::CLIENT) { return SCRIPT_CL; } + if constexpr (context == ScriptContext::SERVER) { return SCRIPT_SV; } + // clang-format on + } }; // namespace NS::log // This base class means that only the templated functions have to be rebuilt for each template instance diff --git a/thirdparty/silver-bun b/thirdparty/silver-bun index 8481f7297..499319628 160000 --- a/thirdparty/silver-bun +++ b/thirdparty/silver-bun @@ -1 +1 @@ -Subproject commit 8481f729701c7a1b21bd74f9ff50f18fd2963bf9 +Subproject commit 499319628e1b51234572e8d4008fd6e991c7566f