From f4215cbc57b3fa22d3545e5ca357b4a52ddf108a Mon Sep 17 00:00:00 2001 From: Lion Doge Date: Fri, 23 Jan 2026 01:43:42 +0100 Subject: [PATCH 1/6] remove some no longer needed stubs, add null check in DumpClasses --- src/main/dumpers/schemas/schemas.cpp | 2 ++ src/main/utils/common.cpp | 10 ---------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/main/dumpers/schemas/schemas.cpp b/src/main/dumpers/schemas/schemas.cpp index a75fac2..b35fea1 100644 --- a/src/main/dumpers/schemas/schemas.cpp +++ b/src/main/dumpers/schemas/schemas.cpp @@ -71,6 +71,8 @@ void DumpClasses(CSchemaSystemTypeScope* typeScope, std::filesystem::path schema FOR_EACH_MAP(typeScope->m_DeclaredClasses.m_Map, iter) { const auto classInfo = typeScope->m_DeclaredClasses.m_Map.Element(iter)->m_pClassInfo; + if (!classInfo) + continue; if (!std::filesystem::is_directory(schemaPath / classInfo->m_pszProjectName)) if (!std::filesystem::create_directory(schemaPath / classInfo->m_pszProjectName)) diff --git a/src/main/utils/common.cpp b/src/main/utils/common.cpp index ec56d98..467948c 100644 --- a/src/main/utils/common.cpp +++ b/src/main/utils/common.cpp @@ -21,16 +21,6 @@ void ExitError(const char* pMsg, ...) /* tier0 stub */ -void CThreadSpinRWLock::LockForRead(const char* pFileName, int nLine) -{ - // STUB -} - -void CThreadSpinRWLock::UnlockRead(const char* pFileName, int nLine) -{ - // STUB -} - LoggingResponse_t LoggingSystem_LogAssert(const char* pMessageFormat, ...) { return LR_ABORT; From dc47434d00f79ec3d039473a2007c76148d4f1bf Mon Sep 17 00:00:00 2001 From: Lion Doge Date: Fri, 23 Jan 2026 01:44:18 +0100 Subject: [PATCH 2/6] update hl2sdk-cs2 --- vendor/hl2sdk-cs2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/hl2sdk-cs2 b/vendor/hl2sdk-cs2 index 84a823d..0814ebc 160000 --- a/vendor/hl2sdk-cs2 +++ b/vendor/hl2sdk-cs2 @@ -1 +1 @@ -Subproject commit 84a823db042b49d2f6934b770dafbf3a366cef26 +Subproject commit 0814ebc4a18b7dd9321c06995141a64134bdd01a From 8f2049bb332c7b2d772f9509fa6c6685e325a52e Mon Sep 17 00:00:00 2001 From: Lion Doge Date: Fri, 23 Jan 2026 18:54:15 +0100 Subject: [PATCH 3/6] Add null check to enumInfo, warn if class/enum is null. --- src/main/dumpers/schemas/schemas.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/dumpers/schemas/schemas.cpp b/src/main/dumpers/schemas/schemas.cpp index b35fea1..49aece7 100644 --- a/src/main/dumpers/schemas/schemas.cpp +++ b/src/main/dumpers/schemas/schemas.cpp @@ -72,7 +72,10 @@ void DumpClasses(CSchemaSystemTypeScope* typeScope, std::filesystem::path schema { const auto classInfo = typeScope->m_DeclaredClasses.m_Map.Element(iter)->m_pClassInfo; if (!classInfo) + { + spdlog::warn("Null classInfo in {} type scope", typeScope->GetScopeName()); continue; + } if (!std::filesystem::is_directory(schemaPath / classInfo->m_pszProjectName)) if (!std::filesystem::create_directory(schemaPath / classInfo->m_pszProjectName)) @@ -145,6 +148,11 @@ void DumpEnums(CSchemaSystemTypeScope* typeScope, std::filesystem::path schemaPa FOR_EACH_MAP(typeScope->m_DeclaredEnums.m_Map, iter) { const auto enumInfo = typeScope->m_DeclaredEnums.m_Map.Element(iter)->m_pEnumInfo; + if (!enumInfo) + { + spdlog::warn("Null enumInfo in {} type scope", typeScope->GetScopeName()); + continue; + } if (!std::filesystem::is_directory(schemaPath / enumInfo->m_pszProjectName)) if (!std::filesystem::create_directory(schemaPath / enumInfo->m_pszProjectName)) From 51539a55540870433308e310d8c5b0b7faf663be Mon Sep 17 00:00:00 2001 From: Lion Doge Date: Sat, 24 Jan 2026 00:24:12 +0100 Subject: [PATCH 4/6] Switch all games to use CS2 sdk for now --- src/main/CMakeLists.txt | 4 ++-- src/main/utils/common.cpp | 6 ------ vendor/CMakeLists.txt | 4 ++-- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt index c9a3f26..e1f9e0e 100644 --- a/src/main/CMakeLists.txt +++ b/src/main/CMakeLists.txt @@ -20,8 +20,8 @@ function(BUILD_GAME GAME GAME_PATH SDK) endfunction() build_game(CS2 csgo CS2) -build_game(DOTA dota DOTA) -build_game(DEADLOCK citadel DEADLOCK) +build_game(DOTA dota CS2) +build_game(DEADLOCK citadel CS2) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Source Files" FILES ${SOURCES_LIST}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Header Files" FILES ${HEADERS_LIST}) \ No newline at end of file diff --git a/src/main/utils/common.cpp b/src/main/utils/common.cpp index 467948c..f35f1b7 100644 --- a/src/main/utils/common.cpp +++ b/src/main/utils/common.cpp @@ -71,15 +71,9 @@ void CUtlString::Trim(const char*) { // STUB } -#ifdef GAME_CS2 CUtlBuffer::CUtlBuffer(const void*, int, CUtlBuffer::BufferFlags_t) { // STUB } -#else -CUtlBuffer::CUtlBuffer(void const*, int, int) { - // STUB -} -#endif void ConMsg(const char*, ...) { // STUB diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt index 6fa7fbb..7191fe7 100644 --- a/vendor/CMakeLists.txt +++ b/vendor/CMakeLists.txt @@ -41,8 +41,8 @@ function(BUILD_HL2SDK GAME GAME_PATH) endfunction() build_hl2sdk(CS2 hl2sdk-cs2) -build_hl2sdk(DOTA hl2sdk-deadlock) -build_hl2sdk(DEADLOCK hl2sdk-deadlock) +build_hl2sdk(DOTA hl2sdk-cs2) +build_hl2sdk(DEADLOCK hl2sdk-cs2) # EXTERNAL LIBRARIES # --- From 456dfc2ab2a535140f8491f00ddd4f8abbbd8a99 Mon Sep 17 00:00:00 2001 From: Lion Doge Date: Sat, 24 Jan 2026 00:26:00 +0100 Subject: [PATCH 5/6] Add another exclusion to GetKV3Defaults (relevant to Deadlock) --- src/main/dumpers/schemas/metadata_stringifier.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/dumpers/schemas/metadata_stringifier.cpp b/src/main/dumpers/schemas/metadata_stringifier.cpp index 5899d87..a11670e 100644 --- a/src/main/dumpers/schemas/metadata_stringifier.cpp +++ b/src/main/dumpers/schemas/metadata_stringifier.cpp @@ -49,6 +49,7 @@ std::unordered_set g_classWithBrokenDefaults = "Dop26_t", "FourCovMatrices3", "VMixVocoderDesc_t", + "CCitadelPlayerPawn_GraphController2" }; // Any function called after this will have uninitialized variables set to zero From 6e626fc8ee8cfcb1cad9342f5fe9c6650943df40 Mon Sep 17 00:00:00 2001 From: Lion Doge Date: Sat, 24 Jan 2026 00:41:48 +0100 Subject: [PATCH 6/6] Add class/enum name to warnings if their info in schema is null. --- src/main/dumpers/schemas/schemas.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/dumpers/schemas/schemas.cpp b/src/main/dumpers/schemas/schemas.cpp index 49aece7..f06f3a1 100644 --- a/src/main/dumpers/schemas/schemas.cpp +++ b/src/main/dumpers/schemas/schemas.cpp @@ -70,10 +70,11 @@ void DumpClasses(CSchemaSystemTypeScope* typeScope, std::filesystem::path schema { FOR_EACH_MAP(typeScope->m_DeclaredClasses.m_Map, iter) { - const auto classInfo = typeScope->m_DeclaredClasses.m_Map.Element(iter)->m_pClassInfo; + const auto schemaClass = typeScope->m_DeclaredClasses.m_Map.Element(iter); + const auto classInfo = schemaClass->m_pClassInfo; if (!classInfo) { - spdlog::warn("Null classInfo in {} type scope", typeScope->GetScopeName()); + spdlog::warn("Null classInfo: {}::{}", typeScope->GetScopeName(), schemaClass->m_sTypeName.Get()); continue; } @@ -147,10 +148,11 @@ void DumpEnums(CSchemaSystemTypeScope* typeScope, std::filesystem::path schemaPa { FOR_EACH_MAP(typeScope->m_DeclaredEnums.m_Map, iter) { - const auto enumInfo = typeScope->m_DeclaredEnums.m_Map.Element(iter)->m_pEnumInfo; + const auto schemaEnum = typeScope->m_DeclaredEnums.m_Map.Element(iter); + const auto enumInfo = schemaEnum->m_pEnumInfo; if (!enumInfo) { - spdlog::warn("Null enumInfo in {} type scope", typeScope->GetScopeName()); + spdlog::warn("Null enumInfo {}::{}", typeScope->GetScopeName(), schemaEnum->m_sTypeName.Get()); continue; }