diff options
author | KittenPopo <Pokeberry123@gmail.com> | 2022-03-26 16:20:09 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-26 23:20:09 +0000 |
commit | 379cbc8bc251307777a14b901e5617e834398485 (patch) | |
tree | 4722db4a3c301462ca009f5bb2976508b652677e /NorthstarDedicatedTest/modmanager.cpp | |
parent | 2c74033440212308eb0fe0d8b3135ffc5cd0422e (diff) | |
download | NorthstarLauncher-379cbc8bc251307777a14b901e5617e834398485.tar.gz NorthstarLauncher-379cbc8bc251307777a14b901e5617e834398485.zip |
Major exploit fixes and some minor bug fixes/improvements (#117)v1.6.0-rc3
* Added main exploit fixes
* Fixed typo in sigscanning.cpp
* Fully implemented
* Added proper includes for new files
* Update README.md
* typo
* spare me my sanity (fixed ridiculous code)
* Added rest of KittenMemUtils
* Rename KittenMemUtils
* Removed all messy memory edits, implemented NSMem instead
* Update NorthstarDedicatedTest.vcxproj
* [1] Move everything from securitypatches to ExploitFixes
* [2] Move everything from securitypatches to ExploitFixes
* Fixed module offsets in stack trace
* Fixed UTF8 Parsing (Multiplayer Crash)
* Implemented UT8 fix
* Update NorthstarDedicatedTest.vcxproj
* Update hookutils.cpp
* Small fixes
* all my homies hate clang-format
* Temporarily restore README.md
* Added string hash macro
* Added convenient vtfunc macro
* Made lil ConCommand creation macro
* Fixed multiple NET_SetConVar exploits
* Quick fixerino
* Fix convar struct (and other things)
* Revive clang-format (but good, i think)
* Update .clang-format
* Reformatted code to meet .clang-format requirements
* Minor formatting fixes
* Fixed Northstar "crashing" when console is closed
* Update .clang-format
Diffstat (limited to 'NorthstarDedicatedTest/modmanager.cpp')
-rw-r--r-- | NorthstarDedicatedTest/modmanager.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/NorthstarDedicatedTest/modmanager.cpp b/NorthstarDedicatedTest/modmanager.cpp index 79529c99..99bb5fdb 100644 --- a/NorthstarDedicatedTest/modmanager.cpp +++ b/NorthstarDedicatedTest/modmanager.cpp @@ -191,9 +191,10 @@ ModManager::ModManager() { // precaculated string hashes // note: use backslashes for these, since we use lexically_normal for file paths which uses them - m_hScriptsRsonHash = std::hash<std::string>{}("scripts\\vscripts\\scripts.rson"); - m_hPdefHash = std::hash<std::string>{}( - "cfg\\server\\persistent_player_data_version_231.pdef"); // this can have multiple versions, but we use 231 so that's what we hash + m_hScriptsRsonHash = STR_HASH("scripts\\vscripts\\scripts.rson"); + m_hPdefHash = STR_HASH( + "cfg\\server\\persistent_player_data_version_231.pdef" // this can have multiple versions, but we use 231 so that's what we hash + ); LoadMods(); } @@ -282,9 +283,7 @@ void ModManager::LoadMods() // preexisting convars note: we don't delete convars if they already exist because they're used for script stuff, unfortunately this // causes us to leak memory on reload, but not much, potentially find a way to not do this at some point for (ModConVar* convar : mod.ConVars) - if (g_CustomConvars.find(convar->Name) == - g_CustomConvars.end()) // make sure convar isn't registered yet, unsure if necessary but idk what behaviour is for defining - // same convar multiple times + if (!g_pCVar->FindVar(convar->Name.c_str())) // make sure convar isn't registered yet, unsure if necessary but idk what behaviour is for defining same convar multiple times new ConVar(convar->Name.c_str(), convar->DefaultValue.c_str(), convar->Flags, convar->HelpString.c_str()); // read vpk paths @@ -396,7 +395,7 @@ void ModManager::LoadMods() if (fs::is_regular_file(file)) { std::string kvStr = file.path().lexically_relative(mod.ModDirectory / "keyvalues").lexically_normal().string(); - mod.KeyValues.emplace(std::hash<std::string>{}(kvStr), kvStr); + mod.KeyValues.emplace(STR_HASH(kvStr), kvStr); } } } @@ -537,7 +536,7 @@ void ModManager::UnloadMods() void ModManager::CompileAssetsForFile(const char* filename) { - size_t fileHash = std::hash<std::string>{}(fs::path(filename).lexically_normal().string()); + size_t fileHash = STR_HASH(fs::path(filename).lexically_normal().string()); if (fileHash == m_hScriptsRsonHash) BuildScriptsRson(); |