diff --git a/deps/mongoose b/deps/mongoose index 5e91d919..fd45a6d3 160000 --- a/deps/mongoose +++ b/deps/mongoose @@ -1 +1 @@ -Subproject commit 5e91d919e0554bfb84f407c536396de07a25184a +Subproject commit fd45a6d31bd454a5386887fd4f860fbd3a32389c diff --git a/deps/protobuf b/deps/protobuf index 1f2dbc89..9f75c5aa 160000 --- a/deps/protobuf +++ b/deps/protobuf @@ -1 +1 @@ -Subproject commit 1f2dbc899b634f3236e1923a90683eebed283d52 +Subproject commit 9f75c5aa851cd877fb0d93ccc31b8567a6706546 diff --git a/src/Components/Modules/AntiCheat.cpp b/src/Components/Modules/AntiCheat.cpp index 8b5d65b8..edfb433a 100644 --- a/src/Components/Modules/AntiCheat.cpp +++ b/src/Components/Modules/AntiCheat.cpp @@ -330,11 +330,13 @@ namespace Components { Utils::Memory::Allocator allocator; - // If this fails, you can try to fallback to OpenThreadToken HANDLE hToken = nullptr; if (!OpenProcessToken(GetCurrentProcess(), TOKEN_READ, &hToken)) { - return GetLastError(); + if (!OpenThreadToken(GetCurrentThread(), TOKEN_READ, TRUE, &hToken)) + { + return GetLastError(); + } } auto freeSid = [] (void* sid) diff --git a/src/Components/Modules/FastFiles.cpp b/src/Components/Modules/FastFiles.cpp index fad54648..f144d0fd 100644 --- a/src/Components/Modules/FastFiles.cpp +++ b/src/Components/Modules/FastFiles.cpp @@ -220,8 +220,17 @@ namespace Components const char* FastFiles::GetZoneLocation(const char* file) { const char* dir = Dvar::Var("fs_basepath").Get(); + + std::vector paths; + std::string modDir = Dvar::Var("fs_game").Get(); + if (file == "mod"s || file == "mod.ff"s || !modDir.empty()) + { + paths.push_back(fmt::sprintf("zone\\%s\\", modDir.data())); + } + + Utils::Merge(&paths, FastFiles::ZonePaths); - for (auto &path : FastFiles::ZonePaths) + for (auto &path : paths) { std::string absoluteFile = fmt::sprintf("%s\\%s%s", dir, path.data(), file); diff --git a/src/Game/Structs.hpp b/src/Game/Structs.hpp index 5f517790..38558012 100644 --- a/src/Game/Structs.hpp +++ b/src/Game/Structs.hpp @@ -1402,9 +1402,9 @@ namespace Game GfxPackedVertex* vertexBuffer; // +28 int numCT; // +32 XRigidVertList* ct; // +36 - char boneIndex; - char unk; short something; + char unk; + char boneIndex; int something2; char pad5[16]; // +40 // pad5 matches XModelSurfaces pad