Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
[submodule "vendor/hl2sdk"]
path = vendor/hl2sdk
path = vendor/hl2sdk-cs2
url = https://github.com/alliedmodders/hl2sdk
shallow = true
[submodule "vendor/fmt"]
path = vendor/fmt
url = https://github.com/fmtlib/fmt
shallow = true
[submodule "vendor/hl2sdk-dota"]
path = vendor/hl2sdk-dota
url = https://github.com/alliedmodders/hl2sdk
shallow = true
5 changes: 4 additions & 1 deletion cmake/platform.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
add_definitions(-DMETA_IS_SOURCE2 -D_ITERATOR_DEBUG_LEVEL=0)

if(UNIX)
add_definitions(-D_LINUX -DPOSIX -DLINUX -DGNUC -DCOMPILER_GCC -DPLATFORM_64BITS -D_GLIBCXX_USE_CXX11_ABI=0)
add_definitions(
-D_LINUX -DPOSIX -DLINUX -DGNUC -DCOMPILER_GCC -DPLATFORM_64BITS -D_GLIBCXX_USE_CXX11_ABI=0 -Dstricmp=strcasecmp
-D_stricmp=strcasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -DHAVE_STDINT_H
)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -static-libgcc -static-libstdc++")
elseif(WIN32)
add_definitions(
Expand Down
19 changes: 13 additions & 6 deletions src/main/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,20 @@ file(GLOB_RECURSE HEADERS_LIST
"*.h"
)

add_executable(DumpSource2 ${SOURCES_LIST} ${HEADERS_LIST})
function(BUILD_GAME GAME GAME_PATH)
add_executable(DumpSource2-${GAME} ${SOURCES_LIST} ${HEADERS_LIST})

target_link_libraries(DumpSource2 PRIVATE
HL2SDK
fmt::fmt
${CMAKE_DL_LIBS}
)
target_link_libraries(DumpSource2-${GAME} PRIVATE
HL2SDK-${GAME}
fmt::fmt
${CMAKE_DL_LIBS}
)

target_compile_definitions(DumpSource2-${GAME} PRIVATE GAME_${GAME} GAME_PATH="${GAME_PATH}")
endfunction()

build_game(CS2 csgo)
build_game(DOTA dota)

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})
9 changes: 5 additions & 4 deletions src/main/appframework.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,18 +138,19 @@ void InitializeAppSystems()
{
for (const auto& appSystem : g_appSystems)
{
if ((appSystem.flags & CS2_ONLY) != 0 && Globals::modName != "csgo")
#ifndef GAME_CS2
if ((appSystem.flags & CS2_ONLY) != 0)
continue;
#endif // !GAME_CS2

std::string path = appSystem.gameBin ? fmt::format("../../{}/bin/{}", Globals::modName.c_str(), PLATFORM_FOLDER) : "";
std::string path = appSystem.gameBin ? fmt::format("../../{}/bin/{}", GAME_PATH, PLATFORM_FOLDER) : "";

CModule module(path.c_str(), appSystem.moduleName);

auto interface = module.FindInterface<IAppSystem*>(appSystem.interfaceVersion.c_str());

g_factoryMap[appSystem.interfaceVersion] = interface;

if (appSystem.connect && Globals::modName == "csgo")
if (appSystem.connect)
{
interface->Connect(&AppSystemFactory);
interface->Init();
Expand Down
1 change: 0 additions & 1 deletion src/main/globalvariables.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@

namespace Globals {

inline std::string modName;
inline std::filesystem::path outputPath;
inline std::ofstream stringsIgnoreStream;

Expand Down
12 changes: 4 additions & 8 deletions src/main/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,18 @@

void Usage()
{
printf("Usage: DumpSource2 <mod name> <output path>\n");
printf("Usage: DumpSource2 <output path>\n");
}

int main(int argc, char** argv)
{
if (argc <= 2)
if (argc <= 1)
{
Usage();
return 0;
}

Globals::modName = argv[1];
Globals::outputPath = argv[2];
Globals::outputPath = argv[1];

if (!std::filesystem::is_directory(Globals::outputPath))
{
Expand All @@ -55,9 +54,6 @@ int main(int argc, char** argv)

printf("Dumping\n");

// TEMP: cs2 and dota/deadlock sdks are mismatched in ICvar vtable right now
if(Globals::modName == "csgo")
Dumpers::ConCommands::Dump();

Dumpers::ConCommands::Dump();
Dumpers::Schemas::Dump();
}
2 changes: 2 additions & 0 deletions src/main/utils/common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,11 @@ void Plat_ExitProcess(int) {
// STUB
}

#ifdef GAME_CS2
void Plat_FatalErrorFunc(const tchar* pMsg, ...) {
// STUB
}
#endif

bool Plat_IsInDebugSession() {
// STUB
Expand Down
79 changes: 43 additions & 36 deletions vendor/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,49 +1,56 @@
# HL2SDK/METAMOD SETUP
# ---

SET(HL2SDK_INCLUDES
${PROJECT_SOURCE_DIR}/vendor/hl2sdk
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/common
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/game/shared
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/game/server
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public/engine
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public/mathlib
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public/tier0
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public/tier1
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public/entity2
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public/game/server
)

add_library(HL2SDK STATIC
hl2sdk/tier1/convar.cpp
hl2sdk/tier1/generichash.cpp
hl2sdk/tier1/keyvalues3.cpp
)

target_include_directories(HL2SDK PUBLIC ${HL2SDK_INCLUDES})

if(WIN32)
target_link_libraries(HL2SDK PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/hl2sdk/lib/public/win64/tier1.lib
${CMAKE_CURRENT_SOURCE_DIR}/hl2sdk/lib/public/win64/interfaces.lib
${CMAKE_CURRENT_SOURCE_DIR}/hl2sdk/lib/public/win64/mathlib.lib
)
elseif(UNIX)
target_link_libraries(HL2SDK PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/hl2sdk/lib/linux64/tier1.a
${CMAKE_CURRENT_SOURCE_DIR}/hl2sdk/lib/linux64/interfaces.a
${CMAKE_CURRENT_SOURCE_DIR}/hl2sdk/lib/linux64/mathlib.a
)
endif()
function(BUILD_HL2SDK GAME GAME_PATH)
SET(HL2SDK_INCLUDES
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/common
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/game/shared
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/game/server
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public/engine
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public/mathlib
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public/tier0
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public/tier1
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public/entity2
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public/game/server
)

add_library(HL2SDK-${GAME} STATIC
${GAME_PATH}/tier1/convar.cpp
${GAME_PATH}/tier1/generichash.cpp
${GAME_PATH}/tier1/keyvalues3.cpp
)

target_include_directories(HL2SDK-${GAME} PUBLIC ${HL2SDK_INCLUDES})

if(WIN32)
target_link_libraries(HL2SDK-${GAME} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/${GAME_PATH}/lib/public/win64/tier1.lib
${CMAKE_CURRENT_SOURCE_DIR}/${GAME_PATH}/lib/public/win64/interfaces.lib
${CMAKE_CURRENT_SOURCE_DIR}/${GAME_PATH}/lib/public/win64/mathlib.lib
)
elseif(UNIX)
target_link_libraries(HL2SDK-${GAME} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/${GAME_PATH}/lib/linux64/tier1.a
${CMAKE_CURRENT_SOURCE_DIR}/${GAME_PATH}/lib/linux64/interfaces.a
${CMAKE_CURRENT_SOURCE_DIR}/${GAME_PATH}/lib/linux64/mathlib.a
)
endif()
message(STATUS "Setting up HL2SDK-${GAME}") # What does this print?
endfunction()

build_hl2sdk(CS2 hl2sdk-cs2)
build_hl2sdk(DOTA hl2sdk-dota)

# EXTERNAL LIBRARIES
# ---

add_subdirectory(fmt)

set_target_properties(
HL2SDK
HL2SDK-CS2
HL2SDK-DOTA
PROPERTIES FOLDER SDK
)

Expand Down
1 change: 1 addition & 0 deletions vendor/hl2sdk-dota
Submodule hl2sdk-dota added at aa4013