From 807d660883ce3e645f24b317f2e126c3a49fa6a5 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Tue, 9 May 2023 23:55:46 +0200 Subject: [PATCH 01/52] Add CMake macro's Macro's performing project wide, and common operations. Crafted for r5sdk, but it is still partially incomplete. --- r5dev/cmake/Configure.cmake | 7 +++ r5dev/cmake/Macros.cmake | 54 +++++++++++++++++++++ r5dev/cmake/Options.cmake | 94 +++++++++++++++++++++++++++++++++++++ 3 files changed, 155 insertions(+) create mode 100644 r5dev/cmake/Configure.cmake create mode 100644 r5dev/cmake/Macros.cmake create mode 100644 r5dev/cmake/Options.cmake diff --git a/r5dev/cmake/Configure.cmake b/r5dev/cmake/Configure.cmake new file mode 100644 index 00000000..78666953 --- /dev/null +++ b/r5dev/cmake/Configure.cmake @@ -0,0 +1,7 @@ + +# ----------------------------------------------------------------------------- +# Set global configuration types +# ----------------------------------------------------------------------------- +macro( setup_build_configurations ) +set( CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" CACHE STRING "" FORCE ) +endmacro() diff --git a/r5dev/cmake/Macros.cmake b/r5dev/cmake/Macros.cmake new file mode 100644 index 00000000..70a10ea4 --- /dev/null +++ b/r5dev/cmake/Macros.cmake @@ -0,0 +1,54 @@ +# ----------------------------------------------------------------------------- +# Start the source file list +# ----------------------------------------------------------------------------- +macro( start_sources ) + add_sources( SOURCE_GROUP "" + # Add the CMakeLists file to the project filter root + "CMakeLists.txt" +) +endmacro() + +# ----------------------------------------------------------------------------- +# Add source files to target within a project filter +# ----------------------------------------------------------------------------- +macro( add_sources ) + set( options ) + set( oneValueArgs SOURCE_GROUP ) + set( multiValueArgs ) + + cmake_parse_arguments( ADD_SOURCES + "${options}" + "${oneValueArgs}" + "${multiValueArgs}" ${ARGN} + ) + + if( NOT ADD_SOURCES_SOURCE_GROUP ) + message( FATAL_ERROR "SOURCE_GROUP must be provided" ) + endif() + + source_group( "${ADD_SOURCES_SOURCE_GROUP}" FILES ${ADD_SOURCES_UNPARSED_ARGUMENTS} ) + target_sources( ${PROJECT_NAME} PRIVATE ${ADD_SOURCES_UNPARSED_ARGUMENTS} ) +endmacro() + +# ----------------------------------------------------------------------------- +# End the source file list +# ----------------------------------------------------------------------------- +macro( end_sources ) + get_property( SRCS_LIST GLOBAL PROPERTY SRCS_LIST ) + set_target_output_dirs( ${PROJECT_NAME} ) +endmacro() + +# ----------------------------------------------------------------------------- +# Initialize global compiler defines +# ----------------------------------------------------------------------------- +macro( define_compiler_variables ) + if( CMAKE_CXX_COMPILER_ID MATCHES "MSVC" ) + add_definitions( -DCOMPILER_MSVC ) + elseif( CMAKE_CXX_COMPILER_ID MATCHES "Clang" ) + add_definitions( -DCOMPILER_CLANG ) + elseif( CMAKE_CXX_COMPILER_ID MATCHES "GNU" ) + add_definitions( -DCOMPILER_GCC ) + else() + message( FATAL_ERROR "Unsupported compiler: ${CMAKE_CXX_COMPILER_ID}" ) + endif() +endmacro() diff --git a/r5dev/cmake/Options.cmake b/r5dev/cmake/Options.cmake new file mode 100644 index 00000000..47e4e9d8 --- /dev/null +++ b/r5dev/cmake/Options.cmake @@ -0,0 +1,94 @@ +# ----------------------------------------------------------------------------- +# Setup each build configuration +# ----------------------------------------------------------------------------- +macro( apply_project_settings ) + # Set common settings for all configurations + add_compile_options( + $<$:/permissive-> + $<$:/MP> + $<$:/W4> + $<$:/GR> + $<$:/D_UNICODE> + $<$:/DUNICODE> + ) + + # Set common defines + add_compile_definitions( + "_CRT_SECURE_NO_WARNINGS" + "SPDLOG_COMPILED_LIB" + "SPDLOG_NO_EXCEPTIONS" + "CURL_STATICLIB" + ) + + # Set settings for Debug configuration + add_compile_options( + $<$,$>:/MTd> + ) + + # Set settings for Profile configuration + add_compile_options( + $<$,$>:/Ox> + $<$,$>:/GF> + $<$,$>:/MT> + ) + set( CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_PROFILE} /PROFILE" ) + + # Set settings for Release configuration + add_compile_options( + $<$,$>:/Ob2> + $<$,$>:/Oi> + $<$,$>:/Ot> + $<$,$>:/GF> + $<$,$>:/MT> + $<$,$>:/GS-> + $<$,$>:/Gy> + $<$,$>:/fp:fast> + ) + + set( CMAKE_EXE_LINKER_FLAGS_RELEASE + "${CMAKE_EXE_LINKER_FLAGS_RELEASE} + /OPT:REF + /OPT:ICF + /RELEASE + /SAFESEH:NO + /DEBUG" + ) + + # Commonly used directories accross libraries. + include_directories( + "${ENGINE_SOURCE_DIR}/" + "${ENGINE_SOURCE_DIR}/public/" + "${ENGINE_SOURCE_DIR}/thirdparty/" + "${ENGINE_SOURCE_DIR}/thirdparty/imgui/" + "${ENGINE_SOURCE_DIR}/thirdparty/recast/" + ) +endmacro() + +# ----------------------------------------------------------------------------- +# Setup build output directories for target +# ----------------------------------------------------------------------------- +macro( set_target_output_dirs TARGET ) + # Set abs PDB path + get_filename_component( OUTPUT_DIR_ABSOLUTE "${CMAKE_SOURCE_DIR}/game/" ABSOLUTE ) + set( PDB_FULL_PATH "${OUTPUT_DIR_ABSOLUTE}/${PROJECT_NAME}.pdb" ) + + # Set output directories + set_target_properties( ${TARGET} PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/game/" + RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/game/" + RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/game/" + RUNTIME_OUTPUT_DIRECTORY_PROFILE "${CMAKE_SOURCE_DIR}/game/" + ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/${TARGET}" + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/${TARGET}" + ) + + # Set output directories for each configuration + foreach( CONFIG_TYPE ${CMAKE_CONFIGURATION_TYPES} ) + set_target_properties( ${TARGET} PROPERTIES + "RUNTIME_OUTPUT_DIRECTORY_${CONFIG_TYPE}" "${CMAKE_SOURCE_DIR}/game/" + "ARCHIVE_OUTPUT_DIRECTORY_${CONFIG_TYPE}" "${CMAKE_SOURCE_DIR}/lib/${TARGET}/${CONFIG_TYPE}" + "LIBRARY_OUTPUT_DIRECTORY_${CONFIG_TYPE}" "${CMAKE_SOURCE_DIR}/lib/${TARGET}/${CONFIG_TYPE}" + "LINK_FLAGS_${CONFIG_TYPE}" "/PDB:${PDB_FULL_PATH}" + ) + endforeach() +endmacro() From f120354e9672890c2af8cf799fe6e9f25ec1e14d Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Wed, 10 May 2023 00:05:38 +0200 Subject: [PATCH 02/52] Initial port to CMake * All libraries have been isolated from each other, and build into separate artifacts. * Project has been restructured to support isolating libraries. * CCrashHandler now calls a callback on crash (setup from core/dllmain.cpp, this can be setup in any way for any project. This callback is getting called when the apllication crashes. Useful for flushing buffers before closing handles to logging files for example). * Tier0 'CoreMsgV' function now calls a callback sink, which could be set by the user (currently setup to the SDK's internal logger in core/dllmain.cpp). TODO: * Add a batch file to autogenerate all projects. * Add support for dedicated server. * Add support for client dll. Bugs: * Game crashes on the title screen after the UI script compiler has finished (root cause unknown). * Curl error messages are getting logged twice for the dedicated server due to the removal of all "DEDICATED" preprocessor directives to support isolating projects. This has to be fixed properly! --- .gitignore | 1 + CMakeLists.txt | 23 + r5dev/CMakeLists.txt | 53 + r5dev/appframework/CMakeLists.txt | 18 + .../appframework/IAppSystemGroup.cpp | 4 +- r5dev/bonesetup/bone_utils.cpp | 101 - r5dev/codecs/CMakeLists.txt | 23 + r5dev/{vstdlib => common}/callback.cpp | 8 +- r5dev/{vstdlib => common}/callback.h | 0 r5dev/{vstdlib => common}/completion.cpp | 2 +- r5dev/{vstdlib => common}/completion.h | 2 +- .../engine_launcher_api.h | 0 r5dev/common/global.cpp | 786 +++++++ r5dev/common/global.h | 232 ++ r5dev/common/opcodes.cpp | 5 +- r5dev/core/CMakeLists.txt | 84 + r5dev/core/dllmain.cpp | 34 + r5dev/core/init.cpp | 34 +- r5dev/core/logdef.cpp | 3 +- r5dev/core/logdef.h | 12 +- r5dev/core/logger.cpp | 318 +++ r5dev/core/logger.h | 8 + r5dev/core/shared_pch.h | 92 + r5dev/core/stdafx.h | 113 +- r5dev/core/termutil.cpp | 22 +- r5dev/core/termutil.h | 22 +- r5dev/datacache/CMakeLists.txt | 21 + r5dev/ebisusdk/CMakeLists.txt | 20 + r5dev/ebisusdk/EbisuSDK.h | 1 - r5dev/engine/CMakeLists.txt | 173 ++ r5dev/{ => engine}/client/cdll_engine_int.cpp | 4 +- r5dev/{ => engine}/client/cdll_engine_int.h | 0 r5dev/engine/client/clientstate.cpp | 4 +- .../client/vengineclient_impl.cpp | 4 +- .../{ => engine}/client/vengineclient_impl.h | 0 r5dev/engine/cmd.cpp | 74 + r5dev/engine/cmd.h | 41 + r5dev/engine/host_cmd.h | 2 +- r5dev/engine/host_state.cpp | 4 +- r5dev/engine/net.cpp | 14 +- r5dev/engine/sdk_dll.cpp | 1 - r5dev/{ => engine}/server/persistence.cpp | 4 +- r5dev/{ => engine}/server/persistence.h | 0 r5dev/engine/server/server.h | 2 +- r5dev/engine/server/sv_rcon.cpp | 2 +- .../server/vengineserver_impl.cpp | 2 +- .../{ => engine}/server/vengineserver_impl.h | 0 r5dev/engine/sys_dll.cpp | 173 ++ r5dev/engine/sys_dll.h | 77 +- r5dev/engine/sys_dll2.h | 2 +- r5dev/engine/sys_engine.h | 1 - r5dev/engine/sys_utils.cpp | 1 - r5dev/engine/sys_utils.h | 12 +- r5dev/filesystem/CMakeLists.txt | 23 + r5dev/filesystem/basefilesystem.cpp | 4 - r5dev/game/CMakeLists.txt | 79 + r5dev/game/server/ai_networkmanager.cpp | 1 - r5dev/gameui/CMakeLists.txt | 18 + r5dev/gameui/IBrowser.cpp | 4 +- r5dev/gameui/IConsole.cpp | 2 +- r5dev/inputsystem/CMakeLists.txt | 18 + r5dev/launcher/CMakeLists.txt | 17 + r5dev/launcher/IApplication.cpp | 162 -- r5dev/launcher/IApplication.h | 109 - r5dev/launcher/prx.cpp | 4 - r5dev/localize/CMakeLists.txt | 14 + r5dev/materialsystem/CMakeLists.txt | 18 + r5dev/mathlib/CMakeLists.txt | 65 + r5dev/mathlib/IceKey.cpp | 1 - r5dev/mathlib/adler32.cpp | 3 +- r5dev/mathlib/almostequal.cpp | 3 +- r5dev/mathlib/color_conversion.cpp | 3 - r5dev/mathlib/crc32.cpp | 1 - r5dev/mathlib/fbits.cpp | 1 - r5dev/mathlib/halton.cpp | 3 +- r5dev/mathlib/mathlib_base.cpp | 4 +- r5dev/mathlib/mathlib_pch.h | 30 + r5dev/mathlib/powsse.cpp | 3 +- r5dev/mathlib/randsse.cpp | 4 +- r5dev/mathlib/sha1.cpp | 1 - r5dev/mathlib/sha256.cpp | 1 - r5dev/mathlib/sseconst.cpp | 3 +- r5dev/mathlib/ssenoise.cpp | 2 - r5dev/mathlib/transform.cpp | 1 - r5dev/mathlib/vmatrix.cpp | 5 +- r5dev/naveditor/CMakeLists.txt | 110 + r5dev/netconsole/CMakeLists.txt | 26 + r5dev/netconsole/netconsole.cpp | 3 +- r5dev/networksystem/CMakeLists.txt | 20 + r5dev/networksystem/listmanager.cpp | 8 +- r5dev/networksystem/pylon.cpp | 8 +- r5dev/networksystem/pylon.h | 2 - r5dev/pluginsdk/CMakeLists.txt | 26 + r5dev/pluginsdk/ifactory.h | 3 +- r5dev/pluginsystem/CMakeLists.txt | 17 + r5dev/protoc/CMakeLists.txt | 21 + r5dev/{ => public}/datacache/idatacache.h | 0 r5dev/{ => public}/datacache/imdlcache.h | 0 r5dev/{ => public}/ebisusdk/EbisuTypes.h | 0 r5dev/public/edict.h | 3 - r5dev/{ => public}/inputsystem/ButtonCode.h | 0 r5dev/public/networkvar.cpp | 2 +- r5dev/public/tier0/basetypes.h | 5 + r5dev/public/{tier1 => tier0}/binstream.h | 0 r5dev/public/tier0/crashhandler.h | 8 +- r5dev/public/tier0/dbg.h | 11 +- r5dev/public/tier0/memalloc.h | 2 + r5dev/public/tier0/threadtools.h | 3 + r5dev/public/tier0/tier0_iface.h | 39 + r5dev/public/{tier1 => tier0}/utility.h | 1 + r5dev/public/tier1/cmd.h | 33 +- r5dev/public/tier1/cvar.h | 230 -- r5dev/public/tier1/utlrbtree.h | 11 + r5dev/public/tier2/curlutils.h | 4 + r5dev/rtech/CMakeLists.txt | 26 + r5dev/sdklauncher/CMakeLists.txt | 35 + r5dev/sdklauncher/sdklauncher.cpp | 2 +- r5dev/thirdparty/cppnet/CMakeLists.txt | 331 +++ r5dev/thirdparty/curl/CMakeLists.txt | 375 +++- r5dev/thirdparty/detours/CMakeLists.txt | 19 + r5dev/thirdparty/fastlz/CMakeLists.txt | 13 + r5dev/thirdparty/imgui/CMakeLists.txt | 41 + r5dev/thirdparty/lzham/CMakeLists.txt | 70 + r5dev/thirdparty/protobuf/CMakeLists.txt | 107 + r5dev/thirdparty/recast/CMakeLists.txt | 142 ++ r5dev/thirdparty/sdl/CMakeLists.txt | 561 +++++ r5dev/thirdparty/spdlog/CMakeLists.txt | 140 ++ r5dev/tier0/CMakeLists.txt | 70 + r5dev/{tier1 => tier0}/binstream.cpp | 4 +- r5dev/tier0/commandline.cpp | 2 +- r5dev/tier0/cpu.cpp | 2 +- r5dev/tier0/cputopology.cpp | 2 +- r5dev/tier0/crashhandler.cpp | 21 +- r5dev/tier0/dbg.cpp | 305 +-- r5dev/tier0/fasttimer.cpp | 2 +- r5dev/tier0/frametask.cpp | 2 +- r5dev/tier0/jobthread.cpp | 2 +- r5dev/tier0/memaddr.cpp | 3 +- r5dev/tier0/module.cpp | 3 +- r5dev/tier0/platform.cpp | 2 +- r5dev/tier0/sigcache.cpp | 4 +- r5dev/tier0/threadtools.cpp | 2 +- r5dev/tier0/tier0_iface.cpp | 34 + r5dev/tier0/tier0_pch.h | 11 + r5dev/{tier1 => tier0}/utility.cpp | 19 +- r5dev/tier0/vtable.cpp | 2 +- r5dev/tier1/CMakeLists.txt | 61 + r5dev/tier1/NetAdr.cpp | 2 +- r5dev/tier1/NetKey.cpp | 2 +- r5dev/tier1/bitbuf.cpp | 2 +- r5dev/tier1/characterset.cpp | 2 +- r5dev/tier1/cmd.cpp | 299 +-- r5dev/tier1/cvar.cpp | 557 +---- r5dev/tier1/generichash.cpp | 2 +- r5dev/tier1/lzss.cpp | 2 +- r5dev/tier1/memstack.cpp | 8 +- r5dev/tier1/splitstring.cpp | 2 +- r5dev/tier1/stringpool.cpp | 2 +- r5dev/tier1/strtools.cpp | 2 +- r5dev/tier1/utlbuffer.cpp | 2 +- r5dev/tier1/utlstring.cpp | 2 +- r5dev/tier2/CMakeLists.txt | 27 + r5dev/tier2/curlutils.cpp | 7 +- r5dev/tier2/fileutils.cpp | 5 +- r5dev/tier2/meshutils.cpp | 4 +- r5dev/tier2/renderutils.cpp | 4 +- r5dev/tier2/socketcreator.cpp | 1 - r5dev/vgui/CMakeLists.txt | 19 + r5dev/vguimatsurface/CMakeLists.txt | 14 + r5dev/vguimatsurface/MatSystemSurface.h | 1 - r5dev/vpc/CMakeLists.txt | 25 + r5dev/vphysics/CMakeLists.txt | 21 + r5dev/vphysics/QHull.cpp | 1 - r5dev/vpklib/CMakeLists.txt | 18 + r5dev/vproj/clientsdk.vcxproj | 775 ------- r5dev/vproj/clientsdk.vcxproj.filters | 1792 --------------- r5dev/vproj/dedicated.vcxproj | 694 ------ r5dev/vproj/dedicated.vcxproj.filters | 1584 ------------- r5dev/vproj/gamesdk.vcxproj | 831 ------- r5dev/vproj/gamesdk.vcxproj.filters | 1972 ----------------- r5dev/vproj/libcppkore.vcxproj | 457 ---- r5dev/vproj/libcppkore.vcxproj.filters | 855 ------- r5dev/vproj/libcurl.vcxproj | 561 ----- r5dev/vproj/libcurl.vcxproj.filters | 565 ----- r5dev/vproj/libdebugutils.vcxproj | 177 -- r5dev/vproj/libdebugutils.vcxproj.filters | 39 - r5dev/vproj/libdetour.vcxproj | 185 -- r5dev/vproj/libdetour.vcxproj.filters | 63 - r5dev/vproj/libdetourcrowd.vcxproj | 183 -- r5dev/vproj/libdetourcrowd.vcxproj.filters | 57 - r5dev/vproj/libdetours.vcxproj | 348 --- r5dev/vproj/libdetours.vcxproj.filters | 28 - r5dev/vproj/libdetourtilecache.vcxproj | 173 -- .../vproj/libdetourtilecache.vcxproj.filters | 27 - r5dev/vproj/libimgui.vcxproj | 333 --- r5dev/vproj/libimgui.vcxproj.filters | 59 - r5dev/vproj/liblzham.vcxproj | 501 ----- r5dev/vproj/liblzham.vcxproj.filters | 141 -- r5dev/vproj/libprotobuf.vcxproj | 398 ---- r5dev/vproj/libprotobuf.vcxproj.filters | 291 --- r5dev/vproj/librecast.vcxproj | 183 -- r5dev/vproj/librecast.vcxproj.filters | 57 - r5dev/vproj/libsdl.vcxproj | 803 ------- r5dev/vproj/libsdl.vcxproj.filters | 1330 ----------- r5dev/vproj/libspdlog.vcxproj | 421 ---- r5dev/vproj/libspdlog.vcxproj.filters | 318 --- r5dev/vproj/naveditor.vcxproj | 257 --- r5dev/vproj/naveditor.vcxproj.filters | 189 -- r5dev/vproj/netconsole.vcxproj | 450 ---- r5dev/vproj/netconsole.vcxproj.filters | 139 -- r5dev/vproj/pluginsdk.vcxproj | 211 -- r5dev/vproj/pluginsdk.vcxproj.filters | 66 - r5dev/vproj/sdklauncher.vcxproj | 243 -- r5dev/vproj/sdklauncher.vcxproj.filters | 101 - r5dev/vscript/CMakeLists.txt | 31 + .../languages/squirrel_re/squirrel/sqvm.cpp | 4 +- .../languages/squirrel_re/vsquirrel.cpp | 3 +- r5dev/vstdlib/CMakeLists.txt | 23 + r5dev/vstdlib/autocompletefilelist.cpp | 2 +- r5dev/windows/console.cpp | 2 +- r5sdk.sln | 357 --- 221 files changed, 5144 insertions(+), 20425 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 r5dev/CMakeLists.txt create mode 100644 r5dev/appframework/CMakeLists.txt rename r5dev/{public => }/appframework/IAppSystemGroup.cpp (90%) delete mode 100644 r5dev/bonesetup/bone_utils.cpp create mode 100644 r5dev/codecs/CMakeLists.txt rename r5dev/{vstdlib => common}/callback.cpp (99%) rename r5dev/{vstdlib => common}/callback.h (100%) rename r5dev/{vstdlib => common}/completion.cpp (99%) rename r5dev/{vstdlib => common}/completion.h (98%) rename r5dev/{appframework => common}/engine_launcher_api.h (100%) create mode 100644 r5dev/common/global.cpp create mode 100644 r5dev/common/global.h create mode 100644 r5dev/core/CMakeLists.txt create mode 100644 r5dev/core/logger.cpp create mode 100644 r5dev/core/logger.h create mode 100644 r5dev/core/shared_pch.h create mode 100644 r5dev/datacache/CMakeLists.txt create mode 100644 r5dev/ebisusdk/CMakeLists.txt create mode 100644 r5dev/engine/CMakeLists.txt rename r5dev/{ => engine}/client/cdll_engine_int.cpp (95%) rename r5dev/{ => engine}/client/cdll_engine_int.h (100%) rename r5dev/{ => engine}/client/vengineclient_impl.cpp (96%) rename r5dev/{ => engine}/client/vengineclient_impl.h (100%) create mode 100644 r5dev/engine/cmd.cpp create mode 100644 r5dev/engine/cmd.h rename r5dev/{ => engine}/server/persistence.cpp (88%) rename r5dev/{ => engine}/server/persistence.h (100%) rename r5dev/{ => engine}/server/vengineserver_impl.cpp (97%) rename r5dev/{ => engine}/server/vengineserver_impl.h (100%) create mode 100644 r5dev/filesystem/CMakeLists.txt create mode 100644 r5dev/game/CMakeLists.txt create mode 100644 r5dev/gameui/CMakeLists.txt create mode 100644 r5dev/inputsystem/CMakeLists.txt create mode 100644 r5dev/launcher/CMakeLists.txt delete mode 100644 r5dev/launcher/IApplication.cpp delete mode 100644 r5dev/launcher/IApplication.h create mode 100644 r5dev/localize/CMakeLists.txt create mode 100644 r5dev/materialsystem/CMakeLists.txt create mode 100644 r5dev/mathlib/CMakeLists.txt create mode 100644 r5dev/mathlib/mathlib_pch.h create mode 100644 r5dev/naveditor/CMakeLists.txt create mode 100644 r5dev/netconsole/CMakeLists.txt create mode 100644 r5dev/networksystem/CMakeLists.txt create mode 100644 r5dev/pluginsdk/CMakeLists.txt create mode 100644 r5dev/pluginsystem/CMakeLists.txt create mode 100644 r5dev/protoc/CMakeLists.txt rename r5dev/{ => public}/datacache/idatacache.h (100%) rename r5dev/{ => public}/datacache/imdlcache.h (100%) rename r5dev/{ => public}/ebisusdk/EbisuTypes.h (100%) rename r5dev/{ => public}/inputsystem/ButtonCode.h (100%) rename r5dev/public/{tier1 => tier0}/binstream.h (100%) create mode 100644 r5dev/public/tier0/tier0_iface.h rename r5dev/public/{tier1 => tier0}/utility.h (99%) create mode 100644 r5dev/rtech/CMakeLists.txt create mode 100644 r5dev/sdklauncher/CMakeLists.txt create mode 100644 r5dev/thirdparty/cppnet/CMakeLists.txt create mode 100644 r5dev/thirdparty/detours/CMakeLists.txt create mode 100644 r5dev/thirdparty/fastlz/CMakeLists.txt create mode 100644 r5dev/thirdparty/imgui/CMakeLists.txt create mode 100644 r5dev/thirdparty/lzham/CMakeLists.txt create mode 100644 r5dev/thirdparty/protobuf/CMakeLists.txt create mode 100644 r5dev/thirdparty/recast/CMakeLists.txt create mode 100644 r5dev/thirdparty/sdl/CMakeLists.txt create mode 100644 r5dev/thirdparty/spdlog/CMakeLists.txt create mode 100644 r5dev/tier0/CMakeLists.txt rename r5dev/{tier1 => tier0}/binstream.cpp (99%) create mode 100644 r5dev/tier0/tier0_iface.cpp create mode 100644 r5dev/tier0/tier0_pch.h rename r5dev/{tier1 => tier0}/utility.cpp (98%) create mode 100644 r5dev/tier1/CMakeLists.txt create mode 100644 r5dev/tier2/CMakeLists.txt create mode 100644 r5dev/vgui/CMakeLists.txt create mode 100644 r5dev/vguimatsurface/CMakeLists.txt create mode 100644 r5dev/vpc/CMakeLists.txt create mode 100644 r5dev/vphysics/CMakeLists.txt create mode 100644 r5dev/vpklib/CMakeLists.txt delete mode 100644 r5dev/vproj/clientsdk.vcxproj delete mode 100644 r5dev/vproj/clientsdk.vcxproj.filters delete mode 100644 r5dev/vproj/dedicated.vcxproj delete mode 100644 r5dev/vproj/dedicated.vcxproj.filters delete mode 100644 r5dev/vproj/gamesdk.vcxproj delete mode 100644 r5dev/vproj/gamesdk.vcxproj.filters delete mode 100644 r5dev/vproj/libcppkore.vcxproj delete mode 100644 r5dev/vproj/libcppkore.vcxproj.filters delete mode 100644 r5dev/vproj/libcurl.vcxproj delete mode 100644 r5dev/vproj/libcurl.vcxproj.filters delete mode 100644 r5dev/vproj/libdebugutils.vcxproj delete mode 100644 r5dev/vproj/libdebugutils.vcxproj.filters delete mode 100644 r5dev/vproj/libdetour.vcxproj delete mode 100644 r5dev/vproj/libdetour.vcxproj.filters delete mode 100644 r5dev/vproj/libdetourcrowd.vcxproj delete mode 100644 r5dev/vproj/libdetourcrowd.vcxproj.filters delete mode 100644 r5dev/vproj/libdetours.vcxproj delete mode 100644 r5dev/vproj/libdetours.vcxproj.filters delete mode 100644 r5dev/vproj/libdetourtilecache.vcxproj delete mode 100644 r5dev/vproj/libdetourtilecache.vcxproj.filters delete mode 100644 r5dev/vproj/libimgui.vcxproj delete mode 100644 r5dev/vproj/libimgui.vcxproj.filters delete mode 100644 r5dev/vproj/liblzham.vcxproj delete mode 100644 r5dev/vproj/liblzham.vcxproj.filters delete mode 100644 r5dev/vproj/libprotobuf.vcxproj delete mode 100644 r5dev/vproj/libprotobuf.vcxproj.filters delete mode 100644 r5dev/vproj/librecast.vcxproj delete mode 100644 r5dev/vproj/librecast.vcxproj.filters delete mode 100644 r5dev/vproj/libsdl.vcxproj delete mode 100644 r5dev/vproj/libsdl.vcxproj.filters delete mode 100644 r5dev/vproj/libspdlog.vcxproj delete mode 100644 r5dev/vproj/libspdlog.vcxproj.filters delete mode 100644 r5dev/vproj/naveditor.vcxproj delete mode 100644 r5dev/vproj/naveditor.vcxproj.filters delete mode 100644 r5dev/vproj/netconsole.vcxproj delete mode 100644 r5dev/vproj/netconsole.vcxproj.filters delete mode 100644 r5dev/vproj/pluginsdk.vcxproj delete mode 100644 r5dev/vproj/pluginsdk.vcxproj.filters delete mode 100644 r5dev/vproj/sdklauncher.vcxproj delete mode 100644 r5dev/vproj/sdklauncher.vcxproj.filters create mode 100644 r5dev/vscript/CMakeLists.txt create mode 100644 r5dev/vstdlib/CMakeLists.txt delete mode 100644 r5sdk.sln diff --git a/.gitignore b/.gitignore index 8227eacb..211b039b 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ bld/ [Ll]og/ [Ll]ogs/ /[Gg]ame/ +build_intermediate/ # Visual Studio 2015/2017 cache/options directory .vs/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..c757d2f5 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required( VERSION 3.16 ) +project( r5sdk ) + +include( "r5dev/cmake/Configure.cmake" ) +include( "r5dev/cmake/Macros.cmake" ) +include( "r5dev/cmake/Options.cmake" ) + +set( CMAKE_CXX_STANDARD 17 ) +set( CMAKE_CXX_STANDARD_REQUIRED True ) + +set( ENGINE_SOURCE_DIR ${CMAKE_SOURCE_DIR}/r5dev ) +set( GLOBAL_PCH ${ENGINE_SOURCE_DIR}/core/stdafx.h ) # Global precompiled header shared among all libraries + +define_compiler_variables() +setup_build_configurations() +apply_project_settings() + +include_directories( ${ENGINE_SOURCE_DIR} ) +include_directories( ${ENGINE_SOURCE_DIR}/public ) +include_directories( ${ENGINE_SOURCE_DIR}/thirdparty ) + +# Include the subdirectories that contain the individual projects +add_subdirectory( ${ENGINE_SOURCE_DIR} ) diff --git a/r5dev/CMakeLists.txt b/r5dev/CMakeLists.txt new file mode 100644 index 00000000..82150530 --- /dev/null +++ b/r5dev/CMakeLists.txt @@ -0,0 +1,53 @@ +cmake_minimum_required( VERSION 3.16 ) +project( sdk ) + +add_subdirectory( vpc ) # Must be the first as this creates the shared PCH! +add_subdirectory( tier0 ) +add_subdirectory( tier1 ) +add_subdirectory( tier2 ) +add_subdirectory( vpklib ) +add_subdirectory( vscript ) +add_subdirectory( vstdlib ) +add_subdirectory( vphysics ) +add_subdirectory( vguimatsurface ) +add_subdirectory( vgui ) + +add_subdirectory( thirdparty/detours ) +add_subdirectory( thirdparty/cppnet ) +add_subdirectory( thirdparty/lzham ) +add_subdirectory( thirdparty/fastlz ) +add_subdirectory( thirdparty/imgui ) +add_subdirectory( thirdparty/curl ) +add_subdirectory( thirdparty/protobuf ) +add_subdirectory( thirdparty/spdlog ) +add_subdirectory( thirdparty/sdl ) +add_subdirectory( thirdparty/recast ) + +add_subdirectory( sdklauncher ) +add_subdirectory( rtech ) +add_subdirectory( protoc ) + + +add_subdirectory( networksystem ) +add_subdirectory( pluginsystem ) +add_subdirectory( pluginsdk ) + +add_subdirectory( mathlib ) +add_subdirectory( netconsole ) +add_subdirectory( naveditor ) + + +add_subdirectory( materialsystem ) + +add_subdirectory( localize ) +add_subdirectory( inputsystem ) +add_subdirectory( game ) + +add_subdirectory( datacache ) +add_subdirectory( filesystem ) +add_subdirectory( ebisusdk ) +add_subdirectory( codecs ) +add_subdirectory( engine ) + +add_subdirectory( core ) +add_subdirectory( appframework ) diff --git a/r5dev/appframework/CMakeLists.txt b/r5dev/appframework/CMakeLists.txt new file mode 100644 index 00000000..a2e34bae --- /dev/null +++ b/r5dev/appframework/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( appframework ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Private" + "IAppSystemGroup.cpp" +) + +add_sources( SOURCE_GROUP "Public" + "${ENGINE_SOURCE_DIR}/public/appframework/IAppSystem.h" + "${ENGINE_SOURCE_DIR}/public/appframework/IAppSystemGroup.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/public/appframework/IAppSystemGroup.cpp b/r5dev/appframework/IAppSystemGroup.cpp similarity index 90% rename from r5dev/public/appframework/IAppSystemGroup.cpp rename to r5dev/appframework/IAppSystemGroup.cpp index 6699985f..d5b3e1df 100644 --- a/r5dev/public/appframework/IAppSystemGroup.cpp +++ b/r5dev/appframework/IAppSystemGroup.cpp @@ -1,4 +1,4 @@ -//===== Copyright � 1996-2005, Valve Corporation, All rights reserved. ======// +//===== Copyright � 1996-2005, Valve Corporation, All rights reserved. ======// // // Purpose: Defines a group of app systems that all have the same lifetime // that need to be connected/initialized, etc. in a well-defined order @@ -7,7 +7,7 @@ // $NoKeywords: $ //===========================================================================// #include "core/stdafx.h" -#include "IAppSystemGroup.h" +#include "appframework/IAppSystemGroup.h" //----------------------------------------------------------------------------- // Purpose: Initialize plugin system diff --git a/r5dev/bonesetup/bone_utils.cpp b/r5dev/bonesetup/bone_utils.cpp deleted file mode 100644 index 6154b971..00000000 --- a/r5dev/bonesetup/bone_utils.cpp +++ /dev/null @@ -1,101 +0,0 @@ -//===== Copyright � 1996-2005, Valve Corporation, All rights reserved. ======// -// -// Purpose: -// -// $NoKeywords: $ -// -//===========================================================================// - -#include "core/stdafx.h" -#include "mathlib/mathlib.h" - -//----------------------------------------------------------------------------- -// Purpose: qt = ( s * p ) * q -//----------------------------------------------------------------------------- -void QuaternionSM(float s, const Quaternion& p, const Quaternion& q, Quaternion& qt) -{ - Quaternion p1, q1; - - QuaternionScale(p, s, p1); - QuaternionMult(p1, q, q1); - QuaternionNormalize(q1); - qt[0] = q1[0]; - qt[1] = q1[1]; - qt[2] = q1[2]; - qt[3] = q1[3]; -} - -#if ALLOW_SIMD_QUATERNION_MATH -FORCEINLINE fltx4 QuaternionSMSIMD(const fltx4& s, const fltx4& p, const fltx4& q) -{ - fltx4 p1, q1, result; - p1 = QuaternionScaleSIMD(p, s); - q1 = QuaternionMultSIMD(p1, q); - result = QuaternionNormalizeSIMD(q1); - return result; -} - -FORCEINLINE fltx4 QuaternionSMSIMD(float s, const fltx4& p, const fltx4& q) -{ - return QuaternionSMSIMD(ReplicateX4(s), p, q); -} -#endif - -//----------------------------------------------------------------------------- -// Purpose: qt = p * ( s * q ) -//----------------------------------------------------------------------------- -void QuaternionMA(const Quaternion& p, float s, const Quaternion& q, Quaternion& qt) -{ - Quaternion p1, q1; - - QuaternionScale(q, s, q1); - QuaternionMult(p, q1, p1); - QuaternionNormalize(p1); - qt[0] = p1[0]; - qt[1] = p1[1]; - qt[2] = p1[2]; - qt[3] = p1[3]; -} - -#if ALLOW_SIMD_QUATERNION_MATH - -FORCEINLINE fltx4 QuaternionMASIMD(const fltx4& p, const fltx4& s, const fltx4& q) -{ - fltx4 p1, q1, result; - q1 = QuaternionScaleSIMD(q, s); - p1 = QuaternionMultSIMD(p, q1); - result = QuaternionNormalizeSIMD(p1); - return result; -} - -FORCEINLINE fltx4 QuaternionMASIMD(const fltx4& p, float s, const fltx4& q) -{ - return QuaternionMASIMD(p, ReplicateX4(s), q); -} -#endif - - -//----------------------------------------------------------------------------- -// Purpose: qt = p + s * q -//----------------------------------------------------------------------------- -void QuaternionAccumulate(const Quaternion& p, float s, const Quaternion& q, Quaternion& qt) -{ - Quaternion q2; - QuaternionAlign(p, q, q2); - - qt[0] = p[0] + s * q2[0]; - qt[1] = p[1] + s * q2[1]; - qt[2] = p[2] + s * q2[2]; - qt[3] = p[3] + s * q2[3]; -} - -#if ALLOW_SIMD_QUATERNION_MATH -FORCEINLINE fltx4 QuaternionAccumulateSIMD(const fltx4& p, float s, const fltx4& q) -{ - fltx4 q2, s4, result; - q2 = QuaternionAlignSIMD(p, q); - s4 = ReplicateX4(s); - result = MaddSIMD(s4, q2, p); - return result; -} -#endif diff --git a/r5dev/codecs/CMakeLists.txt b/r5dev/codecs/CMakeLists.txt new file mode 100644 index 00000000..97e147b1 --- /dev/null +++ b/r5dev/codecs/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( codecs ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Bink" + "bink/bink_impl.cpp" + "bink/bink_impl.h" +) + +add_sources( SOURCE_GROUP "Miles" + "miles/miles_impl.cpp" + "miles/miles_impl.h" + "miles/miles_types.h" # TODO[ AMOS ]: move to public! + "miles/radshal_wasapi.h" +) + +end_sources() + +target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/vstdlib/callback.cpp b/r5dev/common/callback.cpp similarity index 99% rename from r5dev/vstdlib/callback.cpp rename to r5dev/common/callback.cpp index 8e2476b9..2cf30be9 100644 --- a/r5dev/vstdlib/callback.cpp +++ b/r5dev/common/callback.cpp @@ -14,6 +14,7 @@ #endif // !CLIENT_DLL #ifndef DEDICATED #include "engine/client/cl_rcon.h" +#include "engine/client/cdll_engine_int.h" #endif // !DEDICATED #include "engine/client/client.h" #include "engine/net.h" @@ -23,9 +24,6 @@ #ifndef CLIENT_DLL #include "engine/server/server.h" #endif // !CLIENT_DLL -#ifndef DEDICATED -#include "client/cdll_engine_int.h" -#endif // !DEDICATED #include "rtech/rtech_game.h" #include "rtech/rtech_utils.h" #include "filesystem/basefilesystem.h" @@ -44,8 +42,8 @@ #include "public/worldsize.h" #include "mathlib/crc32.h" #include "mathlib/mathlib.h" -#include "vstdlib/completion.h" -#include "vstdlib/callback.h" +#include "common/completion.h" +#include "common/callback.h" #ifndef DEDICATED #include "materialsystem/cmaterialglue.h" #endif // !DEDICATED diff --git a/r5dev/vstdlib/callback.h b/r5dev/common/callback.h similarity index 100% rename from r5dev/vstdlib/callback.h rename to r5dev/common/callback.h diff --git a/r5dev/vstdlib/completion.cpp b/r5dev/common/completion.cpp similarity index 99% rename from r5dev/vstdlib/completion.cpp rename to r5dev/common/completion.cpp index 623b8c66..a94918b9 100644 --- a/r5dev/vstdlib/completion.cpp +++ b/r5dev/common/completion.cpp @@ -8,7 +8,7 @@ #include "engine/cmodel_bsp.h" #include "tier1/strtools.h" #include "completion.h" -#include "autocompletefilelist.h" +#include "vstdlib/autocompletefilelist.h" //----------------------------------------------------------------------------- // Purpose: diff --git a/r5dev/vstdlib/completion.h b/r5dev/common/completion.h similarity index 98% rename from r5dev/vstdlib/completion.h rename to r5dev/common/completion.h index 2bc886d2..a762f81a 100644 --- a/r5dev/vstdlib/completion.h +++ b/r5dev/common/completion.h @@ -1,6 +1,6 @@ #pragma once #include "public/iconvar.h" -#include "autocompletefilelist.h" +#include "vstdlib/autocompletefilelist.h" int Host_SSMap_f_CompletionFunc(char const* partial, char commands[COMMAND_COMPLETION_MAXITEMS][COMMAND_COMPLETION_ITEM_LENGTH]); int Host_Map_f_CompletionFunc(char const* partial, char commands[COMMAND_COMPLETION_MAXITEMS][COMMAND_COMPLETION_ITEM_LENGTH]); diff --git a/r5dev/appframework/engine_launcher_api.h b/r5dev/common/engine_launcher_api.h similarity index 100% rename from r5dev/appframework/engine_launcher_api.h rename to r5dev/common/engine_launcher_api.h diff --git a/r5dev/common/global.cpp b/r5dev/common/global.cpp new file mode 100644 index 00000000..70394de1 --- /dev/null +++ b/r5dev/common/global.cpp @@ -0,0 +1,786 @@ + +#include "core/stdafx.h" +#include "const.h" +#include "tier0/commandline.h" +#include "tier1/cvar.h" +#include "tier1/cmd.h" +#include "tier1/NetAdr.h" +#include "tier2/curlutils.h" // For initializing the curl cvars. +#include "completion.h" +#include "callback.h" +#include "global.h" + +//----------------------------------------------------------------------------- +// ENGINE | +ConVar* sdk_fixedframe_tickinterval = nullptr; +ConVar* single_frame_shutdown_for_reload = nullptr; +ConVar* old_gather_props = nullptr; + +ConVar* enable_debug_overlays = nullptr; +ConVar* debug_draw_box_depth_test = nullptr; + +ConVar* developer = nullptr; +ConVar* fps_max = nullptr; + +ConVar* staticProp_defaultBuildFrustum = nullptr; +ConVar* staticProp_no_fade_scalar = nullptr; +ConVar* staticProp_gather_size_weight = nullptr; + +ConVar* model_defaultFadeDistScale = nullptr; +ConVar* model_defaultFadeDistMin = nullptr; + +ConVar* ip_cvar = nullptr; +ConVar* hostname = nullptr; +ConVar* hostdesc = nullptr; +ConVar* hostip = nullptr; +ConVar* hostport = nullptr; +ConVar* host_hasIrreversibleShutdown = nullptr; +ConVar* mp_gamemode = nullptr; + +ConVar* rcon_address = nullptr; +ConVar* rcon_password = nullptr; + +ConVar* r_debug_overlay_nodecay = nullptr; +ConVar* r_debug_overlay_invisible = nullptr; +ConVar* r_debug_overlay_wireframe = nullptr; +ConVar* r_debug_draw_depth_test = nullptr; +ConVar* r_drawWorldMeshes = nullptr; +ConVar* r_drawWorldMeshesDepthOnly = nullptr; +ConVar* r_drawWorldMeshesDepthAtTheEnd = nullptr; + +#ifndef DEDICATED +ConVar* r_visualizetraces = nullptr; +ConVar* r_visualizetraces_duration = nullptr; +#endif // !DEDICATED + +ConVar* stream_overlay = nullptr; +ConVar* stream_overlay_mode = nullptr; +//----------------------------------------------------------------------------- +// SERVER | +#ifndef CLIENT_DLL +ConVar* ai_ainDumpOnLoad = nullptr; +ConVar* ai_ainDebugConnect = nullptr; +ConVar* ai_script_nodes_draw = nullptr; +ConVar* ai_script_nodes_draw_range = nullptr; +ConVar* ai_script_nodes_draw_nearest = nullptr; + +ConVar* navmesh_always_reachable = nullptr; +ConVar* navmesh_debug_type = nullptr; +ConVar* navmesh_debug_tile_range = nullptr; +ConVar* navmesh_debug_camera_range = nullptr; +#ifndef DEDICATED +ConVar* navmesh_draw_bvtree = nullptr; +ConVar* navmesh_draw_portal = nullptr; +ConVar* navmesh_draw_polys = nullptr; +ConVar* navmesh_draw_poly_bounds = nullptr; +ConVar* navmesh_draw_poly_bounds_inner = nullptr; +#endif // !DEDICATED + +ConVar* sv_showconnecting = nullptr; +ConVar* sv_globalBanlist = nullptr; +ConVar* sv_pylonVisibility = nullptr; +ConVar* sv_pylonRefreshRate = nullptr; +ConVar* sv_banlistRefreshRate = nullptr; +ConVar* sv_statusRefreshRate = nullptr; +ConVar* sv_forceChatToTeamOnly = nullptr; + +ConVar* sv_updaterate_mp = nullptr; +ConVar* sv_updaterate_sp = nullptr; +ConVar* sv_autoReloadRate = nullptr; + +ConVar* sv_simulateBots = nullptr; +ConVar* sv_showhitboxes = nullptr; +ConVar* sv_stats = nullptr; + +ConVar* sv_quota_stringCmdsPerSecond = nullptr; + +ConVar* sv_validatePersonaName = nullptr; +ConVar* sv_minPersonaNameLength = nullptr; +ConVar* sv_maxPersonaNameLength = nullptr; + +ConVar* sv_voiceEcho = nullptr; +ConVar* sv_voiceenable = nullptr; +ConVar* sv_alltalk = nullptr; + +//#ifdef DEDICATED +ConVar* sv_rcon_debug = nullptr; +ConVar* sv_rcon_sendlogs = nullptr; +ConVar* sv_rcon_banpenalty = nullptr; // TODO +ConVar* sv_rcon_maxfailures = nullptr; +ConVar* sv_rcon_maxignores = nullptr; +ConVar* sv_rcon_maxsockets = nullptr; +ConVar* sv_rcon_maxconnections = nullptr; +ConVar* sv_rcon_maxpacketsize = nullptr; +ConVar* sv_rcon_whitelist_address = nullptr; +//#endif // DEDICATED +#endif // !CLIENT_DLL +ConVar* sv_cheats = nullptr; +ConVar* sv_visualizetraces = nullptr; +ConVar* sv_visualizetraces_duration = nullptr; +#if !defined (GAMEDLL_S0) && !defined (GAMEDLL_S1) +ConVar* bhit_enable = nullptr; +ConVar* bhit_depth_test = nullptr; +ConVar* bhit_abs_origin = nullptr; +#endif // !GAMEDLL_S0 && !GAMEDLL_S1 +//----------------------------------------------------------------------------- +// CLIENT | +#ifndef DEDICATED +ConVar* cl_rcon_request_sendlogs = nullptr; +ConVar* cl_quota_stringCmdsPerSecond = nullptr; + +ConVar* cl_notify_invert_x = nullptr; +ConVar* cl_notify_invert_y = nullptr; +ConVar* cl_notify_offset_x = nullptr; +ConVar* cl_notify_offset_y = nullptr; + +ConVar* cl_showsimstats = nullptr; +ConVar* cl_simstats_invert_x = nullptr; +ConVar* cl_simstats_invert_y = nullptr; +ConVar* cl_simstats_offset_x = nullptr; +ConVar* cl_simstats_offset_y = nullptr; + +ConVar* cl_showgpustats = nullptr; +ConVar* cl_gpustats_invert_x = nullptr; +ConVar* cl_gpustats_invert_y = nullptr; +ConVar* cl_gpustats_offset_x = nullptr; +ConVar* cl_gpustats_offset_y = nullptr; + +ConVar* cl_showmaterialinfo = nullptr; +ConVar* cl_materialinfo_offset_x = nullptr; +ConVar* cl_materialinfo_offset_y = nullptr; + +ConVar* cl_threaded_bone_setup = nullptr; + +ConVar* con_drawnotify = nullptr; +ConVar* con_notifylines = nullptr; +ConVar* con_notifytime = nullptr; + +ConVar* con_notify_invert_x = nullptr; +ConVar* con_notify_invert_y = nullptr; +ConVar* con_notify_offset_x = nullptr; +ConVar* con_notify_offset_y = nullptr; + +ConVar* con_notify_script_server_clr = nullptr; +ConVar* con_notify_script_client_clr = nullptr; +ConVar* con_notify_script_ui_clr = nullptr; +ConVar* con_notify_native_server_clr = nullptr; +ConVar* con_notify_native_client_clr = nullptr; +ConVar* con_notify_native_ui_clr = nullptr; +ConVar* con_notify_native_engine_clr = nullptr; +ConVar* con_notify_native_fs_clr = nullptr; +ConVar* con_notify_native_rtech_clr = nullptr; +ConVar* con_notify_native_ms_clr = nullptr; +ConVar* con_notify_native_audio_clr = nullptr; +ConVar* con_notify_native_video_clr = nullptr; +ConVar* con_notify_netcon_clr = nullptr; +ConVar* con_notify_common_clr = nullptr; +ConVar* con_notify_warning_clr = nullptr; +ConVar* con_notify_error_clr = nullptr; + +ConVar* con_max_lines = nullptr; +ConVar* con_max_history = nullptr; +ConVar* con_suggestion_limit = nullptr; +ConVar* con_suggestion_showhelptext = nullptr; +ConVar* con_suggestion_showflags = nullptr; +ConVar* con_suggestion_flags_realtime = nullptr; + +ConVar* origin_disconnectWhenOffline = nullptr; + +ConVar* serverbrowser_hideEmptyServers = nullptr; +ConVar* serverbrowser_mapFilter = nullptr; +ConVar* serverbrowser_gamemodeFilter = nullptr; +#endif // !DEDICATED +//----------------------------------------------------------------------------- +// FILESYSTEM | +ConVar* fs_showWarnings = nullptr; +ConVar* fs_showAllReads = nullptr; +ConVar* fs_packedstore_entryblock_stats = nullptr; +ConVar* fs_packedstore_workspace = nullptr; +ConVar* fs_packedstore_compression_level = nullptr; +ConVar* fs_packedstore_max_helper_threads = nullptr; +//----------------------------------------------------------------------------- +// MATERIALSYSTEM | +#ifndef DEDICATED +ConVar* mat_alwaysComplain = nullptr; +#endif // !DEDICATED +//----------------------------------------------------------------------------- +// SQUIRREL | +ConVar* script_show_output = nullptr; +ConVar* script_show_warning = nullptr; +//----------------------------------------------------------------------------- +// NETCHANNEL | +ConVar* net_tracePayload = nullptr; +ConVar* net_encryptionEnable = nullptr; +ConVar* net_useRandomKey = nullptr; +ConVar* net_usesocketsforloopback = nullptr; +ConVar* net_processTimeBudget = nullptr; + +ConVar* pylon_matchmaking_hostname = nullptr; +ConVar* pylon_host_update_interval = nullptr; +ConVar* pylon_showdebuginfo = nullptr; +//----------------------------------------------------------------------------- +// RTECH API | +ConVar* rtech_debug = nullptr; +//----------------------------------------------------------------------------- +// RUI | +#ifndef DEDICATED +ConVar* rui_drawEnable = nullptr; +ConVar* rui_defaultDebugFontFace = nullptr; +#endif // !DEDICATED +//----------------------------------------------------------------------------- +// MILES | +#ifndef DEDICATED +ConVar* miles_debug = nullptr; +ConVar* miles_language = nullptr; +#endif + +//----------------------------------------------------------------------------- +// Purpose: initialize ConVar's +//----------------------------------------------------------------------------- +void ConVar_StaticInit(void) +{ + //------------------------------------------------------------------------- + // ENGINE | + hostdesc = ConVar::StaticCreate("hostdesc", "", FCVAR_RELEASE, "Host game server description.", false, 0.f, false, 0.f, nullptr, nullptr); + sdk_fixedframe_tickinterval = ConVar::StaticCreate("sdk_fixedframe_tickinterval", "0.01", FCVAR_RELEASE, "The tick interval used by the SDK fixed frame.", false, 0.f, false, 0.f, nullptr, nullptr); + staticProp_defaultBuildFrustum = ConVar::StaticCreate("staticProp_defaultBuildFrustum", "0", FCVAR_DEVELOPMENTONLY, "Use the old solution for building static prop frustum culling.", false, 0.f, false, 0.f, nullptr, nullptr); + + curl_debug = ConVar::StaticCreate("curl_debug" , "0" , FCVAR_DEVELOPMENTONLY, "Determines whether or not to enable curl debug logging.", false, 0.f, false, 0.f, nullptr, "1 = curl logs; 0 (zero) = no logs."); + curl_timeout = ConVar::StaticCreate("curl_timeout" , "15", FCVAR_DEVELOPMENTONLY, "Maximum time in seconds a curl transfer operation could take.", false, 0.f, false, 0.f, nullptr, nullptr); + ssl_verify_peer = ConVar::StaticCreate("ssl_verify_peer", "1" , FCVAR_DEVELOPMENTONLY, "Verify the authenticity of the peer's SSL certificate.", false, 0.f, false, 0.f, nullptr, "1 = curl verifies; 0 (zero) = no verification."); + + rcon_address = ConVar::StaticCreate("rcon_address", "[loopback]:37015", FCVAR_SERVER_CANNOT_QUERY | FCVAR_DONTRECORD | FCVAR_RELEASE, "Remote server access address.", false, 0.f, false, 0.f, nullptr, nullptr); + rcon_password = ConVar::StaticCreate("rcon_password", "" , FCVAR_SERVER_CANNOT_QUERY | FCVAR_DONTRECORD | FCVAR_RELEASE, "Remote server access password (rcon is disabled if empty).", false, 0.f, false, 0.f, &RCON_PasswordChanged_f, nullptr); + + r_debug_overlay_nodecay = ConVar::StaticCreate("r_debug_overlay_nodecay" , "0", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Keeps all debug overlays alive regardless of their lifetime. Use command 'clear_debug_overlays' to clear everything.", false, 0.f, false, 0.f, nullptr, nullptr); + r_debug_overlay_invisible = ConVar::StaticCreate("r_debug_overlay_invisible" , "1", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Show invisible debug overlays (alpha < 1 = 255).", false, 0.f, false, 0.f, nullptr, nullptr); + r_debug_overlay_wireframe = ConVar::StaticCreate("r_debug_overlay_wireframe" , "1", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Use wireframe in debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + r_debug_draw_depth_test = ConVar::StaticCreate("r_debug_draw_depth_test" , "1", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Toggle depth test for other debug draw functionality.", false, 0.f, false, 0.f, nullptr, nullptr); + r_drawWorldMeshes = ConVar::StaticCreate("r_drawWorldMeshes" , "1", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Render world meshes.", false, 0.f, false, 0.f, nullptr, nullptr); + r_drawWorldMeshesDepthOnly = ConVar::StaticCreate("r_drawWorldMeshesDepthOnly" , "1", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Render world meshes (depth only).", false, 0.f, false, 0.f, nullptr, nullptr); + r_drawWorldMeshesDepthAtTheEnd = ConVar::StaticCreate("r_drawWorldMeshesDepthAtTheEnd", "1", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Render world meshes (depth at the end).", false, 0.f, false, 0.f, nullptr, nullptr); + //------------------------------------------------------------------------- + // SERVER | +#ifndef CLIENT_DLL + ai_ainDumpOnLoad = ConVar::StaticCreate("ai_ainDumpOnLoad" , "0", FCVAR_DEVELOPMENTONLY, "Dumps AIN data from node graphs loaded from the disk on load.", false, 0.f, false, 0.f, nullptr, nullptr); + ai_ainDebugConnect = ConVar::StaticCreate("ai_ainDebugConnect" , "0", FCVAR_DEVELOPMENTONLY, "Debug AIN node connections.", false, 0.f, false, 0.f, nullptr, nullptr); + ai_script_nodes_draw_range = ConVar::StaticCreate("ai_script_nodes_draw_range" , "0", FCVAR_DEVELOPMENTONLY, "Debug draw AIN script nodes ranging from shift index to this cvar.", false, 0.f, false, 0.f, nullptr, nullptr); + ai_script_nodes_draw_nearest = ConVar::StaticCreate("ai_script_nodes_draw_nearest", "1", FCVAR_DEVELOPMENTONLY, "Debug draw AIN script node links to nearest node (build order is used if null).", false, 0.f, false, 0.f, nullptr, nullptr); + + navmesh_always_reachable = ConVar::StaticCreate("navmesh_always_reachable" , "0" , FCVAR_DEVELOPMENTONLY, "Marks goal poly from agent poly as reachable regardless of table data ( !slower! ).", false, 0.f, false, 0.f, nullptr, nullptr); + navmesh_debug_type = ConVar::StaticCreate("navmesh_debug_type" , "0" , FCVAR_DEVELOPMENTONLY, "NavMesh debug draw hull index.", true, 0.f, true, 4.f, nullptr, "0 = small, 1 = med_short, 2 = medium, 3 = large, 4 = extra large"); + navmesh_debug_tile_range = ConVar::StaticCreate("navmesh_debug_tile_range" , "0" , FCVAR_DEVELOPMENTONLY, "NavMesh debug draw tiles ranging from shift index to this cvar.", true, 0.f, false, 0.f, nullptr, nullptr); + navmesh_debug_camera_range = ConVar::StaticCreate("navmesh_debug_camera_range" , "2000" , FCVAR_DEVELOPMENTONLY, "Only debug draw tiles within this distance from camera origin.", true, 0.f, false, 0.f, nullptr, nullptr); +#ifndef DEDICATED + navmesh_draw_bvtree = ConVar::StaticCreate("navmesh_draw_bvtree" , "-1", FCVAR_DEVELOPMENTONLY, "Draws the BVTree of the NavMesh tiles.", false, 0.f, false, 0.f, nullptr, "Index: > 0 && < mesh->m_tileCount"); + navmesh_draw_portal = ConVar::StaticCreate("navmesh_draw_portal" , "-1", FCVAR_DEVELOPMENTONLY, "Draws the portal of the NavMesh tiles.", false, 0.f, false, 0.f, nullptr, "Index: > 0 && < mesh->m_tileCount"); + navmesh_draw_polys = ConVar::StaticCreate("navmesh_draw_polys" , "-1", FCVAR_DEVELOPMENTONLY, "Draws the polys of the NavMesh tiles.", false, 0.f, false, 0.f, nullptr, "Index: > 0 && < mesh->m_tileCount"); + navmesh_draw_poly_bounds = ConVar::StaticCreate("navmesh_draw_poly_bounds" , "-1", FCVAR_DEVELOPMENTONLY, "Draws the bounds of the NavMesh polys.", false, 0.f, false, 0.f, nullptr, "Index: > 0 && < mesh->m_tileCount"); + navmesh_draw_poly_bounds_inner = ConVar::StaticCreate("navmesh_draw_poly_bounds_inner" , "0" , FCVAR_DEVELOPMENTONLY, "Draws the inner bounds of the NavMesh polys (requires navmesh_draw_poly_bounds).", false, 0.f, false, 0.f, nullptr, "Index: > 0 && < mesh->m_tileCount"); +#endif // !DEDICATED + sv_showconnecting = ConVar::StaticCreate("sv_showconnecting" , "1", FCVAR_RELEASE, "Logs information about the connecting client to the console.", false, 0.f, false, 0.f, nullptr, nullptr); + sv_globalBanlist = ConVar::StaticCreate("sv_globalBanlist" , "1", FCVAR_RELEASE, "Determines whether or not to use the global banned list.", false, 0.f, false, 0.f, nullptr, "0 = Disable, 1 = Enable."); + sv_pylonVisibility = ConVar::StaticCreate("sv_pylonVisibility", "0", FCVAR_RELEASE, "Determines the visibility to the Pylon master server.", false, 0.f, false, 0.f, nullptr, "0 = Offline, 1 = Hidden, 2 = Public."); + sv_pylonRefreshRate = ConVar::StaticCreate("sv_pylonRefreshRate" , "5.0" , FCVAR_DEVELOPMENTONLY, "Pylon host refresh rate (seconds).", true, 2.f, true, 8.f, nullptr, nullptr); + sv_banlistRefreshRate = ConVar::StaticCreate("sv_banlistRefreshRate", "30.0", FCVAR_DEVELOPMENTONLY, "Banned list refresh rate (seconds).", true, 1.f, false, 0.f, nullptr, nullptr); + sv_statusRefreshRate = ConVar::StaticCreate("sv_statusRefreshRate" , "0.5", FCVAR_RELEASE, "Server status refresh rate (seconds).", true, 0.f, false, 0.f, nullptr, nullptr); + sv_autoReloadRate = ConVar::StaticCreate("sv_autoReloadRate" , "0" , FCVAR_RELEASE, "Time in seconds between each server auto-reload (disabled if null).", true, 0.f, false, 0.f, nullptr, nullptr); + sv_simulateBots = ConVar::StaticCreate("sv_simulateBots", "1", FCVAR_RELEASE, "Simulate user commands for bots on the server.", true, 0.f, false, 0.f, nullptr, nullptr); + + sv_rcon_debug = ConVar::StaticCreate("sv_rcon_debug" , "0" , FCVAR_RELEASE, "Show rcon debug information ( !slower! ).", false, 0.f, false, 0.f, nullptr, nullptr); + sv_rcon_sendlogs = ConVar::StaticCreate("sv_rcon_sendlogs" , "0" , FCVAR_RELEASE, "Network console logs to connected and authenticated sockets.", false, 0.f, false, 0.f, nullptr, nullptr); + sv_rcon_banpenalty = ConVar::StaticCreate("sv_rcon_banpenalty" , "10", FCVAR_RELEASE, "Number of minutes to ban users who fail rcon authentication.", false, 0.f, false, 0.f, nullptr, nullptr); + sv_rcon_maxfailures = ConVar::StaticCreate("sv_rcon_maxfailures", "10", FCVAR_RELEASE, "Max number of times a user can fail rcon authentication before being banned.", true, 1.f, false, 0.f, nullptr, nullptr); + sv_rcon_maxignores = ConVar::StaticCreate("sv_rcon_maxignores" , "15", FCVAR_RELEASE, "Max number of times a user can ignore the instruction message before being banned.", true, 1.f, false, 0.f, nullptr, nullptr); + sv_rcon_maxsockets = ConVar::StaticCreate("sv_rcon_maxsockets" , "32", FCVAR_RELEASE, "Max number of accepted sockets before the server starts closing redundant sockets.", true, 1.f, true, MAX_PLAYERS, nullptr, nullptr); + sv_rcon_maxconnections = ConVar::StaticCreate("sv_rcon_maxconnections" , "1" , FCVAR_RELEASE, "Max number of authenticated connections before the server closes the listen socket.", true, 1.f, true, MAX_PLAYERS, &RCON_ConnectionCountChanged_f, nullptr); + sv_rcon_maxpacketsize = ConVar::StaticCreate("sv_rcon_maxpacketsize" , "1024", FCVAR_RELEASE, "Max number of bytes allowed in a command packet from a non-authenticated net console.", true, 0.f, false, 0.f, nullptr, nullptr); + sv_rcon_whitelist_address = ConVar::StaticCreate("sv_rcon_whitelist_address", "" , FCVAR_RELEASE, "This address is not considered a 'redundant' socket and will never be banned for failed authentication attempts.", false, 0.f, false, 0.f, &RCON_WhiteListAddresChanged_f, "Format: '::ffff:127.0.0.1'"); + + sv_quota_stringCmdsPerSecond = ConVar::StaticCreate("sv_quota_stringCmdsPerSecond", "16", FCVAR_RELEASE, "How many string commands per second clients are allowed to submit, 0 to disallow all string commands.", true, 0.f, false, 0.f, nullptr, nullptr); + sv_validatePersonaName = ConVar::StaticCreate("sv_validatePersonaName" , "1" , FCVAR_RELEASE, "Validate the client's textual persona name on connect.", true, 0.f, false, 0.f, nullptr, nullptr); + sv_minPersonaNameLength = ConVar::StaticCreate("sv_minPersonaNameLength", "4" , FCVAR_RELEASE, "The minimum length of the client's textual persona name.", true, 0.f, false, 0.f, nullptr, nullptr); + sv_maxPersonaNameLength = ConVar::StaticCreate("sv_maxPersonaNameLength", "16", FCVAR_RELEASE, "The maximum length of the client's textual persona name.", true, 0.f, false, 0.f, nullptr, nullptr); +#endif // !CLIENT_DLL +#if !defined (GAMEDLL_S0) && !defined (GAMEDLL_S1) + bhit_depth_test = ConVar::StaticCreate("bhit_depth_test", "0", FCVAR_DEVELOPMENTONLY | FCVAR_REPLICATED, "Use depth test for bullet ray trace overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + bhit_abs_origin = ConVar::StaticCreate("bhit_abs_origin", "1", FCVAR_DEVELOPMENTONLY | FCVAR_REPLICATED, "Draw entity's predicted abs origin upon bullet impact for trajectory debugging (requires 'r_visualizetraces' to be set!).", false, 0.f, false, 0.f, nullptr, nullptr); +#endif // !GAMEDLL_S0 && !GAMEDLL_S1 + //------------------------------------------------------------------------- + // CLIENT | +#ifndef DEDICATED + cl_rcon_request_sendlogs = ConVar::StaticCreate("cl_rcon_request_sendlogs", "1" , FCVAR_RELEASE, "Request the rcon server to send console logs on connect.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_quota_stringCmdsPerSecond = ConVar::StaticCreate("cl_quota_stringCmdsPerSecond", "16" , FCVAR_RELEASE, "How many string commands per second user is allowed to submit, 0 to allow all submissions.", true, 0.f, false, 0.f, nullptr, nullptr); + + cl_notify_invert_x = ConVar::StaticCreate("cl_notify_invert_x", "0", FCVAR_DEVELOPMENTONLY, "Inverts the X offset for console notify debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_notify_invert_y = ConVar::StaticCreate("cl_notify_invert_y", "0", FCVAR_DEVELOPMENTONLY, "Inverts the Y offset for console notify debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_notify_offset_x = ConVar::StaticCreate("cl_notify_offset_x", "10", FCVAR_DEVELOPMENTONLY, "X offset for console notify debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_notify_offset_y = ConVar::StaticCreate("cl_notify_offset_y", "10", FCVAR_DEVELOPMENTONLY, "Y offset for console notify debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + + cl_showsimstats = ConVar::StaticCreate("cl_showsimstats" , "0" , FCVAR_DEVELOPMENTONLY, "Shows the tick counter for the server/client simulation and the render frame.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_simstats_invert_x = ConVar::StaticCreate("cl_simstats_invert_x", "1" , FCVAR_DEVELOPMENTONLY, "Inverts the X offset for simulation debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_simstats_invert_y = ConVar::StaticCreate("cl_simstats_invert_y", "1" , FCVAR_DEVELOPMENTONLY, "Inverts the Y offset for simulation debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_simstats_offset_x = ConVar::StaticCreate("cl_simstats_offset_x", "650", FCVAR_DEVELOPMENTONLY, "X offset for simulation debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_simstats_offset_y = ConVar::StaticCreate("cl_simstats_offset_y", "120", FCVAR_DEVELOPMENTONLY, "Y offset for simulation debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + + cl_showgpustats = ConVar::StaticCreate("cl_showgpustats" , "0", FCVAR_DEVELOPMENTONLY, "Texture streaming debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_gpustats_invert_x = ConVar::StaticCreate("cl_gpustats_invert_x", "1", FCVAR_DEVELOPMENTONLY, "Inverts the X offset for texture streaming debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_gpustats_invert_y = ConVar::StaticCreate("cl_gpustats_invert_y", "1", FCVAR_DEVELOPMENTONLY, "Inverts the Y offset for texture streaming debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_gpustats_offset_x = ConVar::StaticCreate("cl_gpustats_offset_x", "650", FCVAR_DEVELOPMENTONLY, "X offset for texture streaming debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_gpustats_offset_y = ConVar::StaticCreate("cl_gpustats_offset_y", "105", FCVAR_DEVELOPMENTONLY, "Y offset for texture streaming debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + + cl_showmaterialinfo = ConVar::StaticCreate("cl_showmaterialinfo" , "0" , FCVAR_DEVELOPMENTONLY, "Draw info for the material under the crosshair on screen.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_materialinfo_offset_x = ConVar::StaticCreate("cl_materialinfo_offset_x", "0" , FCVAR_DEVELOPMENTONLY, "X offset for material debug info overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + cl_materialinfo_offset_y = ConVar::StaticCreate("cl_materialinfo_offset_y", "420", FCVAR_DEVELOPMENTONLY, "Y offset for material debug info overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + + con_drawnotify = ConVar::StaticCreate("con_drawnotify", "0", FCVAR_RELEASE, "Draws the RUI console to the hud.", false, 0.f, false, 0.f, nullptr, nullptr); + con_notifylines = ConVar::StaticCreate("con_notifylines" , "3" , FCVAR_MATERIAL_SYSTEM_THREAD, "Number of console lines to overlay for debugging.", true, 1.f, false, 0.f, nullptr, nullptr); + con_notifytime = ConVar::StaticCreate("con_notifytime" , "6" , FCVAR_MATERIAL_SYSTEM_THREAD, "How long to display recent console text to the upper part of the game window.", false, 1.f, false, 50.f, nullptr, nullptr); + + con_notify_invert_x = ConVar::StaticCreate("con_notify_invert_x", "0" , FCVAR_MATERIAL_SYSTEM_THREAD, "Inverts the X offset for RUI console overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + con_notify_invert_y = ConVar::StaticCreate("con_notify_invert_y", "0" , FCVAR_MATERIAL_SYSTEM_THREAD, "Inverts the Y offset for RUI console overlay.", false, 0.f, false, 0.f, nullptr, nullptr); + con_notify_offset_x = ConVar::StaticCreate("con_notify_offset_x", "10", FCVAR_MATERIAL_SYSTEM_THREAD, "X offset for RUI console overlay.", false, 1.f, false, 50.f, nullptr, nullptr); + con_notify_offset_y = ConVar::StaticCreate("con_notify_offset_y", "10", FCVAR_MATERIAL_SYSTEM_THREAD, "Y offset for RUI console overlay.", false, 1.f, false, 50.f, nullptr, nullptr); + + con_notify_script_server_clr = ConVar::StaticCreate("con_notify_script_server_clr", "130 120 245 255", FCVAR_MATERIAL_SYSTEM_THREAD, "Script SERVER VM RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + con_notify_script_client_clr = ConVar::StaticCreate("con_notify_script_client_clr", "117 116 139 255", FCVAR_MATERIAL_SYSTEM_THREAD, "Script CLIENT VM RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + con_notify_script_ui_clr = ConVar::StaticCreate("con_notify_script_ui_clr" , "200 110 110 255", FCVAR_MATERIAL_SYSTEM_THREAD, "Script UI VM RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + + con_notify_native_server_clr = ConVar::StaticCreate("con_notify_native_server_clr", "20 50 248 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native SERVER RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + con_notify_native_client_clr = ConVar::StaticCreate("con_notify_native_client_clr", "70 70 70 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native CLIENT RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + con_notify_native_ui_clr = ConVar::StaticCreate("con_notify_native_ui_clr" , "200 60 60 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native UI RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + con_notify_native_engine_clr = ConVar::StaticCreate("con_notify_native_engine_clr", "255 255 255 255", FCVAR_MATERIAL_SYSTEM_THREAD, "Native engine RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + con_notify_native_fs_clr = ConVar::StaticCreate("con_notify_native_fs_clr" , "0 100 225 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native FileSystem RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + con_notify_native_rtech_clr = ConVar::StaticCreate("con_notify_native_rtech_clr" , "25 120 20 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native RTech RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + con_notify_native_ms_clr = ConVar::StaticCreate("con_notify_native_ms_clr" , "200 20 180 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native MaterialSystem RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + con_notify_native_audio_clr = ConVar::StaticCreate("con_notify_native_audio_clr" , "238 43 10 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native AudioSystem RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + con_notify_native_video_clr = ConVar::StaticCreate("con_notify_native_video_clr" , "115 0 235 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native VideoSystem RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + + con_notify_netcon_clr = ConVar::StaticCreate("con_notify_netcon_clr" , "255 255 255 255", FCVAR_MATERIAL_SYSTEM_THREAD, "Net console RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + con_notify_common_clr = ConVar::StaticCreate("con_notify_common_clr" , "255 140 80 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Common RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + + con_notify_warning_clr = ConVar::StaticCreate("con_notify_warning_clr", "180 180 20 255", FCVAR_MATERIAL_SYSTEM_THREAD, "Warning RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + con_notify_error_clr = ConVar::StaticCreate("con_notify_error_clr" , "225 20 20 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Error RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); + + con_max_lines = ConVar::StaticCreate("con_max_lines" , "1024", FCVAR_DEVELOPMENTONLY, "Maximum number of lines in the console before cleanup starts.", true, 1.f, false, 0.f, nullptr, nullptr); + con_max_history = ConVar::StaticCreate("con_max_history" , "512" , FCVAR_DEVELOPMENTONLY, "Maximum number of command submission items before history cleanup starts.", true, 0.f, false, 0.f, nullptr, nullptr); + con_suggestion_limit = ConVar::StaticCreate("con_suggestion_limit" , "128" , FCVAR_DEVELOPMENTONLY, "Maximum number of suggestions the autocomplete window will show for the console.", true, 0.f, false, 0.f, nullptr, nullptr); + con_suggestion_showhelptext = ConVar::StaticCreate("con_suggestion_showhelptext" , "1" , FCVAR_DEVELOPMENTONLY, "Show CommandBase help text in autocomplete window.", false, 0.f, false, 0.f, nullptr, nullptr); + con_suggestion_showflags = ConVar::StaticCreate("con_suggestion_showflags" , "1" , FCVAR_DEVELOPMENTONLY, "Show CommandBase flags in autocomplete window.", false, 0.f, false, 0.f, nullptr, nullptr); + con_suggestion_flags_realtime = ConVar::StaticCreate("con_suggestion_flags_realtime", "1" , FCVAR_DEVELOPMENTONLY, "Whether to show compile-time or run-time CommandBase flags.", false, 0.f, false, 0.f, nullptr, nullptr); + + serverbrowser_hideEmptyServers = ConVar::StaticCreate("serverbrowser_hideEmptyServers", "0", FCVAR_RELEASE, "Hide empty servers in the server browser", false, 0.f, false, 0.f, nullptr, nullptr); + serverbrowser_mapFilter = ConVar::StaticCreate("serverbrowser_mapFilter", "0", FCVAR_RELEASE, "Filter servers by map in the server browser", false, 0.f, false, 0.f, nullptr, nullptr); + serverbrowser_gamemodeFilter = ConVar::StaticCreate("serverbrowser_gamemodeFilter", "0", FCVAR_RELEASE, "Filter servers by gamemode in the server browser", false, 0.f, false, 0.f, nullptr, nullptr); +#endif // !DEDICATED + //------------------------------------------------------------------------- + // FILESYSTEM | + fs_showWarnings = ConVar::StaticCreate("fs_showWarnings" , "0", FCVAR_DEVELOPMENTONLY, "Logs the FileSystem warnings to the console, filtered by 'fs_warning_level' ( !slower! ).", true, 0.f, true, 2.f, nullptr, "0 = log to file. 1 = 0 + log to console. 2 = 1 + log to notify."); + fs_packedstore_entryblock_stats = ConVar::StaticCreate("fs_packedstore_entryblock_stats" , "0", FCVAR_DEVELOPMENTONLY, "Logs the stats of each file entry in the VPK during decompression ( !slower! ).", false, 0.f, false, 0.f, nullptr, nullptr); + fs_packedstore_workspace = ConVar::StaticCreate("fs_packedstore_workspace" , "platform/ship/", FCVAR_DEVELOPMENTONLY, "Determines the current VPK workspace.", false, 0.f, false, 0.f, nullptr, nullptr); + fs_packedstore_compression_level = ConVar::StaticCreate("fs_packedstore_compression_level", "default", FCVAR_DEVELOPMENTONLY, "Determines the VPK compression level.", false, 0.f, false, 0.f, nullptr, "fastest faster default better uber"); + fs_packedstore_max_helper_threads = ConVar::StaticCreate("fs_packedstore_max_helper_threads" , "-1", FCVAR_DEVELOPMENTONLY, "Max # of additional \"helper\" threads to create during compression.", true, -1, true, LZHAM_MAX_HELPER_THREADS, nullptr, "Must range between [-1,LZHAM_MAX_HELPER_THREADS], where -1=max practical."); + //------------------------------------------------------------------------- + // MATERIALSYSTEM | +#ifndef DEDICATED + mat_alwaysComplain = ConVar::StaticCreate("mat_alwaysComplain", "0", FCVAR_RELEASE | FCVAR_MATERIAL_SYSTEM_THREAD, "Always complain when a material is missing.", false, 0.f, false, 0.f, nullptr, nullptr); +#endif // !DEDICATED + //------------------------------------------------------------------------- + // SQUIRREL | + script_show_output = ConVar::StaticCreate("script_show_output" , "0", FCVAR_RELEASE, "Prints the VM output to the console ( !slower! ).", true, 0.f, true, 2.f, nullptr, "0 = log to file. 1 = 0 + log to console. 2 = 1 + log to notify."); + script_show_warning = ConVar::StaticCreate("script_show_warning", "0", FCVAR_RELEASE, "Prints the VM warning output to the console ( !slower! ).", true, 0.f, true, 2.f, nullptr, "0 = log to file. 1 = 0 + log to console. 2 = 1 + log to notify."); + //------------------------------------------------------------------------- + // NETCHANNEL | + net_tracePayload = ConVar::StaticCreate("net_tracePayload" , "0", FCVAR_DEVELOPMENTONLY , "Log the payload of the send/recv datagram to a file on the disk.", false, 0.f, false, 0.f, nullptr, nullptr); + net_encryptionEnable = ConVar::StaticCreate("net_encryptionEnable" , "1", FCVAR_DEVELOPMENTONLY | FCVAR_REPLICATED , "Use AES encryption on game packets.", false, 0.f, false, 0.f, nullptr, nullptr); + net_useRandomKey = ConVar::StaticCreate("net_useRandomKey" , "1" , FCVAR_RELEASE , "Use random AES encryption key for game packets.", false, 0.f, false, 0.f, &NET_UseRandomKeyChanged_f, nullptr); + net_processTimeBudget = ConVar::StaticCreate("net_processTimeBudget" ,"200" , FCVAR_RELEASE , "Net message process time budget in milliseconds (removing netchannel if exceeded).", true, 0.f, false, 0.f, nullptr, "0 = disabled."); + //------------------------------------------------------------------------- + // NETWORKSYSTEM | + pylon_matchmaking_hostname = ConVar::StaticCreate("pylon_matchmaking_hostname", "ms.r5reloaded.com", FCVAR_RELEASE, "Holds the pylon matchmaking hostname.", false, 0.f, false, 0.f, &MP_HostName_Changed_f, nullptr); + pylon_host_update_interval = ConVar::StaticCreate("pylon_host_update_interval", "5" , FCVAR_RELEASE, "Length of time in seconds between each status update interval to master server.", true, 5.f, false, 0.f, nullptr, nullptr); + pylon_showdebuginfo = ConVar::StaticCreate("pylon_showdebuginfo" , "0" , FCVAR_RELEASE, "Shows debug output for pylon.", false, 0.f, false, 0.f, nullptr, nullptr); + //------------------------------------------------------------------------- + // RTECH API | + rtech_debug = ConVar::StaticCreate("rtech_debug", "0", FCVAR_DEVELOPMENTONLY, "Shows debug output for the RTech system.", false, 0.f, false, 0.f, nullptr, nullptr); + //------------------------------------------------------------------------- + // RUI | +#ifndef DEDICATED + rui_drawEnable = ConVar::StaticCreate("rui_drawEnable", "1", FCVAR_RELEASE, "Draws the RUI if set.", false, 0.f, false, 0.f, nullptr, "1 = Draw, 0 = No Draw."); +#endif // !DEDICATED + //------------------------------------------------------------------------- + // MILES | +#ifndef DEDICATED + miles_debug = ConVar::StaticCreate("miles_debug", "0", FCVAR_RELEASE, "Enables debug prints for the Miles Sound System.", false, 0.f, false, 0.f, nullptr, "1 = Print, 0 = No Print"); +#endif // !DEDICATED + //------------------------------------------------------------------------- +} + +//----------------------------------------------------------------------------- +// Purpose: initialize shipped ConVar's +//----------------------------------------------------------------------------- +void ConVar_InitShipped(void) +{ +#ifndef CLIENT_DLL + ai_script_nodes_draw = g_pCVar->FindVar("ai_script_nodes_draw"); +#if !defined (GAMEDLL_S0) && !defined (GAMEDLL_S1) + bhit_enable = g_pCVar->FindVar("bhit_enable"); +#endif // !GAMEDLL_S0 && !GAMEDLL_S1 +#endif // !CLIENT_DLL + developer = g_pCVar->FindVar("developer"); + fps_max = g_pCVar->FindVar("fps_max"); + fs_showAllReads = g_pCVar->FindVar("fs_showAllReads"); +#ifndef DEDICATED + cl_threaded_bone_setup = g_pCVar->FindVar("cl_threaded_bone_setup"); +#endif // !DEDICATED + single_frame_shutdown_for_reload = g_pCVar->FindVar("single_frame_shutdown_for_reload"); + enable_debug_overlays = g_pCVar->FindVar("enable_debug_overlays"); + debug_draw_box_depth_test = g_pCVar->FindVar("debug_draw_box_depth_test"); + model_defaultFadeDistScale = g_pCVar->FindVar("model_defaultFadeDistScale"); + model_defaultFadeDistMin = g_pCVar->FindVar("model_defaultFadeDistMin"); +#ifndef DEDICATED + miles_language = g_pCVar->FindVar("miles_language"); + rui_defaultDebugFontFace = g_pCVar->FindVar("rui_defaultDebugFontFace"); + r_visualizetraces = g_pCVar->FindVar("r_visualizetraces"); + r_visualizetraces_duration = g_pCVar->FindVar("r_visualizetraces_duration"); +#endif // !DEDICATED + staticProp_no_fade_scalar = g_pCVar->FindVar("staticProp_no_fade_scalar"); + staticProp_gather_size_weight = g_pCVar->FindVar("staticProp_gather_size_weight"); + stream_overlay = g_pCVar->FindVar("stream_overlay"); + stream_overlay_mode = g_pCVar->FindVar("stream_overlay_mode"); + sv_cheats = g_pCVar->FindVar("sv_cheats"); + sv_visualizetraces = g_pCVar->FindVar("sv_visualizetraces"); + sv_visualizetraces_duration = g_pCVar->FindVar("sv_visualizetraces_duration"); + old_gather_props = g_pCVar->FindVar("old_gather_props"); +#ifndef DEDICATED + origin_disconnectWhenOffline = g_pCVar->FindVar("origin_disconnectWhenOffline"); +#endif // !DEDICATED + mp_gamemode = g_pCVar->FindVar("mp_gamemode"); + ip_cvar = g_pCVar->FindVar("ip"); + hostname = g_pCVar->FindVar("hostname"); + hostip = g_pCVar->FindVar("hostip"); + hostport = g_pCVar->FindVar("hostport"); + host_hasIrreversibleShutdown = g_pCVar->FindVar("host_hasIrreversibleShutdown"); + net_usesocketsforloopback = g_pCVar->FindVar("net_usesocketsforloopback"); +#ifndef CLIENT_DLL + sv_stats = g_pCVar->FindVar("sv_stats"); + + sv_updaterate_mp = g_pCVar->FindVar("sv_updaterate_mp"); + sv_updaterate_sp = g_pCVar->FindVar("sv_updaterate_sp"); + + sv_showhitboxes = g_pCVar->FindVar("sv_showhitboxes"); + sv_forceChatToTeamOnly = g_pCVar->FindVar("sv_forceChatToTeamOnly"); + + sv_voiceenable = g_pCVar->FindVar("sv_voiceenable"); + sv_voiceEcho = g_pCVar->FindVar("sv_voiceEcho"); + sv_alltalk = g_pCVar->FindVar("sv_alltalk"); + + sv_showhitboxes->SetMin(-1); // Allow user to go over each entity manually without going out of bounds. + sv_showhitboxes->SetMax(NUM_ENT_ENTRIES - 1); + + sv_forceChatToTeamOnly->RemoveFlags(FCVAR_DEVELOPMENTONLY); + sv_forceChatToTeamOnly->AddFlags(FCVAR_REPLICATED); + + ai_script_nodes_draw->SetValue(-1); +#if !defined (GAMEDLL_S0) && !defined (GAMEDLL_S1) && !defined (GAMEDLL_S2) + bhit_enable->SetValue(0); +#endif // !(GAMEDLL_S0) || !(GAMEDLL_S1) || !(GAMEDLL_S2) +#endif // !CLIENT_DLL +#ifndef DEDICATED + cl_threaded_bone_setup->RemoveFlags(FCVAR_DEVELOPMENTONLY); + rui_defaultDebugFontFace->RemoveFlags(FCVAR_DEVELOPMENTONLY); + origin_disconnectWhenOffline->RemoveFlags(FCVAR_DEVELOPMENTONLY); +#endif // !DEDICATED + mp_gamemode->RemoveFlags(FCVAR_DEVELOPMENTONLY); + mp_gamemode->RemoveChangeCallback(mp_gamemode->m_fnChangeCallbacks[0]); + mp_gamemode->InstallChangeCallback(MP_GameMode_Changed_f, false); + net_usesocketsforloopback->RemoveFlags(FCVAR_DEVELOPMENTONLY); + net_usesocketsforloopback->InstallChangeCallback(NET_UseSocketsForLoopbackChanged_f, false); +} + +//----------------------------------------------------------------------------- +// Purpose: unregister/disable extraneous ConVar's. +//----------------------------------------------------------------------------- +void ConVar_PurgeShipped(void) +{ +#ifdef DEDICATED + const char* pszToPurge[] = + { + "bink_materials_enabled", + "communities_enabled", + "community_frame_run", + "ime_enabled", + "origin_igo_mutes_sound_enabled", + "twitch_shouldQuery", + "voice_enabled", + }; + + for (size_t i = 0; i < SDK_ARRAYSIZE(pszToPurge); i++) + { + if (ConVar* pCVar = g_pCVar->FindVar(pszToPurge[i])) + { + pCVar->SetValue(0); + } + } +#endif // DEDICATED +} + +//----------------------------------------------------------------------------- +// Purpose: clear all hostname ConVar's. +//----------------------------------------------------------------------------- +void ConVar_PurgeHostNames(void) +{ + const char* pszHostNames[] = + { + "assetdownloads_hostname", + "communities_hostname", + "matchmaking_hostname", + "party_hostname", + "persistence_hostname", + "persistenceDef_hostname", + "pin_telemetry_hostname", + "publication_hostname", + "serverReports_hostname", + "skill_hostname", + "speechtotext_hostname", + "staticfile_hostname", + "stats_hostname", + "steamlink_hostname", + "subscription_hostname", + "users_hostname" + }; + + for (size_t i = 0; i < SDK_ARRAYSIZE(pszHostNames); i++) + { + if (ConVar* pCVar = g_pCVar->FindVar(pszHostNames[i])) + { + pCVar->SetValue(NET_IPV4_UNSPEC); + } + } +} + +//----------------------------------------------------------------------------- +// Purpose: ConCommand registration +//----------------------------------------------------------------------------- +void ConCommand_StaticInit(void) +{ + //------------------------------------------------------------------------- + // ENGINE DLL | +#if !defined (GAMEDLL_S0) && !defined (GAMEDLL_S1) + ConCommand::StaticCreate("bhit", "Bullet-hit trajectory debug.", nullptr, FCVAR_DEVELOPMENTONLY | FCVAR_GAMEDLL, BHit_f, nullptr); +#endif // !GAMEDLL_S0 && !GAMEDLL_S1 +#ifndef DEDICATED + ConCommand::StaticCreate("line", "Draw a debug line.", nullptr, FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, Line_f, nullptr); + ConCommand::StaticCreate("sphere", "Draw a debug sphere.", nullptr, FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, Sphere_f, nullptr); + ConCommand::StaticCreate("capsule", "Draw a debug capsule.", nullptr, FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, Capsule_f, nullptr); +#endif //!DEDICATED + ConCommand::StaticCreate("con_help", "Shows the colors and description of each context.", nullptr, FCVAR_RELEASE, CON_Help_f, nullptr); +#ifndef CLIENT_DLL + ConCommand::StaticCreate("reload_playlists", "Reloads the playlists file.", nullptr, FCVAR_RELEASE, Host_ReloadPlaylists_f, nullptr); +#endif // !CLIENT_DLL + //------------------------------------------------------------------------- + // SERVER DLL | +#ifndef CLIENT_DLL + ConCommand::StaticCreate("script", "Run input code as SERVER script on the VM.", nullptr, FCVAR_GAMEDLL | FCVAR_CHEAT, SQVM_ServerScript_f, nullptr); + ConCommand::StaticCreate("sv_kick", "Kick a client from the server by user name.", "sv_kick \"\"", FCVAR_RELEASE, Host_Kick_f, nullptr); + ConCommand::StaticCreate("sv_kickid", "Kick a client from the server by handle, nucleus id or ip address.", "sv_kickid \"\"/\"/\"", FCVAR_RELEASE, Host_KickID_f, nullptr); + ConCommand::StaticCreate("sv_ban", "Bans a client from the server by user name.", "sv_ban ", FCVAR_RELEASE, Host_Ban_f, nullptr); + ConCommand::StaticCreate("sv_banid", "Bans a client from the server by handle, nucleus id or ip address.", "sv_banid \"\"/\"/\"", FCVAR_RELEASE, Host_BanID_f, nullptr); + ConCommand::StaticCreate("sv_unban", "Unbans a client from the server by nucleus id or ip address.", "sv_unban \"\"/\"\"", FCVAR_RELEASE, Host_Unban_f, nullptr); + ConCommand::StaticCreate("sv_reloadbanlist", "Reloads the banned list.", nullptr, FCVAR_RELEASE, Host_ReloadBanList_f, nullptr); + ConCommand::StaticCreate("sv_addbot", "Creates a bot on the server.", nullptr, FCVAR_RELEASE, CC_CreateFakePlayer_f, nullptr); + ConCommand::StaticCreate("navmesh_hotswap", "Hot swap the NavMesh for all hulls.", nullptr, FCVAR_DEVELOPMENTONLY, Detour_HotSwap_f, nullptr); +#endif // !CLIENT_DLL +#ifndef DEDICATED + //------------------------------------------------------------------------- + // CLIENT DLL | + ConCommand::StaticCreate("script_client", "Run input code as CLIENT script on the VM.", nullptr, FCVAR_CLIENTDLL | FCVAR_CHEAT, SQVM_ClientScript_f, nullptr); + ConCommand::StaticCreate("rcon", "Forward RCON query to remote server.", "rcon \"\"", FCVAR_CLIENTDLL | FCVAR_RELEASE, RCON_CmdQuery_f, nullptr); + ConCommand::StaticCreate("rcon_disconnect", "Disconnect from RCON server.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, RCON_Disconnect_f, nullptr); + + ConCommand::StaticCreate("con_history", "Shows the developer console submission history.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, CON_LogHistory_f, nullptr); + ConCommand::StaticCreate("con_removeline", "Removes a range of lines from the developer console.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, CON_RemoveLine_f, nullptr); + ConCommand::StaticCreate("con_clearlines", "Clears all lines from the developer console.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, CON_ClearLines_f, nullptr); + ConCommand::StaticCreate("con_clearhistory", "Clears all submissions from the developer console history.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, CON_ClearHistory_f, nullptr); + + ConCommand::StaticCreate("toggleconsole", "Show/hide the developer console.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, ToggleConsole_f, nullptr); + ConCommand::StaticCreate("togglebrowser", "Show/hide the server browser.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, ToggleBrowser_f, nullptr); + //------------------------------------------------------------------------- + // UI DLL | + ConCommand::StaticCreate("script_ui", "Run input code as UI script on the VM.", nullptr, FCVAR_CLIENTDLL | FCVAR_CHEAT, SQVM_UIScript_f, nullptr); +#endif // !DEDICATED + //------------------------------------------------------------------------- + // FILESYSTEM API | + ConCommand::StaticCreate("fs_vpk_mount", "Mount a VPK file for FileSystem usage.", nullptr, FCVAR_DEVELOPMENTONLY, VPK_Mount_f, nullptr); + ConCommand::StaticCreate("fs_vpk_unmount", "Unmount a VPK file and clear its cache.", nullptr, FCVAR_DEVELOPMENTONLY, VPK_Unmount_f, nullptr); + ConCommand::StaticCreate("fs_vpk_build", "Build a VPK file from current workspace.", nullptr, FCVAR_DEVELOPMENTONLY, VPK_Pack_f, nullptr); + ConCommand::StaticCreate("fs_vpk_unpack", "Unpack all files from a VPK file.", nullptr, FCVAR_DEVELOPMENTONLY, VPK_Unpack_f, nullptr); + //------------------------------------------------------------------------- + // RTECH API | + ConCommand::StaticCreate("rtech_strtoguid", "Calculates the GUID from input data.", nullptr, FCVAR_DEVELOPMENTONLY, RTech_StringToGUID_f, nullptr); + ConCommand::StaticCreate("pak_decompress", "Decompresses specified RPAK file.", nullptr, FCVAR_DEVELOPMENTONLY, RTech_Decompress_f, RTech_PakDecompress_f_CompletionFunc); + ConCommand::StaticCreate("pak_requestload", "Requests asynchronous load for specified RPAK file.", nullptr, FCVAR_DEVELOPMENTONLY, Pak_RequestLoad_f, RTech_PakLoad_f_CompletionFunc); + ConCommand::StaticCreate("pak_requestunload", "Requests unload for specified RPAK file or ID.", nullptr, FCVAR_DEVELOPMENTONLY, Pak_RequestUnload_f, RTech_PakUnload_f_CompletionFunc); + ConCommand::StaticCreate("pak_swap", "Requests swap for specified RPAK file or ID", nullptr, FCVAR_DEVELOPMENTONLY, Pak_Swap_f, nullptr); + ConCommand::StaticCreate("pak_listpaks", "Display a list of the loaded Pak files.", nullptr, FCVAR_RELEASE, Pak_ListPaks_f, nullptr); + ConCommand::StaticCreate("pak_listtypes", "Display a list of the registered asset types.", nullptr, FCVAR_RELEASE, Pak_ListTypes_f, nullptr); + //------------------------------------------------------------------------- + // NETCHANNEL | + ConCommand::StaticCreate("net_setkey", "Sets user specified base64 net key.", nullptr, FCVAR_RELEASE, NET_SetKey_f, nullptr); + ConCommand::StaticCreate("net_generatekey", "Generates and sets a random base64 net key.", nullptr, FCVAR_RELEASE, NET_GenerateKey_f, nullptr); + //------------------------------------------------------------------------- + // TIER0 | + ConCommand::StaticCreate("sig_getadr", "Logs the sigscan results to the console.", nullptr, FCVAR_DEVELOPMENTONLY | FCVAR_HIDDEN, SIG_GetAdr_f, nullptr); +} + +//----------------------------------------------------------------------------- +// Purpose: shipped ConCommand initialization +//----------------------------------------------------------------------------- +void ConCommand_InitShipped(void) +{ + ///------------------------------------------------------ [ CALLBACK SWAP ] + //------------------------------------------------------------------------- + // ENGINE DLL | + ConCommand* changelevel = g_pCVar->FindCommand("changelevel"); + ConCommand* map = g_pCVar->FindCommand("map"); + ConCommand* map_background = g_pCVar->FindCommand("map_background"); + ConCommand* ss_map = g_pCVar->FindCommand("ss_map"); + ConCommand* migrateme = g_pCVar->FindCommand("migrateme"); + ConCommand* help = g_pCVar->FindCommand("help"); + ConCommand* convar_list = g_pCVar->FindCommand("convar_list"); + ConCommand* convar_differences = g_pCVar->FindCommand("convar_differences"); + ConCommand* convar_findByFlags = g_pCVar->FindCommand("convar_findByFlags"); +#ifndef DEDICATED + //------------------------------------------------------------------------- + // MATERIAL SYSTEM + ConCommand* mat_crosshair = g_pCVar->FindCommand("mat_crosshair"); // Patch callback function to working callback. + //------------------------------------------------------------------------- + // CLIENT DLL | + ConCommand* give = g_pCVar->FindCommand("give"); +#endif // !DEDICATED + + help->m_fnCommandCallback = CVHelp_f; + convar_list->m_fnCommandCallback = CVList_f; + convar_differences->m_fnCommandCallback = CVDiff_f; + convar_findByFlags->m_fnCommandCallback = CVFlag_f; +#ifndef CLIENT_DLL + changelevel->m_fnCommandCallback = Host_Changelevel_f; +#endif // !CLIENT_DLL + changelevel->m_fnCompletionCallback = Host_Changelevel_f_CompletionFunc; + + map->m_fnCompletionCallback = Host_Map_f_CompletionFunc; + map_background->m_fnCompletionCallback = Host_Background_f_CompletionFunc; + ss_map->m_fnCompletionCallback = Host_SSMap_f_CompletionFunc; + +#ifndef DEDICATED + mat_crosshair->m_fnCommandCallback = Mat_CrossHair_f; + give->m_fnCompletionCallback = Game_Give_f_CompletionFunc; +#endif // !DEDICATED + + /// ------------------------------------------------------ [ FLAG REMOVAL ] + //------------------------------------------------------------------------- + if (!CommandLine()->CheckParm("-devsdk")) + { + const char* pszMaskedBases[] = + { +#ifndef DEDICATED + "connect", + "connectAsSpectator", + "connectWithKey", + "silentconnect", + "set", + "ping", +#endif // !DEDICATED + "launchplaylist", + "quit", + "exit", + "reload", + "restart", + "status", + "version", + }; + + for (size_t i = 0; i < SDK_ARRAYSIZE(pszMaskedBases); i++) + { + if (ConCommandBase* pCommandBase = g_pCVar->FindCommandBase(pszMaskedBases[i])) + { + pCommandBase->RemoveFlags(FCVAR_DEVELOPMENTONLY); + } + } + + convar_list->RemoveFlags(FCVAR_DEVELOPMENTONLY); + convar_differences->RemoveFlags(FCVAR_DEVELOPMENTONLY); + convar_findByFlags->RemoveFlags(FCVAR_DEVELOPMENTONLY); + help->RemoveFlags(FCVAR_DEVELOPMENTONLY); + migrateme->RemoveFlags(FCVAR_SERVER_CAN_EXECUTE); + changelevel->RemoveFlags(FCVAR_DEVELOPMENTONLY); + map->RemoveFlags(FCVAR_DEVELOPMENTONLY | FCVAR_SERVER_CAN_EXECUTE); + map_background->RemoveFlags(FCVAR_DEVELOPMENTONLY | FCVAR_SERVER_CAN_EXECUTE); + ss_map->RemoveFlags(FCVAR_DEVELOPMENTONLY | FCVAR_SERVER_CAN_EXECUTE); + } +} + +//----------------------------------------------------------------------------- +// Purpose: unregister extraneous ConCommand's. +//----------------------------------------------------------------------------- +void ConCommand_PurgeShipped(void) +{ +#ifdef DEDICATED + const char* pszCommandToRemove[] = + { + "bind", + "bind_held", + "bind_list", + "bind_list_abilities", + "bind_US_standard", + "bind_held_US_standard", + "unbind", + "unbind_US_standard", + "unbindall", + "unbind_all_gamepad", + "unbindall_ignoreGamepad", + "unbind_batch", + "unbind_held", + "unbind_held_US_standard", + "uiscript_reset", + "getpos_bind", + "connect", + "silent_connect", + "ping", + "gameui_activate", + "gameui_hide", + "weaponSelectOrdnance", + "weaponSelectPrimary0", + "weaponSelectPrimary1", + "weaponSelectPrimary2", + "+scriptCommand1", + "-scriptCommand1", + "+scriptCommand2", + "-scriptCommand2", + "+scriptCommand3", + "-scriptCommand3", + "+scriptCommand4", + "-scriptCommand4", + "+scriptCommand5", + "-scriptCommand5", + "+scriptCommand6", + "-scriptCommand6", + "+scriptCommand7", + "-scriptCommand7", + "+scriptCommand8", + "-scriptCommand8", + "+scriptCommand9", + "-scriptCommand9", + }; + + for (size_t i = 0; i < SDK_ARRAYSIZE(pszCommandToRemove); i++) + { + ConCommandBase* pCommandBase = g_pCVar->FindCommandBase(pszCommandToRemove[i]); + + if (pCommandBase) + { + g_pCVar->UnregisterConCommand(pCommandBase); + } + } +#endif // DEDICATED +} \ No newline at end of file diff --git a/r5dev/common/global.h b/r5dev/common/global.h new file mode 100644 index 00000000..be74da5d --- /dev/null +++ b/r5dev/common/global.h @@ -0,0 +1,232 @@ +#ifndef GLOBAL_H +#define GLOBAL_H + +//------------------------------------------------------------------------- +// ENGINE | +extern ConVar* sdk_fixedframe_tickinterval; +extern ConVar* single_frame_shutdown_for_reload; +extern ConVar* old_gather_props; + +extern ConVar* enable_debug_overlays; +extern ConVar* debug_draw_box_depth_test; + +extern ConVar* developer; +extern ConVar* fps_max; + +extern ConVar* staticProp_defaultBuildFrustum; +extern ConVar* staticProp_no_fade_scalar; +extern ConVar* staticProp_gather_size_weight; + +extern ConVar* model_defaultFadeDistScale; +extern ConVar* model_defaultFadeDistMin; + +extern ConVar* ip_cvar; +extern ConVar* hostname; +extern ConVar* hostdesc; +extern ConVar* hostip; +extern ConVar* hostport; +extern ConVar* host_hasIrreversibleShutdown; + +extern ConVar* mp_gamemode; + +extern ConVar* rcon_address; +extern ConVar* rcon_password; + +extern ConVar* r_debug_overlay_nodecay; +extern ConVar* r_debug_overlay_invisible; +extern ConVar* r_debug_overlay_wireframe; +extern ConVar* r_debug_draw_depth_test; +extern ConVar* r_drawWorldMeshes; +extern ConVar* r_drawWorldMeshesDepthOnly; +extern ConVar* r_drawWorldMeshesDepthAtTheEnd; + +#ifndef DEDICATED +extern ConVar* r_visualizetraces; +extern ConVar* r_visualizetraces_duration; +#endif // !DEDICATED + +extern ConVar* stream_overlay; +extern ConVar* stream_overlay_mode; +//------------------------------------------------------------------------- +// SERVER | +#ifndef CLIENT_DLL +extern ConVar* ai_ainDumpOnLoad; +extern ConVar* ai_ainDebugConnect; +extern ConVar* ai_script_nodes_draw; +extern ConVar* ai_script_nodes_draw_range; +extern ConVar* ai_script_nodes_draw_nearest; + +extern ConVar* navmesh_always_reachable; +extern ConVar* navmesh_debug_type; +extern ConVar* navmesh_debug_tile_range; +extern ConVar* navmesh_debug_camera_range; +#ifndef DEDICATED +extern ConVar* navmesh_draw_bvtree; +extern ConVar* navmesh_draw_portal; +extern ConVar* navmesh_draw_polys; +extern ConVar* navmesh_draw_poly_bounds; +extern ConVar* navmesh_draw_poly_bounds_inner; +#endif // DEDICATED +extern ConVar* sv_showconnecting; +extern ConVar* sv_globalBanlist; +extern ConVar* sv_pylonVisibility; +extern ConVar* sv_pylonRefreshRate; +extern ConVar* sv_banlistRefreshRate; +extern ConVar* sv_statusRefreshRate; +extern ConVar* sv_forceChatToTeamOnly; + +extern ConVar* sv_updaterate_mp; +extern ConVar* sv_updaterate_sp; +extern ConVar* sv_autoReloadRate; + +extern ConVar* sv_simulateBots; +extern ConVar* sv_showhitboxes; +extern ConVar* sv_stats; + +extern ConVar* sv_quota_stringCmdsPerSecond; + +extern ConVar* sv_validatePersonaName; +extern ConVar* sv_minPersonaNameLength; +extern ConVar* sv_maxPersonaNameLength; + +extern ConVar* sv_voiceEcho; +extern ConVar* sv_voiceenable; +extern ConVar* sv_alltalk; + +//#ifdef DEDICATED +extern ConVar* sv_rcon_debug; +extern ConVar* sv_rcon_sendlogs; +extern ConVar* sv_rcon_banpenalty; +extern ConVar* sv_rcon_maxfailures; +extern ConVar* sv_rcon_maxignores; +extern ConVar* sv_rcon_maxsockets; +extern ConVar* sv_rcon_maxconnections; +extern ConVar* sv_rcon_maxpacketsize; +extern ConVar* sv_rcon_whitelist_address; +//#endif // DEDICATED +#endif // CLIENT_DLL +extern ConVar* sv_cheats; +extern ConVar* sv_visualizetraces; +extern ConVar* sv_visualizetraces_duration; +#if !defined (GAMEDLL_S0) && !defined (GAMEDLL_S1) +extern ConVar* bhit_enable; +extern ConVar* bhit_depth_test; +extern ConVar* bhit_abs_origin; +#endif // !GAMEDLL_S0 && !GAMEDLL_S1 +//------------------------------------------------------------------------- +// CLIENT | +#ifndef DEDICATED +extern ConVar* cl_rcon_request_sendlogs; +extern ConVar* cl_quota_stringCmdsPerSecond; + +extern ConVar* cl_notify_invert_x; +extern ConVar* cl_notify_invert_y; +extern ConVar* cl_notify_offset_x; +extern ConVar* cl_notify_offset_y; + +extern ConVar* cl_showsimstats; +extern ConVar* cl_simstats_invert_x; +extern ConVar* cl_simstats_invert_y; +extern ConVar* cl_simstats_offset_x; +extern ConVar* cl_simstats_offset_y; + +extern ConVar* cl_showgpustats; +extern ConVar* cl_gpustats_invert_x; +extern ConVar* cl_gpustats_invert_y; +extern ConVar* cl_gpustats_offset_x; +extern ConVar* cl_gpustats_offset_y; + +extern ConVar* cl_showmaterialinfo; +extern ConVar* cl_materialinfo_offset_x; +extern ConVar* cl_materialinfo_offset_y; + +extern ConVar* cl_threaded_bone_setup; + +extern ConVar* con_drawnotify; +extern ConVar* con_notifylines; +extern ConVar* con_notifytime; + +extern ConVar* con_notify_invert_x; +extern ConVar* con_notify_invert_y; +extern ConVar* con_notify_offset_x; +extern ConVar* con_notify_offset_y; + +extern ConVar* con_notify_script_server_clr; +extern ConVar* con_notify_script_client_clr; +extern ConVar* con_notify_script_ui_clr; +extern ConVar* con_notify_native_server_clr; +extern ConVar* con_notify_native_client_clr; +extern ConVar* con_notify_native_ui_clr; +extern ConVar* con_notify_native_engine_clr; +extern ConVar* con_notify_native_fs_clr; +extern ConVar* con_notify_native_rtech_clr; +extern ConVar* con_notify_native_ms_clr; +extern ConVar* con_notify_native_audio_clr; +extern ConVar* con_notify_native_video_clr; +extern ConVar* con_notify_netcon_clr; +extern ConVar* con_notify_common_clr; +extern ConVar* con_notify_warning_clr; +extern ConVar* con_notify_error_clr; + +extern ConVar* con_max_lines; +extern ConVar* con_max_history; +extern ConVar* con_suggestion_limit; +extern ConVar* con_suggestion_showhelptext; +extern ConVar* con_suggestion_showflags; +extern ConVar* con_suggestion_flags_realtime; + +extern ConVar* origin_disconnectWhenOffline; +#endif // !DEDICATED +//------------------------------------------------------------------------- +// FILESYSTEM | +extern ConVar* fs_showWarnings; +extern ConVar* fs_showAllReads; +extern ConVar* fs_packedstore_entryblock_stats; +extern ConVar* fs_packedstore_workspace; +extern ConVar* fs_packedstore_compression_level; +extern ConVar* fs_packedstore_max_helper_threads; +//------------------------------------------------------------------------- +// MATERIALSYSTEM | +#ifndef DEDICATED +extern ConVar* mat_alwaysComplain; +#endif // !DEDICATED +//------------------------------------------------------------------------- +// SQUIRREL | +extern ConVar* script_show_output; +extern ConVar* script_show_warning; +//------------------------------------------------------------------------- +// NETCHANNEL | +extern ConVar* net_tracePayload; +extern ConVar* net_encryptionEnable; +extern ConVar* net_useRandomKey; +extern ConVar* net_usesocketsforloopback; +extern ConVar* net_processTimeBudget; + +extern ConVar* pylon_matchmaking_hostname; +extern ConVar* pylon_host_update_interval; +extern ConVar* pylon_showdebuginfo; +//------------------------------------------------------------------------- +// RTECH API | +extern ConVar* rtech_debug; +//------------------------------------------------------------------------- +// RUI | +#ifndef DEDICATED +extern ConVar* rui_drawEnable; +extern ConVar* rui_defaultDebugFontFace; +#endif // !DEDICATED +//------------------------------------------------------------------------- +// MILES | +#ifndef DEDICATED +extern ConVar* miles_debug; +extern ConVar* miles_language; +#endif + +void ConVar_StaticInit(void); +void ConVar_InitShipped(void); +void ConVar_PurgeShipped(void); +void ConVar_PurgeHostNames(void); +void ConCommand_StaticInit(void); +void ConCommand_InitShipped(void); +void ConCommand_PurgeShipped(void); + +#endif // GLOBAL_H diff --git a/r5dev/common/opcodes.cpp b/r5dev/common/opcodes.cpp index c03a34a9..fc822a50 100644 --- a/r5dev/common/opcodes.cpp +++ b/r5dev/common/opcodes.cpp @@ -3,7 +3,6 @@ *-----------------------------------------------------------------------------*/ #include "core/stdafx.h" -#include "launcher/IApplication.h" #include "common/opcodes.h" //#include "common/netmessages.h" //#include "engine/cmodel_bsp.h" @@ -17,7 +16,9 @@ //#include "engine/client/cl_main.h" //#include "engine/client/client.h" //#include "engine/client/clientstate.h" +//#include "engine/client/cdll_engine_int.h" //#include "engine/sys_getmodes.h" +//#include "engine/sys_dll.h" #ifndef CLIENT_DLL #include "game/server/ai_networkmanager.h" #include "game/server/fairfight_impl.h" @@ -25,11 +26,9 @@ #endif // !CLIENT_DLL #include "rtech/rtech_game.h" //#include "rtech/rui/rui.h" -//#include "client/cdll_engine_int.h" //#include "materialsystem/cmaterialsystem.h" //#include "studiorender/studiorendercontext.h" #include "vscript/languages/squirrel_re/include/sqvm.h" -//#include "bsplib/bsplib.h" //#include "ebisusdk/EbisuSDK.h" #ifndef DEDICATED #include "codecs/miles/radshal_wasapi.h" diff --git a/r5dev/core/CMakeLists.txt b/r5dev/core/CMakeLists.txt new file mode 100644 index 00000000..39f1ecc5 --- /dev/null +++ b/r5dev/core/CMakeLists.txt @@ -0,0 +1,84 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( gamesdk ) +add_library( ${PROJECT_NAME} SHARED ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "assert.h" + "dllmain.cpp" + "init.cpp" + "init.h" + "logdef.cpp" + "logdef.h" + "logger.cpp" + "logger.h" + "r5dev.h" + "resource.h" + "shared_pch.h" + "stdafx.cpp" + "stdafx.h" + "termutil.cpp" + "termutil.h" +) + +target_link_libraries( ${PROJECT_NAME} PRIVATE + "tier0" + "tier1" + "tier2" + "vpklib" + "vscript" + "vstdlib" + "vphysics" + "vguimatsurface" + "vpc" + "vgui" + + "rtech" + + "mathlib" + + "libdetours" + "liblzham" + "libimgui" + "libcurl" + "libprotobuf" + "libspdlog" + "navdebugutils" + "libdetour" + "protocol_pb" + + "networksystem" + "pluginsystem" + "materialsystem" + "inputsystem" + "filesystem" + "datacache" + "EbisuSDK" + "codecs" + + "localize" + + "gamedll" + + "engine" + + "appframework" + + "advapi32.lib" + "bcrypt.lib" + "crypt32.lib" + "dbghelp.lib" + "d3d11.lib" + "wldap32.lib" + "ws2_32.lib" + "Rpcrt4.lib" +) + +end_sources() + +target_compile_definitions( ${PROJECT_NAME} PRIVATE + "GAMESDK" +) +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/core/dllmain.cpp b/r5dev/core/dllmain.cpp index dd8c595c..26e9577e 100644 --- a/r5dev/core/dllmain.cpp +++ b/r5dev/core/dllmain.cpp @@ -2,6 +2,7 @@ #include "core/r5dev.h" #include "core/init.h" #include "core/logdef.h" +#include "core/logger.h" #include "tier0/crashhandler.h" /*****************************************************************************/ #ifndef DEDICATED @@ -17,6 +18,38 @@ // INITIALIZATION //############################################################################# +void Crash_Callback() +{ + // Shutdown SpdLog to flush all buffers. + SpdLog_Shutdown(); + + // TODO[ AMOS ]: This is where we want to call backtrace from. +} + +void Tier0_Init() +{ +#if !defined (DEDICATED) + g_GameDll = CModule("r5apex.exe"); + g_RadVideoToolsDll = CModule("bink2w64.dll"); + g_RadAudioDecoderDll = CModule("binkawin64.dll"); + g_RadAudioSystemDll = CModule("mileswin64.dll"); +#if !defined (CLIENT_DLL) + g_SDKDll = CModule("gamesdk.dll"); +#else // This dll is loaded from 'bin/x64_retail//' + g_SDKDll = CModule("client.dll"); +#endif // !CLIENT_DLL +#else // No DirectX and Miles imports. + g_GameDll = CModule("r5apex_ds.exe"); + g_SDKDll = CModule("dedicated.dll"); +#endif // !DEDICATED + + // Setup logger callback sink. + g_CoreMsgVCallback = EngineLoggerSink; + + // Setup crash callback. + g_CrashHandler->SetCrashCallback(&Crash_Callback); +} + void SDK_Init() { if (strstr(GetCommandLineA(), "-launcher")) @@ -113,6 +146,7 @@ BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpReserved) { if (!s_bNoWorkerDll) { + Tier0_Init(); SDK_Init(); } else // Destroy crash handler. diff --git a/r5dev/core/init.cpp b/r5dev/core/init.cpp index 31487ab1..dc5e8161 100644 --- a/r5dev/core/init.cpp +++ b/r5dev/core/init.cpp @@ -18,19 +18,17 @@ #include "tier0/sigcache.h" #include "tier1/cmd.h" #include "tier1/cvar.h" -#include "tier1/binstream.h" #include "vpc/IAppSystem.h" #include "vpc/keyvalues.h" #include "vpc/rson.h" #include "vpc/interfaces.h" -#include "vstdlib/callback.h" -#include "vstdlib/completion.h" +#include "common/callback.h" +#include "common/completion.h" #include "vstdlib/keyvaluessystem.h" #include "common/opcodes.h" #include "common/netmessages.h" #include "launcher/prx.h" #include "launcher/launcher.h" -#include "launcher/IApplication.h" #include "filesystem/basefilesystem.h" #include "filesystem/filesystem.h" #include "datacache/mdlcache.h" @@ -49,13 +47,13 @@ #include "vgui/vgui_debugpanel.h" #include "vgui/vgui_fpspanel.h" #include "vguimatsurface/MatSystemSurface.h" -#include "client/vengineclient_impl.h" -#include "client/cdll_engine_int.h" +#include "engine/client/vengineclient_impl.h" +#include "engine/client/cdll_engine_int.h" #endif // !DEDICATED #ifndef CLIENT_DLL #include "engine/server/server.h" -#include "server/persistence.h" -#include "server/vengineserver_impl.h" +#include "engine/server/persistence.h" +#include "engine/server/vengineserver_impl.h" #endif // !CLIENT_DLL #include "studiorender/studiorendercontext.h" #include "rtech/rtech_game.h" @@ -186,7 +184,7 @@ void Systems_Init() spdlog::info("{:16s} '{:10.6f}' seconds ('{:12d}' clocks)\n", "Detour->Attach()", initTimer.GetDuration().GetSeconds(), initTimer.GetDuration().GetCycles()); spdlog::info("+-------------------------------------------------------------+\n"); - ConVar::StaticInit(); + ConVar_StaticInit(); } ////////////////////////////////////////////////////////////////////////// @@ -408,7 +406,6 @@ void DetourRegister() // Register detour classes to be searched and hooked. REGISTER(VLauncher); REGISTER(VAppSystemGroup); - REGISTER(VApplication); // FileSystem REGISTER(VBaseFileSystem); @@ -482,8 +479,16 @@ void DetourRegister() // Register detour classes to be searched and hooked. #endif // !DEDICATED // Engine - REGISTER(VTraceInit); REGISTER(VCommon); + + REGISTER(VSys_Dll); + REGISTER(VSys_Dll2); + REGISTER(VSys_Utils); + REGISTER(VEngine); + REGISTER(VEngineTrace); + REGISTER(VModelInfo); + + REGISTER(VTraceInit); REGISTER(VModel_BSP); REGISTER(VHost); REGISTER(VHostCmd); @@ -493,13 +498,6 @@ void DetourRegister() // Register detour classes to be searched and hooked. REGISTER(VNetChan); REGISTER(VNetworkStringTableContainer); - REGISTER(VSys_Dll); - REGISTER(VSys_Dll2); - REGISTER(VSys_Utils); - REGISTER(VEngine); - REGISTER(VEngineTrace); - REGISTER(VModelInfo); - REGISTER(VLocalize); #ifndef DEDICATED diff --git a/r5dev/core/logdef.cpp b/r5dev/core/logdef.cpp index 90894482..f6f08e8b 100644 --- a/r5dev/core/logdef.cpp +++ b/r5dev/core/logdef.cpp @@ -18,7 +18,8 @@ void SpdLog_Init(void) } #ifndef NETCONSOLE - g_LogSessionDirectory = fmt::format("platform\\logs\\{:s}", g_ProcessTimestamp); + g_LogSessionUUID = CreateUUID(); + g_LogSessionDirectory = fmt::format("platform\\logs\\{:s}", g_LogSessionUUID); /************************ * IMGUI LOGGER SETUP * ************************/ diff --git a/r5dev/core/logdef.h b/r5dev/core/logdef.h index a499007f..e77ac593 100644 --- a/r5dev/core/logdef.h +++ b/r5dev/core/logdef.h @@ -1,13 +1,21 @@ #pragma once +#include +#include "thirdparty/spdlog/spdlog.h" +#include "thirdparty/spdlog/async.h" +#include "thirdparty/spdlog/sinks/ostream_sink.h" +#include "thirdparty/spdlog/sinks/basic_file_sink.h" +#include "thirdparty/spdlog/sinks/stdout_sinks.h" +#include "thirdparty/spdlog/sinks/stdout_color_sinks.h" +#include "thirdparty/spdlog/sinks/ansicolor_sink.h" +#include "thirdparty/spdlog/sinks/rotating_file_sink.h" + constexpr int SPDLOG_MAX_SIZE = 10 * 1024 * 1024; // Sets number of bytes before rotating logger. constexpr int SPDLOG_NUM_FILE = 512; // Sets number of files to rotate to. inline bool g_bSpdLog_UseAnsiClr = false; inline bool g_bSpdLog_PostInit = false; -inline string g_LogSessionDirectory; - extern std::shared_ptr g_TermLogger; extern std::shared_ptr g_ImGuiLogger; diff --git a/r5dev/core/logger.cpp b/r5dev/core/logger.cpp new file mode 100644 index 00000000..d0bd2e6c --- /dev/null +++ b/r5dev/core/logger.cpp @@ -0,0 +1,318 @@ +#include "core/stdafx.h" +#include "tier0/utility.h" +#include "logdef.h" +#include "logger.h" +#ifndef DEDICATED +#include "vgui/vgui_debugpanel.h" +#include "gameui/IConsole.h" +#endif // !DEDICATED +#ifndef CLIENT_DLL +#include "engine/server/sv_rcon.h" +#endif // !CLIENT_DLL +#ifndef NETCONSOLE +#include "vscript/languages/squirrel_re/include/sqstdaux.h" +#endif // !NETCONSOLE +std::mutex g_LogMutex; + +#if !defined (DEDICATED) && !defined (NETCONSOLE) +ImVec4 CheckForWarnings(LogType_t type, eDLL_T context, const ImVec4& defaultCol) +{ + ImVec4 color = defaultCol; + if (type == LogType_t::LOG_WARNING || context == eDLL_T::SYSTEM_WARNING) + { + color = ImVec4(1.00f, 1.00f, 0.00f, 0.80f); + } + else if (type == LogType_t::LOG_ERROR || context == eDLL_T::SYSTEM_ERROR) + { + color = ImVec4(1.00f, 0.00f, 0.00f, 0.80f); + } + + return color; +} + +ImVec4 GetColorForContext(LogType_t type, eDLL_T context) +{ + switch (context) + { + case eDLL_T::SCRIPT_SERVER: + return CheckForWarnings(type, context, ImVec4(0.59f, 0.58f, 0.73f, 1.00f)); + case eDLL_T::SCRIPT_CLIENT: + return CheckForWarnings(type, context, ImVec4(0.59f, 0.58f, 0.63f, 1.00f)); + case eDLL_T::SCRIPT_UI: + return CheckForWarnings(type, context, ImVec4(0.59f, 0.48f, 0.53f, 1.00f)); + case eDLL_T::SERVER: + return CheckForWarnings(type, context, ImVec4(0.23f, 0.47f, 0.85f, 1.00f)); + case eDLL_T::CLIENT: + return CheckForWarnings(type, context, ImVec4(0.46f, 0.46f, 0.46f, 1.00f)); + case eDLL_T::UI: + return CheckForWarnings(type, context, ImVec4(0.59f, 0.35f, 0.46f, 1.00f)); + case eDLL_T::ENGINE: + return CheckForWarnings(type, context, ImVec4(0.70f, 0.70f, 0.70f, 1.00f)); + case eDLL_T::FS: + return CheckForWarnings(type, context, ImVec4(0.32f, 0.64f, 0.72f, 1.00f)); + case eDLL_T::RTECH: + return CheckForWarnings(type, context, ImVec4(0.36f, 0.70f, 0.35f, 1.00f)); + case eDLL_T::MS: + return CheckForWarnings(type, context, ImVec4(0.75f, 0.30f, 0.68f, 1.00f)); + case eDLL_T::AUDIO: + return CheckForWarnings(type, context, ImVec4(0.93f, 0.42f, 0.12f, 1.00f)); + case eDLL_T::VIDEO: + return CheckForWarnings(type, context, ImVec4(0.73f, 0.00f, 0.92f, 1.00f)); + case eDLL_T::NETCON: + return CheckForWarnings(type, context, ImVec4(0.81f, 0.81f, 0.81f, 1.00f)); + case eDLL_T::COMMON: + return CheckForWarnings(type, context, ImVec4(1.00f, 0.80f, 0.60f, 1.00f)); + default: + return CheckForWarnings(type, context, ImVec4(0.81f, 0.81f, 0.81f, 1.00f)); + } +} +#endif // !DEDICATED && !NETCONSOLE + +const char* GetContextNameByIndex(eDLL_T context, const bool ansiColor = false) +{ + int index = static_cast(context); + const char* contextName = s_DefaultAnsiColor; + + switch (context) + { + case eDLL_T::SCRIPT_SERVER: + contextName = s_ScriptAnsiColor[0]; + break; + case eDLL_T::SCRIPT_CLIENT: + contextName = s_ScriptAnsiColor[1]; + break; + case eDLL_T::SCRIPT_UI: + contextName = s_ScriptAnsiColor[2]; + break; + case eDLL_T::SERVER: + case eDLL_T::CLIENT: + case eDLL_T::UI: + case eDLL_T::ENGINE: + case eDLL_T::FS: + case eDLL_T::RTECH: + case eDLL_T::MS: + case eDLL_T::AUDIO: + case eDLL_T::VIDEO: + case eDLL_T::NETCON: + case eDLL_T::COMMON: + contextName = s_DllAnsiColor[index]; + break; + case eDLL_T::SYSTEM_WARNING: + case eDLL_T::SYSTEM_ERROR: + case eDLL_T::NONE: + default: + break; + } + + if (!ansiColor) + { + // Shift # chars to skip ANSI row. + contextName += sizeof(s_DefaultAnsiColor) - 1; + } + + return contextName; +} + +bool LoggedFromClient(eDLL_T context) +{ +#ifndef DEDICATED + return (context == eDLL_T::CLIENT || context == eDLL_T::SCRIPT_CLIENT + || context == eDLL_T::UI || context == eDLL_T::SCRIPT_UI + || context == eDLL_T::NETCON); +#else + NOTE_UNUSED(context); + return false; +#endif // !DEDICATED +} + +//----------------------------------------------------------------------------- +// Purpose: Show logs to all console interfaces (va_list version) +// Input : logType - +// logLevel - +// context - +// *pszLogger - +// *pszFormat - +// args - +// exitCode - +// *pszUptimeOverride - +//----------------------------------------------------------------------------- +void EngineLoggerSink(LogType_t logType, LogLevel_t logLevel, eDLL_T context, + const char* pszLogger, const char* pszFormat, va_list args, + const UINT exitCode /*= NO_ERROR*/, const char* pszUptimeOverride /*= nullptr*/) +{ + const char* pszUpTime = pszUptimeOverride ? pszUptimeOverride : Plat_GetProcessUpTime(); + string message = g_bSpdLog_PostInit ? pszUpTime : ""; + + const bool bToConsole = (logLevel >= LogLevel_t::LEVEL_CONSOLE); + const bool bUseColor = (bToConsole && g_bSpdLog_UseAnsiClr); + + const char* pszContext = GetContextNameByIndex(context, bUseColor); + message.append(pszContext); + +#if !defined (DEDICATED) && !defined (NETCONSOLE) + ImVec4 overlayColor = GetColorForContext(logType, context); + eDLL_T overlayContext = context; +#endif // !DEDICATED && !NETCONSOLE + +#if !defined (NETCONSOLE) + bool bSquirrel = false; + bool bWarning = false; + bool bError = false; +#else + NOTE_UNUSED(pszLogger); +#endif // !NETCONSOLE + + //------------------------------------------------------------------------- + // Setup logger and context + //------------------------------------------------------------------------- + switch (logType) + { + case LogType_t::LOG_WARNING: +#if !defined (DEDICATED) && !defined (NETCONSOLE) + overlayContext = eDLL_T::SYSTEM_WARNING; +#endif // !DEDICATED && !NETCONSOLE + if (bUseColor) + { + message.append(g_svYellowF); + } + break; + case LogType_t::LOG_ERROR: +#if !defined (DEDICATED) && !defined (NETCONSOLE) + overlayContext = eDLL_T::SYSTEM_ERROR; +#endif // !DEDICATED && !NETCONSOLE + if (bUseColor) + { + message.append(g_svRedF); + } + break; +#ifndef NETCONSOLE + case LogType_t::SQ_INFO: + bSquirrel = true; + break; + case LogType_t::SQ_WARNING: +#ifndef DEDICATED + overlayContext = eDLL_T::SYSTEM_WARNING; + overlayColor = ImVec4(1.00f, 1.00f, 0.00f, 0.80f); +#endif // !DEDICATED + bSquirrel = true; + bWarning = true; + break; +#endif // !NETCONSOLE + default: + break; + } + + //------------------------------------------------------------------------- + // Format actual input + //------------------------------------------------------------------------- + va_list argsCopy; + va_copy(argsCopy, args); + const string formatted = FormatV(pszFormat, argsCopy); + va_end(argsCopy); + +#ifndef NETCONSOLE + //------------------------------------------------------------------------- + // Colorize script warnings and errors + //------------------------------------------------------------------------- + if (bToConsole && bSquirrel) + { + if (bWarning && g_bSQAuxError) + { + if (formatted.find("SCRIPT ERROR:") != string::npos || + formatted.find(" -> ") != string::npos) + { + bError = true; + } + } + else if (g_bSQAuxBadLogic) + { + if (formatted.find("There was a problem processing game logic.") != string::npos) + { + bError = true; + g_bSQAuxBadLogic = false; + } + } + + // Append warning/error color before appending the formatted text, + // so that this gets marked as such while preserving context colors. + if (bError) + { +#ifndef DEDICATED + overlayContext = eDLL_T::SYSTEM_ERROR; + overlayColor = ImVec4(1.00f, 0.00f, 0.00f, 0.80f); +#endif // !DEDICATED + + if (bUseColor) + { + message.append(g_svRedF); + } + } + else if (bUseColor && bWarning) + { + message.append(g_svYellowF); + } + } +#endif // !NETCONSOLE + message.append(formatted); + + //------------------------------------------------------------------------- + // Emit to all interfaces + //------------------------------------------------------------------------- + std::lock_guard lock(g_LogMutex); + if (bToConsole) + { + g_TermLogger->debug(message); + + if (bUseColor) + { + // Remove ANSI rows before emitting to file or over wire. + message = std::regex_replace(message, s_AnsiRowRegex, ""); + } + } + +#ifndef NETCONSOLE + // Output is always logged to the file. + std::shared_ptr ntlogger = spdlog::get(pszLogger); // <-- Obtain by 'pszLogger'. + assert(ntlogger.get() != nullptr); + ntlogger->debug(message); + + if (bToConsole) + { +#ifndef CLIENT_DLL + if (!LoggedFromClient(context) && RCONServer()->ShouldSend(sv_rcon::response_t::SERVERDATA_RESPONSE_CONSOLE_LOG)) + { + RCONServer()->SendEncode(formatted.c_str(), pszUpTime, sv_rcon::response_t::SERVERDATA_RESPONSE_CONSOLE_LOG, + int(context), int(logType)); + } +#endif // !CLIENT_DLL +#ifndef DEDICATED + g_ImGuiLogger->debug(message); + + if (g_bSpdLog_PostInit) + { + g_pConsole->AddLog(ConLog_t(g_LogStream.str(), overlayColor)); + + if (logLevel >= LogLevel_t::LEVEL_NOTIFY) // Draw to mini console. + { + g_pOverlay->AddLog(overlayContext, g_LogStream.str()); + } + } +#endif // !DEDICATED + } + +#ifndef DEDICATED + g_LogStream.str(string()); + g_LogStream.clear(); +#endif // !DEDICATED + +#endif // !NETCONSOLE + + if (exitCode) // Terminate the process if an exit code was passed. + { + if (MessageBoxA(NULL, Format("%s- %s", pszUpTime, message.c_str()).c_str(), + "SDK Error", MB_ICONERROR | MB_OK)) + { + TerminateProcess(GetCurrentProcess(), exitCode); + } + } +} diff --git a/r5dev/core/logger.h b/r5dev/core/logger.h new file mode 100644 index 00000000..45983939 --- /dev/null +++ b/r5dev/core/logger.h @@ -0,0 +1,8 @@ +#ifndef LOGGER_H +#define LOGGER_H + +void EngineLoggerSink(LogType_t logType, LogLevel_t logLevel, eDLL_T context, + const char* pszLogger, const char* pszFormat, va_list args, + const UINT exitCode /*= NO_ERROR*/, const char* pszUptimeOverride /*= nullptr*/); + +#endif // LOGGER_H diff --git a/r5dev/core/shared_pch.h b/r5dev/core/shared_pch.h new file mode 100644 index 00000000..1279d240 --- /dev/null +++ b/r5dev/core/shared_pch.h @@ -0,0 +1,92 @@ +//===========================================================================// +// +// Purpose: Shared precompiled header file. +// +//===========================================================================// +#ifndef SHARED_PCH_H +#define SHARED_PCH_H + +#if defined(_DEBUG) || defined(_PROFILE) +#pragma message ("Profiling is turned on; do not release this binary!\n") +#endif // _DEBUG || _PROFILE + +#define WIN32_LEAN_AND_MEAN // Prevent winsock2 redefinition. +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +// Windows specifics, to support compiling the SDK with older versions of the Windows 10 SDK. +#ifndef FILE_SUPPORTS_GHOSTING +#define FILE_SUPPORTS_GHOSTING 0x40000000 // winnt +#endif +#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING +#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 +#endif + +// Thirdparty includes. +#include "thirdparty/detours/include/detours.h" +#include "thirdparty/detours/include/idetour.h" + +#include "thirdparty/lzham/include/lzham_assert.h" +#include "thirdparty/lzham/include/lzham_types.h" +#include "thirdparty/lzham/include/lzham.h" + +#include "thirdparty/curl/include/curl/curl.h" + +// Core includes. +#include "core/assert.h" +#include "core/termutil.h" + +// Common includes. +#include "common/experimental.h" +#include "common/pseudodefs.h" +#include "common/x86defs.h" +#include "common/sdkdefs.h" + +// Tier0 includes. +#include "tier0/utility.h" +#include "tier0/memaddr.h" +#include "tier0/module.h" +#include "tier0/basetypes.h" +#include "tier0/platform.h" +#include "tier0/annotations.h" +#include "tier0/commonmacros.h" +#include "tier0/memalloc.h" +#include "tier0/tier0_iface.h" +#include "tier0/dbg.h" + +#endif // SHARED_PCH_H diff --git a/r5dev/core/stdafx.h b/r5dev/core/stdafx.h index 510cb14f..b1b776c7 100644 --- a/r5dev/core/stdafx.h +++ b/r5dev/core/stdafx.h @@ -1,50 +1,5 @@ #pragma once -#if defined(_DEBUG) || defined(_PROFILE) -#pragma message ("Profiling is turned on; do not release this binary!\n") -#endif // _DEBUG || _PROFILE - -#define WIN32_LEAN_AND_MEAN // Prevent winsock2 redefinition. -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -// Windows specifics. -#ifndef FILE_SUPPORTS_GHOSTING -#define FILE_SUPPORTS_GHOSTING 0x40000000 // winnt -#endif -#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING -#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 -#endif +#include "shared_pch.h" #if !defined(DEDICATED) && !defined(SDKLAUNCHER) && !defined (NETCONSOLE) && !defined(PLUGINSDK) #include @@ -99,66 +54,6 @@ #include "thirdparty/curl/include/curl/curl.h" -#include "common/experimental.h" -#include "common/pseudodefs.h" -#include "common/x86defs.h" -#include "common/sdkdefs.h" - -#include "core/assert.h" -#include "core/termutil.h" -#include "tier0/memaddr.h" -#include "tier0/module.h" -#include "tier0/basetypes.h" -#include "tier0/platform.h" -#include "tier0/annotations.h" -#include "tier0/commonmacros.h" -#include "tier1/utility.h" -#if !defined(SDKLAUNCHER) && !defined(PLUGINSDK) -#include "tier0/dbg.h" -#endif // !SDKLAUNCHER && !NETCONSOLE && !PLUGINSDK - -#if !defined(SDKLAUNCHER) && !defined (NETCONSOLE) && !defined(PLUGINSDK) -#if !defined (DEDICATED) -inline CModule g_GameDll = CModule("r5apex.exe"); -inline CModule g_RadVideoToolsDll = CModule("bink2w64.dll"); -inline CModule g_RadAudioDecoderDll = CModule("binkawin64.dll"); -inline CModule g_RadAudioSystemDll = CModule("mileswin64.dll"); -#if !defined (CLIENT_DLL) -inline CModule g_SDKDll = CModule("gamesdk.dll"); -#else // This dll is loaded from 'bin/x64_retail//' -inline CModule g_SDKDll = CModule("client.dll"); -#endif // !CLIENT_DLL -#else // No DirectX and Miles imports. -inline CModule g_GameDll = CModule("r5apex_ds.exe"); -inline CModule g_SDKDll = CModule("dedicated.dll"); -#endif // !DEDICATED -inline const string g_ProcessTimestamp = CreateTimedFileName(); - -#define VAR_NAME(varName) #varName - -#define MEMBER_AT_OFFSET(varType, varName, offset) \ - varType& varName() \ - { \ - static int _##varName = offset; \ - return *(varType*)((std::uintptr_t)this + _##varName); \ - } - -template -ReturnType CallVFunc(int index, void* thisPtr, Args... args) -{ - return (*reinterpret_cast(thisPtr))[index](thisPtr, args...); -} - -inline void LogFunAdr(const char* szFun, uintptr_t nAdr) // Logging function addresses. -{ - spdlog::debug("| {:s}: {:42s}: {:#18x} |\n", "FUN", szFun, nAdr); -} -inline void LogVarAdr(const char* szVar, uintptr_t nAdr) // Logging variable addresses. -{ - spdlog::debug("| {:s}: {:42s}: {:#18x} |\n", "VAR", szVar, nAdr); -} -inline void LogConAdr(const char* szCon, uintptr_t nAdr) // Logging constant addresses. -{ - spdlog::debug("| {:s}: {:42s}: {:#18x} |\n", "CON", szCon, nAdr); -} -#endif // !SDKLAUNCHER && !NETCONSOLE && !PLUGINSDK \ No newline at end of file +#include "tier1/cvar.h" +#include "tier1/cmd.h" +#include "common/global.h" diff --git a/r5dev/core/termutil.cpp b/r5dev/core/termutil.cpp index f1b181d3..a4e88ba5 100644 --- a/r5dev/core/termutil.cpp +++ b/r5dev/core/termutil.cpp @@ -1,19 +1,19 @@ #include "core/stdafx.h" #include "core/termutil.h" -std::string g_svGreyF = ""; -std::string g_svRedF = ""; -std::string g_svGreenF = ""; -std::string g_svBlueF = ""; -std::string g_svYellowF = ""; +const char* g_svGreyF = ""; +const char* g_svRedF = ""; +const char* g_svGreenF = ""; +const char* g_svBlueF = ""; +const char* g_svYellowF = ""; -std::string g_svGreyB = ""; -std::string g_svRedB = ""; -std::string g_svGreenB = ""; -std::string g_svBlueB = ""; -std::string g_svYellowB = ""; +const char* g_svGreyB = ""; +const char* g_svRedB = ""; +const char* g_svGreenB = ""; +const char* g_svBlueB = ""; +const char* g_svYellowB = ""; -std::string g_svReset = ""; +const char* g_svReset = ""; std::string g_svCmdLine; diff --git a/r5dev/core/termutil.h b/r5dev/core/termutil.h index 324dbd96..cbd7cab0 100644 --- a/r5dev/core/termutil.h +++ b/r5dev/core/termutil.h @@ -1,17 +1,17 @@ #pragma once -extern std::string g_svGreyF; -extern std::string g_svRedF; -extern std::string g_svGreenF; -extern std::string g_svBlueF; -extern std::string g_svYellowF; +extern const char* g_svGreyF; +extern const char* g_svRedF; +extern const char* g_svGreenF; +extern const char* g_svBlueF; +extern const char* g_svYellowF; -extern std::string g_svGreyB; -extern std::string g_svRedB; -extern std::string g_svGreenB; -extern std::string g_svBlueB; -extern std::string g_svYellowB; +extern const char* g_svGreyB; +extern const char* g_svRedB; +extern const char* g_svGreenB; +extern const char* g_svBlueB; +extern const char* g_svYellowB; -extern std::string g_svReset; +extern const char* g_svReset; extern std::string g_svCmdLine; diff --git a/r5dev/datacache/CMakeLists.txt b/r5dev/datacache/CMakeLists.txt new file mode 100644 index 00000000..53726f62 --- /dev/null +++ b/r5dev/datacache/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( datacache ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "mdlcache.cpp" + "mdlcache.h" +) + +add_sources( SOURCE_GROUP "Public" + "${ENGINE_SOURCE_DIR}/public/datacache/idatacache.h" + "${ENGINE_SOURCE_DIR}/public/datacache/imdlcache.h" +) + +end_sources() + +target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/ebisusdk/CMakeLists.txt b/r5dev/ebisusdk/CMakeLists.txt new file mode 100644 index 00000000..a63a098a --- /dev/null +++ b/r5dev/ebisusdk/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( EbisuSDK ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Private" + "EbisuSDK.cpp" + "EbisuSDK.h" +) + +add_sources( SOURCE_GROUP "Public" + "${ENGINE_SOURCE_DIR}/public/ebisusdk/EbisuTypes.h" +) + +end_sources() + +target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/ebisusdk/EbisuSDK.h b/r5dev/ebisusdk/EbisuSDK.h index a5d42588..7db41a3c 100644 --- a/r5dev/ebisusdk/EbisuSDK.h +++ b/r5dev/ebisusdk/EbisuSDK.h @@ -1,5 +1,4 @@ #pragma once -#include "vstdlib/completion.h" //#ifdef DEDICATED inline CMemory p_EbisuSDK_Tier0_Init; diff --git a/r5dev/engine/CMakeLists.txt b/r5dev/engine/CMakeLists.txt new file mode 100644 index 00000000..fae36e4b --- /dev/null +++ b/r5dev/engine/CMakeLists.txt @@ -0,0 +1,173 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( engine ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Engine" + "clockdriftmgr.cpp" + "clockdriftmgr.h" + "cmd.cpp" + "cmd.h" + "common.cpp" + "common.h" +) + +add_sources( SOURCE_GROUP "Collision" + "enginetrace.cpp" + "enginetrace.h" + "traceinit.h" +) + +add_sources( SOURCE_GROUP "Debug" + "debugoverlay.cpp" + "debugoverlay.h" +) + +add_sources( SOURCE_GROUP "Render" + "gl_matsysiface.h" + "gl_model_private.h" + "gl_rmain.cpp" + "gl_rmain.h" + "gl_rsurf.cpp" + "gl_rsurf.h" + "gl_screen.cpp" + "gl_screen.h" + "matsys_interface.cpp" + "matsys_interface.h" +) + +add_sources( SOURCE_GROUP "Network" + "datablock.h" + "framesnapshot.h" + "net.cpp" + "net.h" + "net_chan.cpp" + "net_chan.h" + "networkstringtable.cpp" + "networkstringtable.h" + "packed_entity.h" + "staticpropmgr.cpp" + "staticpropmgr.h" +) + +add_sources( SOURCE_GROUP "Model" + "cmodel_bsp.cpp" + "cmodel_bsp.h" + "modelinfo.cpp" + "modelinfo.h" + "modelloader.cpp" + "modelloader.h" +) + +add_sources( SOURCE_GROUP "Host" + "host.cpp" + "host.h" + "host_cmd.cpp" + "host_cmd.h" + "host_state.cpp" + "host_state.h" +) + +add_sources( SOURCE_GROUP "System" + "sys_dll.cpp" + "sys_dll.h" + "sys_dll2.cpp" + "sys_dll2.h" + "sys_engine.cpp" + "sys_engine.h" + "sys_getmodes.cpp" + "sys_getmodes.h" + "sys_mainwind.cpp" + "sys_mainwind.h" + "sys_utils.cpp" + "sys_utils.h" + "sdk_dll.cpp" + "sdk_dll.h" +) + +add_sources( SOURCE_GROUP "Server" + "server/persistence.cpp" + "server/persistence.h" + "server/server.cpp" + "server/server.h" + "server/sv_main.cpp" + "server/sv_main.h" + "server/sv_rcon.cpp" + "server/sv_rcon.h" + "server/vengineserver_impl.cpp" + "server/vengineserver_impl.h" + "shared/base_rcon.cpp" + "shared/base_rcon.h" + "shared/shared_rcon.cpp" + "shared/shared_rcon.h" +) + +add_sources( SOURCE_GROUP "Client" + "client/cdll_engine_int.cpp" + "client/cdll_engine_int.h" + "client/cl_ents_parse.cpp" + "client/cl_ents_parse.h" + "client/cl_main.h" + "client/cl_rcon.cpp" + "client/cl_rcon.h" + "client/client.cpp" + "client/client.h" + "client/clientstate.cpp" + "client/clientstate.h" + "client/vengineclient_impl.cpp" + "client/vengineclient_impl.h" +) + +add_sources( SOURCE_GROUP "GameUI" + "${ENGINE_SOURCE_DIR}/gameui/IBrowser.cpp" + "${ENGINE_SOURCE_DIR}/gameui/IBrowser.h" + "${ENGINE_SOURCE_DIR}/gameui/IConsole.cpp" + "${ENGINE_SOURCE_DIR}/gameui/IConsole.h" +) + +add_sources( SOURCE_GROUP "Launcher" + "${ENGINE_SOURCE_DIR}/launcher/launcher.cpp" + "${ENGINE_SOURCE_DIR}/launcher/launcher.h" + "${ENGINE_SOURCE_DIR}/launcher/launcherdefs.h" + "${ENGINE_SOURCE_DIR}/launcher/prx.cpp" + "${ENGINE_SOURCE_DIR}/launcher/prx.h" +) + +add_sources( SOURCE_GROUP "Windows" + "${ENGINE_SOURCE_DIR}/windows/console.cpp" + "${ENGINE_SOURCE_DIR}/windows/console.h" + "${ENGINE_SOURCE_DIR}/windows/id3dx.cpp" + "${ENGINE_SOURCE_DIR}/windows/id3dx.h" + "${ENGINE_SOURCE_DIR}/windows/input.cpp" + "${ENGINE_SOURCE_DIR}/windows/input.h" + "${ENGINE_SOURCE_DIR}/windows/resource.cpp" + "${ENGINE_SOURCE_DIR}/windows/resource.h" + "${ENGINE_SOURCE_DIR}/windows/system.cpp" + "${ENGINE_SOURCE_DIR}/windows/system.h" +) + +add_sources( SOURCE_GROUP "Common" + "${ENGINE_SOURCE_DIR}/common/callback.cpp" + "${ENGINE_SOURCE_DIR}/common/callback.h" + "${ENGINE_SOURCE_DIR}/common/completion.cpp" + "${ENGINE_SOURCE_DIR}/common/completion.h" + "${ENGINE_SOURCE_DIR}/common/engine_launcher_api.h" + "${ENGINE_SOURCE_DIR}/common/experimental.h" + "${ENGINE_SOURCE_DIR}/common/global.cpp" + "${ENGINE_SOURCE_DIR}/common/global.h" + "${ENGINE_SOURCE_DIR}/common/igameserverdata.h" + "${ENGINE_SOURCE_DIR}/common/netmessages.cpp" + "${ENGINE_SOURCE_DIR}/common/netmessages.h" + "${ENGINE_SOURCE_DIR}/common/opcodes.cpp" + "${ENGINE_SOURCE_DIR}/common/opcodes.h" + "${ENGINE_SOURCE_DIR}/common/protocol.h" + "${ENGINE_SOURCE_DIR}/common/pseudodefs.h" + "${ENGINE_SOURCE_DIR}/common/qlimits.h" + "${ENGINE_SOURCE_DIR}/common/sdkdefs.h" + "${ENGINE_SOURCE_DIR}/common/x86defs.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/client/cdll_engine_int.cpp b/r5dev/engine/client/cdll_engine_int.cpp similarity index 95% rename from r5dev/client/cdll_engine_int.cpp rename to r5dev/engine/client/cdll_engine_int.cpp index f604cf52..5c771b2f 100644 --- a/r5dev/client/cdll_engine_int.cpp +++ b/r5dev/engine/client/cdll_engine_int.cpp @@ -7,12 +7,12 @@ /*****************************************************************************/ #include "tier1/cvar.h" #include "tier0/commandline.h" -#include "client/vengineclient_impl.h" -#include "client/cdll_engine_int.h" #include "engine/net_chan.h" #include "engine/client/cl_rcon.h" #include "networksystem/bansystem.h" #include "vpc/keyvalues.h" +#include "vengineclient_impl.h" +#include "cdll_engine_int.h" /*****************************************************************************/ #ifndef DEDICATED diff --git a/r5dev/client/cdll_engine_int.h b/r5dev/engine/client/cdll_engine_int.h similarity index 100% rename from r5dev/client/cdll_engine_int.h rename to r5dev/engine/client/cdll_engine_int.h diff --git a/r5dev/engine/client/clientstate.cpp b/r5dev/engine/client/clientstate.cpp index 0dbc615a..9c7643a9 100644 --- a/r5dev/engine/client/clientstate.cpp +++ b/r5dev/engine/client/clientstate.cpp @@ -9,9 +9,9 @@ // ///////////////////////////////////////////////////////////////////////////////// #include "core/stdafx.h" -#include "client/cdll_engine_int.h" #include "engine/host.h" -#include "engine/client/clientstate.h" +#include "clientstate.h" +#include "cdll_engine_int.h" //------------------------------------------------------------------------------ diff --git a/r5dev/client/vengineclient_impl.cpp b/r5dev/engine/client/vengineclient_impl.cpp similarity index 96% rename from r5dev/client/vengineclient_impl.cpp rename to r5dev/engine/client/vengineclient_impl.cpp index 0a530ffe..21a8e397 100644 --- a/r5dev/client/vengineclient_impl.cpp +++ b/r5dev/engine/client/vengineclient_impl.cpp @@ -5,8 +5,8 @@ //=============================================================================// #include "core/stdafx.h" -#include "client/vengineclient_impl.h" -#include "engine/client/clientstate.h" +#include "clientstate.h" +#include "vengineclient_impl.h" //--------------------------------------------------------------------------------- // Purpose: define if commands from the server should be restricted or not. diff --git a/r5dev/client/vengineclient_impl.h b/r5dev/engine/client/vengineclient_impl.h similarity index 100% rename from r5dev/client/vengineclient_impl.h rename to r5dev/engine/client/vengineclient_impl.h diff --git a/r5dev/engine/cmd.cpp b/r5dev/engine/cmd.cpp new file mode 100644 index 00000000..b4300e4e --- /dev/null +++ b/r5dev/engine/cmd.cpp @@ -0,0 +1,74 @@ +#include "core/stdafx.h" +#include "tier1/cmd.h" +#include "tier1/cvar.h" +#include "engine/cmd.h" + +//----------------------------------------------------------------------------- +// Purpose: Returns current player calling this function +// Output : ECommandTarget_t - +//----------------------------------------------------------------------------- +ECommandTarget_t Cbuf_GetCurrentPlayer(void) +{ + // Always returns 'CBUF_FIRST_PLAYER' in Respawn's code. + return ECommandTarget_t::CBUF_FIRST_PLAYER; +} + +//----------------------------------------------------------------------------- +// Purpose: Sends the entire command line over to the server +// Input : *args - +// Output : true on success, false otherwise +//----------------------------------------------------------------------------- +bool Cmd_ForwardToServer(const CCommand* args) +{ +#ifndef DEDICATED + // Client -> Server command throttling. + static double flForwardedCommandQuotaStartTime = -1; + static int nForwardedCommandQuotaCount = 0; + + // No command to forward. + if (args->ArgC() == 0) + return false; + + double flStartTime = Plat_FloatTime(); + int nCmdQuotaLimit = cl_quota_stringCmdsPerSecond->GetInt(); + const char* pszCmdString = nullptr; + + // Special case: "cmd whatever args..." is forwarded as "whatever args..."; + // in this case we strip "cmd" from the input. + if (Q_strcasecmp(args->Arg(0), "cmd") == 0) + pszCmdString = args->ArgS(); + else + pszCmdString = args->GetCommandString(); + + if (nCmdQuotaLimit) + { + if (flStartTime - flForwardedCommandQuotaStartTime >= 1.0) + { + flForwardedCommandQuotaStartTime = flStartTime; + nForwardedCommandQuotaCount = 0; + } + ++nForwardedCommandQuotaCount; + + if (nForwardedCommandQuotaCount > nCmdQuotaLimit) + { + // If we are over quota commands per second, dump this on the floor. + // If we spam the server with too many commands, it will kick us. + Warning(eDLL_T::CLIENT, "Command '%s' ignored (submission quota of '%d' per second exceeded!)\n", pszCmdString, nCmdQuotaLimit); + return false; + } + } + return v_Cmd_ForwardToServer(args); +#else // !DEDICATED + return false; // Client only. +#endif // DEDICATED +} + +/////////////////////////////////////////////////////////////////////////////// +void VCmd::Attach() const +{ + DetourAttach((LPVOID*)&v_Cmd_ForwardToServer, &Cmd_ForwardToServer); +} +void VCmd::Detach() const +{ + DetourDetach((LPVOID*)&v_Cmd_ForwardToServer, &Cmd_ForwardToServer); +} diff --git a/r5dev/engine/cmd.h b/r5dev/engine/cmd.h new file mode 100644 index 00000000..26f93158 --- /dev/null +++ b/r5dev/engine/cmd.h @@ -0,0 +1,41 @@ +#ifndef CMD_H +#define CMD_H + +ECommandTarget_t Cbuf_GetCurrentPlayer(void); + +/* ==== COMMAND_BUFFER ================================================================================================================================================== */ +inline CMemory p_Cbuf_AddText; +inline auto Cbuf_AddText = p_Cbuf_AddText.RCast(); + +inline CMemory p_Cbuf_Execute; +inline auto Cbuf_Execute = p_Cbuf_Execute.RCast(); + +inline CMemory p_Cmd_ForwardToServer; +inline auto v_Cmd_ForwardToServer = p_Cmd_ForwardToServer.RCast(); + +/////////////////////////////////////////////////////////////////////////////// +class VCmd : public IDetour +{ + virtual void GetAdr(void) const + { + LogFunAdr("Cbuf_AddText", p_Cbuf_AddText.GetPtr()); + LogFunAdr("Cbuf_Execute", p_Cbuf_Execute.GetPtr()); + LogFunAdr("Cmd_ForwardToServer", p_Cmd_ForwardToServer.GetPtr()); + } + virtual void GetFun(void) const + { + p_Cbuf_AddText = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 48 63 D9 41 8B F8 48 8D 0D ?? ?? ?? ?? 48 8B F2 FF 15 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 41 B9 ?? ?? ?? ??"); + p_Cbuf_Execute = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 FF 15 ?? ?? ?? ??"); + p_Cmd_ForwardToServer = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 81 EC ?? ?? ?? ?? 44 8B 59 04"); + + Cbuf_AddText = p_Cbuf_AddText.RCast(); /*48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 48 63 D9 41 8B F8 48 8D 0D ?? ?? ?? ?? 48 8B F2 FF 15 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 41 B9 ?? ?? ?? ??*/ + Cbuf_Execute = p_Cbuf_Execute.RCast(); /*48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 FF 15 ?? ?? ?? ??*/ + v_Cmd_ForwardToServer = p_Cmd_ForwardToServer.RCast(); /*48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 81 EC ?? ?? ?? ?? 44 8B 59 04*/ + } + virtual void GetVar(void) const { } + virtual void GetCon(void) const { } + virtual void Attach(void) const; + virtual void Detach(void) const; +}; + +#endif // CMD_H diff --git a/r5dev/engine/host_cmd.h b/r5dev/engine/host_cmd.h index 8322c050..3e6337ec 100644 --- a/r5dev/engine/host_cmd.h +++ b/r5dev/engine/host_cmd.h @@ -1,6 +1,6 @@ #pragma once #include "tier1/cmd.h" -#include "launcher/IApplication.h" +#include "sys_dll.h" //------------------------------------------------------------------------------------- // Forward declarations diff --git a/r5dev/engine/host_state.cpp b/r5dev/engine/host_state.cpp index 0147a786..ef12067c 100644 --- a/r5dev/engine/host_state.cpp +++ b/r5dev/engine/host_state.cpp @@ -10,7 +10,6 @@ #include "tier0/jobthread.h" #include "tier0/commandline.h" #include "tier0/fasttimer.h" -#include "tier1/cmd.h" #include "tier1/cvar.h" #include "tier1/NetAdr.h" #include "tier2/socketcreator.h" @@ -24,6 +23,7 @@ #include "engine/client/cl_main.h" #include "engine/client/clientstate.h" #endif // DEDICATED +#include "engine/cmd.h" #include "engine/net.h" #include "engine/gl_screen.h" #include "engine/host.h" @@ -210,7 +210,7 @@ void CHostState::Setup(void) #ifndef CLIENT_DLL g_pBanSystem->Load(); #endif // !CLIENT_DLL - ConVar::PurgeHostNames(); + ConVar_PurgeHostNames(); #ifndef CLIENT_DLL RCONServer()->Init(); diff --git a/r5dev/engine/net.cpp b/r5dev/engine/net.cpp index 36686c84..ad54d607 100644 --- a/r5dev/engine/net.cpp +++ b/r5dev/engine/net.cpp @@ -7,18 +7,16 @@ #include "core/stdafx.h" #include "engine/net.h" #ifndef NETCONSOLE -#include "core/logdef.h" #include "tier0/frametask.h" #include "tier1/cvar.h" #include "vpc/keyvalues.h" -#include "vstdlib/callback.h" #include "mathlib/color.h" -#include "engine/net.h" -#include "engine/net_chan.h" -#include "vpc/keyvalues.h" +#include "common/callback.h" +#include "net.h" +#include "net_chan.h" #ifndef CLIENT_DLL -#include "engine/server/server.h" -#include "engine/client/client.h" +#include "server/server.h" +#include "client/client.h" #endif // !CLIENT_DLL #endif // !NETCONSOLE @@ -98,7 +96,7 @@ void NET_SetKey(const string& svNetKey) v_NET_SetKey(g_pNetKey, svTokenizedKey.c_str()); DevMsg(eDLL_T::ENGINE, "Installed NetKey: %s'%s%s%s'\n", - g_svReset.c_str(), g_svGreyB.c_str(), g_pNetKey->GetBase64NetKey(), g_svReset.c_str()); + g_svReset, g_svGreyB, g_pNetKey->GetBase64NetKey(), g_svReset); } else { diff --git a/r5dev/engine/sdk_dll.cpp b/r5dev/engine/sdk_dll.cpp index 4255d07f..7d858922 100644 --- a/r5dev/engine/sdk_dll.cpp +++ b/r5dev/engine/sdk_dll.cpp @@ -6,7 +6,6 @@ #include "core/stdafx.h" #include "tier1/cvar.h" -#include "tier1/utility.h" #include "engine/sdk_dll.h" #ifndef DEDICATED #include "gameui/IBrowser.h" diff --git a/r5dev/server/persistence.cpp b/r5dev/engine/server/persistence.cpp similarity index 88% rename from r5dev/server/persistence.cpp rename to r5dev/engine/server/persistence.cpp index c7ec5459..93f52b49 100644 --- a/r5dev/server/persistence.cpp +++ b/r5dev/engine/server/persistence.cpp @@ -1,6 +1,6 @@ #include "core/stdafx.h" -#include "server/vengineserver_impl.h" -#include "server/persistence.h" +#include "vengineserver_impl.h" +#include "persistence.h" #if defined (GAMEDLL_S0) || defined (GAMEDLL_S1) bool Persistence_SetXP(int a1, int* a2) diff --git a/r5dev/server/persistence.h b/r5dev/engine/server/persistence.h similarity index 100% rename from r5dev/server/persistence.h rename to r5dev/engine/server/persistence.h diff --git a/r5dev/engine/server/server.h b/r5dev/engine/server/server.h index 5483128c..e02ace8c 100644 --- a/r5dev/engine/server/server.h +++ b/r5dev/engine/server/server.h @@ -5,7 +5,7 @@ #include "engine/networkstringtable.h" #include "public/iserver.h" #ifndef CLIENT_DLL -#include "server/vengineserver_impl.h" +#include "vengineserver_impl.h" #endif // !CLIENT_DLL enum class server_state_t diff --git a/r5dev/engine/server/sv_rcon.cpp b/r5dev/engine/server/sv_rcon.cpp index fbb60934..819b8567 100644 --- a/r5dev/engine/server/sv_rcon.cpp +++ b/r5dev/engine/server/sv_rcon.cpp @@ -5,10 +5,10 @@ //===========================================================================// #include "core/stdafx.h" -#include "tier1/cmd.h" #include "tier1/cvar.h" #include "tier1/NetAdr.h" #include "tier2/socketcreator.h" +#include "engine/cmd.h" #include "engine/net.h" #include "engine/server/sv_rcon.h" #include "protoc/sv_rcon.pb.h" diff --git a/r5dev/server/vengineserver_impl.cpp b/r5dev/engine/server/vengineserver_impl.cpp similarity index 97% rename from r5dev/server/vengineserver_impl.cpp rename to r5dev/engine/server/vengineserver_impl.cpp index f6feb7a3..8c4e768f 100644 --- a/r5dev/server/vengineserver_impl.cpp +++ b/r5dev/engine/server/vengineserver_impl.cpp @@ -8,7 +8,7 @@ #include "tier1/cvar.h" #include "common/protocol.h" #include "engine/client/client.h" -#include "server/vengineserver_impl.h" +#include "vengineserver_impl.h" //----------------------------------------------------------------------------- // Purpose: sets the persistence var in the CClient instance to 'ready' diff --git a/r5dev/server/vengineserver_impl.h b/r5dev/engine/server/vengineserver_impl.h similarity index 100% rename from r5dev/server/vengineserver_impl.h rename to r5dev/engine/server/vengineserver_impl.h diff --git a/r5dev/engine/sys_dll.cpp b/r5dev/engine/sys_dll.cpp index 68b56a53..ada0d51c 100644 --- a/r5dev/engine/sys_dll.cpp +++ b/r5dev/engine/sys_dll.cpp @@ -1,6 +1,167 @@ +//=============================================================================// +// +// Purpose: IApplication methods +// +//=============================================================================// + #include "core/stdafx.h" +#include "tier0/frametask.h" +#include "tier0/commandline.h" +#include "tier1/cvar.h" +#include "vpc/interfaces.h" +#include "common/engine_launcher_api.h" +#include "pluginsystem/pluginsystem.h" +#include "pluginsystem/modsystem.h" +#include "ebisusdk/EbisuSDK.h" +#include "engine/cmodel_bsp.h" +#include "engine/sys_engine.h" +#include "engine/sys_dll2.h" +#include "engine/sdk_dll.h" +#include "engine/host_cmd.h" +#include "engine/enginetrace.h" +#ifndef CLIENT_DLL +#include "engine/server/sv_main.h" +#include "server/vengineserver_impl.h" +#include "game/server/gameinterface.h" +#endif // !CLIENT_DLL +#ifndef DEDICATED +#include "client/cdll_engine_int.h" +#include "game/client/cliententitylist.h" +#include "gameui/IConsole.h" +#include "windows/id3dx.h" +#include "windows/input.h" +#endif // !DEDICATED +#include "public/idebugoverlay.h" +#include "vstdlib/keyvaluessystem.h" #include "engine/sys_dll.h" +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +bool CSourceAppSystemGroup::StaticPreInit(CSourceAppSystemGroup* pSourceAppSystemGroup) +{ + if (pSourceAppSystemGroup->GetCurrentStage() == CSourceAppSystemGroup::CREATION) + { + ConVar_InitShipped(); + ConVar_PurgeShipped(); + ConCommand_StaticInit(); + ConCommand_InitShipped(); + ConCommand_PurgeShipped(); + } + + return CSourceAppSystemGroup__PreInit(pSourceAppSystemGroup); +} + + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +bool CSourceAppSystemGroup::StaticCreate(CSourceAppSystemGroup* pSourceAppSystemGroup) +{ + return CSourceAppSystemGroup__Create(pSourceAppSystemGroup); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +int CModAppSystemGroup::StaticMain(CModAppSystemGroup* pModAppSystemGroup) +{ + std::thread fixed(&CEngineSDK::FixedFrame, g_EngineSDK); + fixed.detach(); + + int nRunResult = RUN_OK; + HEbisuSDK_Init(); // Not here in retail. We init EbisuSDK here though. + +#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1) // !TODO: rebuild does not work for S1 (CModAppSystemGroup and CEngine member offsets do align with all other builds). + return CModAppSystemGroup_Main(pModAppSystemGroup); +#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3) + + g_pEngine->SetQuitting(IEngine::QUIT_NOTQUITTING); + if (g_pEngine->Load(pModAppSystemGroup->IsServerOnly(), g_pEngineParms->baseDirectory)) + { + if (CEngineAPI_MainLoop()) + { + nRunResult = RUN_RESTART; + } + g_pEngine->Unload(); + +#ifndef CLIENT_DLL + SV_ShutdownGameDLL(); +#endif // !CLIENT_DLL + } + return nRunResult; +#endif +} + +//----------------------------------------------------------------------------- +// Purpose: Instantiate all main libraries +//----------------------------------------------------------------------------- +bool CModAppSystemGroup::StaticCreate(CModAppSystemGroup* pModAppSystemGroup) +{ +#ifdef DEDICATED + pModAppSystemGroup->SetServerOnly(); + *m_bIsDedicated = true; +#endif // DEDICATED + g_pFactory->GetFactoriesFromRegister(); + g_pFactory->AddFactory(FACTORY_INTERFACE_VERSION, g_pFactory); + g_pFactory->AddFactory(INTERFACEVERSION_PLUGINSYSTEM, g_pPluginSystem); + g_pFactory->AddFactory(KEYVALUESSYSTEM_INTERFACE_VERSION, g_pKeyValuesSystem); + + //InitPluginSystem(pModAppSystemGroup); + //CALL_PLUGIN_CALLBACKS(g_pPluginSystem->GetCreateCallbacks(), pModAppSystemGroup); + + g_pModSystem->Init(); + + g_pDebugOverlay = g_pFactory->GetFactoryPtr(VDEBUG_OVERLAY_INTERFACE_VERSION, false).RCast(); +#ifndef CLIENT_DLL + g_pServerGameDLL = g_pFactory->GetFactoryPtr(INTERFACEVERSION_SERVERGAMEDLL, false).RCast(); + g_pServerGameClients = g_pFactory->GetFactoryPtr(INTERFACEVERSION_SERVERGAMECLIENTS_NEW, false).RCast(); + if (!g_pServerGameClients) + g_pServerGameClients = g_pFactory->GetFactoryPtr(INTERFACEVERSION_SERVERGAMECLIENTS, false).RCast(); + g_pServerGameEntities = g_pFactory->GetFactoryPtr(INTERFACEVERSION_SERVERGAMEENTS, false).RCast(); + +#endif // !CLIENT_DLL +#ifndef DEDICATED + g_pClientEntityList = g_pFactory->GetFactoryPtr(VCLIENTENTITYLIST_INTERFACE_VERSION, false).RCast(); + g_pEngineTraceClient = g_pFactory->GetFactoryPtr(INTERFACEVERSION_ENGINETRACE_CLIENT, false).RCast(); + + g_pImGuiConfig->Load(); // Load ImGui configs. + for (auto& map : g_pCVar->DumpToMap()) + { + g_pConsole->m_vsvCommandBases.push_back( + CSuggest(map.first, map.second->GetFlags())); + } + + DirectX_Init(); + +#endif // !DEDICATED + if (CommandLine()->CheckParm("-devsdk")) + { + cv->EnableDevCvars(); + } + + g_FrameTasks.push_back(std::move(g_TaskScheduler)); + g_bAppSystemInit = true; + + return CModAppSystemGroup_Create(pModAppSystemGroup); +} + +//----------------------------------------------------------------------------- +// Purpose: Initialize plugin system +//----------------------------------------------------------------------------- +void CModAppSystemGroup::InitPluginSystem(CModAppSystemGroup* pModAppSystemGroup) +{ + // DEBUG CODE FOR PLUGINS + g_pPluginSystem->PluginSystem_Init(); + for (auto& it : g_pPluginSystem->GetPluginInstances()) + { + if (g_pPluginSystem->LoadPluginInstance(it)) + DevMsg(eDLL_T::ENGINE, "Loaded plugin: '%s'\n", it.m_svPluginName.c_str()); + else + Warning(eDLL_T::ENGINE, "Failed loading plugin: '%s'\n", it.m_svPluginName.c_str()); + } +} + //----------------------------------------------------------------------------- // Sys_Error_Internal // @@ -19,10 +180,22 @@ int HSys_Error_Internal(char* fmt, va_list args) void VSys_Dll::Attach() const { + DetourAttach((LPVOID*)&CSourceAppSystemGroup__PreInit, &CSourceAppSystemGroup::StaticPreInit); + DetourAttach((LPVOID*)&CSourceAppSystemGroup__Create, &CSourceAppSystemGroup::StaticCreate); + + DetourAttach((LPVOID*)&CModAppSystemGroup_Main, &CModAppSystemGroup::StaticMain); + DetourAttach((LPVOID*)&CModAppSystemGroup_Create, &CModAppSystemGroup::StaticCreate); + DetourAttach(&Sys_Error_Internal, &HSys_Error_Internal); } void VSys_Dll::Detach() const { + DetourDetach((LPVOID*)&CSourceAppSystemGroup__PreInit, &CSourceAppSystemGroup::StaticPreInit); + DetourDetach((LPVOID*)&CSourceAppSystemGroup__Create, &CSourceAppSystemGroup::StaticCreate); + + DetourDetach((LPVOID*)&CModAppSystemGroup_Main, &CModAppSystemGroup::StaticMain); + DetourDetach((LPVOID*)&CModAppSystemGroup_Create, &CModAppSystemGroup::StaticCreate); + DetourDetach(&Sys_Error_Internal, &HSys_Error_Internal); } diff --git a/r5dev/engine/sys_dll.h b/r5dev/engine/sys_dll.h index 165037d9..9438d73b 100644 --- a/r5dev/engine/sys_dll.h +++ b/r5dev/engine/sys_dll.h @@ -1,5 +1,58 @@ #pragma once #include "engine/common.h" +#include "public/appframework/IAppSystem.h" +#include "public/appframework/IAppSystemGroup.h" + +//------------------------------------------------------------------------- +// +//------------------------------------------------------------------------- +class CSourceAppSystemGroup : public CAppSystemGroup +{ +public: + static bool StaticPreInit(CSourceAppSystemGroup* pSourceAppSystemGroup); + static bool StaticCreate(CSourceAppSystemGroup* pSourceAppSystemGroup); + +private: + CFileSystem_Stdio* m_pFileSystem; +}; + +//------------------------------------------------------------------------- +// +//------------------------------------------------------------------------- +class CModAppSystemGroup : public CAppSystemGroup +{ +public: + static int StaticMain(CModAppSystemGroup* pModAppSystemGroup); + static bool StaticCreate(CModAppSystemGroup* pModAppSystemGroup); + static void InitPluginSystem(CModAppSystemGroup* pModAppSystemGroup); + + bool IsServerOnly(void) const + { + return m_bServerOnly; + } + void SetServerOnly(void) + { + m_bServerOnly = true; + } + +private: + bool m_bServerOnly; +}; + +/* ==== CAPPSYSTEMGROUP ================================================================================================================================================= */ +inline CMemory p_CModAppSystemGroup_Main; +inline auto CModAppSystemGroup_Main = p_CModAppSystemGroup_Main.RCast(); + +inline CMemory p_CModAppSystemGroup_Create; +inline auto CModAppSystemGroup_Create = p_CModAppSystemGroup_Create.RCast(); + +inline CMemory p_CSourceAppSystemGroup__PreInit; +inline auto CSourceAppSystemGroup__PreInit = p_CSourceAppSystemGroup__PreInit.RCast(); + +inline CMemory p_CSourceAppSystemGroup__Create; +inline auto CSourceAppSystemGroup__Create = p_CSourceAppSystemGroup__Create.RCast(); + +inline bool g_bAppSystemInit = false; /* ==== UTILITY ========================================================================================================================================================= */ inline CMemory p_Sys_Error_Internal; @@ -15,13 +68,35 @@ class VSys_Dll : public IDetour { virtual void GetAdr(void) const { + LogFunAdr("CModAppSystemGroup::Main", p_CModAppSystemGroup_Main.GetPtr()); + LogFunAdr("CModAppSystemGroup::Create", p_CModAppSystemGroup_Create.GetPtr()); + LogFunAdr("CSourceAppSystemGroup::PreInit", p_CSourceAppSystemGroup__PreInit.GetPtr()); + LogFunAdr("CSourceAppSystemGroup::Create", p_CSourceAppSystemGroup__Create.GetPtr()); LogFunAdr("Sys_Error_Internal", p_Sys_Error_Internal.GetPtr()); LogVarAdr("gfExtendedError", reinterpret_cast(gfExtendedError)); } virtual void GetFun(void) const { +#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1) + p_CModAppSystemGroup_Main = g_GameDll.FindPatternSIMD("48 83 EC 28 80 B9 ?? ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ??"); + p_CModAppSystemGroup_Create = g_GameDll.FindPatternSIMD("48 8B C4 57 41 54 41 55 41 56 41 57 48 83 EC 60 48 C7 40 ?? ?? ?? ?? ?? 48 89 58 08"); + + p_CSourceAppSystemGroup__Create = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 48 8B F9 E8 ?? ?? ?? ?? 33 C9"); +#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3) + p_CModAppSystemGroup_Main = g_GameDll.FindPatternSIMD("40 53 48 83 EC 20 80 B9 ?? ?? ?? ?? ?? BB ?? ?? ?? ??"); + p_CModAppSystemGroup_Create = g_GameDll.FindPatternSIMD("48 8B C4 55 41 54 41 55 41 56 41 57 48 8B EC 48 83 EC 60"); + + p_CSourceAppSystemGroup__Create = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 48 8B F9 E8 ?? ?? ?? ?? 33 C9"); +#endif + p_CSourceAppSystemGroup__PreInit = g_GameDll.FindPatternSIMD("48 89 74 24 ?? 55 48 8D AC 24 ?? ?? ?? ?? 48 81 EC ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ??"); + + CModAppSystemGroup_Main = p_CModAppSystemGroup_Main.RCast(); + CModAppSystemGroup_Create = p_CModAppSystemGroup_Create.RCast(); + CSourceAppSystemGroup__PreInit = p_CSourceAppSystemGroup__PreInit.RCast(); + CSourceAppSystemGroup__Create = p_CSourceAppSystemGroup__Create.RCast(); + p_Sys_Error_Internal = g_GameDll.FindPatternSIMD("48 89 5C 24 08 48 89 74 24 10 57 48 81 EC 30 08 ?? ?? 48 8B DA 48 8B F9 E8 ?? ?? ?? FF 33 F6 48"); - Sys_Error_Internal = p_Sys_Error_Internal.RCast(); /*48 89 5C 24 08 48 89 74 24 10 57 48 81 EC 30 08 00 00 48 8B DA 48 8B F9 E8 ?? ?? ?? FF 33 F6 48*/ + Sys_Error_Internal = p_Sys_Error_Internal.RCast(); } virtual void GetVar(void) const { diff --git a/r5dev/engine/sys_dll2.h b/r5dev/engine/sys_dll2.h index fbca1d85..f6ee9d02 100644 --- a/r5dev/engine/sys_dll2.h +++ b/r5dev/engine/sys_dll2.h @@ -1,6 +1,6 @@ #pragma once #include "vpc/interfaces.h" -#include "appframework/engine_launcher_api.h" +#include "common/engine_launcher_api.h" class CEngineAPI : public IEngineAPI { diff --git a/r5dev/engine/sys_engine.h b/r5dev/engine/sys_engine.h index a9ded7a8..e73f8da4 100644 --- a/r5dev/engine/sys_engine.h +++ b/r5dev/engine/sys_engine.h @@ -1,5 +1,4 @@ #pragma once -#include #include class CEngine : public IEngine diff --git a/r5dev/engine/sys_utils.cpp b/r5dev/engine/sys_utils.cpp index 3da6ccfc..674236c8 100644 --- a/r5dev/engine/sys_utils.cpp +++ b/r5dev/engine/sys_utils.cpp @@ -5,7 +5,6 @@ //=============================================================================// #include "core/stdafx.h" -#include "core/logdef.h" #include "tier0/commandline.h" #include "tier1/cvar.h" #include "engine/sys_utils.h" diff --git a/r5dev/engine/sys_utils.h b/r5dev/engine/sys_utils.h index d0ff7d7e..99d9c18c 100644 --- a/r5dev/engine/sys_utils.h +++ b/r5dev/engine/sys_utils.h @@ -2,10 +2,10 @@ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// inline CMemory p_Error; -inline auto v_Error = p_Error.RCast(); +inline auto v_Error = p_Error.RCast(); inline CMemory p_Warning; -inline auto v_Warning = p_Warning.RCast(); +inline auto v_Warning = p_Warning.RCast(); inline CMemory p_Sys_GetProcessUpTime; inline auto v_Sys_GetProcessUpTime = p_Sys_GetProcessUpTime.RCast(); @@ -38,11 +38,11 @@ class VSys_Utils : public IDetour #ifndef DEDICATED p_Con_NPrintf = g_GameDll.FindPatternSIMD("48 89 4C 24 ?? 48 89 54 24 ?? 4C 89 44 24 ?? 4C 89 4C 24 ?? C3"); #endif // !DEDICATED - v_Error = p_Error.RCast(); /*48 89 4C 24 08 48 89 54 24 10 4C 89 44 24 18 4C 89 4C 24 20 53 55 41 54 41 56 B8 58 10 00 00 E8*/ - v_Warning = p_Warning.RCast(); /*48 89 54 24 ?? 4C 89 44 24 ?? 4C 89 4C 24 ?? 48 83 EC 28 4C 8D 44 24 ?? E8 ?? ?? ?? ?? 48 83 C4 28 C3 CC CC CC CC CC CC CC CC CC CC CC CC CC CC 48 89 5C 24 ?? 48 89 74 24 ?? 48 89 7C 24 ?? 8B 05 ?? ?? ?? ??*/ - v_Sys_GetProcessUpTime = p_Sys_GetProcessUpTime.RCast(); /*40 57 48 83 EC 30 48 8B F9 8B 0D ?? ?? ?? ??*/ + v_Error = p_Error.RCast(); + v_Warning = p_Warning.RCast(); + v_Sys_GetProcessUpTime = p_Sys_GetProcessUpTime.RCast(); #ifndef DEDICATED - v_Con_NPrintf = p_Con_NPrintf.RCast(); /*48 89 4C 24 ?? 48 89 54 24 ?? 4C 89 44 24 ?? 4C 89 4C 24 ?? C3*/ + v_Con_NPrintf = p_Con_NPrintf.RCast(); #endif // !DEDICATED } virtual void GetVar(void) const { } diff --git a/r5dev/filesystem/CMakeLists.txt b/r5dev/filesystem/CMakeLists.txt new file mode 100644 index 00000000..32ae48ac --- /dev/null +++ b/r5dev/filesystem/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( filesystem ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Private" + "basefilesystem.cpp" + "basefilesystem.h" + "filesystem.cpp" + "filesystem.h" +) + +add_sources( SOURCE_GROUP "Public" + "${ENGINE_SOURCE_DIR}/public/ifile.h" + "${ENGINE_SOURCE_DIR}/public/ifilesystem.h" +) + +end_sources() + +target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/filesystem/basefilesystem.cpp b/r5dev/filesystem/basefilesystem.cpp index 9c021f32..96b70747 100644 --- a/r5dev/filesystem/basefilesystem.cpp +++ b/r5dev/filesystem/basefilesystem.cpp @@ -1,11 +1,7 @@ #include "core/stdafx.h" -#include "core/logdef.h" #include "tier1/cvar.h" #include "filesystem/basefilesystem.h" #include "filesystem/filesystem.h" -#ifndef DEDICATED -#include "gameui/IConsole.h" -#endif // !DEDICATED //--------------------------------------------------------------------------------- // Purpose: prints the output of the filesystem based on the warning level diff --git a/r5dev/game/CMakeLists.txt b/r5dev/game/CMakeLists.txt new file mode 100644 index 00000000..3ecfd590 --- /dev/null +++ b/r5dev/game/CMakeLists.txt @@ -0,0 +1,79 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( gamedll ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Shared" + "shared/ai_utility_shared.cpp" + "shared/ai_utility_shared.h" + "shared/animation.cpp" + "shared/animation.h" + "shared/collisionproperty.cpp" + "shared/collisionproperty.h" + "shared/ehandle.h" + "shared/entitylist_base.cpp" + "shared/entitylist_base.h" + "shared/imovehelper.h" + "shared/playernet_vars.h" + "shared/predictioncopy.h" + "shared/shared_classnames.h" + "shared/shareddefs.h" + "shared/takedamageinfo.h" + "shared/usercmd.h" + "shared/util_shared.cpp" + "shared/util_shared.h" + "shared/vscript_shared.cpp" + "shared/vscript_shared.h" +) + +add_sources( SOURCE_GROUP "Server" + "server/ai_network.cpp" + "server/ai_network.h" + "server/ai_networkmanager.cpp" + "server/ai_networkmanager.h" + "server/ai_node.h" + "server/ai_utility.cpp" + "server/ai_utility.h" + "server/baseanimating.cpp" + "server/baseanimating.h" + "server/baseanimatingoverlay.h" + "server/basecombatcharacter.h" + "server/baseentity.cpp" + "server/baseentity.h" + "server/detour_impl.h" + "server/entitylist.cpp" + "server/entitylist.h" + "server/fairfight_impl.h" + "server/gameinterface.cpp" + "server/gameinterface.h" + "server/movehelper_server.cpp" + "server/movehelper_server.h" + "server/networkproperty.cpp" + "server/networkproperty.h" + "server/physics_main.cpp" + "server/physics_main.h" + "server/player.cpp" + "server/player.h" + "server/playerlocaldata.h" +) + +add_sources( SOURCE_GROUP "Client" + "client/c_baseentity.cpp" + "client/c_baseentity.h" + "client/c_baseplayer.h" + "client/cliententitylist.h" + "client/enginesprite.h" + "client/hud.h" + "client/movehelper_client.cpp" + "client/movehelper_client.h" + "client/spritemodel.cpp" + "client/viewrender.cpp" + "client/viewrender.h" +) + +end_sources() + +target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/game/server/ai_networkmanager.cpp b/r5dev/game/server/ai_networkmanager.cpp index bd233c30..ca51deff 100644 --- a/r5dev/game/server/ai_networkmanager.cpp +++ b/r5dev/game/server/ai_networkmanager.cpp @@ -8,7 +8,6 @@ #include "tier0/fasttimer.h" #include "tier1/cvar.h" #include "tier1/cmd.h" -#include "tier1/utility.h" #include "mathlib/crc32.h" #include "public/edict.h" #include "filesystem/filesystem.h" diff --git a/r5dev/gameui/CMakeLists.txt b/r5dev/gameui/CMakeLists.txt new file mode 100644 index 00000000..7af5810d --- /dev/null +++ b/r5dev/gameui/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( gameui ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "IBrowser.cpp" + "IBrowser.h" + "IConsole.cpp" + "IConsole.h" +) + +end_sources() + +target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/gameui/IBrowser.cpp b/r5dev/gameui/IBrowser.cpp index ed4389c9..b295e5a9 100644 --- a/r5dev/gameui/IBrowser.cpp +++ b/r5dev/gameui/IBrowser.cpp @@ -17,11 +17,11 @@ History: #include "tier0/fasttimer.h" #include "tier0/frametask.h" #include "tier0/commandline.h" -#include "tier1/cvar.h" #include "windows/id3dx.h" #include "windows/console.h" #include "windows/resource.h" #include "engine/net.h" +#include "engine/cmd.h" #include "engine/cmodel_bsp.h" #include "engine/host_state.h" #ifndef CLIENT_DLL @@ -32,7 +32,7 @@ History: #include "networksystem/pylon.h" #include "networksystem/listmanager.h" #include "vpc/keyvalues.h" -#include "vstdlib/callback.h" +#include "common/callback.h" #include "gameui/IBrowser.h" #include "public/edict.h" #include "game/shared/vscript_shared.h" diff --git a/r5dev/gameui/IConsole.cpp b/r5dev/gameui/IConsole.cpp index 93c1ed5b..4d3ea04f 100644 --- a/r5dev/gameui/IConsole.cpp +++ b/r5dev/gameui/IConsole.cpp @@ -17,10 +17,10 @@ History: #include "core/resource.h" #include "tier0/frametask.h" #include "tier0/commandline.h" -#include "tier1/cvar.h" #include "windows/id3dx.h" #include "windows/console.h" #include "windows/resource.h" +#include "engine/cmd.h" #include "gameui/IConsole.h" //----------------------------------------------------------------------------- diff --git a/r5dev/inputsystem/CMakeLists.txt b/r5dev/inputsystem/CMakeLists.txt new file mode 100644 index 00000000..1932f7cc --- /dev/null +++ b/r5dev/inputsystem/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( inputsystem ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "inputsystem.cpp" + "inputsystem.h" +) + +add_sources( SOURCE_GROUP "Public" + "${ENGINE_SOURCE_DIR}/public/inputsystem/ButtonCode.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/launcher/CMakeLists.txt b/r5dev/launcher/CMakeLists.txt new file mode 100644 index 00000000..1b9d633a --- /dev/null +++ b/r5dev/launcher/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( launcher ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "launcher.cpp" + "launcher.h" + "launcherdefs.h" + "prx.cpp" + "prx.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/launcher/IApplication.cpp b/r5dev/launcher/IApplication.cpp deleted file mode 100644 index 2f09e3e7..00000000 --- a/r5dev/launcher/IApplication.cpp +++ /dev/null @@ -1,162 +0,0 @@ -//=============================================================================// -// -// Purpose: IApplication methods -// -//=============================================================================// - -#include "core/stdafx.h" -#include "tier0/frametask.h" -#include "tier0/commandline.h" -#include "tier1/cvar.h" -#include "vpc/interfaces.h" -#include "appframework/engine_launcher_api.h" -#include "launcher/IApplication.h" -#include "pluginsystem/pluginsystem.h" -#include "pluginsystem/modsystem.h" -#include "ebisusdk/EbisuSDK.h" -#include "engine/cmodel_bsp.h" -#include "engine/sys_engine.h" -#include "engine/sys_dll2.h" -#include "engine/sdk_dll.h" -#include "engine/host_cmd.h" -#include "engine/enginetrace.h" -#ifndef CLIENT_DLL -#include "engine/server/sv_main.h" -#include "server/vengineserver_impl.h" -#include "game/server/gameinterface.h" -#endif // !CLIENT_DLL -#ifndef DEDICATED -#include "client/cdll_engine_int.h" -#include "game/client/cliententitylist.h" -#include "gameui/IConsole.h" -#include "windows/id3dx.h" -#include "windows/input.h" -#endif // !DEDICATED -#include "public/idebugoverlay.h" -#include - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -bool CSourceAppSystemGroup::StaticPreInit(CSourceAppSystemGroup* pSourceAppSystemGroup) -{ - if (pSourceAppSystemGroup->GetCurrentStage() == CSourceAppSystemGroup::CREATION) - { - ConVar::InitShipped(); - ConVar::PurgeShipped(); - ConCommand::StaticInit(); - ConCommand::InitShipped(); - ConCommand::PurgeShipped(); - } - - return CSourceAppSystemGroup__PreInit(pSourceAppSystemGroup); -} - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -bool CSourceAppSystemGroup::StaticCreate(CSourceAppSystemGroup* pSourceAppSystemGroup) -{ - return CSourceAppSystemGroup__Create(pSourceAppSystemGroup); -} - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -int CModAppSystemGroup::StaticMain(CModAppSystemGroup* pModAppSystemGroup) -{ - std::thread fixed(&CEngineSDK::FixedFrame, g_EngineSDK); - fixed.detach(); - - int nRunResult = RUN_OK; - HEbisuSDK_Init(); // Not here in retail. We init EbisuSDK here though. - -#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1) // !TODO: rebuild does not work for S1 (CModAppSystemGroup and CEngine member offsets do align with all other builds). - return CModAppSystemGroup_Main(pModAppSystemGroup); -#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3) - - g_pEngine->SetQuitting(IEngine::QUIT_NOTQUITTING); - if (g_pEngine->Load(pModAppSystemGroup->IsServerOnly(), g_pEngineParms->baseDirectory)) - { - if (CEngineAPI_MainLoop()) - { - nRunResult = RUN_RESTART; - } - g_pEngine->Unload(); - -#ifndef CLIENT_DLL - SV_ShutdownGameDLL(); -#endif // !CLIENT_DLL - } - return nRunResult; -#endif -} - -//----------------------------------------------------------------------------- -// Purpose: Instantiate all main libraries -//----------------------------------------------------------------------------- -bool CModAppSystemGroup::StaticCreate(CModAppSystemGroup* pModAppSystemGroup) -{ -#ifdef DEDICATED - pModAppSystemGroup->SetServerOnly(); - *m_bIsDedicated = true; -#endif // DEDICATED - g_pFactory->GetFactoriesFromRegister(); - g_pFactory->AddFactory(FACTORY_INTERFACE_VERSION, g_pFactory); - g_pFactory->AddFactory(INTERFACEVERSION_PLUGINSYSTEM, g_pPluginSystem); - g_pFactory->AddFactory(KEYVALUESSYSTEM_INTERFACE_VERSION, g_pKeyValuesSystem); - - //InitPluginSystem(pModAppSystemGroup); - //CALL_PLUGIN_CALLBACKS(g_pPluginSystem->GetCreateCallbacks(), pModAppSystemGroup); - - g_pModSystem->Init(); - - g_pDebugOverlay = g_pFactory->GetFactoryPtr(VDEBUG_OVERLAY_INTERFACE_VERSION, false).RCast(); -#ifndef CLIENT_DLL - g_pServerGameDLL = g_pFactory->GetFactoryPtr(INTERFACEVERSION_SERVERGAMEDLL, false).RCast(); - g_pServerGameClients = g_pFactory->GetFactoryPtr(INTERFACEVERSION_SERVERGAMECLIENTS_NEW, false).RCast(); - if (!g_pServerGameClients) - g_pServerGameClients = g_pFactory->GetFactoryPtr(INTERFACEVERSION_SERVERGAMECLIENTS, false).RCast(); - g_pServerGameEntities = g_pFactory->GetFactoryPtr(INTERFACEVERSION_SERVERGAMEENTS, false).RCast(); - -#endif // !CLIENT_DLL -#ifndef DEDICATED - g_pClientEntityList = g_pFactory->GetFactoryPtr(VCLIENTENTITYLIST_INTERFACE_VERSION, false).RCast(); - g_pEngineTraceClient = g_pFactory->GetFactoryPtr(INTERFACEVERSION_ENGINETRACE_CLIENT, false).RCast(); - - g_pImGuiConfig->Load(); // Load ImGui configs. - for (auto& map : g_pCVar->DumpToMap()) - { - g_pConsole->m_vsvCommandBases.push_back( - CSuggest(map.first, map.second->GetFlags())); - } - - DirectX_Init(); - -#endif // !DEDICATED - if (CommandLine()->CheckParm("-devsdk")) - { - cv->EnableDevCvars(); - } - - g_FrameTasks.push_back(std::move(g_TaskScheduler)); - g_bAppSystemInit = true; - - return CModAppSystemGroup_Create(pModAppSystemGroup); -} - -//----------------------------------------------------------------------------- -// Purpose: Initialize plugin system -//----------------------------------------------------------------------------- -void CModAppSystemGroup::InitPluginSystem(CModAppSystemGroup* pModAppSystemGroup) -{ - // DEBUG CODE FOR PLUGINS - g_pPluginSystem->PluginSystem_Init(); - for (auto& it : g_pPluginSystem->GetPluginInstances()) - { - if (g_pPluginSystem->LoadPluginInstance(it)) - DevMsg(eDLL_T::ENGINE, "Loaded plugin: '%s'\n", it.m_svPluginName.c_str()); - else - Warning(eDLL_T::ENGINE, "Failed loading plugin: '%s'\n", it.m_svPluginName.c_str()); - } -} diff --git a/r5dev/launcher/IApplication.h b/r5dev/launcher/IApplication.h deleted file mode 100644 index 27de0e6d..00000000 --- a/r5dev/launcher/IApplication.h +++ /dev/null @@ -1,109 +0,0 @@ -#pragma once -#include "public/appframework/IAppSystem.h" -#include "public/appframework/IAppSystemGroup.h" - -//------------------------------------------------------------------------- -// -//------------------------------------------------------------------------- -class CSourceAppSystemGroup : public CAppSystemGroup -{ -public: - static bool StaticPreInit(CSourceAppSystemGroup* pSourceAppSystemGroup); - static bool StaticCreate(CSourceAppSystemGroup* pSourceAppSystemGroup); - -private: - CFileSystem_Stdio* m_pFileSystem; -}; - -//------------------------------------------------------------------------- -// -//------------------------------------------------------------------------- -class CModAppSystemGroup : public CAppSystemGroup -{ -public: - static int StaticMain(CModAppSystemGroup* pModAppSystemGroup); - static bool StaticCreate(CModAppSystemGroup* pModAppSystemGroup); - static void InitPluginSystem(CModAppSystemGroup* pModAppSystemGroup); - - bool IsServerOnly(void) const - { - return m_bServerOnly; - } - void SetServerOnly(void) - { - m_bServerOnly = true; - } - -private: - bool m_bServerOnly; -}; - -//------------------------------------------------------------------------- -// Methods of IApplication -//------------------------------------------------------------------------- -/* ==== CAPPSYSTEMGROUP ================================================================================================================================================= */ -inline CMemory p_CModAppSystemGroup_Main; -inline auto CModAppSystemGroup_Main = p_CModAppSystemGroup_Main.RCast(); - -inline CMemory p_CModAppSystemGroup_Create; -inline auto CModAppSystemGroup_Create = p_CModAppSystemGroup_Create.RCast(); - -inline CMemory p_CSourceAppSystemGroup__PreInit; -inline auto CSourceAppSystemGroup__PreInit = p_CSourceAppSystemGroup__PreInit.RCast(); - -inline CMemory p_CSourceAppSystemGroup__Create; -inline auto CSourceAppSystemGroup__Create = p_CSourceAppSystemGroup__Create.RCast(); - -inline bool g_bAppSystemInit = false; - -/////////////////////////////////////////////////////////////////////////////// -class VApplication : public IDetour -{ - virtual void GetAdr(void) const - { - LogFunAdr("CModAppSystemGroup::Main", p_CModAppSystemGroup_Main.GetPtr()); - LogFunAdr("CModAppSystemGroup::Create", p_CModAppSystemGroup_Create.GetPtr()); - LogFunAdr("CSourceAppSystemGroup::PreInit", p_CSourceAppSystemGroup__PreInit.GetPtr()); - LogFunAdr("CSourceAppSystemGroup::Create", p_CSourceAppSystemGroup__Create.GetPtr()); - } - virtual void GetFun(void) const - { -#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1) - p_CModAppSystemGroup_Main = g_GameDll.FindPatternSIMD("48 83 EC 28 80 B9 ?? ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ??"); - p_CModAppSystemGroup_Create = g_GameDll.FindPatternSIMD("48 8B C4 57 41 54 41 55 41 56 41 57 48 83 EC 60 48 C7 40 ?? ?? ?? ?? ?? 48 89 58 08"); - - p_CSourceAppSystemGroup__Create = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 48 8B F9 E8 ?? ?? ?? ?? 33 C9"); -#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3) - p_CModAppSystemGroup_Main = g_GameDll.FindPatternSIMD("40 53 48 83 EC 20 80 B9 ?? ?? ?? ?? ?? BB ?? ?? ?? ??"); - p_CModAppSystemGroup_Create = g_GameDll.FindPatternSIMD("48 8B C4 55 41 54 41 55 41 56 41 57 48 8B EC 48 83 EC 60"); - - p_CSourceAppSystemGroup__Create = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 48 8B F9 E8 ?? ?? ?? ?? 33 C9"); -#endif - p_CSourceAppSystemGroup__PreInit = g_GameDll.FindPatternSIMD("48 89 74 24 ?? 55 48 8D AC 24 ?? ?? ?? ?? 48 81 EC ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ??"); - - CModAppSystemGroup_Main = p_CModAppSystemGroup_Main.RCast(); /*40 53 48 83 EC 20 80 B9 ?? ?? ?? ?? ?? BB ?? ?? ?? ??*/ - CModAppSystemGroup_Create = p_CModAppSystemGroup_Create.RCast(); /*48 8B C4 55 41 54 41 55 41 56 41 57 48 8B EC 48 83 EC 60*/ - CSourceAppSystemGroup__PreInit = p_CSourceAppSystemGroup__PreInit.RCast(); /*48 89 74 24 ?? 55 48 8D AC 24 ?? ?? ?? ?? 48 81 EC ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ??*/ - CSourceAppSystemGroup__Create = p_CSourceAppSystemGroup__Create.RCast(); /*48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 48 8B F9 E8 ?? ?? ?? ?? 33 C9*/ - - } - virtual void GetVar(void) const { } - virtual void GetCon(void) const { } - virtual void Attach(void) const - { - DetourAttach((LPVOID*)&CSourceAppSystemGroup__PreInit, &CSourceAppSystemGroup::StaticPreInit); - DetourAttach((LPVOID*)&CSourceAppSystemGroup__Create, &CSourceAppSystemGroup::StaticCreate); - - DetourAttach((LPVOID*)&CModAppSystemGroup_Main, &CModAppSystemGroup::StaticMain); - DetourAttach((LPVOID*)&CModAppSystemGroup_Create, &CModAppSystemGroup::StaticCreate); - } - virtual void Detach(void) const - { - DetourDetach((LPVOID*)&CSourceAppSystemGroup__PreInit, &CSourceAppSystemGroup::StaticPreInit); - DetourDetach((LPVOID*)&CSourceAppSystemGroup__Create, &CSourceAppSystemGroup::StaticCreate); - - DetourDetach((LPVOID*)&CModAppSystemGroup_Main, &CModAppSystemGroup::StaticMain); - DetourDetach((LPVOID*)&CModAppSystemGroup_Create, &CModAppSystemGroup::StaticCreate); - } -}; -/////////////////////////////////////////////////////////////////////////////// diff --git a/r5dev/launcher/prx.cpp b/r5dev/launcher/prx.cpp index 5694ae28..1706020c 100644 --- a/r5dev/launcher/prx.cpp +++ b/r5dev/launcher/prx.cpp @@ -15,14 +15,10 @@ void h_exit_or_terminate_process(UINT uExitCode) void VPRX::Attach() const { -#ifdef DEDICATED //DetourAttach(&v_exit_or_terminate_process, &h_exit_or_terminate_process); -#endif // DEDICATED } void VPRX::Detach() const { -#ifdef DEDICATED //DetourDetach(&v_exit_or_terminate_process, &h_exit_or_terminate_process); -#endif // DEDICATED } \ No newline at end of file diff --git a/r5dev/localize/CMakeLists.txt b/r5dev/localize/CMakeLists.txt new file mode 100644 index 00000000..8ff3adfd --- /dev/null +++ b/r5dev/localize/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( localize ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "localize.cpp" + "localize.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/materialsystem/CMakeLists.txt b/r5dev/materialsystem/CMakeLists.txt new file mode 100644 index 00000000..715121d1 --- /dev/null +++ b/r5dev/materialsystem/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( materialsystem ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "cmaterialglue.cpp" + "cmaterialglue.h" + "cmaterialsystem.cpp" + "cmaterialsystem.h" + "cshaderglue.cpp" + "cshaderglue.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/mathlib/CMakeLists.txt b/r5dev/mathlib/CMakeLists.txt new file mode 100644 index 00000000..b868d2bd --- /dev/null +++ b/r5dev/mathlib/CMakeLists.txt @@ -0,0 +1,65 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( mathlib ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Hash" + "adler32.cpp" + "adler32.h" + "crc32.cpp" + "crc32.h" + "IceKey.cpp" + "IceKey.H" + "sha1.cpp" + "sha1.h" + "sha256.cpp" + "sha256.h" +) + +add_sources( SOURCE_GROUP "RNG" + "halton.cpp" + "halton.h" + "randsse.cpp" + "ssenoise.cpp" +) + +add_sources( SOURCE_GROUP "Vector" + "bitvec.h" + "color.h" + "color_conversion.cpp" + "compressed_vector.h" + "fltx4.h" + "ssemath.h" + "ssequaternion.h" + "transform.cpp" + "transform.h" + "vector.h" + "vector2d.h" + "vector4d.h" + "vmatrix.cpp" + "vmatrix.h" + "vplane.h" +) + +add_sources( SOURCE_GROUP "Math" + "almostequal.cpp" + "fbits.cpp" + "fbits.h" + "math_pfns.h" + "mathlib.h" + "mathlib_base.cpp" + "noisedata.h" + "parallel_for.h" + "powsse.cpp" + "sseconst.cpp" + "ssemath.h" + "swap.h" +) + +end_sources() + +# Setup precompiled header +target_precompile_headers( ${PROJECT_NAME} PRIVATE mathlib_pch.h ) +target_compile_definitions( ${PROJECT_NAME} PRIVATE -DBUILDING_MATHLIB ) diff --git a/r5dev/mathlib/IceKey.cpp b/r5dev/mathlib/IceKey.cpp index 40bda9fa..966a736c 100644 --- a/r5dev/mathlib/IceKey.cpp +++ b/r5dev/mathlib/IceKey.cpp @@ -1,7 +1,6 @@ // Purpose: C++ implementation of the ICE encryption algorithm. // Taken from public domain code, as written by Matthew Kwan - July 1996 // http://www.darkside.com.au/ice/ -#include "core/stdafx.h" #include "mathlib/IceKey.H" #if !defined(_STATIC_LINKED) || defined(_SHARED_LIB) diff --git a/r5dev/mathlib/adler32.cpp b/r5dev/mathlib/adler32.cpp index 82aac397..9951db43 100644 --- a/r5dev/mathlib/adler32.cpp +++ b/r5dev/mathlib/adler32.cpp @@ -1,5 +1,4 @@ -#include "core/stdafx.h" -#include "mathlib/adler32.h" +#include "adler32.h" // Mark Adler's compact Adler32 hashing algorithm // Originally from the public domain stb.h header. diff --git a/r5dev/mathlib/almostequal.cpp b/r5dev/mathlib/almostequal.cpp index 3e8772af..08dd1c2b 100644 --- a/r5dev/mathlib/almostequal.cpp +++ b/r5dev/mathlib/almostequal.cpp @@ -6,8 +6,7 @@ // Source: http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm //=====================================================================================// -#include "core/stdafx.h" -#include "mathlib/mathlib.h" +#include "mathlib.h" static inline bool AE_IsInfinite(float a) { diff --git a/r5dev/mathlib/color_conversion.cpp b/r5dev/mathlib/color_conversion.cpp index b49ae28a..227958cf 100644 --- a/r5dev/mathlib/color_conversion.cpp +++ b/r5dev/mathlib/color_conversion.cpp @@ -4,9 +4,6 @@ // //=====================================================================================// -#include "core/stdafx.h" -#include "tier0/basetypes.h" -#include "tier0/dbg.h" #include "mathlib/mathlib.h" #include "mathlib/vector.h" diff --git a/r5dev/mathlib/crc32.cpp b/r5dev/mathlib/crc32.cpp index 63cf181f..7439a119 100644 --- a/r5dev/mathlib/crc32.cpp +++ b/r5dev/mathlib/crc32.cpp @@ -1,4 +1,3 @@ -#include "core/stdafx.h" #include "mathlib/crc32.h" // Karl Malbrain's compact CRC-32, with pre and post conditioning. diff --git a/r5dev/mathlib/fbits.cpp b/r5dev/mathlib/fbits.cpp index f8ebfd1b..2e7934ea 100644 --- a/r5dev/mathlib/fbits.cpp +++ b/r5dev/mathlib/fbits.cpp @@ -4,7 +4,6 @@ // //=============================================================================// -#include "core/stdafx.h" #include "mathlib/fbits.h" //----------------------------------------------------------------------------- diff --git a/r5dev/mathlib/halton.cpp b/r5dev/mathlib/halton.cpp index 5f978b1e..431ac6fd 100644 --- a/r5dev/mathlib/halton.cpp +++ b/r5dev/mathlib/halton.cpp @@ -4,11 +4,10 @@ // //=====================================================================================// -#include "core/stdafx.h" #include "mathlib/halton.h" // NOTE: This has to be the last file included! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" HaltonSequenceGenerator_t::HaltonSequenceGenerator_t(int b) diff --git a/r5dev/mathlib/mathlib_base.cpp b/r5dev/mathlib/mathlib_base.cpp index c88191c6..d1331455 100644 --- a/r5dev/mathlib/mathlib_base.cpp +++ b/r5dev/mathlib/mathlib_base.cpp @@ -6,8 +6,6 @@ /// FIXME: As soon as all references to mathlib.c are gone, include it in here -#include "core/stdafx.h" - #include "tier0/basetypes.h" //#include #include "tier0/dbg.h" @@ -36,7 +34,7 @@ #include "mathlib/ssequaternion.h" // memdbgon must be the last include file in a .cpp file!!! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" bool s_bMathlibInitialized = false; #ifdef PARANOID diff --git a/r5dev/mathlib/mathlib_pch.h b/r5dev/mathlib/mathlib_pch.h new file mode 100644 index 00000000..2509b232 --- /dev/null +++ b/r5dev/mathlib/mathlib_pch.h @@ -0,0 +1,30 @@ +#ifndef MATHLIB_PCH_H +#define MATHLIB_PCH_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "..\common\pseudodefs.h" +#include "..\common\sdkdefs.h" + +#include "tier0/platform.h" +#include "tier0/basetypes.h" + +#define Assert assert // TODO: Include actual assert header + +#endif // MATHLIB_PCH_H diff --git a/r5dev/mathlib/powsse.cpp b/r5dev/mathlib/powsse.cpp index f3b7dbef..b2a58537 100644 --- a/r5dev/mathlib/powsse.cpp +++ b/r5dev/mathlib/powsse.cpp @@ -4,11 +4,10 @@ // //=====================================================================================// -#include "core/stdafx.h" #include "mathlib/ssemath.h" // NOTE: This has to be the last file included! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" fltx4 Pow_FixedPoint_Exponent_SIMD(const fltx4& x, int exponent) diff --git a/r5dev/mathlib/randsse.cpp b/r5dev/mathlib/randsse.cpp index 69ad8cc0..2556320e 100644 --- a/r5dev/mathlib/randsse.cpp +++ b/r5dev/mathlib/randsse.cpp @@ -4,15 +4,13 @@ // //=====================================================================================// -#include "core/stdafx.h" -#include "tier0/dbg.h" #include "tier0/threadtools.h" #include "mathlib/mathlib.h" #include "mathlib/vector.h" #include "mathlib/ssemath.h" // memdbgon must be the last include file in a .cpp file!!! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" // see knuth volume 3 for insight. diff --git a/r5dev/mathlib/sha1.cpp b/r5dev/mathlib/sha1.cpp index c0235d95..10ba35ee 100644 --- a/r5dev/mathlib/sha1.cpp +++ b/r5dev/mathlib/sha1.cpp @@ -15,7 +15,6 @@ -- Volker Grabsch */ -#include "core/stdafx.h" #include "mathlib/sha1.h" /* Help macros */ diff --git a/r5dev/mathlib/sha256.cpp b/r5dev/mathlib/sha256.cpp index 97b57ee8..b49a3588 100644 --- a/r5dev/mathlib/sha256.cpp +++ b/r5dev/mathlib/sha256.cpp @@ -1,4 +1,3 @@ -#include "core/stdafx.h" #include "mathlib/sha256.h" const uint32 SHA256::sha256_k[64] = //UL = uint32 diff --git a/r5dev/mathlib/sseconst.cpp b/r5dev/mathlib/sseconst.cpp index 5af82235..0af59507 100644 --- a/r5dev/mathlib/sseconst.cpp +++ b/r5dev/mathlib/sseconst.cpp @@ -13,13 +13,12 @@ //#include "ps3/spu_job_shared.h" #endif -#include "core/stdafx.h" #include "mathlib/ssemath.h" #include "mathlib/ssequaternion.h" //#include "mathlib/compressed_vector.h" // NOTE: This has to be the last file included! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" const fltx4 g_SIMD_Identity[4] = { diff --git a/r5dev/mathlib/ssenoise.cpp b/r5dev/mathlib/ssenoise.cpp index 2575ba40..acb0b498 100644 --- a/r5dev/mathlib/ssenoise.cpp +++ b/r5dev/mathlib/ssenoise.cpp @@ -4,8 +4,6 @@ // //=====================================================================================// -#include "core/stdafx.h" -#include "tier0/dbg.h" #include "mathlib/mathlib.h" #include "mathlib/vector.h" #include "mathlib/ssemath.h" diff --git a/r5dev/mathlib/transform.cpp b/r5dev/mathlib/transform.cpp index 8be2e83c..9b9a5b79 100644 --- a/r5dev/mathlib/transform.cpp +++ b/r5dev/mathlib/transform.cpp @@ -6,7 +6,6 @@ // //===========================================================================// -#include "core/stdafx.h" #if !defined(_STATIC_LINKED) || defined(_SHARED_LIB) #include "mathlib/transform.h" diff --git a/r5dev/mathlib/vmatrix.cpp b/r5dev/mathlib/vmatrix.cpp index 3084dd34..19450204 100644 --- a/r5dev/mathlib/vmatrix.cpp +++ b/r5dev/mathlib/vmatrix.cpp @@ -5,9 +5,6 @@ // $NoKeywords: $ // //=============================================================================// -#include "core/stdafx.h" -#include "tier0/dbg.h" - #if !defined(_STATIC_LINKED) || defined(_SHARED_LIB) #include "mathlib/vmatrix.h" @@ -16,7 +13,7 @@ #include "mathlib/ssemath.h" // memdbgon must be the last include file in a .cpp file!!! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" #pragma warning (disable : 4700) // local variable 'x' used without having been initialized diff --git a/r5dev/naveditor/CMakeLists.txt b/r5dev/naveditor/CMakeLists.txt new file mode 100644 index 00000000..47da6cf3 --- /dev/null +++ b/r5dev/naveditor/CMakeLists.txt @@ -0,0 +1,110 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( naveditor ) +add_executable( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Builder" + "Editor_TileMesh.cpp" + "InputGeom.cpp" +) + +add_sources( SOURCE_GROUP "Builder/Include" + "include/Editor_TileMesh.h" + "include/InputGeom.h" +) + +add_sources( SOURCE_GROUP "Contrib" + "imgui.cpp" + "imguiRenderGL.cpp" +) + +add_sources( SOURCE_GROUP "Contrib/Include" + "include/imgui.h" + "include/imguiRenderGL.h" +) + +add_sources( SOURCE_GROUP "Core" + "Editor.cpp" + "main.cpp" + "../thirdparty/recast/Pch.cpp" +) + +add_sources( SOURCE_GROUP "Core/Include" + "include/Editor.h" + "../thirdparty/recast/Pch.h" +) + +add_sources( SOURCE_GROUP "IO" + "Filelist.cpp" + "MeshLoaderBsp.cpp" + "MeshLoaderObj.cpp" + "MeshLoaderPly.cpp" +) + +add_sources( SOURCE_GROUP "IO/Include" + "include/Filelist.h" + "include/FileTypes.h" + "include/MeshLoaderBsp.h" + "include/MeshLoaderObj.h" + "include/MeshLoaderPly.h" +) + +add_sources( SOURCE_GROUP "Tools" + "ChunkyTriMesh.cpp" + "ConvexVolumeTool.cpp" + "CrowdTool.cpp" + "NavMeshPruneTool.cpp" + "NavMeshTesterTool.cpp" + "OffMeshConnectionTool.cpp" +) + +add_sources( SOURCE_GROUP "Tools/Include" + "include/ChunkyTriMesh.h" + "include/ConvexVolumeTool.h" + "include/CrowdTool.h" + "include/NavMeshPruneTool.h" + "include/NavMeshTesterTool.h" + "include/OffMeshConnectionTool.h" +) + +add_sources( SOURCE_GROUP "Utils" + "Editor_Debug.cpp" + "EditorInterfaces.cpp" + "GameUtils.cpp" + "PerfTimer.cpp" + "TestCase.cpp" + "ValueHistory.cpp" +) + +add_sources( SOURCE_GROUP "Utils/Include" + "include/Editor_Debug.h" + "include/EditorInterfaces.h" + "include/GameUtils.h" + "include/PerfTimer.h" + "include/TestCase.h" + "include/ValueHistory.h" +) + +end_sources() + +target_compile_definitions( ${PROJECT_NAME} PRIVATE WIN32 ) +target_precompile_headers( ${PROJECT_NAME} PRIVATE ${ENGINE_SOURCE_DIR}/thirdparty/recast/Pch.h ) +target_link_libraries( ${PROJECT_NAME} PRIVATE + "navdebugutils" + "libsdl2" + "libdetour" + "libdetourcrowd" + "libdetourtilecache" + "librecast" + "FastLZ" + "Rpcrt4.lib" + "ws2_32.lib" + "winmm.lib" + "imm32.lib" + "version.lib" + "setupapi.lib" + "OpenGL32.lib" + "Glu32.lib" +) diff --git a/r5dev/netconsole/CMakeLists.txt b/r5dev/netconsole/CMakeLists.txt new file mode 100644 index 00000000..c4f70ee7 --- /dev/null +++ b/r5dev/netconsole/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( netconsole ) +add_executable( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "netconsole.cpp" + "netconsole.h" + "plat_time.cpp" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) + +set_target_properties( ${PROJECT_NAME} PROPERTIES OUTPUT_NAME "netcon32" ) +target_link_libraries( ${PROJECT_NAME} PRIVATE + "tier0" + "libprotobuf" + "libspdlog" + "protocol_pb" + "engine_ds" + "Rpcrt4.lib" + "ws2_32.lib" +) diff --git a/r5dev/netconsole/netconsole.cpp b/r5dev/netconsole/netconsole.cpp index 5dd8d02b..3da4fa80 100644 --- a/r5dev/netconsole/netconsole.cpp +++ b/r5dev/netconsole/netconsole.cpp @@ -5,9 +5,8 @@ //=====================================================================================// #include "core/stdafx.h" -#include "core/termutil.h" #include "core/logdef.h" -#include "tier1/utility.h" +#include "tier0/utility.h" #include "tier1/NetAdr.h" #include "tier2/socketcreator.h" #include "windows/console.h" diff --git a/r5dev/networksystem/CMakeLists.txt b/r5dev/networksystem/CMakeLists.txt new file mode 100644 index 00000000..a2440408 --- /dev/null +++ b/r5dev/networksystem/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( networksystem ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "bansystem.cpp" + "bansystem.h" + "listmanager.cpp" + "listmanager.h" + "pylon.cpp" + "pylon.h" + "serverlisting.h" + "sm_protocol.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/networksystem/listmanager.cpp b/r5dev/networksystem/listmanager.cpp index c9e12a1f..7cd5a5e1 100644 --- a/r5dev/networksystem/listmanager.cpp +++ b/r5dev/networksystem/listmanager.cpp @@ -9,13 +9,11 @@ #include "core/stdafx.h" #include "tier0/threadtools.h" #include "tier0/frametask.h" -#include "tier1/cmd.h" #include "tier1/cvar.h" +#include "engine/cmd.h" #include "engine/net.h" #include "engine/host_state.h" -#ifndef CLIENT_DLL #include "engine/server/server.h" -#endif // !CLIENT_DLL #include "vpc/keyvalues.h" #include "pylon.h" #include "listmanager.h" @@ -59,8 +57,6 @@ void CServerListManager::ClearServerList(void) //----------------------------------------------------------------------------- void CServerListManager::LaunchServer(void) const { -#ifndef CLIENT_DLL - if (!ThreadInMainThread()) { g_TaskScheduler->Dispatch([this]() @@ -82,8 +78,6 @@ void CServerListManager::LaunchServer(void) const mp_gamemode->SetValue(m_Server.m_svPlaylist.c_str()); ProcessCommand(Format("%s \"%s\"", g_pServer->IsActive() ? "changelevel" : "map", m_Server.m_svHostMap.c_str()).c_str()); - -#endif // !CLIENT_DLL } //----------------------------------------------------------------------------- diff --git a/r5dev/networksystem/pylon.cpp b/r5dev/networksystem/pylon.cpp index b6ed843d..0d07baab 100644 --- a/r5dev/networksystem/pylon.cpp +++ b/r5dev/networksystem/pylon.cpp @@ -9,9 +9,7 @@ #include #include #include -#ifndef CLIENT_DLL #include -#endif // !CLIENT_DLL //----------------------------------------------------------------------------- // Purpose: gets a vector of hosted servers. @@ -189,7 +187,6 @@ bool CPylon::PostServerHost(string& outMessage, string& outToken, return true; } -#ifdef DEDICATED //----------------------------------------------------------------------------- // Purpose: Send keep alive request to Pylon Master Server. // Input : &netGameServer - @@ -220,14 +217,13 @@ bool CPylon::KeepAlive(const NetGameServer_t& netGameServer) { m_Token = hostToken; DevMsg(eDLL_T::SERVER, "Published server with token: %s'%s%s%s'\n", - g_svReset.c_str(), g_svGreyB.c_str(), - hostToken.c_str(), g_svReset.c_str()); + g_svReset, g_svGreyB, + hostToken, g_svReset); } } return result; } -#endif // DEDICATED //----------------------------------------------------------------------------- // Purpose: Checks a list of clients for their banned status. diff --git a/r5dev/networksystem/pylon.h b/r5dev/networksystem/pylon.h index 3f72d963..25747802 100644 --- a/r5dev/networksystem/pylon.h +++ b/r5dev/networksystem/pylon.h @@ -20,12 +20,10 @@ public: bool SendRequest(const char* endpoint, const nlohmann::json& requestJson, nlohmann::json& responseJson, string& outMessage, CURLINFO& status, const char* errorText = nullptr) const; bool QueryServer(const char* endpoint, const char* request, string& outResponse, string& outMessage, CURLINFO& outStatus) const; -#ifdef DEDICATED bool KeepAlive(const NetGameServer_t& netGameServer); private: string m_Token; string m_ErrorMsg; -#endif // DEDICATED }; extern CPylon* g_pMasterServer; diff --git a/r5dev/pluginsdk/CMakeLists.txt b/r5dev/pluginsdk/CMakeLists.txt new file mode 100644 index 00000000..3f83fe13 --- /dev/null +++ b/r5dev/pluginsdk/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( PluginSDK ) +add_library( ${PROJECT_NAME} SHARED ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "dllmain.cpp" + "ifactory.h" + "pluginsdk.cpp" + "pluginsdk.h" +) + +end_sources() + +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) + +target_link_libraries( ${PROJECT_NAME} PRIVATE + "tier0" + "libdetours" + "libprotobuf" + "liblzham" + "protocol_pb" + "Rpcrt4.lib" +) \ No newline at end of file diff --git a/r5dev/pluginsdk/ifactory.h b/r5dev/pluginsdk/ifactory.h index 54e01711..4acc4833 100644 --- a/r5dev/pluginsdk/ifactory.h +++ b/r5dev/pluginsdk/ifactory.h @@ -1,6 +1,7 @@ #pragma once struct FactoryInfo_t; +class CMemory; // TODO: Make this abstract and make it base class of CFactory. class IFactory @@ -13,5 +14,3 @@ public: virtual CMemory GetFactoryPtr(const string& svFactoryName, bool versionLess = true) const = 0; virtual const char* GetFactoryFullName(const string& svFactoryName) const = 0; }; - -constexpr const char* FACTORY_INTERFACE_VERSION = "VFactorySystem001"; \ No newline at end of file diff --git a/r5dev/pluginsystem/CMakeLists.txt b/r5dev/pluginsystem/CMakeLists.txt new file mode 100644 index 00000000..a05634e2 --- /dev/null +++ b/r5dev/pluginsystem/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( pluginsystem ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "ipluginsystem.h" + "modsystem.cpp" + "modsystem.h" + "pluginsystem.cpp" + "pluginsystem.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/protoc/CMakeLists.txt b/r5dev/protoc/CMakeLists.txt new file mode 100644 index 00000000..2caeb433 --- /dev/null +++ b/r5dev/protoc/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( protocol_pb ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "NetCon" + "cl_rcon.pb.cc" + "cl_rcon.pb.h" + "sv_rcon.pb.cc" + "sv_rcon.pb.h" +) + +add_sources( SOURCE_GROUP "SigCache" + "sig_map.pb.cc" + "sig_map.pb.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/datacache/idatacache.h b/r5dev/public/datacache/idatacache.h similarity index 100% rename from r5dev/datacache/idatacache.h rename to r5dev/public/datacache/idatacache.h diff --git a/r5dev/datacache/imdlcache.h b/r5dev/public/datacache/imdlcache.h similarity index 100% rename from r5dev/datacache/imdlcache.h rename to r5dev/public/datacache/imdlcache.h diff --git a/r5dev/ebisusdk/EbisuTypes.h b/r5dev/public/ebisusdk/EbisuTypes.h similarity index 100% rename from r5dev/ebisusdk/EbisuTypes.h rename to r5dev/public/ebisusdk/EbisuTypes.h diff --git a/r5dev/public/edict.h b/r5dev/public/edict.h index cc6ac3cb..19700a3a 100644 --- a/r5dev/public/edict.h +++ b/r5dev/public/edict.h @@ -1,7 +1,4 @@ #pragma once -#ifndef DEDICATED -#include "launcher/IApplication.h" -#endif // !DEDICATED #include "public/globalvars_base.h" #ifndef CLIENT_DLL #include "engine/server/sv_main.h" diff --git a/r5dev/inputsystem/ButtonCode.h b/r5dev/public/inputsystem/ButtonCode.h similarity index 100% rename from r5dev/inputsystem/ButtonCode.h rename to r5dev/public/inputsystem/ButtonCode.h diff --git a/r5dev/public/networkvar.cpp b/r5dev/public/networkvar.cpp index f0c23aaf..700ed5d2 100644 --- a/r5dev/public/networkvar.cpp +++ b/r5dev/public/networkvar.cpp @@ -10,7 +10,7 @@ #endif // !CLIENT_DLL #ifndef DEDICATED -#include "client/cdll_engine_int.h" +#include "engine/client/cdll_engine_int.h" #include "public/dt_recv.h" #endif // !DEDICATED diff --git a/r5dev/public/tier0/basetypes.h b/r5dev/public/tier0/basetypes.h index eba352e2..9b67bc43 100644 --- a/r5dev/public/tier0/basetypes.h +++ b/r5dev/public/tier0/basetypes.h @@ -226,6 +226,11 @@ inline T AlignValue(T val, uintptr_t alignment) return (T)(((uintp)val + alignment - 1) & ~(alignment - 1)); } +// Pad a number so it lies on an N byte boundary. +// So PAD_NUMBER(0,4) is 0 and PAD_NUMBER(1,4) is 4 +#define PAD_NUMBER(number, boundary) \ + ( ((number) + ((boundary)-1)) / (boundary) ) * (boundary) + #else #define clamp(val, min, max) (((val) > (max)) ? (max) : (((val) < (min)) ? (min) : (val))) diff --git a/r5dev/public/tier1/binstream.h b/r5dev/public/tier0/binstream.h similarity index 100% rename from r5dev/public/tier1/binstream.h rename to r5dev/public/tier0/binstream.h diff --git a/r5dev/public/tier0/crashhandler.h b/r5dev/public/tier0/crashhandler.h index 65a86731..c968542a 100644 --- a/r5dev/public/tier0/crashhandler.h +++ b/r5dev/public/tier0/crashhandler.h @@ -46,7 +46,9 @@ public: //------------------------------------------------------------------------- const CHAR* ExceptionToString() const; const CHAR* ExceptionToString(DWORD nExceptionCode) const; - void SetExceptionPointers(EXCEPTION_POINTERS* pExceptionPointers) { m_pExceptionPointers = pExceptionPointers; }; + + void SetExceptionPointers(EXCEPTION_POINTERS* pExceptionPointers) { m_pExceptionPointers = pExceptionPointers; } + void SetCrashCallback(PVOID pCrashCallback) { m_pCrashCallback = pCrashCallback; } void AddWhitelist(void* pWhitelist); void RemoveWhitelist(void* pWhitelist); @@ -56,6 +58,7 @@ public: void WriteFile(); void CreateMessageProcess(); + void CrashCallback(); private: @@ -78,8 +81,9 @@ private: NUM_FRAMES_TO_CAPTURE = 128 }; - PVOID m_hExceptionHandler; PVOID m_ppStackTrace[NUM_FRAMES_TO_CAPTURE]; + PVOID m_pCrashCallback; + PVOID m_hExceptionHandler; EXCEPTION_POINTERS* m_pExceptionPointers; WORD m_nCapturedFrames; diff --git a/r5dev/public/tier0/dbg.h b/r5dev/public/tier0/dbg.h index 7a5c7814..1c578b00 100644 --- a/r5dev/public/tier0/dbg.h +++ b/r5dev/public/tier0/dbg.h @@ -10,6 +10,10 @@ #define AssertDbg assert #define Verify( _exp ) ( _exp ) #include "tier0/dbgflag.h" +#include "tier0/platform.h" + +// Used for the 'Error' function, this tells the function to only log, not quit. +//#define NO_ERROR 0 bool HushAsserts(); //----------------------------------------------------------------------------- @@ -115,9 +119,7 @@ void CoreMsg(LogType_t logType, LogLevel_t logLevel, eDLL_T context, // These functions do not return. PLATFORM_INTERFACE void DevMsg(eDLL_T context, const char* fmt, ...) FMTFUNCTION(2, 3); -#ifndef DEDICATED PLATFORM_INTERFACE void NetMsg(LogType_t logType, eDLL_T context, const char* uptime, const char* fmt, ...) FMTFUNCTION(4, 5); -#endif // !DEDICATED PLATFORM_INTERFACE void Warning(eDLL_T context, const char* fmt, ...) FMTFUNCTION(2, 3); PLATFORM_INTERFACE void Error(eDLL_T context, const UINT code, const char* fmt, ...) FMTFUNCTION(3, 4); @@ -159,4 +161,9 @@ template inline void AssertValidReadWritePtr(T* /*ptr*/, int count = 1) #define AssertValidThis() #endif +typedef void (*CoreMsgVCallbackSink_t)(LogType_t logType, LogLevel_t logLevel, eDLL_T context, + const char* pszLogger, const char* pszFormat, va_list args, const UINT exitCode, const char* pszUptimeOverride); + +extern CoreMsgVCallbackSink_t g_CoreMsgVCallback; + #endif /* DBG_H */ diff --git a/r5dev/public/tier0/memalloc.h b/r5dev/public/tier0/memalloc.h index 14f6f01c..2e53da03 100644 --- a/r5dev/public/tier0/memalloc.h +++ b/r5dev/public/tier0/memalloc.h @@ -42,4 +42,6 @@ template const char* MemAllocClassName(T* p) #define MEM_ALLOC_CREDIT_FUNCTION() #endif +#define MEM_ALLOC_CREDIT() // Stubbed + #endif /* TIER0_MEMALLOC_H */ \ No newline at end of file diff --git a/r5dev/public/tier0/threadtools.h b/r5dev/public/tier0/threadtools.h index a02361ec..44834564 100644 --- a/r5dev/public/tier0/threadtools.h +++ b/r5dev/public/tier0/threadtools.h @@ -202,6 +202,7 @@ private: typedef CInterlockedIntT CInterlockedInt; typedef CInterlockedIntT CInterlockedUInt; +#ifndef BUILDING_MATHLIB //============================================================================= class CThreadFastMutex; @@ -273,4 +274,6 @@ class VThreadTools : public IDetour }; /////////////////////////////////////////////////////////////////////////////// +#endif // !BUILDING_MATHLIB + #endif // THREADTOOLS_H diff --git a/r5dev/public/tier0/tier0_iface.h b/r5dev/public/tier0/tier0_iface.h new file mode 100644 index 00000000..0884b8a9 --- /dev/null +++ b/r5dev/public/tier0/tier0_iface.h @@ -0,0 +1,39 @@ +//===========================================================================// +// +// Purpose: Low-level tier0 interface. +// +//===========================================================================// +#ifndef TIER0_IFACE_H +#define TIER0_IFACE_H + +// Module handles; user is responsible for initializing these. +extern CModule g_GameDll; +extern CModule g_SDKDll; + +extern CModule g_RadVideoToolsDll; +extern CModule g_RadAudioDecoderDll; +extern CModule g_RadAudioSystemDll; + +extern string g_LogSessionUUID; +extern string g_LogSessionDirectory; + +#define VAR_NAME(varName) #varName + +#define MEMBER_AT_OFFSET(varType, varName, offset) \ + varType& varName() \ + { \ + static int _##varName = offset; \ + return *(varType*)((std::uintptr_t)this + _##varName); \ + } + +template +ReturnType CallVFunc(int index, void* thisPtr, Args... args) +{ + return (*reinterpret_cast(thisPtr))[index](thisPtr, args...); +} + +void LogFunAdr(const char* szFun, uintptr_t nAdr); // Logging function addresses. +void LogVarAdr(const char* szVar, uintptr_t nAdr); // Logging variable addresses. +void LogConAdr(const char* szCon, uintptr_t nAdr); // Logging constant addresses. + +#endif // TIER0_IFACE_H diff --git a/r5dev/public/tier1/utility.h b/r5dev/public/tier0/utility.h similarity index 99% rename from r5dev/public/tier1/utility.h rename to r5dev/public/tier0/utility.h index fb7c732b..0a8bbae1 100644 --- a/r5dev/public/tier1/utility.h +++ b/r5dev/public/tier0/utility.h @@ -30,6 +30,7 @@ string GetFileName(const string& svInput, bool bRemoveExtension = false, bool bW string RemoveFileName(const string& svInput, bool bWindows = false); string CreateTimedFileName(); +string CreateUUID(); void CreateDirectories(string svInput, string* pszOutput = nullptr, bool bWindows = false); string ConvertToWinPath(const string& svInput); diff --git a/r5dev/public/tier1/cmd.h b/r5dev/public/tier1/cmd.h index 385cea76..b5fb234f 100644 --- a/r5dev/public/tier1/cmd.h +++ b/r5dev/public/tier1/cmd.h @@ -9,8 +9,8 @@ // $NoKeywords: $ //===========================================================================// -#ifndef CMD_H -#define CMD_H +#ifndef TIER1_CMD_H +#define TIER1_CMD_H #include "tier1/utlvector.h" #include "tier1/utlstring.h" @@ -154,10 +154,6 @@ public: static ConCommand* StaticCreate(const char* szName, const char* szHelpString, const char* pszUsageString, int nFlags, FnCommandCallback_t pCallback, FnCommandCompletionCallback pCommandCompletionCallback); - static void StaticInit(void); - static void InitShipped(void); - static void PurgeShipped(void); - virtual int AutoCompleteSuggest(const char* partial, CUtlVector< CUtlString >& commands) = 0; virtual bool CanAutoComplete(void) const = 0; @@ -182,16 +178,6 @@ public: bool m_bUsingCommandCallbackInterface : 1; }; -/* ==== COMMAND_BUFFER ================================================================================================================================================== */ -inline CMemory p_Cbuf_AddText; -inline auto Cbuf_AddText = p_Cbuf_AddText.RCast(); - -inline CMemory p_Cbuf_Execute; -inline auto Cbuf_Execute = p_Cbuf_Execute.RCast(); - -inline CMemory p_Cmd_ForwardToServer; -inline auto v_Cmd_ForwardToServer = p_Cmd_ForwardToServer.RCast(); - /* ==== CONCOMMAND ====================================================================================================================================================== */ inline CMemory p_ConCommand_AutoCompleteSuggest; inline auto ConCommand_AutoCompleteSuggest = p_ConCommand_AutoCompleteSuggest.RCast& commands)>(); @@ -217,9 +203,6 @@ class VConCommand : public IDetour { LogFunAdr("ConCommandBase::IsFlagSet", p_ConCommandBase_IsFlagSet.GetPtr()); LogConAdr("ConCommand::AutoCompleteSuggest", p_ConCommand_AutoCompleteSuggest.GetPtr()); - LogFunAdr("Cbuf_AddText", p_Cbuf_AddText.GetPtr()); - LogFunAdr("Cbuf_Execute", p_Cbuf_Execute.GetPtr()); - LogFunAdr("Cmd_ForwardToServer", p_Cmd_ForwardToServer.GetPtr()); LogFunAdr("CallbackStub", p_CallbackStub.GetPtr()); LogFunAdr("NullSub", p_NullSub.GetPtr()); } @@ -228,18 +211,12 @@ class VConCommand : public IDetour p_ConCommand_AutoCompleteSuggest = g_GameDll.FindPatternSIMD("40 ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 2B E0 F6 41 60 04"); p_ConCommandBase_IsFlagSet = g_GameDll.FindPatternSIMD("85 51 38 0F 95 C0 C3"); - p_Cbuf_AddText = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 48 63 D9 41 8B F8 48 8D 0D ?? ?? ?? ?? 48 8B F2 FF 15 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 41 B9 ?? ?? ?? ??"); - p_Cbuf_Execute = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 FF 15 ?? ?? ?? ??"); - p_Cmd_ForwardToServer = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 81 EC ?? ?? ?? ?? 44 8B 59 04"); p_NullSub = g_GameDll.FindPatternSIMD("C2 ?? ?? CC CC CC CC CC CC CC CC CC CC CC CC CC 40 53 48 83 EC 20 48 8D 05 ?? ?? ?? ??"); p_CallbackStub = g_GameDll.FindPatternSIMD("33 C0 C3 CC CC CC CC CC CC CC CC CC CC CC CC CC 80 49 68 08"); ConCommandBase_IsFlagSet = p_ConCommandBase_IsFlagSet.RCast(); /*85 51 38 0F 95 C0 C3*/ ConCommand_AutoCompleteSuggest = p_ConCommand_AutoCompleteSuggest.RCast&)>(); - Cbuf_AddText = p_Cbuf_AddText.RCast(); /*48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 48 63 D9 41 8B F8 48 8D 0D ?? ?? ?? ?? 48 8B F2 FF 15 ?? ?? ?? ?? 48 8D 05 ?? ?? ?? ?? 41 B9 ?? ?? ?? ??*/ - Cbuf_Execute = p_Cbuf_Execute.RCast(); /*48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 FF 15 ?? ?? ?? ??*/ - v_Cmd_ForwardToServer = p_Cmd_ForwardToServer.RCast(); /*48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 81 EC ?? ?? ?? ?? 44 8B 59 04*/ NullSub = p_NullSub.RCast(); /*C2 00 00 CC CC CC CC CC CC CC CC CC CC CC CC CC 40 53 48 83 EC 20 48 8D 05 ?? ?? ?? ??*/ CallbackStub = p_CallbackStub.RCast(); /*33 C0 C3 CC CC CC CC CC CC CC CC CC CC CC CC CC 80 49 68 08*/ /*UserMathErrorFunction*/ } @@ -248,9 +225,9 @@ class VConCommand : public IDetour { g_pConCommandVFTable = g_GameDll.GetVirtualMethodTable(".?AVConCommand@@").RCast(); } - virtual void Attach(void) const; - virtual void Detach(void) const; + virtual void Attach(void) const { }; + virtual void Detach(void) const { }; }; /////////////////////////////////////////////////////////////////////////////// -#endif // CMD_H +#endif // TIER1_CMD_H diff --git a/r5dev/public/tier1/cvar.h b/r5dev/public/tier1/cvar.h index 8a585d4e..0a064c48 100644 --- a/r5dev/public/tier1/cvar.h +++ b/r5dev/public/tier1/cvar.h @@ -14,230 +14,6 @@ #include "vstdlib/concommandhash.h" -//------------------------------------------------------------------------- -// ENGINE | -extern ConVar* sdk_fixedframe_tickinterval; -extern ConVar* single_frame_shutdown_for_reload; -extern ConVar* old_gather_props; - -extern ConVar* enable_debug_overlays; -extern ConVar* debug_draw_box_depth_test; - -extern ConVar* developer; -extern ConVar* fps_max; - -extern ConVar* staticProp_defaultBuildFrustum; -extern ConVar* staticProp_no_fade_scalar; -extern ConVar* staticProp_gather_size_weight; - -extern ConVar* model_defaultFadeDistScale; -extern ConVar* model_defaultFadeDistMin; - -extern ConVar* ip_cvar; -extern ConVar* hostname; -extern ConVar* hostdesc; -extern ConVar* hostip; -extern ConVar* hostport; -extern ConVar* host_hasIrreversibleShutdown; - -extern ConVar* mp_gamemode; - -extern ConVar* curl_debug; -extern ConVar* curl_timeout; -extern ConVar* ssl_verify_peer; - -extern ConVar* rcon_address; -extern ConVar* rcon_password; - -extern ConVar* r_debug_overlay_nodecay; -extern ConVar* r_debug_overlay_invisible; -extern ConVar* r_debug_overlay_wireframe; -extern ConVar* r_debug_draw_depth_test; -extern ConVar* r_drawWorldMeshes; -extern ConVar* r_drawWorldMeshesDepthOnly; -extern ConVar* r_drawWorldMeshesDepthAtTheEnd; - -#ifndef DEDICATED -extern ConVar* r_visualizetraces; -extern ConVar* r_visualizetraces_duration; -#endif // !DEDICATED - -extern ConVar* stream_overlay; -extern ConVar* stream_overlay_mode; -//------------------------------------------------------------------------- -// SERVER | -#ifndef CLIENT_DLL -extern ConVar* ai_ainDumpOnLoad; -extern ConVar* ai_ainDebugConnect; -extern ConVar* ai_script_nodes_draw; -extern ConVar* ai_script_nodes_draw_range; -extern ConVar* ai_script_nodes_draw_nearest; - -extern ConVar* navmesh_always_reachable; -extern ConVar* navmesh_debug_type; -extern ConVar* navmesh_debug_tile_range; -extern ConVar* navmesh_debug_camera_range; -#ifndef DEDICATED -extern ConVar* navmesh_draw_bvtree; -extern ConVar* navmesh_draw_portal; -extern ConVar* navmesh_draw_polys; -extern ConVar* navmesh_draw_poly_bounds; -extern ConVar* navmesh_draw_poly_bounds_inner; -#endif // DEDICATED -extern ConVar* sv_showconnecting; -extern ConVar* sv_globalBanlist; -extern ConVar* sv_pylonVisibility; -extern ConVar* sv_pylonRefreshRate; -extern ConVar* sv_banlistRefreshRate; -extern ConVar* sv_statusRefreshRate; -extern ConVar* sv_forceChatToTeamOnly; - -extern ConVar* sv_updaterate_mp; -extern ConVar* sv_updaterate_sp; -extern ConVar* sv_autoReloadRate; - -extern ConVar* sv_simulateBots; -extern ConVar* sv_showhitboxes; -extern ConVar* sv_stats; - -extern ConVar* sv_quota_stringCmdsPerSecond; - -extern ConVar* sv_validatePersonaName; -extern ConVar* sv_minPersonaNameLength; -extern ConVar* sv_maxPersonaNameLength; - -extern ConVar* sv_voiceEcho; -extern ConVar* sv_voiceenable; -extern ConVar* sv_alltalk; - -//#ifdef DEDICATED -extern ConVar* sv_rcon_debug; -extern ConVar* sv_rcon_sendlogs; -extern ConVar* sv_rcon_banpenalty; -extern ConVar* sv_rcon_maxfailures; -extern ConVar* sv_rcon_maxignores; -extern ConVar* sv_rcon_maxsockets; -extern ConVar* sv_rcon_maxconnections; -extern ConVar* sv_rcon_maxpacketsize; -extern ConVar* sv_rcon_whitelist_address; -//#endif // DEDICATED -#endif // CLIENT_DLL -extern ConVar* sv_cheats; -extern ConVar* sv_visualizetraces; -extern ConVar* sv_visualizetraces_duration; -#if !defined (GAMEDLL_S0) && !defined (GAMEDLL_S1) -extern ConVar* bhit_enable; -extern ConVar* bhit_depth_test; -extern ConVar* bhit_abs_origin; -#endif // !GAMEDLL_S0 && !GAMEDLL_S1 -//------------------------------------------------------------------------- -// CLIENT | -#ifndef DEDICATED -extern ConVar* cl_rcon_request_sendlogs; -extern ConVar* cl_quota_stringCmdsPerSecond; - -extern ConVar* cl_notify_invert_x; -extern ConVar* cl_notify_invert_y; -extern ConVar* cl_notify_offset_x; -extern ConVar* cl_notify_offset_y; - -extern ConVar* cl_showsimstats; -extern ConVar* cl_simstats_invert_x; -extern ConVar* cl_simstats_invert_y; -extern ConVar* cl_simstats_offset_x; -extern ConVar* cl_simstats_offset_y; - -extern ConVar* cl_showgpustats; -extern ConVar* cl_gpustats_invert_x; -extern ConVar* cl_gpustats_invert_y; -extern ConVar* cl_gpustats_offset_x; -extern ConVar* cl_gpustats_offset_y; - -extern ConVar* cl_showmaterialinfo; -extern ConVar* cl_materialinfo_offset_x; -extern ConVar* cl_materialinfo_offset_y; - -extern ConVar* cl_threaded_bone_setup; - -extern ConVar* con_drawnotify; -extern ConVar* con_notifylines; -extern ConVar* con_notifytime; - -extern ConVar* con_notify_invert_x; -extern ConVar* con_notify_invert_y; -extern ConVar* con_notify_offset_x; -extern ConVar* con_notify_offset_y; - -extern ConVar* con_notify_script_server_clr; -extern ConVar* con_notify_script_client_clr; -extern ConVar* con_notify_script_ui_clr; -extern ConVar* con_notify_native_server_clr; -extern ConVar* con_notify_native_client_clr; -extern ConVar* con_notify_native_ui_clr; -extern ConVar* con_notify_native_engine_clr; -extern ConVar* con_notify_native_fs_clr; -extern ConVar* con_notify_native_rtech_clr; -extern ConVar* con_notify_native_ms_clr; -extern ConVar* con_notify_native_audio_clr; -extern ConVar* con_notify_native_video_clr; -extern ConVar* con_notify_netcon_clr; -extern ConVar* con_notify_common_clr; -extern ConVar* con_notify_warning_clr; -extern ConVar* con_notify_error_clr; - -extern ConVar* con_max_lines; -extern ConVar* con_max_history; -extern ConVar* con_suggestion_limit; -extern ConVar* con_suggestion_showhelptext; -extern ConVar* con_suggestion_showflags; -extern ConVar* con_suggestion_flags_realtime; - -extern ConVar* origin_disconnectWhenOffline; -#endif // !DEDICATED -//------------------------------------------------------------------------- -// FILESYSTEM | -extern ConVar* fs_showWarnings; -extern ConVar* fs_showAllReads; -extern ConVar* fs_packedstore_entryblock_stats; -extern ConVar* fs_packedstore_workspace; -extern ConVar* fs_packedstore_compression_level; -extern ConVar* fs_packedstore_max_helper_threads; -//------------------------------------------------------------------------- -// MATERIALSYSTEM | -#ifndef DEDICATED -extern ConVar* mat_alwaysComplain; -#endif // !DEDICATED -//------------------------------------------------------------------------- -// SQUIRREL | -extern ConVar* script_show_output; -extern ConVar* script_show_warning; -//------------------------------------------------------------------------- -// NETCHANNEL | -extern ConVar* net_tracePayload; -extern ConVar* net_encryptionEnable; -extern ConVar* net_useRandomKey; -extern ConVar* net_usesocketsforloopback; -extern ConVar* net_processTimeBudget; - -extern ConVar* pylon_matchmaking_hostname; -extern ConVar* pylon_host_update_interval; -extern ConVar* pylon_showdebuginfo; -//------------------------------------------------------------------------- -// RTECH API | -extern ConVar* rtech_debug; -//------------------------------------------------------------------------- -// RUI | -#ifndef DEDICATED -extern ConVar* rui_drawEnable; -extern ConVar* rui_defaultDebugFontFace; -#endif // !DEDICATED -//----------------------------------------------------------------------------- -// MILES | -#ifndef DEDICATED -extern ConVar* miles_debug; -extern ConVar* miles_language; -#endif - /* ==== CCVAR =========================================================================================================================================================== */ //----------------------------------------------------------------------------- // Purpose: @@ -362,12 +138,6 @@ public: ConVar(void); virtual ~ConVar(void) { }; - static void StaticInit(void); - static void InitShipped(void); - - static void PurgeShipped(void); - static void PurgeHostNames(void); - FORCEINLINE bool GetBool(void) const; FORCEINLINE float GetFloat(void) const; FORCEINLINE double GetDouble(void) const; diff --git a/r5dev/public/tier1/utlrbtree.h b/r5dev/public/tier1/utlrbtree.h index 6d7310be..6e592b88 100644 --- a/r5dev/public/tier1/utlrbtree.h +++ b/r5dev/public/tier1/utlrbtree.h @@ -104,6 +104,17 @@ void SetDefLessFunc(RBTREE_T& RBTree) RBTree.SetLessFunc(DefLessFunc(typename RBTREE_T::KeyType_t)); } +// For use with FindClosest +// Move these to a common area if anyone else ever uses them +enum CompareOperands_t +{ + k_EEqual = 0x1, + k_EGreaterThan = 0x2, + k_ELessThan = 0x4, + k_EGreaterThanOrEqualTo = k_EGreaterThan | k_EEqual, + k_ELessThanOrEqualTo = k_ELessThan | k_EEqual, +}; + //----------------------------------------------------------------------------- // A red-black binary search tree //----------------------------------------------------------------------------- diff --git a/r5dev/public/tier2/curlutils.h b/r5dev/public/tier2/curlutils.h index 8980c9ed..a7e321e2 100644 --- a/r5dev/public/tier2/curlutils.h +++ b/r5dev/public/tier2/curlutils.h @@ -1,6 +1,10 @@ #ifndef TIER2_CURLUTILS_H #define TIER2_CURLUTILS_H +extern ConVar* ssl_verify_peer; +extern ConVar* curl_timeout; +extern ConVar* curl_debug; + size_t CURLWriteStringCallback(char* contents, const size_t size, const size_t nmemb, void* userp); CURL* CURLInitRequest(const char* remote, const char* request, string& outResponse, curl_slist*& slist); diff --git a/r5dev/rtech/CMakeLists.txt b/r5dev/rtech/CMakeLists.txt new file mode 100644 index 00000000..d8a8f865 --- /dev/null +++ b/r5dev/rtech/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( rtech ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Private" + "rtech_game.cpp" + "rtech_game.h" + "rtech_utils.cpp" + "rtech_utils.h" +) + +add_sources( SOURCE_GROUP "RUI" + "rui/rui.cpp" + "rui/rui.h" +) + +add_sources( SOURCE_GROUP "Stryder" + "stryder/stryder.cpp" + "stryder/stryder.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/sdklauncher/CMakeLists.txt b/r5dev/sdklauncher/CMakeLists.txt new file mode 100644 index 00000000..0fe012e0 --- /dev/null +++ b/r5dev/sdklauncher/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( sdklauncher ) +add_executable( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "sdklauncher.cpp" + "sdklauncher.h" + "sdklauncher_const.h" +) + +add_sources( SOURCE_GROUP "GUI" + "basepanel.cpp" + "basepanel.h" +) + +add_sources( SOURCE_GROUP "Resource" + "sdklauncher_res.h" + "${ENGINE_SOURCE_DIR}/resource/sdklauncher.rc" +) + +end_sources() + +target_compile_definitions( ${PROJECT_NAME} PRIVATE SDKLAUNCHER ) +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) + +set_target_properties( ${PROJECT_NAME} PROPERTIES OUTPUT_NAME "launcher" ) +target_link_libraries( ${PROJECT_NAME} PRIVATE + "tier0" + "libdetours" + "libcppkore" + "Rpcrt4.lib" +) diff --git a/r5dev/sdklauncher/sdklauncher.cpp b/r5dev/sdklauncher/sdklauncher.cpp index 0c97fd82..01af649e 100644 --- a/r5dev/sdklauncher/sdklauncher.cpp +++ b/r5dev/sdklauncher/sdklauncher.cpp @@ -4,7 +4,7 @@ // //=============================================================================// #include "core/stdafx.h" -#include "tier1/binstream.h" +#include "tier0/binstream.h" #include "basepanel.h" #include "sdklauncher_const.h" #include "sdklauncher.h" diff --git a/r5dev/thirdparty/cppnet/CMakeLists.txt b/r5dev/thirdparty/cppnet/CMakeLists.txt new file mode 100644 index 00000000..bc238b42 --- /dev/null +++ b/r5dev/thirdparty/cppnet/CMakeLists.txt @@ -0,0 +1,331 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( libcppkore ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Clipboard" + "cppkore/clipboard/clip.cpp" + "cppkore/clipboard/clip.h" + "cppkore/clipboard/clip_lock_impl.h" + "cppkore/clipboard/clip_win.cpp" +) + +add_sources( SOURCE_GROUP "Core" + "cppkore/Kore.h" + "cppkore/resource.h" + "cppkore/stdafx.cpp" + "cppkore/stdafx.h" + "cppkore/stdext.h" +) + +add_sources( SOURCE_GROUP "Data" + "cppkore/AtomicListBase.h" + "cppkore/AtomicQueueBase.h" + "cppkore/DictionaryBase.h" + "cppkore/EventBase.h" + "cppkore/ImmutableStringBase.h" + "cppkore/ListBase.h" + "cppkore/SecureString.h" + "cppkore/StringBase.h" +) + +add_sources( SOURCE_GROUP "Diagnostics" + "cppkore/Process.cpp" + "cppkore/Process.h" + "cppkore/ProcessInfo.h" + "cppkore/ProcessModule.h" + "cppkore/ProcessStartInfo.h" + "cppkore/ProcessThread.h" +) + +add_sources( SOURCE_GROUP "Drawing" + "cppkore/BufferedGraphics.cpp" + "cppkore/BufferedGraphics.h" + "cppkore/ContentAlignment.h" + "cppkore/DrawingBase.h" + "cppkore/DrawToolTipEventArgs.cpp" + "cppkore/Font.cpp" + "cppkore/Font.h" + "cppkore/Icon.cpp" + "cppkore/Icon.h" + "cppkore/TextFormatFlags.h" + "cppkore/TextRenderer.cpp" + "cppkore/TextRenderer.h" +) + +add_sources( SOURCE_GROUP "Forms" + "cppkore/AnchorStyles.h" + "cppkore/Appearence.h" + "cppkore/Application.cpp" + "cppkore/Application.h" + "cppkore/AutoScaleMode.h" + "cppkore/BorderStyle.h" + "cppkore/BoundsSpecified.h" + "cppkore/Button.cpp" + "cppkore/Button.h" + "cppkore/ButtonBase.cpp" + "cppkore/ButtonBase.h" + "cppkore/ButtonFlags.h" + "cppkore/CharacterCasing.h" + "cppkore/CheckBox.cpp" + "cppkore/CheckBox.h" + "cppkore/CheckState.h" + "cppkore/CloseReason.h" + "cppkore/ColumnHeader.cpp" + "cppkore/ColumnHeader.h" + "cppkore/ColumnHeaderStyle.h" + "cppkore/ComboBox.cpp" + "cppkore/ComboBox.h" + "cppkore/ComboBoxStyle.h" + "cppkore/ContainerControl.cpp" + "cppkore/ContainerControl.h" + "cppkore/Control.cpp" + "cppkore/Control.h" + "cppkore/ControlCollection.cpp" + "cppkore/ControlCollection.h" + "cppkore/ControlStates.h" + "cppkore/ControlStyles.h" + "cppkore/ControlTypes.h" + "cppkore/CreateParams.h" + "cppkore/DialogResult.h" + "cppkore/DragDropEffects.h" + "cppkore/DrawMode.h" + "cppkore/DropTarget.cpp" + "cppkore/DropTarget.h" + "cppkore/FlatStyle.h" + "cppkore/Form.cpp" + "cppkore/Form.h" + "cppkore/FormBorderStyle.h" + "cppkore/FormStartPosition.h" + "cppkore/FormWindowState.h" + "cppkore/GroupBox.cpp" + "cppkore/GroupBox.h" + "cppkore/HorizontalAlignment.h" + "cppkore/ItemActivation.h" + "cppkore/Keys.h" + "cppkore/Label.cpp" + "cppkore/Label.h" + "cppkore/ListView.cpp" + "cppkore/ListView.h" + "cppkore/ListViewAlignment.h" + "cppkore/ListViewFlags.h" + "cppkore/ListViewItem.cpp" + "cppkore/ListViewItem.h" + "cppkore/ListViewItemStates.h" + "cppkore/Message.h" + "cppkore/MessageBox.cpp" + "cppkore/MessageBox.h" + "cppkore/MessageBoxButtons.h" + "cppkore/MessageBoxDefaultButton.h" + "cppkore/MessageBoxIcon.h" + "cppkore/MessageBoxOptions.h" + "cppkore/MouseButtons.h" + "cppkore/OpenFileDialog.cpp" + "cppkore/OpenFileDialog.h" + "cppkore/OpenGLViewport.cpp" + "cppkore/OpenGLViewport.h" + "cppkore/Panel.cpp" + "cppkore/Panel.h" + "cppkore/ProgressBar.cpp" + "cppkore/ProgressBar.h" + "cppkore/ProgressBarStyle.h" + "cppkore/RadioButton.cpp" + "cppkore/RadioButton.h" + "cppkore/SaveFileDialog.cpp" + "cppkore/SaveFileDialog.h" + "cppkore/ScrollBars.h" + "cppkore/SortOrder.h" + "cppkore/TextBox.cpp" + "cppkore/TextBox.h" + "cppkore/TextBoxBase.cpp" + "cppkore/TextBoxBase.h" + "cppkore/TextBoxFlags.h" + "cppkore/ToolTip.cpp" + "cppkore/ToolTip.h" + "cppkore/ToolTipIcon.h" + "cppkore/View.h" +) + +add_sources( SOURCE_GROUP "Forms/EventArgs" + "cppkore/CacheVirtualItemsEventArgs.cpp" + "cppkore/CacheVirtualItemsEventArgs.h" + "cppkore/CancelEventArgs.cpp" + "cppkore/CancelEventArgs.h" + "cppkore/ColumnClickEventArgs.cpp" + "cppkore/ColumnClickEventArgs.h" + "cppkore/DragEventArgs.cpp" + "cppkore/DragEventArgs.h" + "cppkore/DrawListViewColumnHeaderEventArgs.cpp" + "cppkore/DrawListViewColumnHeaderEventArgs.h" + "cppkore/DrawListViewItemEventArgs.cpp" + "cppkore/DrawListViewItemEventArgs.h" + "cppkore/DrawListViewSubItemEventArgs.cpp" + "cppkore/DrawListViewSubItemEventArgs.h" + "cppkore/DrawToolTipEventArgs.h" + "cppkore/FormClosedEventArgs.cpp" + "cppkore/FormClosedEventArgs.h" + "cppkore/FormClosingEventArgs.cpp" + "cppkore/FormClosingEventArgs.h" + "cppkore/HandledMouseEventArgs.cpp" + "cppkore/HandledMouseEventArgs.h" + "cppkore/InvalidateEventArgs.cpp" + "cppkore/InvalidateEventArgs.h" + "cppkore/KeyEventArgs.cpp" + "cppkore/KeyEventArgs.h" + "cppkore/KeyPressEventArgs.cpp" + "cppkore/KeyPressEventArgs.h" + "cppkore/LabelEditEventArgs.cpp" + "cppkore/LabelEditEventArgs.h" + "cppkore/ListViewVirtualItemsSelectionRangeChangedEventArgs.cpp" + "cppkore/ListViewVirtualItemsSelectionRangeChangedEventArgs.h" + "cppkore/MouseEventArgs.cpp" + "cppkore/MouseEventArgs.h" + "cppkore/PaintEventArgs.cpp" + "cppkore/PaintEventArgs.h" + "cppkore/PaintFrameEventArgs.cpp" + "cppkore/PaintFrameEventArgs.h" + "cppkore/PopupEventArgs.cpp" + "cppkore/PopupEventArgs.h" + "cppkore/RetrieveVirtualItemEventArgs.cpp" + "cppkore/RetrieveVirtualItemEventArgs.h" +) + +add_sources( SOURCE_GROUP "Hashing" + "cppkore/Adler32.cpp" + "cppkore/Adler32.h" + "cppkore/CRC32.cpp" + "cppkore/CRC32.h" + "cppkore/HashComparer.h" + "cppkore/HashHelpers.h" + "cppkore/XXHash.cpp" + "cppkore/XXHash.h" +) + +add_sources( SOURCE_GROUP "IO" + "cppkore/Path.cpp" + "cppkore/Path.h" +) + +add_sources( SOURCE_GROUP "Jobs" + "cppkore/Job.cpp" + "cppkore/Job.h" + "cppkore/JobManager.cpp" + "cppkore/JobManager.h" + "cppkore/JobWorker.cpp" + "cppkore/JobWorker.h" +) + +add_sources( SOURCE_GROUP "MGL" + "cppkore/Mangle.cpp" + "cppkore/Mangle.h" + "cppkore/Mangler.cpp" + "cppkore/Mangler.h" +) + +add_sources( SOURCE_GROUP "MGL/Fonts" + "cppkore/FontArial.h" +) + +add_sources( SOURCE_GROUP "MGL/Shaders" + "cppkore/ModelFragmentShader.h" + "cppkore/ModelVertexShader.h" +) + +add_sources( SOURCE_GROUP "Math" + "cppkore/Half.cpp" + "cppkore/Half.h" + "cppkore/MathHelper.h" + "cppkore/Matrix.cpp" + "cppkore/Matrix.h" + "cppkore/Quaternion.cpp" + "cppkore/Quaternion.h" + "cppkore/Vector2.cpp" + "cppkore/Vector2.h" + "cppkore/Vector3.cpp" + "cppkore/Vector3.h" +) + +add_sources( SOURCE_GROUP "Net" + "cppkore/InternetPortType.h" + "cppkore/Uri.cpp" + "cppkore/Uri.h" +) + +add_sources( SOURCE_GROUP "System" + "cppkore/__ConsoleInit.cpp" + "cppkore/__ConsoleInit.h" + "cppkore/Console.cpp" + "cppkore/Console.h" + "cppkore/ConsoleColor.cpp" + "cppkore/ConsoleColor.h" + "cppkore/ConsoleKey.h" + "cppkore/ConsoleKeyInfo.h" + "cppkore/Environment.cpp" + "cppkore/Environment.h" + "cppkore/SpecialFolder.h" +) + +add_sources( SOURCE_GROUP "Threading" + "cppkore/Action.h" + "cppkore/ParallelTask.h" + "cppkore/Task.h" + "cppkore/Thread.cpp" + "cppkore/Thread.h" + "cppkore/ThreadStart.h" +) + +add_sources( SOURCE_GROUP "UIX" + "cppkore/UIXButton.cpp" + "cppkore/UIXButton.h" + "cppkore/UIXCheckBox.cpp" + "cppkore/UIXCheckBox.h" + "cppkore/UIXComboBox.cpp" + "cppkore/UIXComboBox.h" + "cppkore/UIXControls.h" + "cppkore/UIXGroupBox.cpp" + "cppkore/UIXGroupBox.h" + "cppkore/UIXLabel.cpp" + "cppkore/UIXLabel.h" + "cppkore/UIXListView.cpp" + "cppkore/UIXListView.h" + "cppkore/UIXListViewHeader.cpp" + "cppkore/UIXListViewHeader.h" + "cppkore/UIXProgressBar.cpp" + "cppkore/UIXProgressBar.h" + "cppkore/UIXRadioButton.cpp" + "cppkore/UIXRadioButton.h" + "cppkore/UIXRenderer.h" + "cppkore/UIXTextBox.cpp" + "cppkore/UIXTextBox.h" + "cppkore/UIXTheme.cpp" + "cppkore/UIXTheme.h" + "cppkore/UIXToolTip.cpp" + "cppkore/UIXToolTip.h" +) + +add_sources( SOURCE_GROUP "UIX/Images" + "cppkore/CheckBoxImage.h" +) + +add_sources( SOURCE_GROUP "UIX/Themes" + "cppkore/KoreTheme.cpp" + "cppkore/KoreTheme.h" + "cppkore/WraithTheme.cpp" + "cppkore/WraithTheme.h" +) + +add_sources( SOURCE_GROUP "Win32" + "cppkore/Registry.cpp" + "cppkore/Registry.h" + "cppkore/RegistryHive.h" + "cppkore/RegistryKey.cpp" + "cppkore/RegistryKey.h" + "cppkore/RegistryValueType.h" + "cppkore/RegistryView.h" + "cppkore/Win32Error.cpp" + "cppkore/Win32Error.h" +) + +end_sources() \ No newline at end of file diff --git a/r5dev/thirdparty/curl/CMakeLists.txt b/r5dev/thirdparty/curl/CMakeLists.txt index eb2de6d8..ad3a93b1 100644 --- a/r5dev/thirdparty/curl/CMakeLists.txt +++ b/r5dev/thirdparty/curl/CMakeLists.txt @@ -1,109 +1,286 @@ -set(LIB_NAME libcurl) +cmake_minimum_required( VERSION 3.16 ) -configure_file(${CURL_SOURCE_DIR}/include/curl/curlbuild.h.cmake - ${CURL_BINARY_DIR}/include/curl/curlbuild.h) -configure_file(curl_config.h.cmake - ${CMAKE_CURRENT_BINARY_DIR}/curl_config.h) +project( libcurl ) +add_library( ${PROJECT_NAME} ) -transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake") -include(${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake) +start_sources() -list(APPEND HHEADERS - ${CMAKE_CURRENT_BINARY_DIR}/curl_config.h - ${CURL_BINARY_DIR}/include/curl/curlbuild.h - ) +add_sources( SOURCE_GROUP "Core" + "amigaos.c" + "asyn-ares.c" + "asyn-thread.c" + "base64.c" + "conncache.c" + "connect.c" + "content_encoding.c" + "cookie.c" + "curl_addrinfo.c" + "curl_des.c" + "curl_endian.c" + "curl_fnmatch.c" + "curl_gethostname.c" + "curl_gssapi.c" + "curl_memrchr.c" + "curl_multibyte.c" + "curl_ntlm_core.c" + "curl_ntlm_wb.c" + "curl_rtmp.c" + "curl_sasl.c" + "curl_sspi.c" + "curl_threads.c" + "dict.c" + "dotdot.c" + "easy.c" + "escape.c" + "file.c" + "fileinfo.c" + "formdata.c" + "ftp.c" + "ftplistparser.c" + "getenv.c" + "getinfo.c" + "gopher.c" + "hash.c" + "hmac.c" + "hostasyn.c" + "hostcheck.c" + "hostip.c" + "hostip4.c" + "hostip6.c" + "hostsyn.c" + "http.c" + "http2.c" + "http_chunks.c" + "http_digest.c" + "http_negotiate.c" + "http_ntlm.c" + "http_proxy.c" + "idn_win32.c" + "if2ip.c" + "imap.c" + "inet_ntop.c" + "inet_pton.c" + "krb5.c" + "ldap.c" + "llist.c" + "md4.c" + "md5.c" + "memdebug.c" + "mprintf.c" + "multi.c" + "netrc.c" + "non-ascii.c" + "nonblock.c" + "nwlib.c" + "nwos.c" + "openldap.c" + "parsedate.c" + "pingpong.c" + "pipeline.c" + "pop3.c" + "progress.c" + "rand.c" + "rtsp.c" + "security.c" + "select.c" + "sendf.c" + "share.c" + "slist.c" + "smb.c" + "smtp.c" + "socks.c" + "socks_gssapi.c" + "socks_sspi.c" + "speedcheck.c" + "splay.c" + "ssh.c" + "strcase.c" + "strdup.c" + "strerror.c" + "strtok.c" + "strtoofft.c" + "system_win32.c" + "telnet.c" + "tftp.c" + "timeval.c" + "transfer.c" + "url.c" + "version.c" + "warnless.c" + "wildcard.c" + "x509asn1.c" +) -if(MSVC) - list(APPEND CSOURCES libcurl.rc) -endif() +add_sources( SOURCE_GROUP "Include" + "config-amigaos.h" + "config-dos.h" + "config-mac.h" + "config-os400.h" + "config-riscos.h" + "config-symbian.h" + "config-tpf.h" + "config-vxworks.h" + "config-win32.h" + "config-win32ce.h" + "conncache.h" + "connect.h" + "content_encoding.h" + "cookie.h" + "curl_addrinfo.h" + "curl_base64.h" + "curl_des.h" + "curl_endian.h" + "curl_fnmatch.h" + "curl_gethostname.h" + "curl_gssapi.h" + "curl_hmac.h" + "curl_ldap.h" + "curl_md4.h" + "curl_md5.h" + "curl_memory.h" + "curl_memrchr.h" + "curl_multibyte.h" + "curl_ntlm_core.h" + "curl_ntlm_wb.h" + "curl_printf.h" + "curl_rtmp.h" + "curl_sasl.h" + "curl_sec.h" + "curl_setup.h" + "curl_setup_once.h" + "curl_sspi.h" + "curl_threads.h" + "curlx.h" + "dict.h" + "dotdot.h" + "easyif.h" + "escape.h" + "file.h" + "fileinfo.h" + "formdata.h" + "ftp.h" + "ftplistparser.h" + "getinfo.h" + "gopher.h" + "hash.h" + "hostcheck.h" + "hostip.h" + "http.h" + "http2.h" + "http_chunks.h" + "http_digest.h" + "http_negotiate.h" + "http_ntlm.h" + "http_proxy.h" + "if2ip.h" + "imap.h" + "inet_ntop.h" + "inet_pton.h" + "llist.h" + "memdebug.h" + "multihandle.h" + "multiif.h" + "netrc.h" + "non-ascii.h" + "nonblock.h" + "parsedate.h" + "pingpong.h" + "pipeline.h" + "pop3.h" + "progress.h" + "rand.h" + "rtsp.h" + "select.h" + "sendf.h" + "setup-os400.h" + "setup-vms.h" + "share.h" + "sigpipe.h" + "slist.h" + "smb.h" + "smtp.h" + "sockaddr.h" + "socks.h" + "speedcheck.h" + "splay.h" + "ssh.h" + "strcase.h" + "strdup.h" + "strerror.h" + "strtok.h" + "strtoofft.h" + "system_win32.h" + "telnet.h" + "tftp.h" + "timeval.h" + "transfer.h" + "url.h" + "urldata.h" + "warnless.h" + "wildcard.h" + "x509asn1.h" +) -# SET(CSOURCES -# # memdebug.c -not used -# # nwlib.c - Not used -# # strtok.c - specify later -# # strtoofft.c - specify later -# ) +add_sources( SOURCE_GROUP "Vauth" + "vauth/cleartext.c" + "vauth/cram.c" + "vauth/digest.c" + "vauth/digest_sspi.c" + "vauth/krb5_gssapi.c" + "vauth/krb5_sspi.c" + "vauth/ntlm.c" + "vauth/ntlm_sspi.c" + "vauth/oauth2.c" + "vauth/spnego_gssapi.c" + "vauth/spnego_sspi.c" + "vauth/vauth.c" +) -# # if we have Kerberos 4, right now this is never on -# #OPTION(CURL_KRB4 "Use Kerberos 4" OFF) -# IF(CURL_KRB4) -# SET(CSOURCES ${CSOURCES} -# krb4.c -# security.c -# ) -# ENDIF(CURL_KRB4) +add_sources( SOURCE_GROUP "Vauth/Include" + "vauth/digest.h" + "vauth/ntlm.h" + "vauth/vauth.h" +) -# #OPTION(CURL_MALLOC_DEBUG "Debug mallocs in Curl" OFF) -# MARK_AS_ADVANCED(CURL_MALLOC_DEBUG) -# IF(CURL_MALLOC_DEBUG) -# SET(CSOURCES ${CSOURCES} -# memdebug.c -# ) -# ENDIF(CURL_MALLOC_DEBUG) +add_sources( SOURCE_GROUP "Vtls" + "vtls/axtls.c" + "vtls/cyassl.c" + "vtls/darwinssl.c" + "vtls/gskit.c" + "vtls/gtls.c" + "vtls/mbedtls.c" + "vtls/nss.c" + "vtls/openssl.c" + "vtls/polarssl.c" + "vtls/polarssl_threadlock.c" + "vtls/schannel.c" + "vtls/vtls.c" +) -# # only build compat strtoofft if we need to -# IF(NOT HAVE_STRTOLL AND NOT HAVE__STRTOI64) -# SET(CSOURCES ${CSOURCES} -# strtoofft.c -# ) -# ENDIF(NOT HAVE_STRTOLL AND NOT HAVE__STRTOI64) +add_sources( SOURCE_GROUP "Vtls/Include" + "vtls/axtls.h" + "vtls/cyassl.h" + "vtls/darwinssl.h" + "vtls/gskit.h" + "vtls/gtls.h" + "vtls/mbedtls.h" + "vtls/nssg.h" + "vtls/openssl.h" + "vtls/polarssl.h" + "vtls/polarssl_threadlock.h" + "vtls/schannel.h" + "vtls/vtls.h" +) +end_sources() +target_compile_definitions( ${PROJECT_NAME} PRIVATE + BUILDING_LIBCURL + CURL_STATICLIB + USE_WINDOWS_SSPI + USE_SCHANNEL +) -# The rest of the build - -include_directories(${CMAKE_CURRENT_BINARY_DIR}/../include) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../include) -include_directories(${CMAKE_CURRENT_BINARY_DIR}/..) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) -include_directories(${CMAKE_CURRENT_BINARY_DIR}) -if(USE_ARES) - include_directories(${CARES_INCLUDE_DIR}) -endif() - -if(CURL_STATICLIB) - # Static lib - set(CURL_USER_DEFINED_DYNAMIC_OR_STATIC STATIC) -else() - # DLL / so dynamic lib - set(CURL_USER_DEFINED_DYNAMIC_OR_STATIC SHARED) -endif() - -add_library( - ${LIB_NAME} - ${CURL_USER_DEFINED_DYNAMIC_OR_STATIC} - ${HHEADERS} ${CSOURCES} - ) - -if(MSVC AND CURL_STATICLIB) - set_target_properties(${LIB_NAME} PROPERTIES STATIC_LIBRARY_FLAGS ${CMAKE_EXE_LINKER_FLAGS}) -endif() - -target_link_libraries(${LIB_NAME} ${CURL_LIBS}) - -if(WIN32) - add_definitions( -D_USRDLL ) -endif() - -set_target_properties(${LIB_NAME} PROPERTIES COMPILE_DEFINITIONS BUILDING_LIBCURL) - -if(HIDES_CURL_PRIVATE_SYMBOLS) - set_property(TARGET ${LIB_NAME} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_HIDDEN_SYMBOLS") - set_property(TARGET ${LIB_NAME} APPEND PROPERTY COMPILE_FLAGS ${CURL_CFLAG_SYMBOLS_HIDE}) -endif() - -# Remove the "lib" prefix since the library is already named "libcurl". -set_target_properties(${LIB_NAME} PROPERTIES PREFIX "") -set_target_properties(${LIB_NAME} PROPERTIES IMPORT_PREFIX "") - -if(WIN32) - if(NOT CURL_STATICLIB) - # Add "_imp" as a suffix before the extension to avoid conflicting with the statically linked "libcurl.lib" - set_target_properties(${LIB_NAME} PROPERTIES IMPORT_SUFFIX "_imp.lib") - endif() -endif() - -install(TARGETS ${LIB_NAME} - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - RUNTIME DESTINATION bin) +target_include_directories( ${PROJECT_NAME} PRIVATE + "${ENGINE_SOURCE_DIR}/thirdparty/curl/" + "${ENGINE_SOURCE_DIR}/thirdparty/curl/include/" +) diff --git a/r5dev/thirdparty/detours/CMakeLists.txt b/r5dev/thirdparty/detours/CMakeLists.txt new file mode 100644 index 00000000..760c2e1f --- /dev/null +++ b/r5dev/thirdparty/detours/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( libdetours ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Runtime" + "src/creatwth.cpp" + "src/detours.cpp" + "src/disasm.cpp" + "src/modules.cpp" + "include/detours.h" + "include/detver.h" + "include/idetour.h" + "include/syelog.h" +) + +end_sources() diff --git a/r5dev/thirdparty/fastlz/CMakeLists.txt b/r5dev/thirdparty/fastlz/CMakeLists.txt new file mode 100644 index 00000000..715b78e5 --- /dev/null +++ b/r5dev/thirdparty/fastlz/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( FastLZ ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "fastlz.c" + "fastlz.h" +) + +end_sources() diff --git a/r5dev/thirdparty/imgui/CMakeLists.txt b/r5dev/thirdparty/imgui/CMakeLists.txt new file mode 100644 index 00000000..416ef1ce --- /dev/null +++ b/r5dev/thirdparty/imgui/CMakeLists.txt @@ -0,0 +1,41 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( libimgui ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "imconfig.h" + "imgui.cpp" + "imgui.h" + "imgui_demo.cpp" + "imgui_draw.cpp" + "imgui_internal.h" + "imgui_tables.cpp" + "imgui_widgets.cpp" + "imstb_rectpack.h" + "imstb_textedit.h" + "imstb_truetype.h" +) + +add_sources( SOURCE_GROUP "Backends" + "backends/imgui_impl_dx11.cpp" + "backends/imgui_impl_dx11.h" + "backends/imgui_impl_win32.cpp" + "backends/imgui_impl_win32.h" +) + +add_sources( SOURCE_GROUP "Misc" + "misc/imgui_editor.cpp" + "misc/imgui_editor.h" + "misc/imgui_logger.cpp" + "misc/imgui_logger.h" + "misc/imgui_utility.cpp" + "misc/imgui_utility.h" + "misc/cpp/imgui_stdlib.cpp" + "misc/cpp/imgui_stdlib.h" +) + +end_sources() +target_compile_definitions( ${PROJECT_NAME} PRIVATE BUILDING_LIBIMGUI ) diff --git a/r5dev/thirdparty/lzham/CMakeLists.txt b/r5dev/thirdparty/lzham/CMakeLists.txt new file mode 100644 index 00000000..3a21b701 --- /dev/null +++ b/r5dev/thirdparty/lzham/CMakeLists.txt @@ -0,0 +1,70 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( liblzham ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "lzham_api.cpp" + "lzham_assert.cpp" + "lzham_checksum.cpp" + "lzham_huffman_codes.cpp" + "lzham_lzbase.cpp" + "lzham_match_accel.cpp" + "lzham_mem.cpp" + "lzham_platform.cpp" + "lzham_polar_codes.cpp" + "lzham_prefix_coding.cpp" + "lzham_pthreads_threading.cpp" + "lzham_symbol_codec.cpp" + "lzham_timer.cpp" + "lzham_vector.cpp" + "lzham_win32_threading.cpp" +) + +add_sources( SOURCE_GROUP "Compress" + "lzhamcomp/lzham_comp.h" + "lzhamcomp/lzham_lzcomp.cpp" + "lzhamcomp/lzham_lzcomp_internal.cpp" + "lzhamcomp/lzham_lzcomp_internal.h" + "lzhamcomp/lzham_lzcomp_state.cpp" +) + +add_sources( SOURCE_GROUP "Decompress" + "lzhamdecomp/lzham_decomp.h" + "lzhamdecomp/lzham_lzdecomp.cpp" + "lzhamdecomp/lzham_lzdecompbase.cpp" + "lzhamdecomp/lzham_lzdecompbase.h" +) + +add_sources( SOURCE_GROUP "Include" + "include/lzham.h" + "include/lzham_assert.h" + "include/lzham_checksum.h" + "include/lzham_config.h" + "include/lzham_core.h" + "include/lzham_helpers.h" + "include/lzham_huffman_codes.h" + "include/lzham_lzbase.h" + "include/lzham_match_accel.h" + "include/lzham_math.h" + "include/lzham_mem.h" + "include/lzham_null_threading.h" + "include/lzham_platform.h" + "include/lzham_polar_codes.h" + "include/lzham_prefix_coding.h" + "include/lzham_pthreads_threading.h" + "include/lzham_static_lib.h" + "include/lzham_symbol_codec.h" + "include/lzham_threading.h" + "include/lzham_timer.h" + "include/lzham_traits.h" + "include/lzham_types.h" + "include/lzham_utils.h" + "include/lzham_vector.h" + "include/lzham_win32_threading.h" +) + +end_sources() +target_compile_definitions( ${PROJECT_NAME} PRIVATE WIN32 ) diff --git a/r5dev/thirdparty/protobuf/CMakeLists.txt b/r5dev/thirdparty/protobuf/CMakeLists.txt new file mode 100644 index 00000000..6bfa2fba --- /dev/null +++ b/r5dev/thirdparty/protobuf/CMakeLists.txt @@ -0,0 +1,107 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( libprotobuf ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Source" + "any_lite.cc" + "arena.cc" + "arenastring.cc" + "extension_set.cc" + "generated_enum_util.cc" + "generated_message_tctable_lite.cc" + "generated_message_util.cc" + "implicit_weak_message.cc" + "inlined_string_field.cc" + "map.cc" + "message_lite.cc" + "parse_context.cc" + "repeated_field.cc" + "repeated_ptr_field.cc" + "wire_format_lite.cc" +) + +add_sources( SOURCE_GROUP "Include" + "any.h" + "arena.h" + "arena_impl.h" + "arenastring.h" + "explicitly_constructed.h" + "extension_set.h" + "extension_set_inl.h" + "generated_enum_util.h" + "generated_message_tctable_decl.h" + "generated_message_tctable_impl.h" + "generated_message_util.h" + "has_bits.h" + "implicit_weak_message.h" + "inlined_string_field.h" + "map.h" + "map_entry_lite.h" + "map_field_lite.h" + "message_lite.h" + "parse_context.h" + "port.h" + "repeated_field.h" + "repeated_ptr_field.h" + "wire_format_lite.h" +) + +add_sources( SOURCE_GROUP "IO" + "io/coded_stream.cc" + "io/io_win32.cc" + "io/strtod.cc" + "io/zero_copy_stream.cc" + "io/zero_copy_stream_impl.cc" + "io/zero_copy_stream_impl_lite.cc" +) + +add_sources( SOURCE_GROUP "IO/Include" + "io/coded_stream.h" + "io/io_win32.h" + "io/strtod.h" + "io/zero_copy_stream.h" + "io/zero_copy_stream_impl.h" + "io/zero_copy_stream_impl_lite.h" +) + +add_sources( SOURCE_GROUP "Stubs" + "stubs/bytestream.cc" + "stubs/common.cc" + "stubs/int128.cc" + "stubs/status.cc" + "stubs/statusor.cc" + "stubs/stringpiece.cc" + "stubs/stringprintf.cc" + "stubs/structurally_valid.cc" + "stubs/strutil.cc" + "stubs/time.cc" +) + +add_sources( SOURCE_GROUP "Stubs/Include" + "stubs/bytestream.h" + "stubs/callback.h" + "stubs/casts.h" + "stubs/common.h" + "stubs/hash.h" + "stubs/int128.h" + "stubs/logging.h" + "stubs/macros.h" + "stubs/map_util.h" + "stubs/mutex.h" + "stubs/once.h" + "stubs/platform_macros.h" + "stubs/port.h" + "stubs/status.h" + "stubs/statusor.h" + "stubs/stl_util.h" + "stubs/stringpiece.h" + "stubs/stringprintf.h" + "stubs/strutil.h" + "stubs/template_util.h" + "stubs/time.h" +) + +end_sources() diff --git a/r5dev/thirdparty/recast/CMakeLists.txt b/r5dev/thirdparty/recast/CMakeLists.txt new file mode 100644 index 00000000..1b55525b --- /dev/null +++ b/r5dev/thirdparty/recast/CMakeLists.txt @@ -0,0 +1,142 @@ +cmake_minimum_required( VERSION 3.16 ) + +# ----------------------------------------------------------------------------- +# Recast & Detour debug utilities +# ----------------------------------------------------------------------------- +project( navdebugutils ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Source" + "DebugUtils/Source/DebugDraw.cpp" + "DebugUtils/Source/DetourDebugDraw.cpp" + "DebugUtils/Source/RecastDebugDraw.cpp" + "DebugUtils/Source/RecastDump.cpp" +) + +add_sources( SOURCE_GROUP "Include" + "DebugUtils/Include/DebugDraw.h" + "DebugUtils/Include/DetourDebugDraw.h" + "DebugUtils/Include/RecastDebugDraw.h" + "DebugUtils/Include/RecastDump.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) + +# ----------------------------------------------------------------------------- +# Detour runtime +# ----------------------------------------------------------------------------- +project( libdetour ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Source" + "Detour/Source/DetourAlloc.cpp" + "Detour/Source/DetourAssert.cpp" + "Detour/Source/DetourCommon.cpp" + "Detour/Source/DetourNavMesh.cpp" + "Detour/Source/DetourNavMeshBuilder.cpp" + "Detour/Source/DetourNavMeshQuery.cpp" + "Detour/Source/DetourNode.cpp" +) + +add_sources( SOURCE_GROUP "Include" + "Detour/Include/DetourAlloc.h" + "Detour/Include/DetourAssert.h" + "Detour/Include/DetourCommon.h" + "Detour/Include/DetourMath.h" + "Detour/Include/DetourNavMesh.h" + "Detour/Include/DetourNavMeshBuilder.h" + "Detour/Include/DetourNavMeshQuery.h" + "Detour/Include/DetourNode.h" + "Detour/Include/DetourStatus.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) + +# ----------------------------------------------------------------------------- +# Detour crowd +# ----------------------------------------------------------------------------- +project( libdetourcrowd ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Source" + "DetourCrowd/Source/DetourCrowd.cpp" + "DetourCrowd/Source/DetourCrowdInternal.cpp" + "DetourCrowd/Source/DetourLocalBoundary.cpp" + "DetourCrowd/Source/DetourObstacleAvoidance.cpp" + "DetourCrowd/Source/DetourPathCorridor.cpp" + "DetourCrowd/Source/DetourPathQueue.cpp" + "DetourCrowd/Source/DetourProximityGrid.cpp" +) + +add_sources( SOURCE_GROUP "Include" + "DetourCrowd/Include/DetourCrowd.h" + "DetourCrowd/Include/DetourCrowdInternal.h" + "DetourCrowd/Include/DetourLocalBoundary.h" + "DetourCrowd/Include/DetourObstacleAvoidance.h" + "DetourCrowd/Include/DetourPathCorridor.h" + "DetourCrowd/Include/DetourPathQueue.h" + "DetourCrowd/Include/DetourProximityGrid.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) + +# ----------------------------------------------------------------------------- +# Detour tile cache +# ----------------------------------------------------------------------------- +project( libdetourtilecache ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Source" + "DetourTileCache/Source/DetourTileCache.cpp" + "DetourTileCache/Source/DetourTileCacheBuilder.cpp" +) + +add_sources( SOURCE_GROUP "Include" + "DetourTileCache/Include/DetourTileCache.h" + "DetourTileCache/Include/DetourTileCacheBuilder.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) + +# ----------------------------------------------------------------------------- +# Recast runtime +# ----------------------------------------------------------------------------- +project( librecast ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Source" + "Recast/Source/Recast.cpp" + "Recast/Source/RecastAlloc.cpp" + "Recast/Source/RecastArea.cpp" + "Recast/Source/RecastAssert.cpp" + "Recast/Source/RecastContour.cpp" + "Recast/Source/RecastFilter.cpp" + "Recast/Source/RecastLayers.cpp" + "Recast/Source/RecastMesh.cpp" + "Recast/Source/RecastMeshDetail.cpp" + "Recast/Source/RecastRasterization.cpp" + "Recast/Source/RecastRegion.cpp" +) + +add_sources( SOURCE_GROUP "Include" + "Recast/Include/Recast.h" + "Recast/Include/RecastAlloc.h" + "Recast/Include/RecastAssert.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) diff --git a/r5dev/thirdparty/sdl/CMakeLists.txt b/r5dev/thirdparty/sdl/CMakeLists.txt new file mode 100644 index 00000000..0ed47d7d --- /dev/null +++ b/r5dev/thirdparty/sdl/CMakeLists.txt @@ -0,0 +1,561 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( libsdl2 ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Core" + "src/hidapi/SDL_hidapi_c.h" + "src/SDL.c" + "src/SDL_assert.c" + "src/SDL_assert_c.h" + "src/SDL_dataqueue.c" + "src/SDL_dataqueue.h" + "src/SDL_error.c" + "src/SDL_error_c.h" + "src/SDL_hints.c" + "src/SDL_hints_c.h" + "src/SDL_internal.h" + "src/SDL_log.c" +) + +add_sources( SOURCE_GROUP "API Headers" + "include/begin_code.h" + "include/close_code.h" + "include/SDL.h" + "include/SDL_assert.h" + "include/SDL_atomic.h" + "include/SDL_audio.h" + "include/SDL_bits.h" + "include/SDL_blendmode.h" + "include/SDL_clipboard.h" + "include/SDL_config.h" + "include/SDL_config_windows.h" + "include/SDL_copying.h" + "include/SDL_cpuinfo.h" + "include/SDL_egl.h" + "include/SDL_endian.h" + "include/SDL_error.h" + "include/SDL_events.h" + "include/SDL_filesystem.h" + "include/SDL_gamecontroller.h" + "include/SDL_gesture.h" + "include/SDL_haptic.h" + "include/SDL_hidapi.h" + "include/SDL_hints.h" + "include/SDL_joystick.h" + "include/SDL_keyboard.h" + "include/SDL_keycode.h" + "include/SDL_loadso.h" + "include/SDL_locale.h" + "include/SDL_log.h" + "include/SDL_main.h" + "include/SDL_messagebox.h" + "include/SDL_metal.h" + "include/SDL_misc.h" + "include/SDL_mouse.h" + "include/SDL_mutex.h" + "include/SDL_name.h" + "include/SDL_opengl.h" + "include/SDL_opengl_glext.h" + "include/SDL_opengles.h" + "include/SDL_opengles2.h" + "include/SDL_opengles2_gl2.h" + "include/SDL_opengles2_gl2ext.h" + "include/SDL_opengles2_gl2platform.h" + "include/SDL_opengles2_khrplatform.h" + "include/SDL_pixels.h" + "include/SDL_platform.h" + "include/SDL_power.h" + "include/SDL_quit.h" + "include/SDL_rect.h" + "include/SDL_render.h" + "include/SDL_revision.h" + "include/SDL_rwops.h" + "include/SDL_scancode.h" + "include/SDL_sensor.h" + "include/SDL_shape.h" + "include/SDL_stdinc.h" + "include/SDL_surface.h" + "include/SDL_system.h" + "include/SDL_syswm.h" + "include/SDL_test.h" + "include/SDL_test_assert.h" + "include/SDL_test_common.h" + "include/SDL_test_compare.h" + "include/SDL_test_crc32.h" + "include/SDL_test_font.h" + "include/SDL_test_fuzzer.h" + "include/SDL_test_harness.h" + "include/SDL_test_images.h" + "include/SDL_test_log.h" + "include/SDL_test_md5.h" + "include/SDL_test_memory.h" + "include/SDL_test_random.h" + "include/SDL_thread.h" + "include/SDL_timer.h" + "include/SDL_touch.h" + "include/SDL_types.h" + "include/SDL_version.h" + "include/SDL_video.h" + "include/SDL_vulkan.h" +) + +add_sources( SOURCE_GROUP "Atomic" + "src/atomic/SDL_atomic.c" + "src/atomic/SDL_spinlock.c" +) + +add_sources( SOURCE_GROUP "Audio" + "src/audio/SDL_audio.c" + "src/audio/SDL_audio_c.h" + "src/audio/SDL_audiocvt.c" + "src/audio/SDL_audiodev.c" + "src/audio/SDL_audiodev_c.h" + "src/audio/SDL_audiotypecvt.c" + "src/audio/SDL_mixer.c" + "src/audio/SDL_sysaudio.h" + "src/audio/SDL_wave.c" + "src/audio/SDL_wave.h" +) + +add_sources( SOURCE_GROUP "Audio/DirectSound" + "src/audio/directsound/SDL_directsound.c" + "src/audio/directsound/SDL_directsound.h" +) +source_group("audio\\directsound" FILES ${audio__directsound}) + +add_sources( SOURCE_GROUP "Audio/Disk" + "src/audio/disk/SDL_diskaudio.c" + "src/audio/disk/SDL_diskaudio.h" +) + +add_sources( SOURCE_GROUP "Audio/Dummy" + "src/audio/dummy/SDL_dummyaudio.c" + "src/audio/dummy/SDL_dummyaudio.h" +) + +add_sources( SOURCE_GROUP "Audio/WasAPI" + "src/audio/wasapi/SDL_wasapi.c" + "src/audio/wasapi/SDL_wasapi.h" + "src/audio/wasapi/SDL_wasapi_win32.c" +) + +add_sources( SOURCE_GROUP "Audio/WinMM" + "src/audio/winmm/SDL_winmm.c" + "src/audio/winmm/SDL_winmm.h" +) + +add_sources( SOURCE_GROUP "Core/Windows" + "src/core/windows/SDL_directx.h" + "src/core/windows/SDL_hid.c" + "src/core/windows/SDL_hid.h" + "src/core/windows/SDL_windows.c" + "src/core/windows/SDL_windows.h" + "src/core/windows/SDL_xinput.c" + "src/core/windows/SDL_xinput.h" +) + +add_sources( SOURCE_GROUP "CpuInfo" + "src/cpuinfo/SDL_cpuinfo.c" +) + +add_sources( SOURCE_GROUP "DynAPI" + "src/dynapi/SDL_dynapi.c" + "src/dynapi/SDL_dynapi.h" + "src/dynapi/SDL_dynapi_overrides.h" + "src/dynapi/SDL_dynapi_procs.h" +) + +add_sources( SOURCE_GROUP "Events" + "src/events/blank_cursor.h" + "src/events/default_cursor.h" + "src/events/scancodes_windows.h" + "src/events/SDL_clipboardevents.c" + "src/events/SDL_clipboardevents_c.h" + "src/events/SDL_displayevents.c" + "src/events/SDL_displayevents_c.h" + "src/events/SDL_dropevents.c" + "src/events/SDL_dropevents_c.h" + "src/events/SDL_events.c" + "src/events/SDL_events_c.h" + "src/events/SDL_gesture.c" + "src/events/SDL_gesture_c.h" + "src/events/SDL_keyboard.c" + "src/events/SDL_keyboard_c.h" + "src/events/SDL_mouse.c" + "src/events/SDL_mouse_c.h" + "src/events/SDL_quit.c" + "src/events/SDL_sysevents.h" + "src/events/SDL_touch.c" + "src/events/SDL_touch_c.h" + "src/events/SDL_windowevents.c" + "src/events/SDL_windowevents_c.h" +) + +add_sources( SOURCE_GROUP "File" + "src/file/SDL_rwops.c" +) + +add_sources( SOURCE_GROUP "FileSystem/Windows" + "src/filesystem/windows/SDL_sysfilesystem.c" +) + +add_sources( SOURCE_GROUP "Haptic" + "src/haptic/SDL_haptic.c" + "src/haptic/SDL_haptic_c.h" + "src/haptic/SDL_syshaptic.h" +) + +add_sources( SOURCE_GROUP "Haptic/Dummy" + "src/haptic/dummy/SDL_syshaptic.c" +) + +add_sources( SOURCE_GROUP "Haptic/Windows" + "src/haptic/windows/SDL_dinputhaptic.c" + "src/haptic/windows/SDL_dinputhaptic_c.h" + "src/haptic/windows/SDL_windowshaptic.c" + "src/haptic/windows/SDL_windowshaptic_c.h" + "src/haptic/windows/SDL_xinputhaptic.c" + "src/haptic/windows/SDL_xinputhaptic_c.h" +) + +add_sources( SOURCE_GROUP "HidAPI" + "src/hidapi/SDL_hidapi.c" + "src/hidapi/hidapi/hidapi.h" +) + +add_sources( SOURCE_GROUP "Joystic" + "src/joystick/controller_type.h" + "src/joystick/SDL_gamecontroller.c" + "src/joystick/SDL_gamecontrollerdb.h" + "src/joystick/SDL_joystick.c" + "src/joystick/SDL_joystick_c.h" + "src/joystick/SDL_sysjoystick.h" + "src/joystick/usb_ids.h" +) + +add_sources( SOURCE_GROUP "Joystick/Dummy" + "src/joystick/dummy/SDL_sysjoystick.c" +) + +add_sources( SOURCE_GROUP "Joystick/HidAPI" + "src/joystick/hidapi/SDL_hidapi_gamecube.c" + "src/joystick/hidapi/SDL_hidapi_luna.c" + "src/joystick/hidapi/SDL_hidapi_ps4.c" + "src/joystick/hidapi/SDL_hidapi_ps5.c" + "src/joystick/hidapi/SDL_hidapi_rumble.c" + "src/joystick/hidapi/SDL_hidapi_rumble.h" + "src/joystick/hidapi/SDL_hidapi_stadia.c" + "src/joystick/hidapi/SDL_hidapi_switch.c" + "src/joystick/hidapi/SDL_hidapi_xbox360.c" + "src/joystick/hidapi/SDL_hidapi_xbox360w.c" + "src/joystick/hidapi/SDL_hidapi_xboxone.c" + "src/joystick/hidapi/SDL_hidapijoystick.c" + "src/joystick/hidapi/SDL_hidapijoystick_c.h" +) + +add_sources( SOURCE_GROUP "Joystick/Virtual" + "src/joystick/virtual/SDL_virtualjoystick.c" + "src/joystick/virtual/SDL_virtualjoystick_c.h" +) + +add_sources( SOURCE_GROUP "Joystick/Windows" + "src/joystick/windows/SDL_dinputjoystick.c" + "src/joystick/windows/SDL_dinputjoystick_c.h" + "src/joystick/windows/SDL_rawinputjoystick.c" + "src/joystick/windows/SDL_rawinputjoystick_c.h" + "src/joystick/windows/SDL_windows_gaming_input.c" + "src/joystick/windows/SDL_windowsjoystick.c" + "src/joystick/windows/SDL_windowsjoystick_c.h" + "src/joystick/windows/SDL_xinputjoystick.c" + "src/joystick/windows/SDL_xinputjoystick_c.h" +) + +add_sources( SOURCE_GROUP "LibM" + "src/libm/e_atan2.c" + "src/libm/e_exp.c" + "src/libm/e_fmod.c" + "src/libm/e_log.c" + "src/libm/e_log10.c" + "src/libm/e_pow.c" + "src/libm/e_rem_pio2.c" + "src/libm/e_sqrt.c" + "src/libm/k_cos.c" + "src/libm/k_rem_pio2.c" + "src/libm/k_sin.c" + "src/libm/k_tan.c" + "src/libm/math_libm.h" + "src/libm/math_private.h" + "src/libm/s_atan.c" + "src/libm/s_copysign.c" + "src/libm/s_cos.c" + "src/libm/s_fabs.c" + "src/libm/s_floor.c" + "src/libm/s_scalbn.c" + "src/libm/s_sin.c" + "src/libm/s_tan.c" +) + +add_sources( SOURCE_GROUP "LoadSO/Windows" + "src/loadso/windows/SDL_sysloadso.c" +) + +add_sources( SOURCE_GROUP "Locale" + "src/locale/SDL_locale.c" + "src/locale/SDL_syslocale.h" +) + +add_sources( SOURCE_GROUP "Locale/Windows" + "src/locale/windows/SDL_syslocale.c" +) + +add_sources( SOURCE_GROUP "Main/Windows" + "src/main/windows/SDL_windows_main.c" +) + +add_sources( SOURCE_GROUP "Misc" + "src/misc/SDL_sysurl.h" + "src/misc/SDL_url.c" +) + +add_sources( SOURCE_GROUP "Misc/Windows" + "src/misc/windows/SDL_sysurl.c" +) + +add_sources( SOURCE_GROUP "Power" + "src/power/SDL_power.c" + "src/power/SDL_syspower.h" +) + +add_sources( SOURCE_GROUP "Power/Windows" + "src/power/windows/SDL_syspower.c" +) + +add_sources( SOURCE_GROUP "Render" + "src/render/SDL_d3dmath.c" + "src/render/SDL_d3dmath.h" + "src/render/SDL_render.c" + "src/render/SDL_sysrender.h" + "src/render/SDL_yuv_sw.c" + "src/render/SDL_yuv_sw_c.h" +) + +add_sources( SOURCE_GROUP "Render/Direct3D" + "src/render/direct3d/SDL_render_d3d.c" + "src/render/direct3d/SDL_shaders_d3d.c" + "src/render/direct3d/SDL_shaders_d3d.h" +) + +add_sources( SOURCE_GROUP "Render/Direct3D11" + "src/render/direct3d11/SDL_render_d3d11.c" + "src/render/direct3d11/SDL_shaders_d3d11.c" + "src/render/direct3d11/SDL_shaders_d3d11.h" +) + +add_sources( SOURCE_GROUP "Render/OpenGL" + "src/render/opengl/SDL_glfuncs.h" + "src/render/opengl/SDL_render_gl.c" + "src/render/opengl/SDL_shaders_gl.c" + "src/render/opengl/SDL_shaders_gl.h" +) + +add_sources( SOURCE_GROUP "Render/OpenGLES2" + "src/render/opengles2/SDL_gles2funcs.h" + "src/render/opengles2/SDL_render_gles2.c" + "src/render/opengles2/SDL_shaders_gles2.c" + "src/render/opengles2/SDL_shaders_gles2.h" +) + +add_sources( SOURCE_GROUP "Render/Software" + "src/render/software/SDL_blendfillrect.c" + "src/render/software/SDL_blendfillrect.h" + "src/render/software/SDL_blendline.c" + "src/render/software/SDL_blendline.h" + "src/render/software/SDL_blendpoint.c" + "src/render/software/SDL_blendpoint.h" + "src/render/software/SDL_draw.h" + "src/render/software/SDL_drawline.c" + "src/render/software/SDL_drawline.h" + "src/render/software/SDL_drawpoint.c" + "src/render/software/SDL_drawpoint.h" + "src/render/software/SDL_render_sw.c" + "src/render/software/SDL_render_sw_c.h" + "src/render/software/SDL_rotate.c" + "src/render/software/SDL_rotate.h" + "src/render/software/SDL_triangle.c" + "src/render/software/SDL_triangle.h" +) + +add_sources( SOURCE_GROUP "Sensor" + "src/sensor/SDL_sensor.c" + "src/sensor/SDL_sensor_c.h" + "src/sensor/SDL_syssensor.h" +) + +add_sources( SOURCE_GROUP "Sensor/Dummy" + "src/sensor/dummy/SDL_dummysensor.c" + "src/sensor/dummy/SDL_dummysensor.h" +) + +add_sources( SOURCE_GROUP "Sensor/Windows" + "src/sensor/windows/SDL_windowssensor.c" + "src/sensor/windows/SDL_windowssensor.h" +) + +add_sources( SOURCE_GROUP "StdLib" + "src/stdlib/SDL_crc32.c" + "src/stdlib/SDL_getenv.c" + "src/stdlib/SDL_iconv.c" + "src/stdlib/SDL_malloc.c" + "src/stdlib/SDL_qsort.c" + "src/stdlib/SDL_stdlib.c" + "src/stdlib/SDL_string.c" + "src/stdlib/SDL_strtokr.c" +) + +add_sources( SOURCE_GROUP "Thread" + "src/thread/SDL_systhread.h" + "src/thread/SDL_thread.c" + "src/thread/SDL_thread_c.h" +) + +add_sources( SOURCE_GROUP "Thread/Generic" + "src/thread/generic/SDL_syscond.c" + "src/thread/generic/SDL_syscond_c.h" +) + +add_sources( SOURCE_GROUP "Thread/Windows" + "src/thread/windows/SDL_syscond_cv.c" + "src/thread/windows/SDL_sysmutex.c" + "src/thread/windows/SDL_sysmutex_c.h" + "src/thread/windows/SDL_syssem.c" + "src/thread/windows/SDL_systhread.c" + "src/thread/windows/SDL_systhread_c.h" + "src/thread/windows/SDL_systls.c" +) + +add_sources( SOURCE_GROUP "Timer" + "src/timer/SDL_timer.c" + "src/timer/SDL_timer_c.h" +) + +add_sources( SOURCE_GROUP "Timer/Windows" + "src/timer/windows/SDL_systimer.c" +) + +add_sources( SOURCE_GROUP "Video" + "src/video/SDL_blit.c" + "src/video/SDL_blit.h" + "src/video/SDL_blit_0.c" + "src/video/SDL_blit_1.c" + "src/video/SDL_blit_A.c" + "src/video/SDL_blit_auto.c" + "src/video/SDL_blit_auto.h" + "src/video/SDL_blit_copy.c" + "src/video/SDL_blit_copy.h" + "src/video/SDL_blit_N.c" + "src/video/SDL_blit_slow.c" + "src/video/SDL_blit_slow.h" + "src/video/SDL_bmp.c" + "src/video/SDL_clipboard.c" + "src/video/SDL_egl.c" + "src/video/SDL_egl_c.h" + "src/video/SDL_fillrect.c" + "src/video/SDL_pixels.c" + "src/video/SDL_pixels_c.h" + "src/video/SDL_rect.c" + "src/video/SDL_rect_c.h" + "src/video/SDL_RLEaccel.c" + "src/video/SDL_RLEaccel_c.h" + "src/video/SDL_shape.c" + "src/video/SDL_shape_internals.h" + "src/video/SDL_stretch.c" + "src/video/SDL_surface.c" + "src/video/SDL_sysvideo.h" + "src/video/SDL_video.c" + "src/video/SDL_vulkan_internal.h" + "src/video/SDL_vulkan_utils.c" + "src/video/SDL_yuv.c" + "src/video/SDL_yuv_c.h" +) + +add_sources( SOURCE_GROUP "Video/Dummy" + "src/video/dummy/SDL_nullevents.c" + "src/video/dummy/SDL_nullevents_c.h" + "src/video/dummy/SDL_nullframebuffer.c" + "src/video/dummy/SDL_nullframebuffer_c.h" + "src/video/dummy/SDL_nullvideo.c" + "src/video/dummy/SDL_nullvideo.h" +) + +add_sources( SOURCE_GROUP "Video/Khronos/Vulkan" + "src/video/khronos/vulkan/vk_icd.h" + "src/video/khronos/vulkan/vk_layer.h" + "src/video/khronos/vulkan/vk_platform.h" + "src/video/khronos/vulkan/vk_sdk_platform.h" + "src/video/khronos/vulkan/vulkan.h" + "src/video/khronos/vulkan/vulkan.hpp" + "src/video/khronos/vulkan/vulkan_android.h" + "src/video/khronos/vulkan/vulkan_beta.h" + "src/video/khronos/vulkan/vulkan_core.h" + "src/video/khronos/vulkan/vulkan_directfb.h" + "src/video/khronos/vulkan/vulkan_fuchsia.h" + "src/video/khronos/vulkan/vulkan_ggp.h" + "src/video/khronos/vulkan/vulkan_ios.h" + "src/video/khronos/vulkan/vulkan_macos.h" + "src/video/khronos/vulkan/vulkan_metal.h" + "src/video/khronos/vulkan/vulkan_vi.h" + "src/video/khronos/vulkan/vulkan_wayland.h" + "src/video/khronos/vulkan/vulkan_win32.h" + "src/video/khronos/vulkan/vulkan_xcb.h" + "src/video/khronos/vulkan/vulkan_xlib.h" + "src/video/khronos/vulkan/vulkan_xlib_xrandr.h" +) + +add_sources( SOURCE_GROUP "Video/Windows" + "src/video/windows/SDL_msctf.h" + "src/video/windows/SDL_vkeys.h" + "src/video/windows/SDL_windowsclipboard.c" + "src/video/windows/SDL_windowsclipboard.h" + "src/video/windows/SDL_windowsevents.c" + "src/video/windows/SDL_windowsevents.h" + "src/video/windows/SDL_windowsframebuffer.c" + "src/video/windows/SDL_windowsframebuffer.h" + "src/video/windows/SDL_windowskeyboard.c" + "src/video/windows/SDL_windowskeyboard.h" + "src/video/windows/SDL_windowsmessagebox.c" + "src/video/windows/SDL_windowsmessagebox.h" + "src/video/windows/SDL_windowsmodes.c" + "src/video/windows/SDL_windowsmodes.h" + "src/video/windows/SDL_windowsmouse.c" + "src/video/windows/SDL_windowsmouse.h" + "src/video/windows/SDL_windowsopengl.c" + "src/video/windows/SDL_windowsopengl.h" + "src/video/windows/SDL_windowsopengles.c" + "src/video/windows/SDL_windowsopengles.h" + "src/video/windows/SDL_windowsshape.c" + "src/video/windows/SDL_windowsshape.h" + "src/video/windows/SDL_windowstaskdialog.h" + "src/video/windows/SDL_windowsvideo.c" + "src/video/windows/SDL_windowsvideo.h" + "src/video/windows/SDL_windowsvulkan.c" + "src/video/windows/SDL_windowsvulkan.h" + "src/video/windows/SDL_windowswindow.c" + "src/video/windows/SDL_windowswindow.h" + "src/video/windows/wmmsg.h" +) + +add_sources( SOURCE_GROUP "Video/Yuv2RGB" + "src/video/yuv2rgb/yuv_rgb.c" + "src/video/yuv2rgb/yuv_rgb.h" + "src/video/yuv2rgb/yuv_rgb_sse_func.h" + "src/video/yuv2rgb/yuv_rgb_std_func.h" +) + +end_sources() + +target_include_directories( ${PROJECT_NAME} PRIVATE + "${ENGINE_SOURCE_DIR}/thirdparty/sdl/include/" +) diff --git a/r5dev/thirdparty/spdlog/CMakeLists.txt b/r5dev/thirdparty/spdlog/CMakeLists.txt new file mode 100644 index 00000000..abe6df75 --- /dev/null +++ b/r5dev/thirdparty/spdlog/CMakeLists.txt @@ -0,0 +1,140 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( libspdlog ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Source" + "src/async.cpp" + "src/bundled_fmtlib_format.cpp" + "src/cfg.cpp" + "src/color_sinks.cpp" + "src/file_sinks.cpp" + "src/spdlog.cpp" + "src/stdout_sinks.cpp" +) + +add_sources( SOURCE_GROUP "Include" + "async.h" + "async_logger-inl.h" + "async_logger.h" + "common-inl.h" + "common.h" + "formatter.h" + "fwd.h" + "logger-inl.h" + "logger.h" + "pattern_formatter-inl.h" + "pattern_formatter.h" + "spdlog-inl.h" + "spdlog.h" + "stopwatch.h" + "tweakme.h" + "version.h" +) + +add_sources( SOURCE_GROUP "CFG" + "cfg/argv.h" + "cfg/env.h" + "cfg/helpers-inl.h" + "cfg/helpers.h" +) + +add_sources( SOURCE_GROUP "Details" + "details/backtracer-inl.h" + "details/backtracer.h" + "details/circular_q.h" + "details/console_globals.h" + "details/file_helper-inl.h" + "details/file_helper.h" + "details/fmt_helper.h" + "details/log_msg-inl.h" + "details/log_msg.h" + "details/log_msg_buffer-inl.h" + "details/log_msg_buffer.h" + "details/mpmc_blocking_q.h" + "details/null_mutex.h" + "details/os-inl.h" + "details/os.h" + "details/periodic_worker-inl.h" + "details/periodic_worker.h" + "details/registry-inl.h" + "details/registry.h" + "details/synchronous_factory.h" + "details/tcp_client-windows.h" + "details/tcp_client.h" + "details/thread_pool-inl.h" + "details/thread_pool.h" + "details/udp_client-windows.h" + "details/udp_client.h" + "details/windows_include.h" +) + +add_sources( SOURCE_GROUP "FMT" + "fmt/bin_to_hex.h" + "fmt/chrono.h" + "fmt/compile.h" + "fmt/fmt.h" + "fmt/ostr.h" + "fmt/ranges.h" + "fmt/xchar.h" +) + +add_sources( SOURCE_GROUP "FMT/Bundled" + "fmt/bundled/args.h" + "fmt/bundled/chrono.h" + "fmt/bundled/color.h" + "fmt/bundled/compile.h" + "fmt/bundled/core.h" + "fmt/bundled/fmt.license.rst" + "fmt/bundled/format-inl.h" + "fmt/bundled/format.h" + "fmt/bundled/locale.h" + "fmt/bundled/os.h" + "fmt/bundled/ostream.h" + "fmt/bundled/printf.h" + "fmt/bundled/ranges.h" + "fmt/bundled/xchar.h" +) + +add_sources( SOURCE_GROUP "Sinks" + "sinks/android_sink.h" + "sinks/ansicolor_sink-inl.h" + "sinks/ansicolor_sink.h" + "sinks/base_sink-inl.h" + "sinks/base_sink.h" + "sinks/basic_file_sink-inl.h" + "sinks/basic_file_sink.h" + "sinks/daily_file_sink.h" + "sinks/dist_sink.h" + "sinks/dup_filter_sink.h" + "sinks/hourly_file_sink.h" + "sinks/mongo_sink.h" + "sinks/msvc_sink.h" + "sinks/null_sink.h" + "sinks/ostream_sink.h" + "sinks/qt_sinks.h" + "sinks/ringbuffer_sink.h" + "sinks/rotating_file_sink-inl.h" + "sinks/rotating_file_sink.h" + "sinks/sink-inl.h" + "sinks/sink.h" + "sinks/stdout_color_sinks-inl.h" + "sinks/stdout_color_sinks.h" + "sinks/stdout_sinks-inl.h" + "sinks/stdout_sinks.h" + "sinks/syslog_sink.h" + "sinks/systemd_sink.h" + "sinks/tcp_sink.h" + "sinks/udp_sink.h" + "sinks/win_eventlog_sink.h" + "sinks/wincolor_sink-inl.h" + "sinks/wincolor_sink.h" +) + +end_sources() +target_compile_definitions( ${PROJECT_NAME} PRIVATE + "SPDLOG_COMPILED_LIB" + "SPDLOG_NO_EXCEPTIONS" +) diff --git a/r5dev/tier0/CMakeLists.txt b/r5dev/tier0/CMakeLists.txt new file mode 100644 index 00000000..599d58e5 --- /dev/null +++ b/r5dev/tier0/CMakeLists.txt @@ -0,0 +1,70 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( tier0 ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Debug" + "dbg.cpp" + "fasttimer.cpp" +) + +add_sources( SOURCE_GROUP "CPU" + "cpu.cpp" + "cpu.h" + "cputopology.cpp" + "cputopology.h" +) + +add_sources( SOURCE_GROUP "Runtime" + "commandline.cpp" + "commandline.h" + "crashhandler.cpp" + "frametask.cpp" + "jobthread.cpp" + "memaddr.cpp" + "memstd.h" + "module.cpp" + "platform.cpp" + "sigcache.cpp" + "threadtools.cpp" + "tslist.cpp" + "vtable.cpp" + "tier0_pch.h" + "tier0_iface.cpp" + "utility.cpp" + "binstream.cpp" +) + +add_sources( SOURCE_GROUP "Public" + "${ENGINE_SOURCE_DIR}/public/tier0/annotations.h" + "${ENGINE_SOURCE_DIR}/public/tier0/basetypes.h" + "${ENGINE_SOURCE_DIR}/public/tier0/commonmacros.h" + "${ENGINE_SOURCE_DIR}/public/tier0/crashhandler.h" + "${ENGINE_SOURCE_DIR}/public/tier0/dbg.h" + "${ENGINE_SOURCE_DIR}/public/tier0/dbgflag.h" + "${ENGINE_SOURCE_DIR}/public/tier0/fasttimer.h" + "${ENGINE_SOURCE_DIR}/public/tier0/frametask.h" + "${ENGINE_SOURCE_DIR}/public/tier0/jobthread.h" + "${ENGINE_SOURCE_DIR}/public/tier0/memaddr.h" + "${ENGINE_SOURCE_DIR}/public/tier0/memalloc.h" + "${ENGINE_SOURCE_DIR}/public/tier0/memdbgoff.h" + "${ENGINE_SOURCE_DIR}/public/tier0/memdbgon.h" + "${ENGINE_SOURCE_DIR}/public/tier0/module.h" + "${ENGINE_SOURCE_DIR}/public/tier0/platform.h" + "${ENGINE_SOURCE_DIR}/public/tier0/platform_internal.h" + "${ENGINE_SOURCE_DIR}/public/tier0/sigcache.h" + "${ENGINE_SOURCE_DIR}/public/tier0/threadtools.h" + "${ENGINE_SOURCE_DIR}/public/tier0/tslist.h" + "${ENGINE_SOURCE_DIR}/public/tier0/valve_off.h" + "${ENGINE_SOURCE_DIR}/public/tier0/valve_on.h" + "${ENGINE_SOURCE_DIR}/public/tier0/vtable.h" + "${ENGINE_SOURCE_DIR}/public/tier0/wchartypes.h" + "${ENGINE_SOURCE_DIR}/public/tier0/tier0_iface.h" + "${ENGINE_SOURCE_DIR}/public/tier0/utility.h" + "${ENGINE_SOURCE_DIR}/public/tier0/binstream.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} PRIVATE tier0_pch.h ) diff --git a/r5dev/tier1/binstream.cpp b/r5dev/tier0/binstream.cpp similarity index 99% rename from r5dev/tier1/binstream.cpp rename to r5dev/tier0/binstream.cpp index 8a15ad75..b62bd391 100644 --- a/r5dev/tier1/binstream.cpp +++ b/r5dev/tier0/binstream.cpp @@ -1,5 +1,5 @@ -#include "core/stdafx.h" -#include "tier1/binstream.h" +#include "tier0_pch.h" +#include "tier0/binstream.h" //----------------------------------------------------------------------------- // Purpose: CIOStream constructors diff --git a/r5dev/tier0/commandline.cpp b/r5dev/tier0/commandline.cpp index 2d92fd15..5ce60ca6 100644 --- a/r5dev/tier0/commandline.cpp +++ b/r5dev/tier0/commandline.cpp @@ -4,7 +4,7 @@ // //=============================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/commandline.h" #include "tier1/cvar.h" diff --git a/r5dev/tier0/cpu.cpp b/r5dev/tier0/cpu.cpp index fb9c1883..790fea2b 100644 --- a/r5dev/tier0/cpu.cpp +++ b/r5dev/tier0/cpu.cpp @@ -4,7 +4,7 @@ // // $NoKeywords: $ //=============================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/cpu.h" #include "tier0/cputopology.h" #include "tier0/fasttimer.h" diff --git a/r5dev/tier0/cputopology.cpp b/r5dev/tier0/cputopology.cpp index 23ad0e68..1c6091a5 100644 --- a/r5dev/tier0/cputopology.cpp +++ b/r5dev/tier0/cputopology.cpp @@ -5,7 +5,7 @@ // // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------------- -#include "core/stdafx.h" +#include "tier0_pch.h" #if defined(_WIN32) && !defined(_X360) && !defined(_PS3) #include "tier0/cputopology.h" diff --git a/r5dev/tier0/crashhandler.cpp b/r5dev/tier0/crashhandler.cpp index 30f9d28e..e5995fa5 100644 --- a/r5dev/tier0/crashhandler.cpp +++ b/r5dev/tier0/crashhandler.cpp @@ -3,11 +3,10 @@ // Purpose: Crash handler (overrides the game's implementation!) // //=============================================================================// -#include "core/stdafx.h" -#include "core/logdef.h" +#include "tier0_pch.h" +#include "tier0/binstream.h" #include "tier0/cpu.h" #include "tier0/crashhandler.h" -#include "tier1/binstream.h" //----------------------------------------------------------------------------- // Purpose: @@ -545,6 +544,17 @@ void CCrashHandler::CreateMessageProcess() } } +//----------------------------------------------------------------------------- +// Purpose: calls the crash callback +//----------------------------------------------------------------------------- +void CCrashHandler::CrashCallback() +{ + if (m_pCrashCallback) + { + ((void(*)(void))m_pCrashCallback)(); + } +} + //----------------------------------------------------------------------------- // Purpose: // Input : @@ -582,8 +592,7 @@ long __stdcall BottomLevelExceptionFilter(EXCEPTION_POINTERS* pExceptionInfo) // Kill on recursive call. if (g_CrashHandler->GetState()) { - // Shutdown SpdLog to flush all buffers. - SpdLog_Shutdown(); + g_CrashHandler->CrashCallback(); ExitProcess(1u); } @@ -630,6 +639,8 @@ void CCrashHandler::Shutdown() //----------------------------------------------------------------------------- CCrashHandler::CCrashHandler() : m_ppStackTrace() + , m_pCrashCallback(nullptr) + , m_hExceptionHandler(nullptr) , m_pExceptionPointers(nullptr) , m_nCapturedFrames(0) , m_nCrashMsgFlags(0) diff --git a/r5dev/tier0/dbg.cpp b/r5dev/tier0/dbg.cpp index 7f6672ef..18758970 100644 --- a/r5dev/tier0/dbg.cpp +++ b/r5dev/tier0/dbg.cpp @@ -6,27 +6,19 @@ // //===========================================================================// -#include "core/stdafx.h" -#include "core/logdef.h" +#include "tier0_pch.h" #include "tier0/dbg.h" #include "tier0/platform.h" #ifndef NETCONSOLE #include "tier0/threadtools.h" #include "tier0/commandline.h" -#ifndef DEDICATED -#include "vgui/vgui_debugpanel.h" -#include "gameui/IConsole.h" -#endif // !DEDICATED -#ifndef CLIENT_DLL -#include "engine/server/sv_rcon.h" -#endif // !CLIENT_DLL #if defined( _X360 ) #include "xbox/xbox_console.h" #endif -#include "vscript/languages/squirrel_re/include/sqstdaux.h" #endif // !NETCONSOLE -std::mutex g_LogMutex; + +CoreMsgVCallbackSink_t g_CoreMsgVCallback = nullptr; //----------------------------------------------------------------------------- // True if -hushasserts was passed on command line. @@ -113,117 +105,6 @@ bool HushAsserts() #endif // NDEBUG } -#if !defined (DEDICATED) && !defined (NETCONSOLE) -ImVec4 CheckForWarnings(LogType_t type, eDLL_T context, const ImVec4& defaultCol) -{ - ImVec4 color = defaultCol; - if (type == LogType_t::LOG_WARNING || context == eDLL_T::SYSTEM_WARNING) - { - color = ImVec4(1.00f, 1.00f, 0.00f, 0.80f); - } - else if (type == LogType_t::LOG_ERROR || context == eDLL_T::SYSTEM_ERROR) - { - color = ImVec4(1.00f, 0.00f, 0.00f, 0.80f); - } - - return color; -} - -ImVec4 GetColorForContext(LogType_t type, eDLL_T context) -{ - switch (context) - { - case eDLL_T::SCRIPT_SERVER: - return CheckForWarnings(type, context, ImVec4(0.59f, 0.58f, 0.73f, 1.00f)); - case eDLL_T::SCRIPT_CLIENT: - return CheckForWarnings(type, context, ImVec4(0.59f, 0.58f, 0.63f, 1.00f)); - case eDLL_T::SCRIPT_UI: - return CheckForWarnings(type, context, ImVec4(0.59f, 0.48f, 0.53f, 1.00f)); - case eDLL_T::SERVER: - return CheckForWarnings(type, context, ImVec4(0.23f, 0.47f, 0.85f, 1.00f)); - case eDLL_T::CLIENT: - return CheckForWarnings(type, context, ImVec4(0.46f, 0.46f, 0.46f, 1.00f)); - case eDLL_T::UI: - return CheckForWarnings(type, context, ImVec4(0.59f, 0.35f, 0.46f, 1.00f)); - case eDLL_T::ENGINE: - return CheckForWarnings(type, context, ImVec4(0.70f, 0.70f, 0.70f, 1.00f)); - case eDLL_T::FS: - return CheckForWarnings(type, context, ImVec4(0.32f, 0.64f, 0.72f, 1.00f)); - case eDLL_T::RTECH: - return CheckForWarnings(type, context, ImVec4(0.36f, 0.70f, 0.35f, 1.00f)); - case eDLL_T::MS: - return CheckForWarnings(type, context, ImVec4(0.75f, 0.30f, 0.68f, 1.00f)); - case eDLL_T::AUDIO: - return CheckForWarnings(type, context, ImVec4(0.93f, 0.42f, 0.12f, 1.00f)); - case eDLL_T::VIDEO: - return CheckForWarnings(type, context, ImVec4(0.73f, 0.00f, 0.92f, 1.00f)); - case eDLL_T::NETCON: - return CheckForWarnings(type, context, ImVec4(0.81f, 0.81f, 0.81f, 1.00f)); - case eDLL_T::COMMON: - return CheckForWarnings(type, context, ImVec4(1.00f, 0.80f, 0.60f, 1.00f)); - default: - return CheckForWarnings(type, context, ImVec4(0.81f, 0.81f, 0.81f, 1.00f)); - } -} -#endif // !DEDICATED && !NETCONSOLE - -const char* GetContextNameByIndex(eDLL_T context, const bool ansiColor = false) -{ - int index = static_cast(context); - const char* contextName = s_DefaultAnsiColor; - - switch (context) - { - case eDLL_T::SCRIPT_SERVER: - contextName = s_ScriptAnsiColor[0]; - break; - case eDLL_T::SCRIPT_CLIENT: - contextName = s_ScriptAnsiColor[1]; - break; - case eDLL_T::SCRIPT_UI: - contextName = s_ScriptAnsiColor[2]; - break; - case eDLL_T::SERVER: - case eDLL_T::CLIENT: - case eDLL_T::UI: - case eDLL_T::ENGINE: - case eDLL_T::FS: - case eDLL_T::RTECH: - case eDLL_T::MS: - case eDLL_T::AUDIO: - case eDLL_T::VIDEO: - case eDLL_T::NETCON: - case eDLL_T::COMMON: - contextName = s_DllAnsiColor[index]; - break; - case eDLL_T::SYSTEM_WARNING: - case eDLL_T::SYSTEM_ERROR: - case eDLL_T::NONE: - default: - break; - } - - if (!ansiColor) - { - // Shift # chars to skip ANSI row. - contextName += sizeof(s_DefaultAnsiColor)-1; - } - - return contextName; -} - -bool LoggedFromClient(eDLL_T context) -{ -#ifndef DEDICATED - return (context == eDLL_T::CLIENT || context == eDLL_T::SCRIPT_CLIENT - || context == eDLL_T::UI || context == eDLL_T::SCRIPT_UI - || context == eDLL_T::NETCON); -#else - NOTE_UNUSED(context); - return false; - #endif // !DEDICATED -} - //----------------------------------------------------------------------------- // Purpose: Show logs to all console interfaces (va_list version) // Input : logType - @@ -239,181 +120,9 @@ void CoreMsgV(LogType_t logType, LogLevel_t logLevel, eDLL_T context, const char* pszLogger, const char* pszFormat, va_list args, const UINT exitCode /*= NO_ERROR*/, const char* pszUptimeOverride /*= nullptr*/) { - const char* pszUpTime = pszUptimeOverride ? pszUptimeOverride : Plat_GetProcessUpTime(); - string message = g_bSpdLog_PostInit ? pszUpTime : ""; - - const bool bToConsole = (logLevel >= LogLevel_t::LEVEL_CONSOLE); - const bool bUseColor = (bToConsole && g_bSpdLog_UseAnsiClr); - - const char* pszContext = GetContextNameByIndex(context, bUseColor); - message.append(pszContext); - -#if !defined (DEDICATED) && !defined (NETCONSOLE) - ImVec4 overlayColor = GetColorForContext(logType, context); - eDLL_T overlayContext = context; -#endif // !DEDICATED && !NETCONSOLE - -#if !defined (NETCONSOLE) - bool bSquirrel = false; - bool bWarning = false; - bool bError = false; -#else - NOTE_UNUSED(pszLogger); -#endif // !NETCONSOLE - - //------------------------------------------------------------------------- - // Setup logger and context - //------------------------------------------------------------------------- - switch (logType) - { - case LogType_t::LOG_WARNING: -#if !defined (DEDICATED) && !defined (NETCONSOLE) - overlayContext = eDLL_T::SYSTEM_WARNING; -#endif // !DEDICATED && !NETCONSOLE - if (bUseColor) - { - message.append(g_svYellowF); - } - break; - case LogType_t::LOG_ERROR: -#if !defined (DEDICATED) && !defined (NETCONSOLE) - overlayContext = eDLL_T::SYSTEM_ERROR; -#endif // !DEDICATED && !NETCONSOLE - if (bUseColor) - { - message.append(g_svRedF); - } - break; -#ifndef NETCONSOLE - case LogType_t::SQ_INFO: - bSquirrel = true; - break; - case LogType_t::SQ_WARNING: -#ifndef DEDICATED - overlayContext = eDLL_T::SYSTEM_WARNING; - overlayColor = ImVec4(1.00f, 1.00f, 0.00f, 0.80f); -#endif // !DEDICATED - bSquirrel = true; - bWarning = true; - break; -#endif // !NETCONSOLE - default: - break; - } - - //------------------------------------------------------------------------- - // Format actual input - //------------------------------------------------------------------------- - va_list argsCopy; - va_copy(argsCopy, args); - const string formatted = FormatV(pszFormat, argsCopy); - va_end(argsCopy); - -#ifndef NETCONSOLE - //------------------------------------------------------------------------- - // Colorize script warnings and errors - //------------------------------------------------------------------------- - if (bToConsole && bSquirrel) - { - if (bWarning && g_bSQAuxError) - { - if (formatted.find("SCRIPT ERROR:") != string::npos || - formatted.find(" -> ") != string::npos) - { - bError = true; - } - } - else if (g_bSQAuxBadLogic) - { - if (formatted.find("There was a problem processing game logic.") != string::npos) - { - bError = true; - g_bSQAuxBadLogic = false; - } - } - - // Append warning/error color before appending the formatted text, - // so that this gets marked as such while preserving context colors. - if (bError) - { -#ifndef DEDICATED - overlayContext = eDLL_T::SYSTEM_ERROR; - overlayColor = ImVec4(1.00f, 0.00f, 0.00f, 0.80f); -#endif // !DEDICATED - - if (bUseColor) - { - message.append(g_svRedF); - } - } - else if (bUseColor && bWarning) - { - message.append(g_svYellowF); - } - } -#endif // !NETCONSOLE - message.append(formatted); - - //------------------------------------------------------------------------- - // Emit to all interfaces - //------------------------------------------------------------------------- - std::lock_guard lock(g_LogMutex); - if (bToConsole) - { - g_TermLogger->debug(message); - - if (bUseColor) - { - // Remove ANSI rows before emitting to file or over wire. - message = std::regex_replace(message, s_AnsiRowRegex, ""); - } - } - -#ifndef NETCONSOLE - // Output is always logged to the file. - std::shared_ptr ntlogger = spdlog::get(pszLogger); // <-- Obtain by 'pszLogger'. - assert(ntlogger.get() != nullptr); - ntlogger->debug(message); - - if (bToConsole) - { -#ifndef CLIENT_DLL - if (!LoggedFromClient(context) && RCONServer()->ShouldSend(sv_rcon::response_t::SERVERDATA_RESPONSE_CONSOLE_LOG)) - { - RCONServer()->SendEncode(formatted.c_str(), pszUpTime, sv_rcon::response_t::SERVERDATA_RESPONSE_CONSOLE_LOG, - int(context), int(logType)); - } -#endif // !CLIENT_DLL -#ifndef DEDICATED - g_ImGuiLogger->debug(message); - - if (g_bSpdLog_PostInit) - { - g_pConsole->AddLog(ConLog_t(g_LogStream.str(), overlayColor)); - - if (logLevel >= LogLevel_t::LEVEL_NOTIFY) // Draw to mini console. - { - g_pOverlay->AddLog(overlayContext, g_LogStream.str()); - } - } -#endif // !DEDICATED - } - -#ifndef DEDICATED - g_LogStream.str(string()); - g_LogStream.clear(); -#endif // !DEDICATED - -#endif // !NETCONSOLE - - if (exitCode) // Terminate the process if an exit code was passed. - { - if (MessageBoxA(NULL, Format("%s- %s", pszUpTime, message.c_str()).c_str(), - "SDK Error", MB_ICONERROR | MB_OK)) - { - TerminateProcess(GetCurrentProcess(), exitCode); - } - } + // Must be initialized before calling this function! + Assert(g_CoreMsgVCallback != nullptr); + g_CoreMsgVCallback(logType, logLevel, context, pszLogger, pszFormat, args, exitCode, pszUptimeOverride); } //----------------------------------------------------------------------------- @@ -453,7 +162,6 @@ void DevMsg(eDLL_T context, const char* fmt, ...) // Input : context - // *fmt - ... - //----------------------------------------------------------------------------- -#ifndef DEDICATED void NetMsg(LogType_t logType, eDLL_T context, const char* uptime, const char* fmt, ...) { va_list args; @@ -461,7 +169,6 @@ void NetMsg(LogType_t logType, eDLL_T context, const char* uptime, const char* f CoreMsgV(logType, LogLevel_t::LEVEL_NOTIFY, context, "netconsole", fmt, args, NO_ERROR, uptime); va_end(args); } -#endif // !DEDICATED //----------------------------------------------------------------------------- // Purpose: Print engine and SDK warnings diff --git a/r5dev/tier0/fasttimer.cpp b/r5dev/tier0/fasttimer.cpp index 8067c06e..f2c62143 100644 --- a/r5dev/tier0/fasttimer.cpp +++ b/r5dev/tier0/fasttimer.cpp @@ -5,7 +5,7 @@ // $NoKeywords: $ //=============================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/fasttimer.h" // Constructor init the clock speed. diff --git a/r5dev/tier0/frametask.cpp b/r5dev/tier0/frametask.cpp index 337c5a1d..208a7323 100644 --- a/r5dev/tier0/frametask.cpp +++ b/r5dev/tier0/frametask.cpp @@ -5,7 +5,7 @@ //----------------------------------------------------------------------------- // //=============================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/frametask.h" //----------------------------------------------------------------------------- diff --git a/r5dev/tier0/jobthread.cpp b/r5dev/tier0/jobthread.cpp index 1de1228d..c81759f6 100644 --- a/r5dev/tier0/jobthread.cpp +++ b/r5dev/tier0/jobthread.cpp @@ -1,5 +1,5 @@ -#include "core/stdafx.h" +#include "tier0_pch.h" #include "engine/host_cmd.h" #include "tier0/jobthread.h" diff --git a/r5dev/tier0/memaddr.cpp b/r5dev/tier0/memaddr.cpp index 3670d6cb..7390c324 100644 --- a/r5dev/tier0/memaddr.cpp +++ b/r5dev/tier0/memaddr.cpp @@ -3,9 +3,8 @@ // Purpose: Implementation of the CMemory class. // //===========================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/memaddr.h" -#include "tier1/utility.h" //----------------------------------------------------------------------------- // Purpose: check array of opcodes starting from current address diff --git a/r5dev/tier0/module.cpp b/r5dev/tier0/module.cpp index 5cbffc12..c6842d6c 100644 --- a/r5dev/tier0/module.cpp +++ b/r5dev/tier0/module.cpp @@ -3,10 +3,9 @@ // Purpose: Implementation of the CModule class. // //===========================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/memaddr.h" #include "tier0/sigcache.h" -#include "tier1/utility.h" //----------------------------------------------------------------------------- // Purpose: constructor diff --git a/r5dev/tier0/platform.cpp b/r5dev/tier0/platform.cpp index 443e6f60..bbefb30d 100644 --- a/r5dev/tier0/platform.cpp +++ b/r5dev/tier0/platform.cpp @@ -1,4 +1,4 @@ -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/platform_internal.h" //----------------------------------------------------------------------------- diff --git a/r5dev/tier0/sigcache.cpp b/r5dev/tier0/sigcache.cpp index 97108f8a..9b965255 100644 --- a/r5dev/tier0/sigcache.cpp +++ b/r5dev/tier0/sigcache.cpp @@ -16,9 +16,9 @@ // searching for each signature in the memory region of the target executable. // /////////////////////////////////////////////////////////////////////////////// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/sigcache.h" -#include "tier1/binstream.h" +#include "tier0/binstream.h" //----------------------------------------------------------------------------- // Purpose: whether or not to disable the caching of signatures diff --git a/r5dev/tier0/threadtools.cpp b/r5dev/tier0/threadtools.cpp index 61680972..1dda2002 100644 --- a/r5dev/tier0/threadtools.cpp +++ b/r5dev/tier0/threadtools.cpp @@ -6,7 +6,7 @@ // $NoKeywords: $ //===========================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/threadtools.h" int32 ThreadInterlockedCompareExchange(LONG volatile* pDest, int32 value, int32 comperand) diff --git a/r5dev/tier0/tier0_iface.cpp b/r5dev/tier0/tier0_iface.cpp new file mode 100644 index 00000000..4060594f --- /dev/null +++ b/r5dev/tier0/tier0_iface.cpp @@ -0,0 +1,34 @@ +//===========================================================================// +// +// Purpose: Low-level tier0 interface. +// +//===========================================================================// +#include "core/logdef.h" +#include "common/sdkdefs.h" +#include "tier0/module.h" +// Module handles; user is responsible for initializing these. + +CModule g_GameDll; +CModule g_SDKDll; + +CModule g_RadVideoToolsDll; +CModule g_RadAudioDecoderDll; +CModule g_RadAudioSystemDll; + +string g_LogSessionUUID; +string g_LogSessionDirectory; + +static const char* s_AdrFmt = "| {:s}: {:42s}: {:#18x} |\n"; + +void LogFunAdr(const char* szFun, uintptr_t nAdr) // Logging function addresses. +{ + spdlog::debug(s_AdrFmt, "FUN", szFun, nAdr); +} +void LogVarAdr(const char* szVar, uintptr_t nAdr) // Logging variable addresses. +{ + spdlog::debug(s_AdrFmt, "VAR", szVar, nAdr); +} +void LogConAdr(const char* szCon, uintptr_t nAdr) // Logging constant addresses. +{ + spdlog::debug(s_AdrFmt, "CON", szCon, nAdr); +} diff --git a/r5dev/tier0/tier0_pch.h b/r5dev/tier0/tier0_pch.h new file mode 100644 index 00000000..582c0179 --- /dev/null +++ b/r5dev/tier0/tier0_pch.h @@ -0,0 +1,11 @@ +//===========================================================================// +// +// Purpose: Tier0 precompiled header file. +// +//===========================================================================// +#ifndef TIER0_PCH_H +#define TIER0_PCH_H + +#include "core/shared_pch.h" + +#endif // TIER0_PCH_H diff --git a/r5dev/tier1/utility.cpp b/r5dev/tier0/utility.cpp similarity index 98% rename from r5dev/tier1/utility.cpp rename to r5dev/tier0/utility.cpp index f4315da6..c72742ea 100644 --- a/r5dev/tier1/utility.cpp +++ b/r5dev/tier0/utility.cpp @@ -2,9 +2,9 @@ * _utility *-----------------------------------------------------------------------------*/ -#include "core/stdafx.h" +#include "tier0_pch.h" #include "core/logdef.h" -#include "tier1/utility.h" +#include "tier0/utility.h" /////////////////////////////////////////////////////////////////////////////// // For checking if a specific file exists. @@ -366,6 +366,21 @@ string CreateTimedFileName() return oss.str(); // 'YY-MM-DD_HH-MM-SS.MMM'. } +/////////////////////////////////////////////////////////////////////////////// +// For creating universally unique identifiers. +string CreateUUID() +{ + UUID uuid; + UuidCreate(&uuid); + + char* str; + UuidToStringA(&uuid, (RPC_CSTR*)&str); + string result(str); + + RpcStringFreeA((RPC_CSTR*)&str); + return result; +} + /////////////////////////////////////////////////////////////////////////////// // For creating directories for output streams. void CreateDirectories(string svInput, string* pszOutput, bool bWindows) diff --git a/r5dev/tier0/vtable.cpp b/r5dev/tier0/vtable.cpp index fc5f352e..999c8fbe 100644 --- a/r5dev/tier0/vtable.cpp +++ b/r5dev/tier0/vtable.cpp @@ -5,7 +5,7 @@ // DO NOT USE FOR SHIPPING CODE!!!!!!!!!! // //===========================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/vtable.h" //----------------------------------------------------------------------------- diff --git a/r5dev/tier1/CMakeLists.txt b/r5dev/tier1/CMakeLists.txt new file mode 100644 index 00000000..0a5e9adf --- /dev/null +++ b/r5dev/tier1/CMakeLists.txt @@ -0,0 +1,61 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( tier1 ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Network" + "NetAdr.cpp" + "NetKey.cpp" +) + +add_sources( SOURCE_GROUP "Utility" + "bitbuf.cpp" + "generichash.cpp" + "lzss.cpp" + "memstack.cpp" + "splitstring.cpp" + "stringpool.cpp" + "strtools.cpp" + "utlbuffer.cpp" + "utlstring.cpp" + "characterset.cpp" +) + +add_sources( SOURCE_GROUP "Private" + "cmd.cpp" + "cvar.cpp" +) + +add_sources( SOURCE_GROUP "Public" + "${ENGINE_SOURCE_DIR}/public/tier1/bitbuf.h" + "${ENGINE_SOURCE_DIR}/public/tier1/byteswap.h" + "${ENGINE_SOURCE_DIR}/public/tier1/characterset.h" + "${ENGINE_SOURCE_DIR}/public/tier1/cmd.h" + "${ENGINE_SOURCE_DIR}/public/tier1/cvar.h" + "${ENGINE_SOURCE_DIR}/public/tier1/generichash.h" + "${ENGINE_SOURCE_DIR}/public/tier1/lzss.h" + "${ENGINE_SOURCE_DIR}/public/tier1/mempool.h" + "${ENGINE_SOURCE_DIR}/public/tier1/memstack.h" + "${ENGINE_SOURCE_DIR}/public/tier1/NetAdr.h" + "${ENGINE_SOURCE_DIR}/public/tier1/NetKey.h" + "${ENGINE_SOURCE_DIR}/public/tier1/stringpool.h" + "${ENGINE_SOURCE_DIR}/public/tier1/strtools.h" + "${ENGINE_SOURCE_DIR}/public/tier1/utlblockmemory.h" + "${ENGINE_SOURCE_DIR}/public/tier1/utlbuffer.h" + "${ENGINE_SOURCE_DIR}/public/tier1/utldict.h" + "${ENGINE_SOURCE_DIR}/public/tier1/utlfixedmemory.h" + "${ENGINE_SOURCE_DIR}/public/tier1/utllinkedlist.h" + "${ENGINE_SOURCE_DIR}/public/tier1/utlmap.h" + "${ENGINE_SOURCE_DIR}/public/tier1/utlmemory.h" + "${ENGINE_SOURCE_DIR}/public/tier1/utlrbtree.h" + "${ENGINE_SOURCE_DIR}/public/tier1/utlstring.h" + "${ENGINE_SOURCE_DIR}/public/tier1/utlsymbol.h" + "${ENGINE_SOURCE_DIR}/public/tier1/utlvector.h" +) + +end_sources() + +target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" ) +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/tier1/NetAdr.cpp b/r5dev/tier1/NetAdr.cpp index e90d05ea..1d5efe3b 100644 --- a/r5dev/tier1/NetAdr.cpp +++ b/r5dev/tier1/NetAdr.cpp @@ -4,7 +4,7 @@ // -------------------------------------------------------------------------- //===========================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier1/NetAdr.h" #include "tier1/strtools.h" #include "mathlib/swap.h" diff --git a/r5dev/tier1/NetKey.cpp b/r5dev/tier1/NetKey.cpp index 3309e3c7..55281a6b 100644 --- a/r5dev/tier1/NetKey.cpp +++ b/r5dev/tier1/NetKey.cpp @@ -3,7 +3,7 @@ // Purpose: implementation of the CNetKey class. // -------------------------------------------------------------------------- //===========================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier1/NetKey.h" ////////////////////////////////////////////////////////////////////// diff --git a/r5dev/tier1/bitbuf.cpp b/r5dev/tier1/bitbuf.cpp index 87e42603..f194a88b 100644 --- a/r5dev/tier1/bitbuf.cpp +++ b/r5dev/tier1/bitbuf.cpp @@ -5,7 +5,7 @@ // $NoKeywords: $ //===========================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier1/bitbuf.h" #include "mathlib/swap.h" #include "mathlib/bitvec.h" diff --git a/r5dev/tier1/characterset.cpp b/r5dev/tier1/characterset.cpp index 42a83057..1b13a1c9 100644 --- a/r5dev/tier1/characterset.cpp +++ b/r5dev/tier1/characterset.cpp @@ -11,7 +11,7 @@ // $NoKeywords: $ //============================================================================= -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier1/characterset.h" // memdbgon must be the last include file in a .cpp file!!! diff --git a/r5dev/tier1/cmd.cpp b/r5dev/tier1/cmd.cpp index 776d9b68..4ee5e7e6 100644 --- a/r5dev/tier1/cmd.cpp +++ b/r5dev/tier1/cmd.cpp @@ -4,7 +4,7 @@ // //=============================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/tslist.h" #include "tier0/memstd.h" #include "tier0/commandline.h" @@ -12,8 +12,6 @@ #include "tier1/cvar.h" #include "tier1/characterset.h" #include "tier1/utlstring.h" -#include "vstdlib/completion.h" -#include "vstdlib/callback.h" //----------------------------------------------------------------------------- // Global methods @@ -314,231 +312,6 @@ ConCommand::ConCommand() , m_bUsingCommandCallbackInterface(false) { } -//----------------------------------------------------------------------------- -// Purpose: ConCommand registration -//----------------------------------------------------------------------------- -void ConCommand::StaticInit(void) -{ - //------------------------------------------------------------------------- - // ENGINE DLL | -#if !defined (GAMEDLL_S0) && !defined (GAMEDLL_S1) - ConCommand::StaticCreate("bhit", "Bullet-hit trajectory debug.", nullptr, FCVAR_DEVELOPMENTONLY | FCVAR_GAMEDLL, BHit_f, nullptr); -#endif // !GAMEDLL_S0 && !GAMEDLL_S1 -#ifndef DEDICATED - ConCommand::StaticCreate("line", "Draw a debug line.", nullptr, FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, Line_f, nullptr); - ConCommand::StaticCreate("sphere", "Draw a debug sphere.", nullptr, FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, Sphere_f, nullptr); - ConCommand::StaticCreate("capsule", "Draw a debug capsule.", nullptr, FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, Capsule_f, nullptr); -#endif //!DEDICATED - ConCommand::StaticCreate("con_help", "Shows the colors and description of each context.", nullptr, FCVAR_RELEASE, CON_Help_f, nullptr); -#ifndef CLIENT_DLL - ConCommand::StaticCreate("reload_playlists", "Reloads the playlists file.", nullptr, FCVAR_RELEASE, Host_ReloadPlaylists_f, nullptr); -#endif // !CLIENT_DLL - //------------------------------------------------------------------------- - // SERVER DLL | -#ifndef CLIENT_DLL - ConCommand::StaticCreate("script", "Run input code as SERVER script on the VM.", nullptr, FCVAR_GAMEDLL | FCVAR_CHEAT, SQVM_ServerScript_f, nullptr); - ConCommand::StaticCreate("sv_kick", "Kick a client from the server by user name.", "sv_kick \"\"", FCVAR_RELEASE, Host_Kick_f, nullptr); - ConCommand::StaticCreate("sv_kickid", "Kick a client from the server by handle, nucleus id or ip address.", "sv_kickid \"\"/\"/\"", FCVAR_RELEASE, Host_KickID_f, nullptr); - ConCommand::StaticCreate("sv_ban", "Bans a client from the server by user name.", "sv_ban ", FCVAR_RELEASE, Host_Ban_f, nullptr); - ConCommand::StaticCreate("sv_banid", "Bans a client from the server by handle, nucleus id or ip address.", "sv_banid \"\"/\"/\"", FCVAR_RELEASE, Host_BanID_f, nullptr); - ConCommand::StaticCreate("sv_unban", "Unbans a client from the server by nucleus id or ip address.", "sv_unban \"\"/\"\"", FCVAR_RELEASE, Host_Unban_f, nullptr); - ConCommand::StaticCreate("sv_reloadbanlist", "Reloads the banned list.", nullptr, FCVAR_RELEASE, Host_ReloadBanList_f, nullptr); - ConCommand::StaticCreate("sv_addbot", "Creates a bot on the server.", nullptr, FCVAR_RELEASE, CC_CreateFakePlayer_f, nullptr); - ConCommand::StaticCreate("navmesh_hotswap", "Hot swap the NavMesh for all hulls.", nullptr, FCVAR_DEVELOPMENTONLY, Detour_HotSwap_f, nullptr); -#endif // !CLIENT_DLL -#ifndef DEDICATED - //------------------------------------------------------------------------- - // CLIENT DLL | - ConCommand::StaticCreate("script_client", "Run input code as CLIENT script on the VM.", nullptr, FCVAR_CLIENTDLL | FCVAR_CHEAT, SQVM_ClientScript_f, nullptr); - ConCommand::StaticCreate("rcon", "Forward RCON query to remote server.", "rcon \"\"", FCVAR_CLIENTDLL | FCVAR_RELEASE, RCON_CmdQuery_f, nullptr); - ConCommand::StaticCreate("rcon_disconnect", "Disconnect from RCON server.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, RCON_Disconnect_f, nullptr); - - ConCommand::StaticCreate("con_history", "Shows the developer console submission history.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, CON_LogHistory_f, nullptr); - ConCommand::StaticCreate("con_removeline", "Removes a range of lines from the developer console.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, CON_RemoveLine_f, nullptr); - ConCommand::StaticCreate("con_clearlines", "Clears all lines from the developer console.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, CON_ClearLines_f, nullptr); - ConCommand::StaticCreate("con_clearhistory", "Clears all submissions from the developer console history.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, CON_ClearHistory_f, nullptr); - - ConCommand::StaticCreate("toggleconsole", "Show/hide the developer console.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, ToggleConsole_f, nullptr); - ConCommand::StaticCreate("togglebrowser", "Show/hide the server browser.", nullptr, FCVAR_CLIENTDLL | FCVAR_RELEASE, ToggleBrowser_f, nullptr); - //------------------------------------------------------------------------- - // UI DLL | - ConCommand::StaticCreate("script_ui", "Run input code as UI script on the VM.", nullptr, FCVAR_CLIENTDLL | FCVAR_CHEAT, SQVM_UIScript_f, nullptr); -#endif // !DEDICATED - //------------------------------------------------------------------------- - // FILESYSTEM API | - ConCommand::StaticCreate("fs_vpk_mount", "Mount a VPK file for FileSystem usage.", nullptr, FCVAR_DEVELOPMENTONLY, VPK_Mount_f, nullptr); - ConCommand::StaticCreate("fs_vpk_unmount", "Unmount a VPK file and clear its cache.", nullptr, FCVAR_DEVELOPMENTONLY, VPK_Unmount_f, nullptr); - ConCommand::StaticCreate("fs_vpk_build", "Build a VPK file from current workspace.", nullptr, FCVAR_DEVELOPMENTONLY, VPK_Pack_f, nullptr); - ConCommand::StaticCreate("fs_vpk_unpack", "Unpack all files from a VPK file.", nullptr, FCVAR_DEVELOPMENTONLY, VPK_Unpack_f, nullptr); - //------------------------------------------------------------------------- - // RTECH API | - ConCommand::StaticCreate("rtech_strtoguid", "Calculates the GUID from input data.", nullptr, FCVAR_DEVELOPMENTONLY, RTech_StringToGUID_f, nullptr); - ConCommand::StaticCreate("pak_decompress", "Decompresses specified RPAK file.", nullptr, FCVAR_DEVELOPMENTONLY, RTech_Decompress_f, RTech_PakDecompress_f_CompletionFunc); - ConCommand::StaticCreate("pak_requestload", "Requests asynchronous load for specified RPAK file.", nullptr, FCVAR_DEVELOPMENTONLY, Pak_RequestLoad_f, RTech_PakLoad_f_CompletionFunc); - ConCommand::StaticCreate("pak_requestunload", "Requests unload for specified RPAK file or ID.", nullptr, FCVAR_DEVELOPMENTONLY, Pak_RequestUnload_f, RTech_PakUnload_f_CompletionFunc); - ConCommand::StaticCreate("pak_swap", "Requests swap for specified RPAK file or ID", nullptr, FCVAR_DEVELOPMENTONLY, Pak_Swap_f, nullptr); - ConCommand::StaticCreate("pak_listpaks", "Display a list of the loaded Pak files.", nullptr, FCVAR_RELEASE, Pak_ListPaks_f, nullptr); - ConCommand::StaticCreate("pak_listtypes", "Display a list of the registered asset types.", nullptr, FCVAR_RELEASE, Pak_ListTypes_f, nullptr); - //------------------------------------------------------------------------- - // NETCHANNEL | - ConCommand::StaticCreate("net_setkey", "Sets user specified base64 net key.", nullptr, FCVAR_RELEASE, NET_SetKey_f, nullptr); - ConCommand::StaticCreate("net_generatekey", "Generates and sets a random base64 net key.", nullptr, FCVAR_RELEASE, NET_GenerateKey_f, nullptr); - //------------------------------------------------------------------------- - // TIER0 | - ConCommand::StaticCreate("sig_getadr", "Logs the sigscan results to the console.", nullptr, FCVAR_DEVELOPMENTONLY | FCVAR_HIDDEN, SIG_GetAdr_f, nullptr); -} - -//----------------------------------------------------------------------------- -// Purpose: shipped ConCommand initialization -//----------------------------------------------------------------------------- -void ConCommand::InitShipped(void) -{ - ///------------------------------------------------------ [ CALLBACK SWAP ] - //------------------------------------------------------------------------- - // ENGINE DLL | - ConCommand* changelevel = g_pCVar->FindCommand("changelevel"); - ConCommand* map = g_pCVar->FindCommand("map"); - ConCommand* map_background = g_pCVar->FindCommand("map_background"); - ConCommand* ss_map = g_pCVar->FindCommand("ss_map"); - ConCommand* migrateme = g_pCVar->FindCommand("migrateme"); - ConCommand* help = g_pCVar->FindCommand("help"); - ConCommand* convar_list = g_pCVar->FindCommand("convar_list"); - ConCommand* convar_differences = g_pCVar->FindCommand("convar_differences"); - ConCommand* convar_findByFlags = g_pCVar->FindCommand("convar_findByFlags"); -#ifndef DEDICATED - //------------------------------------------------------------------------- - // MATERIAL SYSTEM - ConCommand* mat_crosshair = g_pCVar->FindCommand("mat_crosshair"); // Patch callback function to working callback. - //------------------------------------------------------------------------- - // CLIENT DLL | - ConCommand* give = g_pCVar->FindCommand("give"); -#endif // !DEDICATED - - help->m_fnCommandCallback = CVHelp_f; - convar_list->m_fnCommandCallback = CVList_f; - convar_differences->m_fnCommandCallback = CVDiff_f; - convar_findByFlags->m_fnCommandCallback = CVFlag_f; -#ifndef CLIENT_DLL - changelevel->m_fnCommandCallback = Host_Changelevel_f; -#endif // !CLIENT_DLL - changelevel->m_fnCompletionCallback = Host_Changelevel_f_CompletionFunc; - - map->m_fnCompletionCallback = Host_Map_f_CompletionFunc; - map_background->m_fnCompletionCallback = Host_Background_f_CompletionFunc; - ss_map->m_fnCompletionCallback = Host_SSMap_f_CompletionFunc; - -#ifndef DEDICATED - mat_crosshair->m_fnCommandCallback = Mat_CrossHair_f; - give->m_fnCompletionCallback = Game_Give_f_CompletionFunc; -#endif // !DEDICATED - - /// ------------------------------------------------------ [ FLAG REMOVAL ] - //------------------------------------------------------------------------- - if (!CommandLine()->CheckParm("-devsdk")) - { - const char* pszMaskedBases[] = - { -#ifndef DEDICATED - "connect", - "connectAsSpectator", - "connectWithKey", - "silentconnect", - "set", - "ping", -#endif // !DEDICATED - "launchplaylist", - "quit", - "exit", - "reload", - "restart", - "status", - "version", - }; - - for (size_t i = 0; i < SDK_ARRAYSIZE(pszMaskedBases); i++) - { - if (ConCommandBase* pCommandBase = g_pCVar->FindCommandBase(pszMaskedBases[i])) - { - pCommandBase->RemoveFlags(FCVAR_DEVELOPMENTONLY); - } - } - - convar_list->RemoveFlags(FCVAR_DEVELOPMENTONLY); - convar_differences->RemoveFlags(FCVAR_DEVELOPMENTONLY); - convar_findByFlags->RemoveFlags(FCVAR_DEVELOPMENTONLY); - help->RemoveFlags(FCVAR_DEVELOPMENTONLY); - migrateme->RemoveFlags(FCVAR_SERVER_CAN_EXECUTE); - changelevel->RemoveFlags(FCVAR_DEVELOPMENTONLY); - map->RemoveFlags(FCVAR_DEVELOPMENTONLY|FCVAR_SERVER_CAN_EXECUTE); - map_background->RemoveFlags(FCVAR_DEVELOPMENTONLY|FCVAR_SERVER_CAN_EXECUTE); - ss_map->RemoveFlags(FCVAR_DEVELOPMENTONLY|FCVAR_SERVER_CAN_EXECUTE); - } -} - -//----------------------------------------------------------------------------- -// Purpose: unregister extraneous ConCommand's. -//----------------------------------------------------------------------------- -void ConCommand::PurgeShipped(void) -{ -#ifdef DEDICATED - const char* pszCommandToRemove[] = - { - "bind", - "bind_held", - "bind_list", - "bind_list_abilities", - "bind_US_standard", - "bind_held_US_standard", - "unbind", - "unbind_US_standard", - "unbindall", - "unbind_all_gamepad", - "unbindall_ignoreGamepad", - "unbind_batch", - "unbind_held", - "unbind_held_US_standard", - "uiscript_reset", - "getpos_bind", - "connect", - "silent_connect", - "ping", - "gameui_activate", - "gameui_hide", - "weaponSelectOrdnance", - "weaponSelectPrimary0", - "weaponSelectPrimary1", - "weaponSelectPrimary2", - "+scriptCommand1", - "-scriptCommand1", - "+scriptCommand2", - "-scriptCommand2", - "+scriptCommand3", - "-scriptCommand3", - "+scriptCommand4", - "-scriptCommand4", - "+scriptCommand5", - "-scriptCommand5", - "+scriptCommand6", - "-scriptCommand6", - "+scriptCommand7", - "-scriptCommand7", - "+scriptCommand8", - "-scriptCommand8", - "+scriptCommand9", - "-scriptCommand9", - }; - - for (size_t i = 0; i < SDK_ARRAYSIZE(pszCommandToRemove); i++) - { - ConCommandBase* pCommandBase = g_pCVar->FindCommandBase(pszCommandToRemove[i]); - - if (pCommandBase) - { - g_pCVar->UnregisterConCommand(pCommandBase); - } - } -#endif // DEDICATED -} //----------------------------------------------------------------------------- // Purpose: Checks if ConCommand has requested flags. @@ -582,73 +355,3 @@ char* ConCommandBase::CopyString(const char* szFrom) const } return szTo; } - -//----------------------------------------------------------------------------- -// Purpose: Returns current player calling this function -// Output : ECommandTarget_t - -//----------------------------------------------------------------------------- -ECommandTarget_t Cbuf_GetCurrentPlayer(void) -{ - // Always returns 'CBUF_FIRST_PLAYER' in Respawn's code. - return ECommandTarget_t::CBUF_FIRST_PLAYER; -} - -//----------------------------------------------------------------------------- -// Purpose: Sends the entire command line over to the server -// Input : *args - -// Output : true on success, false otherwise -//----------------------------------------------------------------------------- -bool Cmd_ForwardToServer(const CCommand* args) -{ -#ifndef DEDICATED - // Client -> Server command throttling. - static double flForwardedCommandQuotaStartTime = -1; - static int nForwardedCommandQuotaCount = 0; - - // No command to forward. - if (args->ArgC() == 0) - return false; - - double flStartTime = Plat_FloatTime(); - int nCmdQuotaLimit = cl_quota_stringCmdsPerSecond->GetInt(); - const char* pszCmdString = nullptr; - - // Special case: "cmd whatever args..." is forwarded as "whatever args..."; - // in this case we strip "cmd" from the input. - if (Q_strcasecmp(args->Arg(0), "cmd") == 0) - pszCmdString = args->ArgS(); - else - pszCmdString = args->GetCommandString(); - - if (nCmdQuotaLimit) - { - if (flStartTime - flForwardedCommandQuotaStartTime >= 1.0) - { - flForwardedCommandQuotaStartTime = flStartTime; - nForwardedCommandQuotaCount = 0; - } - ++nForwardedCommandQuotaCount; - - if (nForwardedCommandQuotaCount > nCmdQuotaLimit) - { - // If we are over quota commands per second, dump this on the floor. - // If we spam the server with too many commands, it will kick us. - Warning(eDLL_T::CLIENT, "Command '%s' ignored (submission quota of '%d' per second exceeded!)\n", pszCmdString, nCmdQuotaLimit); - return false; - } - } - return v_Cmd_ForwardToServer(args); -#else // !DEDICATED - return false; // Client only. -#endif // DEDICATED -} - -/////////////////////////////////////////////////////////////////////////////// -void VConCommand::Attach() const -{ - DetourAttach((LPVOID*)&v_Cmd_ForwardToServer, &Cmd_ForwardToServer); -} -void VConCommand::Detach() const -{ - DetourDetach((LPVOID*)&v_Cmd_ForwardToServer, &Cmd_ForwardToServer); -} diff --git a/r5dev/tier1/cvar.cpp b/r5dev/tier1/cvar.cpp index d99baa57..9a4aeab1 100644 --- a/r5dev/tier1/cvar.cpp +++ b/r5dev/tier1/cvar.cpp @@ -1,4 +1,4 @@ -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier1/utlrbtree.h" #include "tier1/NetAdr.h" #include "tier1/cvar.h" @@ -6,236 +6,6 @@ #include "engine/sys_dll2.h" #include "filesystem/filesystem.h" #include "vstdlib/concommandhash.h" -#include "vstdlib/completion.h" -#include "vstdlib/callback.h" - -//----------------------------------------------------------------------------- -// ENGINE | -ConVar* sdk_fixedframe_tickinterval = nullptr; -ConVar* single_frame_shutdown_for_reload = nullptr; -ConVar* old_gather_props = nullptr; - -ConVar* enable_debug_overlays = nullptr; -ConVar* debug_draw_box_depth_test = nullptr; - -ConVar* developer = nullptr; -ConVar* fps_max = nullptr; - -ConVar* staticProp_defaultBuildFrustum = nullptr; -ConVar* staticProp_no_fade_scalar = nullptr; -ConVar* staticProp_gather_size_weight = nullptr; - -ConVar* model_defaultFadeDistScale = nullptr; -ConVar* model_defaultFadeDistMin = nullptr; - -ConVar* ip_cvar = nullptr; -ConVar* hostname = nullptr; -ConVar* hostdesc = nullptr; -ConVar* hostip = nullptr; -ConVar* hostport = nullptr; -ConVar* host_hasIrreversibleShutdown = nullptr; -ConVar* mp_gamemode = nullptr; - -ConVar* curl_debug = nullptr; -ConVar* curl_timeout = nullptr; -ConVar* ssl_verify_peer = nullptr; - -ConVar* rcon_address = nullptr; -ConVar* rcon_password = nullptr; - -ConVar* r_debug_overlay_nodecay = nullptr; -ConVar* r_debug_overlay_invisible = nullptr; -ConVar* r_debug_overlay_wireframe = nullptr; -ConVar* r_debug_draw_depth_test = nullptr; -ConVar* r_drawWorldMeshes = nullptr; -ConVar* r_drawWorldMeshesDepthOnly = nullptr; -ConVar* r_drawWorldMeshesDepthAtTheEnd = nullptr; - -#ifndef DEDICATED -ConVar* r_visualizetraces = nullptr; -ConVar* r_visualizetraces_duration = nullptr; -#endif // !DEDICATED - -ConVar* stream_overlay = nullptr; -ConVar* stream_overlay_mode = nullptr; -//----------------------------------------------------------------------------- -// SERVER | -#ifndef CLIENT_DLL -ConVar* ai_ainDumpOnLoad = nullptr; -ConVar* ai_ainDebugConnect = nullptr; -ConVar* ai_script_nodes_draw = nullptr; -ConVar* ai_script_nodes_draw_range = nullptr; -ConVar* ai_script_nodes_draw_nearest = nullptr; - -ConVar* navmesh_always_reachable = nullptr; -ConVar* navmesh_debug_type = nullptr; -ConVar* navmesh_debug_tile_range = nullptr; -ConVar* navmesh_debug_camera_range = nullptr; -#ifndef DEDICATED -ConVar* navmesh_draw_bvtree = nullptr; -ConVar* navmesh_draw_portal = nullptr; -ConVar* navmesh_draw_polys = nullptr; -ConVar* navmesh_draw_poly_bounds = nullptr; -ConVar* navmesh_draw_poly_bounds_inner = nullptr; -#endif // !DEDICATED - -ConVar* sv_showconnecting = nullptr; -ConVar* sv_globalBanlist = nullptr; -ConVar* sv_pylonVisibility = nullptr; -ConVar* sv_pylonRefreshRate = nullptr; -ConVar* sv_banlistRefreshRate = nullptr; -ConVar* sv_statusRefreshRate = nullptr; -ConVar* sv_forceChatToTeamOnly = nullptr; - -ConVar* sv_updaterate_mp = nullptr; -ConVar* sv_updaterate_sp = nullptr; -ConVar* sv_autoReloadRate = nullptr; - -ConVar* sv_simulateBots = nullptr; -ConVar* sv_showhitboxes = nullptr; -ConVar* sv_stats = nullptr; - -ConVar* sv_quota_stringCmdsPerSecond = nullptr; - -ConVar* sv_validatePersonaName = nullptr; -ConVar* sv_minPersonaNameLength = nullptr; -ConVar* sv_maxPersonaNameLength = nullptr; - -ConVar* sv_voiceEcho = nullptr; -ConVar* sv_voiceenable = nullptr; -ConVar* sv_alltalk = nullptr; - -//#ifdef DEDICATED -ConVar* sv_rcon_debug = nullptr; -ConVar* sv_rcon_sendlogs = nullptr; -ConVar* sv_rcon_banpenalty = nullptr; // TODO -ConVar* sv_rcon_maxfailures = nullptr; -ConVar* sv_rcon_maxignores = nullptr; -ConVar* sv_rcon_maxsockets = nullptr; -ConVar* sv_rcon_maxconnections = nullptr; -ConVar* sv_rcon_maxpacketsize = nullptr; -ConVar* sv_rcon_whitelist_address = nullptr; -//#endif // DEDICATED -#endif // !CLIENT_DLL -ConVar* sv_cheats = nullptr; -ConVar* sv_visualizetraces = nullptr; -ConVar* sv_visualizetraces_duration = nullptr; -#if !defined (GAMEDLL_S0) && !defined (GAMEDLL_S1) -ConVar* bhit_enable = nullptr; -ConVar* bhit_depth_test = nullptr; -ConVar* bhit_abs_origin = nullptr; -#endif // !GAMEDLL_S0 && !GAMEDLL_S1 -//----------------------------------------------------------------------------- -// CLIENT | -#ifndef DEDICATED -ConVar* cl_rcon_request_sendlogs = nullptr; -ConVar* cl_quota_stringCmdsPerSecond = nullptr; - -ConVar* cl_notify_invert_x = nullptr; -ConVar* cl_notify_invert_y = nullptr; -ConVar* cl_notify_offset_x = nullptr; -ConVar* cl_notify_offset_y = nullptr; - -ConVar* cl_showsimstats = nullptr; -ConVar* cl_simstats_invert_x = nullptr; -ConVar* cl_simstats_invert_y = nullptr; -ConVar* cl_simstats_offset_x = nullptr; -ConVar* cl_simstats_offset_y = nullptr; - -ConVar* cl_showgpustats = nullptr; -ConVar* cl_gpustats_invert_x = nullptr; -ConVar* cl_gpustats_invert_y = nullptr; -ConVar* cl_gpustats_offset_x = nullptr; -ConVar* cl_gpustats_offset_y = nullptr; - -ConVar* cl_showmaterialinfo = nullptr; -ConVar* cl_materialinfo_offset_x = nullptr; -ConVar* cl_materialinfo_offset_y = nullptr; - -ConVar* cl_threaded_bone_setup = nullptr; - -ConVar* con_drawnotify = nullptr; -ConVar* con_notifylines = nullptr; -ConVar* con_notifytime = nullptr; - -ConVar* con_notify_invert_x = nullptr; -ConVar* con_notify_invert_y = nullptr; -ConVar* con_notify_offset_x = nullptr; -ConVar* con_notify_offset_y = nullptr; - -ConVar* con_notify_script_server_clr = nullptr; -ConVar* con_notify_script_client_clr = nullptr; -ConVar* con_notify_script_ui_clr = nullptr; -ConVar* con_notify_native_server_clr = nullptr; -ConVar* con_notify_native_client_clr = nullptr; -ConVar* con_notify_native_ui_clr = nullptr; -ConVar* con_notify_native_engine_clr = nullptr; -ConVar* con_notify_native_fs_clr = nullptr; -ConVar* con_notify_native_rtech_clr = nullptr; -ConVar* con_notify_native_ms_clr = nullptr; -ConVar* con_notify_native_audio_clr = nullptr; -ConVar* con_notify_native_video_clr = nullptr; -ConVar* con_notify_netcon_clr = nullptr; -ConVar* con_notify_common_clr = nullptr; -ConVar* con_notify_warning_clr = nullptr; -ConVar* con_notify_error_clr = nullptr; - -ConVar* con_max_lines = nullptr; -ConVar* con_max_history = nullptr; -ConVar* con_suggestion_limit = nullptr; -ConVar* con_suggestion_showhelptext = nullptr; -ConVar* con_suggestion_showflags = nullptr; -ConVar* con_suggestion_flags_realtime = nullptr; - -ConVar* origin_disconnectWhenOffline = nullptr; - -ConVar* serverbrowser_hideEmptyServers = nullptr; -ConVar* serverbrowser_mapFilter = nullptr; -ConVar* serverbrowser_gamemodeFilter = nullptr; -#endif // !DEDICATED -//----------------------------------------------------------------------------- -// FILESYSTEM | -ConVar* fs_showWarnings = nullptr; -ConVar* fs_showAllReads = nullptr; -ConVar* fs_packedstore_entryblock_stats = nullptr; -ConVar* fs_packedstore_workspace = nullptr; -ConVar* fs_packedstore_compression_level = nullptr; -ConVar* fs_packedstore_max_helper_threads = nullptr; -//----------------------------------------------------------------------------- -// MATERIALSYSTEM | -#ifndef DEDICATED -ConVar* mat_alwaysComplain = nullptr; -#endif // !DEDICATED -//----------------------------------------------------------------------------- -// SQUIRREL | -ConVar* script_show_output = nullptr; -ConVar* script_show_warning = nullptr; -//----------------------------------------------------------------------------- -// NETCHANNEL | -ConVar* net_tracePayload = nullptr; -ConVar* net_encryptionEnable = nullptr; -ConVar* net_useRandomKey = nullptr; -ConVar* net_usesocketsforloopback = nullptr; -ConVar* net_processTimeBudget = nullptr; - -ConVar* pylon_matchmaking_hostname = nullptr; -ConVar* pylon_host_update_interval = nullptr; -ConVar* pylon_showdebuginfo = nullptr; -//----------------------------------------------------------------------------- -// RTECH API | -ConVar* rtech_debug = nullptr; -//----------------------------------------------------------------------------- -// RUI | -#ifndef DEDICATED -ConVar* rui_drawEnable = nullptr; -ConVar* rui_defaultDebugFontFace = nullptr; -#endif // !DEDICATED -//----------------------------------------------------------------------------- -// MILES | -#ifndef DEDICATED -ConVar* miles_debug = nullptr; -ConVar* miles_language = nullptr; -#endif //----------------------------------------------------------------------------- // Purpose: create @@ -299,331 +69,6 @@ ConVar::ConVar(void) // } //} -//----------------------------------------------------------------------------- -// Purpose: initialize ConVar's -//----------------------------------------------------------------------------- -void ConVar::StaticInit(void) -{ - //------------------------------------------------------------------------- - // ENGINE | - hostdesc = ConVar::StaticCreate("hostdesc", "", FCVAR_RELEASE, "Host game server description.", false, 0.f, false, 0.f, nullptr, nullptr); - sdk_fixedframe_tickinterval = ConVar::StaticCreate("sdk_fixedframe_tickinterval", "0.01", FCVAR_RELEASE, "The tick interval used by the SDK fixed frame.", false, 0.f, false, 0.f, nullptr, nullptr); - staticProp_defaultBuildFrustum = ConVar::StaticCreate("staticProp_defaultBuildFrustum", "0", FCVAR_DEVELOPMENTONLY, "Use the old solution for building static prop frustum culling.", false, 0.f, false, 0.f, nullptr, nullptr); - - curl_debug = ConVar::StaticCreate("curl_debug" , "0" , FCVAR_DEVELOPMENTONLY, "Determines whether or not to enable curl debug logging.", false, 0.f, false, 0.f, nullptr, "1 = curl logs; 0 (zero) = no logs."); - curl_timeout = ConVar::StaticCreate("curl_timeout" , "15", FCVAR_DEVELOPMENTONLY, "Maximum time in seconds a curl transfer operation could take.", false, 0.f, false, 0.f, nullptr, nullptr); - ssl_verify_peer = ConVar::StaticCreate("ssl_verify_peer", "1" , FCVAR_DEVELOPMENTONLY, "Verify the authenticity of the peer's SSL certificate.", false, 0.f, false, 0.f, nullptr, "1 = curl verifies; 0 (zero) = no verification."); - - rcon_address = ConVar::StaticCreate("rcon_address", "[loopback]:37015", FCVAR_SERVER_CANNOT_QUERY | FCVAR_DONTRECORD | FCVAR_RELEASE, "Remote server access address.", false, 0.f, false, 0.f, nullptr, nullptr); - rcon_password = ConVar::StaticCreate("rcon_password", "" , FCVAR_SERVER_CANNOT_QUERY | FCVAR_DONTRECORD | FCVAR_RELEASE, "Remote server access password (rcon is disabled if empty).", false, 0.f, false, 0.f, &RCON_PasswordChanged_f, nullptr); - - r_debug_overlay_nodecay = ConVar::StaticCreate("r_debug_overlay_nodecay" , "0", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Keeps all debug overlays alive regardless of their lifetime. Use command 'clear_debug_overlays' to clear everything.", false, 0.f, false, 0.f, nullptr, nullptr); - r_debug_overlay_invisible = ConVar::StaticCreate("r_debug_overlay_invisible" , "1", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Show invisible debug overlays (alpha < 1 = 255).", false, 0.f, false, 0.f, nullptr, nullptr); - r_debug_overlay_wireframe = ConVar::StaticCreate("r_debug_overlay_wireframe" , "1", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Use wireframe in debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - r_debug_draw_depth_test = ConVar::StaticCreate("r_debug_draw_depth_test" , "1", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Toggle depth test for other debug draw functionality.", false, 0.f, false, 0.f, nullptr, nullptr); - r_drawWorldMeshes = ConVar::StaticCreate("r_drawWorldMeshes" , "1", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Render world meshes.", false, 0.f, false, 0.f, nullptr, nullptr); - r_drawWorldMeshesDepthOnly = ConVar::StaticCreate("r_drawWorldMeshesDepthOnly" , "1", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Render world meshes (depth only).", false, 0.f, false, 0.f, nullptr, nullptr); - r_drawWorldMeshesDepthAtTheEnd = ConVar::StaticCreate("r_drawWorldMeshesDepthAtTheEnd", "1", FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT, "Render world meshes (depth at the end).", false, 0.f, false, 0.f, nullptr, nullptr); - //------------------------------------------------------------------------- - // SERVER | -#ifndef CLIENT_DLL - ai_ainDumpOnLoad = ConVar::StaticCreate("ai_ainDumpOnLoad" , "0", FCVAR_DEVELOPMENTONLY, "Dumps AIN data from node graphs loaded from the disk on load.", false, 0.f, false, 0.f, nullptr, nullptr); - ai_ainDebugConnect = ConVar::StaticCreate("ai_ainDebugConnect" , "0", FCVAR_DEVELOPMENTONLY, "Debug AIN node connections.", false, 0.f, false, 0.f, nullptr, nullptr); - ai_script_nodes_draw_range = ConVar::StaticCreate("ai_script_nodes_draw_range" , "0", FCVAR_DEVELOPMENTONLY, "Debug draw AIN script nodes ranging from shift index to this cvar.", false, 0.f, false, 0.f, nullptr, nullptr); - ai_script_nodes_draw_nearest = ConVar::StaticCreate("ai_script_nodes_draw_nearest", "1", FCVAR_DEVELOPMENTONLY, "Debug draw AIN script node links to nearest node (build order is used if null).", false, 0.f, false, 0.f, nullptr, nullptr); - - navmesh_always_reachable = ConVar::StaticCreate("navmesh_always_reachable" , "0" , FCVAR_DEVELOPMENTONLY, "Marks goal poly from agent poly as reachable regardless of table data ( !slower! ).", false, 0.f, false, 0.f, nullptr, nullptr); - navmesh_debug_type = ConVar::StaticCreate("navmesh_debug_type" , "0" , FCVAR_DEVELOPMENTONLY, "NavMesh debug draw hull index.", true, 0.f, true, 4.f, nullptr, "0 = small, 1 = med_short, 2 = medium, 3 = large, 4 = extra large"); - navmesh_debug_tile_range = ConVar::StaticCreate("navmesh_debug_tile_range" , "0" , FCVAR_DEVELOPMENTONLY, "NavMesh debug draw tiles ranging from shift index to this cvar.", true, 0.f, false, 0.f, nullptr, nullptr); - navmesh_debug_camera_range = ConVar::StaticCreate("navmesh_debug_camera_range" , "2000" , FCVAR_DEVELOPMENTONLY, "Only debug draw tiles within this distance from camera origin.", true, 0.f, false, 0.f, nullptr, nullptr); -#ifndef DEDICATED - navmesh_draw_bvtree = ConVar::StaticCreate("navmesh_draw_bvtree" , "-1", FCVAR_DEVELOPMENTONLY, "Draws the BVTree of the NavMesh tiles.", false, 0.f, false, 0.f, nullptr, "Index: > 0 && < mesh->m_tileCount"); - navmesh_draw_portal = ConVar::StaticCreate("navmesh_draw_portal" , "-1", FCVAR_DEVELOPMENTONLY, "Draws the portal of the NavMesh tiles.", false, 0.f, false, 0.f, nullptr, "Index: > 0 && < mesh->m_tileCount"); - navmesh_draw_polys = ConVar::StaticCreate("navmesh_draw_polys" , "-1", FCVAR_DEVELOPMENTONLY, "Draws the polys of the NavMesh tiles.", false, 0.f, false, 0.f, nullptr, "Index: > 0 && < mesh->m_tileCount"); - navmesh_draw_poly_bounds = ConVar::StaticCreate("navmesh_draw_poly_bounds" , "-1", FCVAR_DEVELOPMENTONLY, "Draws the bounds of the NavMesh polys.", false, 0.f, false, 0.f, nullptr, "Index: > 0 && < mesh->m_tileCount"); - navmesh_draw_poly_bounds_inner = ConVar::StaticCreate("navmesh_draw_poly_bounds_inner" , "0" , FCVAR_DEVELOPMENTONLY, "Draws the inner bounds of the NavMesh polys (requires navmesh_draw_poly_bounds).", false, 0.f, false, 0.f, nullptr, "Index: > 0 && < mesh->m_tileCount"); -#endif // !DEDICATED - sv_showconnecting = ConVar::StaticCreate("sv_showconnecting" , "1", FCVAR_RELEASE, "Logs information about the connecting client to the console.", false, 0.f, false, 0.f, nullptr, nullptr); - sv_globalBanlist = ConVar::StaticCreate("sv_globalBanlist" , "1", FCVAR_RELEASE, "Determines whether or not to use the global banned list.", false, 0.f, false, 0.f, nullptr, "0 = Disable, 1 = Enable."); - sv_pylonVisibility = ConVar::StaticCreate("sv_pylonVisibility", "0", FCVAR_RELEASE, "Determines the visibility to the Pylon master server.", false, 0.f, false, 0.f, nullptr, "0 = Offline, 1 = Hidden, 2 = Public."); - sv_pylonRefreshRate = ConVar::StaticCreate("sv_pylonRefreshRate" , "5.0" , FCVAR_DEVELOPMENTONLY, "Pylon host refresh rate (seconds).", true, 2.f, true, 8.f, nullptr, nullptr); - sv_banlistRefreshRate = ConVar::StaticCreate("sv_banlistRefreshRate", "30.0", FCVAR_DEVELOPMENTONLY, "Banned list refresh rate (seconds).", true, 1.f, false, 0.f, nullptr, nullptr); - sv_statusRefreshRate = ConVar::StaticCreate("sv_statusRefreshRate" , "0.5", FCVAR_RELEASE, "Server status refresh rate (seconds).", true, 0.f, false, 0.f, nullptr, nullptr); - sv_autoReloadRate = ConVar::StaticCreate("sv_autoReloadRate" , "0" , FCVAR_RELEASE, "Time in seconds between each server auto-reload (disabled if null).", true, 0.f, false, 0.f, nullptr, nullptr); - sv_simulateBots = ConVar::StaticCreate("sv_simulateBots", "1", FCVAR_RELEASE, "Simulate user commands for bots on the server.", true, 0.f, false, 0.f, nullptr, nullptr); - - sv_rcon_debug = ConVar::StaticCreate("sv_rcon_debug" , "0" , FCVAR_RELEASE, "Show rcon debug information ( !slower! ).", false, 0.f, false, 0.f, nullptr, nullptr); - sv_rcon_sendlogs = ConVar::StaticCreate("sv_rcon_sendlogs" , "0" , FCVAR_RELEASE, "Network console logs to connected and authenticated sockets.", false, 0.f, false, 0.f, nullptr, nullptr); - sv_rcon_banpenalty = ConVar::StaticCreate("sv_rcon_banpenalty" , "10", FCVAR_RELEASE, "Number of minutes to ban users who fail rcon authentication.", false, 0.f, false, 0.f, nullptr, nullptr); - sv_rcon_maxfailures = ConVar::StaticCreate("sv_rcon_maxfailures", "10", FCVAR_RELEASE, "Max number of times a user can fail rcon authentication before being banned.", true, 1.f, false, 0.f, nullptr, nullptr); - sv_rcon_maxignores = ConVar::StaticCreate("sv_rcon_maxignores" , "15", FCVAR_RELEASE, "Max number of times a user can ignore the instruction message before being banned.", true, 1.f, false, 0.f, nullptr, nullptr); - sv_rcon_maxsockets = ConVar::StaticCreate("sv_rcon_maxsockets" , "32", FCVAR_RELEASE, "Max number of accepted sockets before the server starts closing redundant sockets.", true, 1.f, true, MAX_PLAYERS, nullptr, nullptr); - sv_rcon_maxconnections = ConVar::StaticCreate("sv_rcon_maxconnections" , "1" , FCVAR_RELEASE, "Max number of authenticated connections before the server closes the listen socket.", true, 1.f, true, MAX_PLAYERS, &RCON_ConnectionCountChanged_f, nullptr); - sv_rcon_maxpacketsize = ConVar::StaticCreate("sv_rcon_maxpacketsize" , "1024", FCVAR_RELEASE, "Max number of bytes allowed in a command packet from a non-authenticated net console.", true, 0.f, false, 0.f, nullptr, nullptr); - sv_rcon_whitelist_address = ConVar::StaticCreate("sv_rcon_whitelist_address", "" , FCVAR_RELEASE, "This address is not considered a 'redundant' socket and will never be banned for failed authentication attempts.", false, 0.f, false, 0.f, &RCON_WhiteListAddresChanged_f, "Format: '::ffff:127.0.0.1'"); - - sv_quota_stringCmdsPerSecond = ConVar::StaticCreate("sv_quota_stringCmdsPerSecond", "16", FCVAR_RELEASE, "How many string commands per second clients are allowed to submit, 0 to disallow all string commands.", true, 0.f, false, 0.f, nullptr, nullptr); - sv_validatePersonaName = ConVar::StaticCreate("sv_validatePersonaName" , "1" , FCVAR_RELEASE, "Validate the client's textual persona name on connect.", true, 0.f, false, 0.f, nullptr, nullptr); - sv_minPersonaNameLength = ConVar::StaticCreate("sv_minPersonaNameLength", "4" , FCVAR_RELEASE, "The minimum length of the client's textual persona name.", true, 0.f, false, 0.f, nullptr, nullptr); - sv_maxPersonaNameLength = ConVar::StaticCreate("sv_maxPersonaNameLength", "16", FCVAR_RELEASE, "The maximum length of the client's textual persona name.", true, 0.f, false, 0.f, nullptr, nullptr); -#endif // !CLIENT_DLL -#if !defined (GAMEDLL_S0) && !defined (GAMEDLL_S1) - bhit_depth_test = ConVar::StaticCreate("bhit_depth_test", "0", FCVAR_DEVELOPMENTONLY | FCVAR_REPLICATED, "Use depth test for bullet ray trace overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - bhit_abs_origin = ConVar::StaticCreate("bhit_abs_origin", "1", FCVAR_DEVELOPMENTONLY | FCVAR_REPLICATED, "Draw entity's predicted abs origin upon bullet impact for trajectory debugging (requires 'r_visualizetraces' to be set!).", false, 0.f, false, 0.f, nullptr, nullptr); -#endif // !GAMEDLL_S0 && !GAMEDLL_S1 - //------------------------------------------------------------------------- - // CLIENT | -#ifndef DEDICATED - cl_rcon_request_sendlogs = ConVar::StaticCreate("cl_rcon_request_sendlogs", "1" , FCVAR_RELEASE, "Request the rcon server to send console logs on connect.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_quota_stringCmdsPerSecond = ConVar::StaticCreate("cl_quota_stringCmdsPerSecond", "16" , FCVAR_RELEASE, "How many string commands per second user is allowed to submit, 0 to allow all submissions.", true, 0.f, false, 0.f, nullptr, nullptr); - - cl_notify_invert_x = ConVar::StaticCreate("cl_notify_invert_x", "0", FCVAR_DEVELOPMENTONLY, "Inverts the X offset for console notify debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_notify_invert_y = ConVar::StaticCreate("cl_notify_invert_y", "0", FCVAR_DEVELOPMENTONLY, "Inverts the Y offset for console notify debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_notify_offset_x = ConVar::StaticCreate("cl_notify_offset_x", "10", FCVAR_DEVELOPMENTONLY, "X offset for console notify debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_notify_offset_y = ConVar::StaticCreate("cl_notify_offset_y", "10", FCVAR_DEVELOPMENTONLY, "Y offset for console notify debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - - cl_showsimstats = ConVar::StaticCreate("cl_showsimstats" , "0" , FCVAR_DEVELOPMENTONLY, "Shows the tick counter for the server/client simulation and the render frame.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_simstats_invert_x = ConVar::StaticCreate("cl_simstats_invert_x", "1" , FCVAR_DEVELOPMENTONLY, "Inverts the X offset for simulation debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_simstats_invert_y = ConVar::StaticCreate("cl_simstats_invert_y", "1" , FCVAR_DEVELOPMENTONLY, "Inverts the Y offset for simulation debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_simstats_offset_x = ConVar::StaticCreate("cl_simstats_offset_x", "650", FCVAR_DEVELOPMENTONLY, "X offset for simulation debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_simstats_offset_y = ConVar::StaticCreate("cl_simstats_offset_y", "120", FCVAR_DEVELOPMENTONLY, "Y offset for simulation debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - - cl_showgpustats = ConVar::StaticCreate("cl_showgpustats" , "0", FCVAR_DEVELOPMENTONLY, "Texture streaming debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_gpustats_invert_x = ConVar::StaticCreate("cl_gpustats_invert_x", "1", FCVAR_DEVELOPMENTONLY, "Inverts the X offset for texture streaming debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_gpustats_invert_y = ConVar::StaticCreate("cl_gpustats_invert_y", "1", FCVAR_DEVELOPMENTONLY, "Inverts the Y offset for texture streaming debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_gpustats_offset_x = ConVar::StaticCreate("cl_gpustats_offset_x", "650", FCVAR_DEVELOPMENTONLY, "X offset for texture streaming debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_gpustats_offset_y = ConVar::StaticCreate("cl_gpustats_offset_y", "105", FCVAR_DEVELOPMENTONLY, "Y offset for texture streaming debug overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - - cl_showmaterialinfo = ConVar::StaticCreate("cl_showmaterialinfo" , "0" , FCVAR_DEVELOPMENTONLY, "Draw info for the material under the crosshair on screen.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_materialinfo_offset_x = ConVar::StaticCreate("cl_materialinfo_offset_x", "0" , FCVAR_DEVELOPMENTONLY, "X offset for material debug info overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - cl_materialinfo_offset_y = ConVar::StaticCreate("cl_materialinfo_offset_y", "420", FCVAR_DEVELOPMENTONLY, "Y offset for material debug info overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - - con_drawnotify = ConVar::StaticCreate("con_drawnotify", "0", FCVAR_RELEASE, "Draws the RUI console to the hud.", false, 0.f, false, 0.f, nullptr, nullptr); - con_notifylines = ConVar::StaticCreate("con_notifylines" , "3" , FCVAR_MATERIAL_SYSTEM_THREAD, "Number of console lines to overlay for debugging.", true, 1.f, false, 0.f, nullptr, nullptr); - con_notifytime = ConVar::StaticCreate("con_notifytime" , "6" , FCVAR_MATERIAL_SYSTEM_THREAD, "How long to display recent console text to the upper part of the game window.", false, 1.f, false, 50.f, nullptr, nullptr); - - con_notify_invert_x = ConVar::StaticCreate("con_notify_invert_x", "0" , FCVAR_MATERIAL_SYSTEM_THREAD, "Inverts the X offset for RUI console overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - con_notify_invert_y = ConVar::StaticCreate("con_notify_invert_y", "0" , FCVAR_MATERIAL_SYSTEM_THREAD, "Inverts the Y offset for RUI console overlay.", false, 0.f, false, 0.f, nullptr, nullptr); - con_notify_offset_x = ConVar::StaticCreate("con_notify_offset_x", "10", FCVAR_MATERIAL_SYSTEM_THREAD, "X offset for RUI console overlay.", false, 1.f, false, 50.f, nullptr, nullptr); - con_notify_offset_y = ConVar::StaticCreate("con_notify_offset_y", "10", FCVAR_MATERIAL_SYSTEM_THREAD, "Y offset for RUI console overlay.", false, 1.f, false, 50.f, nullptr, nullptr); - - con_notify_script_server_clr = ConVar::StaticCreate("con_notify_script_server_clr", "130 120 245 255", FCVAR_MATERIAL_SYSTEM_THREAD, "Script SERVER VM RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - con_notify_script_client_clr = ConVar::StaticCreate("con_notify_script_client_clr", "117 116 139 255", FCVAR_MATERIAL_SYSTEM_THREAD, "Script CLIENT VM RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - con_notify_script_ui_clr = ConVar::StaticCreate("con_notify_script_ui_clr" , "200 110 110 255", FCVAR_MATERIAL_SYSTEM_THREAD, "Script UI VM RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - - con_notify_native_server_clr = ConVar::StaticCreate("con_notify_native_server_clr", "20 50 248 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native SERVER RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - con_notify_native_client_clr = ConVar::StaticCreate("con_notify_native_client_clr", "70 70 70 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native CLIENT RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - con_notify_native_ui_clr = ConVar::StaticCreate("con_notify_native_ui_clr" , "200 60 60 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native UI RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - con_notify_native_engine_clr = ConVar::StaticCreate("con_notify_native_engine_clr", "255 255 255 255", FCVAR_MATERIAL_SYSTEM_THREAD, "Native engine RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - con_notify_native_fs_clr = ConVar::StaticCreate("con_notify_native_fs_clr" , "0 100 225 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native FileSystem RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - con_notify_native_rtech_clr = ConVar::StaticCreate("con_notify_native_rtech_clr" , "25 120 20 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native RTech RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - con_notify_native_ms_clr = ConVar::StaticCreate("con_notify_native_ms_clr" , "200 20 180 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native MaterialSystem RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - con_notify_native_audio_clr = ConVar::StaticCreate("con_notify_native_audio_clr" , "238 43 10 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native AudioSystem RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - con_notify_native_video_clr = ConVar::StaticCreate("con_notify_native_video_clr" , "115 0 235 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Native VideoSystem RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - - con_notify_netcon_clr = ConVar::StaticCreate("con_notify_netcon_clr" , "255 255 255 255", FCVAR_MATERIAL_SYSTEM_THREAD, "Net console RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - con_notify_common_clr = ConVar::StaticCreate("con_notify_common_clr" , "255 140 80 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Common RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - - con_notify_warning_clr = ConVar::StaticCreate("con_notify_warning_clr", "180 180 20 255", FCVAR_MATERIAL_SYSTEM_THREAD, "Warning RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - con_notify_error_clr = ConVar::StaticCreate("con_notify_error_clr" , "225 20 20 255" , FCVAR_MATERIAL_SYSTEM_THREAD, "Error RUI console overlay log color.", false, 1.f, false, 50.f, nullptr, nullptr); - - con_max_lines = ConVar::StaticCreate("con_max_lines" , "1024", FCVAR_DEVELOPMENTONLY, "Maximum number of lines in the console before cleanup starts.", true, 1.f, false, 0.f, nullptr, nullptr); - con_max_history = ConVar::StaticCreate("con_max_history" , "512" , FCVAR_DEVELOPMENTONLY, "Maximum number of command submission items before history cleanup starts.", true, 0.f, false, 0.f, nullptr, nullptr); - con_suggestion_limit = ConVar::StaticCreate("con_suggestion_limit" , "128" , FCVAR_DEVELOPMENTONLY, "Maximum number of suggestions the autocomplete window will show for the console.", true, 0.f, false, 0.f, nullptr, nullptr); - con_suggestion_showhelptext = ConVar::StaticCreate("con_suggestion_showhelptext" , "1" , FCVAR_DEVELOPMENTONLY, "Show CommandBase help text in autocomplete window.", false, 0.f, false, 0.f, nullptr, nullptr); - con_suggestion_showflags = ConVar::StaticCreate("con_suggestion_showflags" , "1" , FCVAR_DEVELOPMENTONLY, "Show CommandBase flags in autocomplete window.", false, 0.f, false, 0.f, nullptr, nullptr); - con_suggestion_flags_realtime = ConVar::StaticCreate("con_suggestion_flags_realtime", "1" , FCVAR_DEVELOPMENTONLY, "Whether to show compile-time or run-time CommandBase flags.", false, 0.f, false, 0.f, nullptr, nullptr); - - serverbrowser_hideEmptyServers = ConVar::StaticCreate("serverbrowser_hideEmptyServers", "0", FCVAR_RELEASE, "Hide empty servers in the server browser", false, 0.f, false, 0.f, nullptr, nullptr); - serverbrowser_mapFilter = ConVar::StaticCreate("serverbrowser_mapFilter", "0", FCVAR_RELEASE, "Filter servers by map in the server browser", false, 0.f, false, 0.f, nullptr, nullptr); - serverbrowser_gamemodeFilter = ConVar::StaticCreate("serverbrowser_gamemodeFilter", "0", FCVAR_RELEASE, "Filter servers by gamemode in the server browser", false, 0.f, false, 0.f, nullptr, nullptr); -#endif // !DEDICATED - //------------------------------------------------------------------------- - // FILESYSTEM | - fs_showWarnings = ConVar::StaticCreate("fs_showWarnings" , "0", FCVAR_DEVELOPMENTONLY, "Logs the FileSystem warnings to the console, filtered by 'fs_warning_level' ( !slower! ).", true, 0.f, true, 2.f, nullptr, "0 = log to file. 1 = 0 + log to console. 2 = 1 + log to notify."); - fs_packedstore_entryblock_stats = ConVar::StaticCreate("fs_packedstore_entryblock_stats" , "0", FCVAR_DEVELOPMENTONLY, "Logs the stats of each file entry in the VPK during decompression ( !slower! ).", false, 0.f, false, 0.f, nullptr, nullptr); - fs_packedstore_workspace = ConVar::StaticCreate("fs_packedstore_workspace" , "platform/ship/", FCVAR_DEVELOPMENTONLY, "Determines the current VPK workspace.", false, 0.f, false, 0.f, nullptr, nullptr); - fs_packedstore_compression_level = ConVar::StaticCreate("fs_packedstore_compression_level", "default", FCVAR_DEVELOPMENTONLY, "Determines the VPK compression level.", false, 0.f, false, 0.f, nullptr, "fastest faster default better uber"); - fs_packedstore_max_helper_threads = ConVar::StaticCreate("fs_packedstore_max_helper_threads" , "-1", FCVAR_DEVELOPMENTONLY, "Max # of additional \"helper\" threads to create during compression.", true, -1, true, LZHAM_MAX_HELPER_THREADS, nullptr, "Must range between [-1,LZHAM_MAX_HELPER_THREADS], where -1=max practical."); - //------------------------------------------------------------------------- - // MATERIALSYSTEM | -#ifndef DEDICATED - mat_alwaysComplain = ConVar::StaticCreate("mat_alwaysComplain", "0", FCVAR_RELEASE | FCVAR_MATERIAL_SYSTEM_THREAD, "Always complain when a material is missing.", false, 0.f, false, 0.f, nullptr, nullptr); -#endif // !DEDICATED - //------------------------------------------------------------------------- - // SQUIRREL | - script_show_output = ConVar::StaticCreate("script_show_output" , "0", FCVAR_RELEASE, "Prints the VM output to the console ( !slower! ).", true, 0.f, true, 2.f, nullptr, "0 = log to file. 1 = 0 + log to console. 2 = 1 + log to notify."); - script_show_warning = ConVar::StaticCreate("script_show_warning", "0", FCVAR_RELEASE, "Prints the VM warning output to the console ( !slower! ).", true, 0.f, true, 2.f, nullptr, "0 = log to file. 1 = 0 + log to console. 2 = 1 + log to notify."); - //------------------------------------------------------------------------- - // NETCHANNEL | - net_tracePayload = ConVar::StaticCreate("net_tracePayload" , "0", FCVAR_DEVELOPMENTONLY , "Log the payload of the send/recv datagram to a file on the disk.", false, 0.f, false, 0.f, nullptr, nullptr); - net_encryptionEnable = ConVar::StaticCreate("net_encryptionEnable" , "1", FCVAR_DEVELOPMENTONLY | FCVAR_REPLICATED , "Use AES encryption on game packets.", false, 0.f, false, 0.f, nullptr, nullptr); - net_useRandomKey = ConVar::StaticCreate("net_useRandomKey" , "1" , FCVAR_RELEASE , "Use random AES encryption key for game packets.", false, 0.f, false, 0.f, &NET_UseRandomKeyChanged_f, nullptr); - net_processTimeBudget = ConVar::StaticCreate("net_processTimeBudget" ,"200" , FCVAR_RELEASE , "Net message process time budget in milliseconds (removing netchannel if exceeded).", true, 0.f, false, 0.f, nullptr, "0 = disabled."); - //------------------------------------------------------------------------- - // NETWORKSYSTEM | - pylon_matchmaking_hostname = ConVar::StaticCreate("pylon_matchmaking_hostname", "ms.r5reloaded.com", FCVAR_RELEASE, "Holds the pylon matchmaking hostname.", false, 0.f, false, 0.f, &MP_HostName_Changed_f, nullptr); - pylon_host_update_interval = ConVar::StaticCreate("pylon_host_update_interval", "5" , FCVAR_RELEASE, "Length of time in seconds between each status update interval to master server.", true, 5.f, false, 0.f, nullptr, nullptr); - pylon_showdebuginfo = ConVar::StaticCreate("pylon_showdebuginfo" , "0" , FCVAR_RELEASE, "Shows debug output for pylon.", false, 0.f, false, 0.f, nullptr, nullptr); - //------------------------------------------------------------------------- - // RTECH API | - rtech_debug = ConVar::StaticCreate("rtech_debug", "0", FCVAR_DEVELOPMENTONLY, "Shows debug output for the RTech system.", false, 0.f, false, 0.f, nullptr, nullptr); - //------------------------------------------------------------------------- - // RUI | -#ifndef DEDICATED - rui_drawEnable = ConVar::StaticCreate("rui_drawEnable", "1", FCVAR_RELEASE, "Draws the RUI if set.", false, 0.f, false, 0.f, nullptr, "1 = Draw, 0 = No Draw."); -#endif // !DEDICATED - //------------------------------------------------------------------------- - // MILES | -#ifndef DEDICATED - miles_debug = ConVar::StaticCreate("miles_debug", "0", FCVAR_RELEASE, "Enables debug prints for the Miles Sound System.", false, 0.f, false, 0.f, nullptr, "1 = Print, 0 = No Print"); -#endif // !DEDICATED - //------------------------------------------------------------------------- -} - -//----------------------------------------------------------------------------- -// Purpose: initialize shipped ConVar's -//----------------------------------------------------------------------------- -void ConVar::InitShipped(void) -{ -#ifndef CLIENT_DLL - ai_script_nodes_draw = g_pCVar->FindVar("ai_script_nodes_draw"); -#if !defined (GAMEDLL_S0) && !defined (GAMEDLL_S1) - bhit_enable = g_pCVar->FindVar("bhit_enable"); -#endif // !GAMEDLL_S0 && !GAMEDLL_S1 -#endif // !CLIENT_DLL - developer = g_pCVar->FindVar("developer"); - fps_max = g_pCVar->FindVar("fps_max"); - fs_showAllReads = g_pCVar->FindVar("fs_showAllReads"); -#ifndef DEDICATED - cl_threaded_bone_setup = g_pCVar->FindVar("cl_threaded_bone_setup"); -#endif // !DEDICATED - single_frame_shutdown_for_reload = g_pCVar->FindVar("single_frame_shutdown_for_reload"); - enable_debug_overlays = g_pCVar->FindVar("enable_debug_overlays"); - debug_draw_box_depth_test = g_pCVar->FindVar("debug_draw_box_depth_test"); - model_defaultFadeDistScale = g_pCVar->FindVar("model_defaultFadeDistScale"); - model_defaultFadeDistMin = g_pCVar->FindVar("model_defaultFadeDistMin"); -#ifndef DEDICATED - miles_language = g_pCVar->FindVar("miles_language"); - rui_defaultDebugFontFace = g_pCVar->FindVar("rui_defaultDebugFontFace"); - r_visualizetraces = g_pCVar->FindVar("r_visualizetraces"); - r_visualizetraces_duration = g_pCVar->FindVar("r_visualizetraces_duration"); -#endif // !DEDICATED - staticProp_no_fade_scalar = g_pCVar->FindVar("staticProp_no_fade_scalar"); - staticProp_gather_size_weight = g_pCVar->FindVar("staticProp_gather_size_weight"); - stream_overlay = g_pCVar->FindVar("stream_overlay"); - stream_overlay_mode = g_pCVar->FindVar("stream_overlay_mode"); - sv_cheats = g_pCVar->FindVar("sv_cheats"); - sv_visualizetraces = g_pCVar->FindVar("sv_visualizetraces"); - sv_visualizetraces_duration = g_pCVar->FindVar("sv_visualizetraces_duration"); - old_gather_props = g_pCVar->FindVar("old_gather_props"); -#ifndef DEDICATED - origin_disconnectWhenOffline = g_pCVar->FindVar("origin_disconnectWhenOffline"); -#endif // !DEDICATED - mp_gamemode = g_pCVar->FindVar("mp_gamemode"); - ip_cvar = g_pCVar->FindVar("ip"); - hostname = g_pCVar->FindVar("hostname"); - hostip = g_pCVar->FindVar("hostip"); - hostport = g_pCVar->FindVar("hostport"); - host_hasIrreversibleShutdown = g_pCVar->FindVar("host_hasIrreversibleShutdown"); - net_usesocketsforloopback = g_pCVar->FindVar("net_usesocketsforloopback"); -#ifndef CLIENT_DLL - sv_stats = g_pCVar->FindVar("sv_stats"); - - sv_updaterate_mp = g_pCVar->FindVar("sv_updaterate_mp"); - sv_updaterate_sp = g_pCVar->FindVar("sv_updaterate_sp"); - - sv_showhitboxes = g_pCVar->FindVar("sv_showhitboxes"); - sv_forceChatToTeamOnly = g_pCVar->FindVar("sv_forceChatToTeamOnly"); - - sv_voiceenable = g_pCVar->FindVar("sv_voiceenable"); - sv_voiceEcho = g_pCVar->FindVar("sv_voiceEcho"); - sv_alltalk = g_pCVar->FindVar("sv_alltalk"); - - sv_showhitboxes->SetMin(-1); // Allow user to go over each entity manually without going out of bounds. - sv_showhitboxes->SetMax(NUM_ENT_ENTRIES - 1); - - sv_forceChatToTeamOnly->RemoveFlags(FCVAR_DEVELOPMENTONLY); - sv_forceChatToTeamOnly->AddFlags(FCVAR_REPLICATED); - - ai_script_nodes_draw->SetValue(-1); -#if !defined (GAMEDLL_S0) && !defined (GAMEDLL_S1) && !defined (GAMEDLL_S2) - bhit_enable->SetValue(0); -#endif // !(GAMEDLL_S0) || !(GAMEDLL_S1) || !(GAMEDLL_S2) -#endif // !CLIENT_DLL -#ifndef DEDICATED - cl_threaded_bone_setup->RemoveFlags(FCVAR_DEVELOPMENTONLY); - rui_defaultDebugFontFace->RemoveFlags(FCVAR_DEVELOPMENTONLY); - origin_disconnectWhenOffline->RemoveFlags(FCVAR_DEVELOPMENTONLY); -#endif // !DEDICATED - mp_gamemode->RemoveFlags(FCVAR_DEVELOPMENTONLY); - mp_gamemode->RemoveChangeCallback(mp_gamemode->m_fnChangeCallbacks[0]); - mp_gamemode->InstallChangeCallback(MP_GameMode_Changed_f, false); - net_usesocketsforloopback->RemoveFlags(FCVAR_DEVELOPMENTONLY); - net_usesocketsforloopback->InstallChangeCallback(NET_UseSocketsForLoopbackChanged_f, false); -} - -//----------------------------------------------------------------------------- -// Purpose: unregister/disable extraneous ConVar's. -//----------------------------------------------------------------------------- -void ConVar::PurgeShipped(void) -{ -#ifdef DEDICATED - const char* pszToPurge[] = - { - "bink_materials_enabled", - "communities_enabled", - "community_frame_run", - "ime_enabled", - "origin_igo_mutes_sound_enabled", - "twitch_shouldQuery", - "voice_enabled", - }; - - for (size_t i = 0; i < SDK_ARRAYSIZE(pszToPurge); i++) - { - if (ConVar* pCVar = g_pCVar->FindVar(pszToPurge[i])) - { - pCVar->SetValue(0); - } - } -#endif // DEDICATED -} - -//----------------------------------------------------------------------------- -// Purpose: clear all hostname ConVar's. -//----------------------------------------------------------------------------- -void ConVar::PurgeHostNames(void) -{ - const char* pszHostNames[] = - { - "assetdownloads_hostname", - "communities_hostname", - "matchmaking_hostname", - "party_hostname", - "persistence_hostname", - "persistenceDef_hostname", - "pin_telemetry_hostname", - "publication_hostname", - "serverReports_hostname", - "skill_hostname", - "speechtotext_hostname", - "staticfile_hostname", - "stats_hostname", - "steamlink_hostname", - "subscription_hostname", - "users_hostname" - }; - - for (size_t i = 0; i < SDK_ARRAYSIZE(pszHostNames); i++) - { - if (ConVar* pCVar = g_pCVar->FindVar(pszHostNames[i])) - { - pCVar->SetValue(NET_IPV4_UNSPEC); - } - } -} - ////----------------------------------------------------------------------------- //// Purpose: Returns the base ConVar name. //// Output : const char* diff --git a/r5dev/tier1/generichash.cpp b/r5dev/tier1/generichash.cpp index 1998e949..16b25c83 100644 --- a/r5dev/tier1/generichash.cpp +++ b/r5dev/tier1/generichash.cpp @@ -5,7 +5,7 @@ // //============================================================================= -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/dbg.h" #include "tier0/basetypes.h" #include "tier0/platform.h" diff --git a/r5dev/tier1/lzss.cpp b/r5dev/tier1/lzss.cpp index f4492ec2..b80046af 100644 --- a/r5dev/tier1/lzss.cpp +++ b/r5dev/tier1/lzss.cpp @@ -5,7 +5,7 @@ // //=====================================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/platform.h" #include "tier0/dbg.h" #include "tier1/lzss.h" diff --git a/r5dev/tier1/memstack.cpp b/r5dev/tier1/memstack.cpp index 091be4d5..35a53e30 100644 --- a/r5dev/tier1/memstack.cpp +++ b/r5dev/tier1/memstack.cpp @@ -4,12 +4,12 @@ // //=============================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/dbg.h" #include "tier0/memstd.h" -#include "memstack.h" -#include "utlmap.h" -//#include "tier0/memdbgon.h" +#include "tier1/memstack.h" +#include "tier1/utlmap.h" +#include "tier0/memdbgon.h" #ifdef _WIN32 #pragma warning(disable:4073) diff --git a/r5dev/tier1/splitstring.cpp b/r5dev/tier1/splitstring.cpp index 5f53804c..a813829a 100644 --- a/r5dev/tier1/splitstring.cpp +++ b/r5dev/tier1/splitstring.cpp @@ -4,7 +4,7 @@ // //================================================================================================== -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier1/strtools.h" #include "tier1/utlvector.h" diff --git a/r5dev/tier1/stringpool.cpp b/r5dev/tier1/stringpool.cpp index f419e639..48afb485 100644 --- a/r5dev/tier1/stringpool.cpp +++ b/r5dev/tier1/stringpool.cpp @@ -5,7 +5,7 @@ // $NoKeywords: $ //===========================================================================// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier0/dbg.h" #include "tier1/strtools.h" #include "tier1/stringpool.h" diff --git a/r5dev/tier1/strtools.cpp b/r5dev/tier1/strtools.cpp index 88a16ad1..b7fd9139 100644 --- a/r5dev/tier1/strtools.cpp +++ b/r5dev/tier1/strtools.cpp @@ -1,4 +1,4 @@ -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier1/strtools.h" FORCEINLINE unsigned char tolower_fast(unsigned char c) diff --git a/r5dev/tier1/utlbuffer.cpp b/r5dev/tier1/utlbuffer.cpp index 83f3ad5e..4d00fe60 100644 --- a/r5dev/tier1/utlbuffer.cpp +++ b/r5dev/tier1/utlbuffer.cpp @@ -8,7 +8,7 @@ #pragma warning (disable : 4514) -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier1/utlbuffer.h" #include "tier1/strtools.h" #include "tier1/characterset.h" diff --git a/r5dev/tier1/utlstring.cpp b/r5dev/tier1/utlstring.cpp index f7caf9c5..52da4b73 100644 --- a/r5dev/tier1/utlstring.cpp +++ b/r5dev/tier1/utlstring.cpp @@ -4,7 +4,7 @@ // //============================================================================= -#include "core/stdafx.h" +#include "tier0_pch.h" #include "tier1/utlstring.h" #include "tier1/utlvector.h" #include "tier1/strtools.h" diff --git a/r5dev/tier2/CMakeLists.txt b/r5dev/tier2/CMakeLists.txt new file mode 100644 index 00000000..a9c96a33 --- /dev/null +++ b/r5dev/tier2/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( tier2 ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Utility" + "curlutils.cpp" + "fileutils.cpp" + "meshutils.cpp" + "renderutils.cpp" + "socketcreator.cpp" +) + +add_sources( SOURCE_GROUP "Public" + "${ENGINE_SOURCE_DIR}/public/tier2/curlutils.h" + "${ENGINE_SOURCE_DIR}/public/tier2/fileutils.h" + "${ENGINE_SOURCE_DIR}/public/tier2/meshutils.h" + "${ENGINE_SOURCE_DIR}/public/tier2/renderutils.h" + "${ENGINE_SOURCE_DIR}/public/tier2/socketcreator.h" +) + +end_sources() + +target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/tier2/curlutils.cpp b/r5dev/tier2/curlutils.cpp index d606e6c4..698cd47a 100644 --- a/r5dev/tier2/curlutils.cpp +++ b/r5dev/tier2/curlutils.cpp @@ -3,10 +3,13 @@ // Purpose: A set of utilities to perform requests // //===========================================================================// -#include "core/stdafx.h" #include "tier1/cvar.h" #include "tier2/curlutils.h" +ConVar* ssl_verify_peer = nullptr; +ConVar* curl_timeout = nullptr; +ConVar* curl_debug = nullptr; + size_t CURLWriteStringCallback(char* contents, const size_t size, const size_t nmemb, void* userp) { reinterpret_cast(userp)->append(contents, size * nmemb); @@ -81,9 +84,7 @@ bool CURLHandleError(CURL* curl, CURLcode res, string& outMessage) const char* curlError = curl_easy_strerror(res); Error(eDLL_T::ENGINE, NO_ERROR, "CURL: %s\n", curlError); -#ifndef DEDICATED // Error already gets logged to the console. outMessage = curlError; -#endif // !DEDICATED curl_easy_cleanup(curl); return false; diff --git a/r5dev/tier2/fileutils.cpp b/r5dev/tier2/fileutils.cpp index 96a9b2a5..f44f4530 100644 --- a/r5dev/tier2/fileutils.cpp +++ b/r5dev/tier2/fileutils.cpp @@ -3,11 +3,10 @@ // Purpose: Helper methods + classes for file access. // //===========================================================================// -#include "core/stdafx.h" -#include "tier2/fileutils.h" #include "tier1/strtools.h" -#include "filesystem/filesystem.h" #include "tier1/utlbuffer.h" +#include "tier2/fileutils.h" +#include "filesystem/filesystem.h" // NOTE: This has to be the last file included! #include "tier0/memdbgon.h" diff --git a/r5dev/tier2/meshutils.cpp b/r5dev/tier2/meshutils.cpp index 0eb265a8..a052001c 100644 --- a/r5dev/tier2/meshutils.cpp +++ b/r5dev/tier2/meshutils.cpp @@ -3,12 +3,10 @@ // Purpose: A set of utilities to render standard shapes // //===========================================================================// - -#include "core/stdafx.h" #include "tier2/meshutils.h" // NOTE: This has to be the last file included! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" //----------------------------------------------------------------------------- diff --git a/r5dev/tier2/renderutils.cpp b/r5dev/tier2/renderutils.cpp index e33e8f53..20c59773 100644 --- a/r5dev/tier2/renderutils.cpp +++ b/r5dev/tier2/renderutils.cpp @@ -6,14 +6,14 @@ // /////////////////////////////////////////////////////////////////////////////// -#include "core/stdafx.h" +#include "tier0_pch.h" #include "mathlib/color.h" #include "mathlib/vector.h" #include "mathlib/vector2d.h" #include "mathlib/vector4d.h" #include "mathlib/mathlib.h" #include "tier2/renderutils.h" -#include "engine/debugoverlay.h" +#include "engine/debugoverlay.h" // TODO[ AMOS ]: must be a public interface! //----------------------------------------------------------------------------- // Purpose: render angled box: diff --git a/r5dev/tier2/socketcreator.cpp b/r5dev/tier2/socketcreator.cpp index 44fc0527..54e52ff4 100644 --- a/r5dev/tier2/socketcreator.cpp +++ b/r5dev/tier2/socketcreator.cpp @@ -4,7 +4,6 @@ // //===========================================================================// -#include #include #include #ifndef NETCONSOLE diff --git a/r5dev/vgui/CMakeLists.txt b/r5dev/vgui/CMakeLists.txt new file mode 100644 index 00000000..0292f3d1 --- /dev/null +++ b/r5dev/vgui/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( vgui ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Runtime" + "vgui.h" + "vgui_baseui_interface.cpp" + "vgui_baseui_interface.h" + "vgui_debugpanel.cpp" + "vgui_debugpanel.h" + "vgui_fpspanel.cpp" + "vgui_fpspanel.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vguimatsurface/CMakeLists.txt b/r5dev/vguimatsurface/CMakeLists.txt new file mode 100644 index 00000000..a68eee4f --- /dev/null +++ b/r5dev/vguimatsurface/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( vguimatsurface ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Private" + "MatSystemSurface.cpp" + "MatSystemSurface.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vguimatsurface/MatSystemSurface.h b/r5dev/vguimatsurface/MatSystemSurface.h index a6897265..7b92712b 100644 --- a/r5dev/vguimatsurface/MatSystemSurface.h +++ b/r5dev/vguimatsurface/MatSystemSurface.h @@ -1,5 +1,4 @@ #pragma once -#include "client/cdll_engine_int.h" /* ==== CMATSYSTEMSURFACE =============================================================================================================================================== */ inline CMemory p_CMatSystemSurface_DrawColoredText; diff --git a/r5dev/vpc/CMakeLists.txt b/r5dev/vpc/CMakeLists.txt new file mode 100644 index 00000000..f89a5fcb --- /dev/null +++ b/r5dev/vpc/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( vpc ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Private" + "IAppSystem.cpp" + "IAppSystem.h" + "interfaces.cpp" + "interfaces.h" + "keyvalues.cpp" + "keyvalues.h" + "kvleaktrace.h" + "rson.cpp" + "rson.h" +) + +add_sources( SOURCE_GROUP "Public" + "${ENGINE_SOURCE_DIR}/public/ikeyvaluessystem.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} PRIVATE ${ENGINE_SOURCE_DIR}/core/stdafx.h ) diff --git a/r5dev/vphysics/CMakeLists.txt b/r5dev/vphysics/CMakeLists.txt new file mode 100644 index 00000000..1f7ec7f1 --- /dev/null +++ b/r5dev/vphysics/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( vphysics ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Private" + "physics_collide.cpp" + "QHull.cpp" + "QHull.h" +) + +add_sources( SOURCE_GROUP "Public" + "${ENGINE_SOURCE_DIR}/public/trace.h" + "${ENGINE_SOURCE_DIR}/public/gametrace.h" + "${ENGINE_SOURCE_DIR}/public/cmodel.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vphysics/QHull.cpp b/r5dev/vphysics/QHull.cpp index f8a45066..4847ccea 100644 --- a/r5dev/vphysics/QHull.cpp +++ b/r5dev/vphysics/QHull.cpp @@ -1,5 +1,4 @@ #include "core/stdafx.h" -#include "core/logdef.h" #include "vphysics/QHull.h" #ifndef DEDICATED #include "gameui/IConsole.h" diff --git a/r5dev/vpklib/CMakeLists.txt b/r5dev/vpklib/CMakeLists.txt new file mode 100644 index 00000000..f83ad8ff --- /dev/null +++ b/r5dev/vpklib/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( vpklib ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Private" + "packedstore.cpp" + "packedstore.h" +) + +add_sources( SOURCE_GROUP "Public" + "${ENGINE_SOURCE_DIR}/public/ipackedstore.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vproj/clientsdk.vcxproj b/r5dev/vproj/clientsdk.vcxproj deleted file mode 100644 index 38e86f97..00000000 --- a/r5dev/vproj/clientsdk.vcxproj +++ /dev/null @@ -1,775 +0,0 @@ - - - - - Debug - x64 - - - Profile - x64 - - - Release - x64 - - - - - - - - - - - - - - - Create - Create - Create - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 16.0 - Win32Proj - {8FC77C68-CE93-45CE-B753-68ABE36BCDDB} - client - 10.0 - clientsdk - - - - DynamicLibrary - true - v143 - Unicode - Static - - - DynamicLibrary - false - v143 - true - Unicode - Static - - - DynamicLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - - - - true - $(IncludePath);$(DXSDK_DIR)Include - $(LibraryPath);$(DXSDK_DIR)Lib\x64 - client - $(SolutionDir)game\bin\x64_retail\ - $(SolutionDir)build\$(ProjectName)\debug\ - $(VC_ReferencesPath_x64); - - - false - $(IncludePath);$(DXSDK_DIR)Include - $(LibraryPath);$(DXSDK_DIR)Lib\x64 - client - $(VC_ReferencesPath_x64); - $(SolutionDir)game\bin\x64_retail\ - $(SolutionDir)build\$(ProjectName)\release\ - - - true - $(IncludePath);$(DXSDK_DIR)Include - $(LibraryPath);$(DXSDK_DIR)Lib\x64 - client - $(VC_ReferencesPath_x64); - $(SolutionDir)game\bin\x64_retail\ - $(SolutionDir)build\$(ProjectName)\profile\ - - - - Level4 - true - _DEBUG;R5DEV_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - false - Use - core\stdafx.h - - - stdcpp17 - Default - /D "GAMESDK" /D "CLIENT_DLL" /D "_CRT_SECURE_NO_WARNINGS" /D "CURL_STATICLIB" /D "SPDLOG_COMPILED_LIB" %(AdditionalOptions) - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\;$(ProjectDir)..\thirdparty\imgui\ - Precise - true - CompileAsCpp - true - - - Windows - true - false - ..\ClientSDK.def - advapi32.lib;bcrypt.lib;crypt32.lib;dbghelp.lib;d3d11.lib;wldap32.lib;ws2_32.lib;libcurl_x64.lib;libdetours_x64.lib;libimgui_x64.lib;liblzham_x64.lib;libprotobuf_x64.lib;libspdlog_x64.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - 8000000 - - - IF EXIST "$(SolutionDir)..\..\r5apex.exe" del "$(SolutionDir)..\..\bin\x64_retail\client.dll" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\x64_retail\ - - - - - - - - - Level4 - true - true - NDEBUG;R5DEV_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - false - Use - core\stdafx.h - Speed - - - false - false - AnySuitable - Default - stdcpp17 - true - - - false - /D "GAMESDK" /D "CLIENT_DLL" /D "_CRT_SECURE_NO_WARNINGS" /D "CURL_STATICLIB" /D "SPDLOG_COMPILED_LIB" /D "SPDLOG_NO_EXCEPTIONS" %(AdditionalOptions) - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\;$(ProjectDir)..\thirdparty\imgui\ - Fast - false - true - false - CompileAsCpp - true - - - Windows - true - false - ..\ClientSDK.def - advapi32.lib;bcrypt.lib;crypt32.lib;dbghelp.lib;d3d11.lib;wldap32.lib;ws2_32.lib;libcurl_x64.lib;libdetours_x64.lib;libimgui_x64.lib;liblzham_x64.lib;libprotobuf_x64.lib;libspdlog_x64.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - true - 8000000 - true - true - false - - - IF EXIST "$(SolutionDir)..\..\r5apex.exe" del "$(SolutionDir)..\..\bin\x64_retail\client.dll" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\x64_retail\ - - - - - - - - - Level4 - true - false - true - NDEBUG;_PROFILE;R5DEV_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - false - Use - core\stdafx.h - Neither - - - false - false - Default - Default - stdcpp17 - true - - - false - /D "GAMESDK" /D "CLIENT_DLL" /D "_CRT_SECURE_NO_WARNINGS" /D "CURL_STATICLIB" /D "SPDLOG_COMPILED_LIB" %(AdditionalOptions) - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\;$(ProjectDir)..\thirdparty\imgui\ - Full - Precise - true - CompileAsCpp - true - - - Windows - - - - - true - false - ..\ClientSDK.def - advapi32.lib;bcrypt.lib;crypt32.lib;dbghelp.lib;d3d11.lib;wldap32.lib;ws2_32.lib;libcurl_x64.lib;libdetours_x64.lib;libimgui_x64.lib;liblzham_x64.lib;libprotobuf_x64.lib;libspdlog_x64.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - - - 8000000 - - - - IF EXIST "$(SolutionDir)..\..\r5apex.exe" del "$(SolutionDir)..\..\bin\x64_retail\client.dll" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\x64_retail\ - - - - - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/clientsdk.vcxproj.filters b/r5dev/vproj/clientsdk.vcxproj.filters deleted file mode 100644 index 5a63552b..00000000 --- a/r5dev/vproj/clientsdk.vcxproj.filters +++ /dev/null @@ -1,1792 +0,0 @@ - - - - - {5857edb8-da8e-491a-96a1-00a4fcfe3d38} - - - {8de4910c-a79a-4e5b-8da1-d6da52425492} - - - {d2a0971d-1de6-47f7-8a77-4246bc0cda3c} - - - {c00eb6b9-50b2-4fc3-9e24-d8f7ff601e0e} - - - {8caa20bd-7dea-4cb9-a69f-e90498e96a93} - - - {c069ad8a-c3be-4e61-afbf-f3eee3846d83} - - - {0b1b90e6-79f6-4b19-8f5e-aac20d346094} - - - {fb47caac-589a-490f-9a7d-00f53add78cc} - - - {4afffd57-c78e-420f-a0a7-863b04e64812} - - - {86b2ad0f-8709-48fa-8e92-0e9b8053ffce} - - - {09875779-c73f-4138-9ed5-14af2b9d8337} - - - {1dd9c7b9-1abc-412a-8e85-928c0d017beb} - - - {7977cef5-28c7-40ca-be44-394d9f1b75de} - - - {3d8e58ec-0228-40ca-8ec8-66791a71bc08} - - - {4759136c-9b08-4e32-91a9-a71c62f019c1} - - - {c54c9382-0c06-4046-9e91-fb2a8019a22b} - - - {a37df87a-dfda-47ab-a1be-1e49bdfecf44} - - - {a7469cda-54f2-4efc-8a58-6105c74845f9} - - - {f7c791f6-2cda-4702-88bd-458ea662e7ef} - - - {956f49fb-0d6a-47d6-96a0-9d616e47e5f2} - - - {698f4add-abac-46e5-a3f8-55d3a230b369} - - - {942b8ea5-ce53-4e1e-ad7a-845991aaead6} - - - {14a61eec-93ec-4e7c-b0bf-2ce23c3b782c} - - - {64bc6e43-c5e7-474f-be64-31df89e0034b} - - - {d914384a-56bc-4829-977b-5900f01b5612} - - - {55bb4f60-5f5a-4780-a7a2-b3db51c53680} - - - {c5adc45b-d14c-4d52-9835-29948cab931a} - - - {b0696621-8658-4918-b0f2-ba20acc26829} - - - {cbe60970-f348-4a8b-8cee-d4cfebbe0d99} - - - {9da19829-c065-4584-9cf2-af751fb0d060} - - - {69f89031-0a48-4c3c-9ca8-c9a46f420e67} - - - {f26bcefd-b91a-4a1f-8b41-1124819c6e1d} - - - {cd141b6d-58a2-4b7d-afc9-32195cd9aa3c} - - - {75f3cdf7-cbe5-4138-90b1-24492f570abb} - - - {7fdf29d5-bc3d-41f4-8788-7ad63e4f9a13} - - - {9432e37b-2460-491e-96cb-ac0cfb477581} - - - {d82555e7-9f83-444b-ba0d-7e309e08ce73} - - - {5f9f0e7f-9bfb-4303-9bb6-fdce3bd23f23} - - - {3446634c-a632-4281-a500-459a56668a6b} - - - {b22b8726-d9bb-4a92-9825-4a97b93d43dc} - - - {cbbed3bf-8879-4269-a518-c526199d95af} - - - {45d6a508-a869-4d81-8701-9e4125ed1f7e} - - - {0b043c41-b53e-44f5-9cbe-7501fcf22478} - - - {a61ad720-d7da-4aee-a9ca-f87f827423ea} - - - {fd290792-d36d-400c-9f4d-366a9ce57427} - - - {99b7722c-1c10-431d-b86d-bc4d03655aee} - - - {05663bd0-2f29-41e4-acd3-4e3580f16549} - - - {0b44d683-b59c-4523-8d93-0c0f1145412c} - - - {8b98d10d-9c3f-4678-aa38-c993bc75eec3} - - - {74c19c99-a527-48d8-b350-6e9977c039b2} - - - {0b0265b0-50cc-4bf4-a0b0-babef5e2b21d} - - - {2088224b-de01-49e6-a58b-2452a2d9a0cb} - - - {906a4214-75b0-4441-9ef9-42b99112724f} - - - {2c8a1020-0875-4f62-8b80-a483c52b31df} - - - {e527117c-1cf6-4095-8b85-680efdbb82f6} - - - {e4697807-e13b-4bd8-a697-d3c156e73ef9} - - - {ad75bd37-3a84-4f8b-9cd1-544bcf5758d9} - - - {21ddddef-3a13-4f1d-9aa9-29c6b1bb24e1} - - - {01d3645a-16c3-4910-ac95-049e112cd2b8} - - - {57e1f0c7-ce4f-4576-960e-0cd15b2b5092} - - - {84fdfada-64fe-4591-b639-431058a16686} - - - {b22e88ea-1ee0-4431-82a4-e877a6798f23} - - - {a254a718-eeec-434e-b3a3-77604c8f372e} - - - {a41c5a4b-d1a5-4b95-aa63-b61ca185a0a9} - - - {565eefdf-15cf-47dc-a22b-0d3521e8c5c9} - - - {3b14367c-17f1-43d8-b8f5-a55506ac961f} - - - {20572d96-e629-45f1-8ae2-224a776bfb19} - - - {5529291a-e3b6-44a7-8edf-f0fe4e0ac4dc} - - - {c785a075-5583-4bb4-bdac-5f7419ee64ab} - - - {87c9d891-5df4-445a-941a-b479d8ce0436} - - - {f43b13e8-00f9-4fd8-8624-8e6376ea354a} - - - {c94410d7-b776-44d7-ad60-2afb250f60c3} - - - {f0fa0bdd-12a4-429d-910c-a0a45f71f454} - - - {3a764173-162a-449c-952b-2db659cbad95} - - - {ad59e38d-1dd1-4838-8040-6c5d9f4f660c} - - - {bef90121-4004-47a7-b338-a41ca8078c12} - - - {d5557b58-8087-492b-9533-5a1dfc6343fd} - - - {5bf8626a-6284-41ad-87e1-8b71f172a8d3} - - - {df576a65-b36a-4ec9-85e2-323013dcc28c} - - - {98d73628-844c-410a-8e4e-7110df82ec6c} - - - {88ac540f-8a32-4197-b135-b81d474114a6} - - - {6d8704d4-c50e-4eca-81bf-d3f01afcf84c} - - - - - sdk\client - - - sdk\ebisusdk - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\gameui - - - sdk\gameui - - - sdk\rtech - - - sdk\inputsystem - - - sdk\launcher - - - sdk\vgui - - - sdk\vgui - - - sdk\vguimatsurface - - - sdk\vpc - - - sdk\vpc - - - sdk\vphysics - - - windows - - - windows - - - windows - - - core - - - core - - - core - - - sdk\common - - - sdk\mathlib - - - sdk\vpklib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\rtech - - - sdk\engine - - - windows - - - sdk\mathlib - - - sdk\tier0 - - - core - - - core - - - sdk\vpc - - - sdk\engine - - - sdk\tier2 - - - sdk\mathlib - - - sdk\engine - - - thirdparty\protobuf - - - thirdparty\protobuf - - - sdk\engine - - - sdk\engine - - - sdk\vgui - - - sdk\networksystem - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\materialsystem - - - sdk\materialsystem - - - sdk\tier0 - - - sdk\tier0 - - - sdk\tier0 - - - sdk\rtech\stryder - - - sdk\rtech\rui - - - sdk\tier1 - - - sdk\client - - - sdk\filesystem - - - sdk\filesystem - - - sdk\tier1 - - - sdk\tier1 - - - sdk\vstdlib - - - sdk\vstdlib - - - sdk\vstdlib - - - sdk\launcher - - - sdk\tier0 - - - windows - - - sdk\common - - - sdk\datacache - - - sdk\game\client - - - sdk\engine - - - sdk\game\shared - - - sdk\engine - - - sdk\engine\client - - - sdk\engine\client - - - sdk\engine\client - - - sdk\engine - - - sdk\tier0 - - - sdk\tier1 - - - sdk\mathlib - - - sdk\engine - - - sdk\tier0 - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\vphysics - - - sdk\vstdlib - - - sdk\tier2 - - - sdk\tier2 - - - sdk\bonesetup - - - sdk\mathlib - - - sdk\mathlib - - - sdk\tier0 - - - sdk\game\client - - - sdk\tier1 - - - sdk\tier1 - - - sdk\tier1 - - - sdk\networksystem - - - sdk\engine - - - sdk\tier0 - - - sdk\pluginsystem - - - sdk\engine - - - sdk\engine\client - - - sdk\engine - - - sdk\engine - - - sdk\game\client - - - sdk\public - - - sdk\tier1 - - - sdk\codecs\bink - - - sdk\codecs\miles - - - sdk\public - - - sdk\public - - - thirdparty\protobuf - - - sdk\engine - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\client - - - sdk\game\shared - - - sdk\engine - - - sdk\launcher - - - sdk\tier2 - - - sdk\tier1 - - - sdk\public\appframework - - - sdk\tier0 - - - sdk\vstdlib - - - sdk\tier1 - - - sdk\tier1 - - - thirdparty\imgui\misc - - - sdk\tier1 - - - sdk\pluginsystem - - - sdk\vpc - - - sdk\localize - - - sdk\engine - - - sdk\engine\shared - - - sdk\engine\shared - - - sdk\game\shared - - - sdk\vscript - - - sdk\vscript\languages\squirrel_re - - - sdk\vscript\languages\squirrel_re\squirrel - - - sdk\vscript\languages\squirrel_re\squirrel - - - sdk\vscript\languages\squirrel_re\sqstdlib - - - sdk\tier2 - - - sdk\tier0 - - - sdk\tier0 - - - sdk\tier0 - - - sdk\tier0 - - - sdk\tier1 - - - sdk\tier1 - - - - - sdk\client - - - sdk\common - - - sdk\ebisusdk - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\gameui - - - sdk\gameui - - - sdk\rtech - - - sdk\inputsystem - - - sdk\inputsystem - - - sdk\launcher - - - sdk\mathlib - - - sdk\networksystem - - - thirdparty\detours\include - - - thirdparty\detours\include - - - thirdparty\detours\include - - - thirdparty\detours\include - - - sdk\vgui - - - sdk\vgui - - - sdk\vgui - - - sdk\vguimatsurface - - - sdk\vpc - - - sdk\vpc - - - sdk\vpc - - - sdk\vphysics - - - windows - - - windows - - - windows - - - core - - - core - - - core - - - core - - - sdk\common - - - sdk\mathlib - - - sdk\networksystem - - - sdk\mathlib - - - core - - - sdk\tier0 - - - sdk\mathlib - - - sdk\vpklib - - - sdk\mathlib - - - sdk\common - - - sdk\rtech - - - sdk\engine - - - windows - - - sdk\mathlib - - - sdk\materialsystem - - - sdk\engine - - - sdk\mathlib - - - sdk\tier0 - - - core - - - core - - - sdk\engine - - - sdk\mathlib - - - sdk\mathlib - - - sdk\common - - - sdk\engine - - - thirdparty\protobuf - - - thirdparty\protobuf - - - sdk\engine - - - sdk\engine - - - sdk\vgui - - - sdk\engine - - - sdk\engine - - - sdk\networksystem - - - sdk\studiorender - - - sdk\engine - - - sdk\common - - - sdk\appframework - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\lzhamcomp\include - - - thirdparty\lzham\lzhamcomp\include - - - thirdparty\lzham\lzhamdecomp\include - - - thirdparty\lzham\lzhamdecomp\include - - - sdk\public - - - sdk\public - - - sdk\engine - - - sdk\materialsystem - - - sdk\tier0 - - - sdk\tier0 - - - sdk\rtech\stryder - - - sdk\rtech\rui - - - sdk\public - - - sdk\client - - - sdk\game\client - - - sdk\filesystem - - - sdk\filesystem - - - sdk\vstdlib - - - sdk\vstdlib - - - sdk\common - - - sdk\common - - - sdk\engine - - - sdk\vstdlib - - - sdk\launcher - - - windows - - - sdk\public - - - sdk\engine - - - sdk\common - - - sdk\public - - - sdk\game\client - - - sdk\datacache - - - sdk\datacache - - - sdk\game\client - - - sdk\public\avi - - - sdk\public\avi - - - sdk\public - - - sdk\engine - - - sdk\public - - - sdk\game\shared - - - sdk\public - - - sdk\datacache - - - thirdparty\nlohmann - - - thirdparty\nlohmann - - - thirdparty\nlohmann - - - thirdparty\nlohmann - - - thirdparty\nlohmann - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail\conversions - - - thirdparty\nlohmann\detail\conversions - - - thirdparty\nlohmann\detail\conversions - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta\call_std - - - thirdparty\nlohmann\detail\meta\call_std - - - thirdparty\nlohmann\detail\output - - - thirdparty\nlohmann\detail\output - - - thirdparty\nlohmann\detail\output - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\public - - - sdk\engine\client - - - sdk\engine\client - - - sdk\engine\client - - - sdk\engine\client - - - sdk\engine - - - sdk\vpc - - - sdk\mathlib - - - sdk\public - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\vstdlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\public - - - sdk\tier0 - - - sdk\game\client - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public\bitmap - - - sdk\public - - - sdk\public - - - sdk\vstdlib - - - sdk\networksystem - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\pluginsystem - - - sdk\engine - - - sdk\engine\client - - - sdk\engine - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public\rendersystem\schema - - - sdk\public\materialsystem - - - sdk\engine - - - sdk\engine - - - sdk\game\client - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\mathlib - - - sdk\codecs\bink - - - sdk\codecs\miles - - - sdk\codecs\miles - - - sdk\public - - - sdk\public - - - thirdparty\protobuf - - - sdk\public - - - sdk\engine - - - sdk\public - - - sdk\public\engine - - - sdk\public - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\shared - - - sdk\public - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\client - - - sdk\game\shared - - - sdk\game\client - - - sdk\public\engine - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public\engine - - - sdk\engine - - - sdk\launcher - - - sdk\public\appframework - - - sdk\public\appframework - - - sdk\vstdlib - - - thirdparty\nlohmann\thirdparty\hedley - - - thirdparty\nlohmann\thirdparty\hedley - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail\meta - - - thirdparty\imgui\misc - - - sdk\public - - - sdk\public\tier0 - - - sdk\public\tier1 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier2 - - - sdk\public\tier2 - - - sdk\public\tier2 - - - sdk\public\tier2 - - - sdk\mathlib - - - sdk\public\tier0 - - - sdk\pluginsystem - - - sdk\vpc - - - sdk\localize - - - sdk\engine - - - sdk\engine\shared - - - sdk\engine\shared - - - sdk\game\shared - - - sdk\vscript - - - sdk\vscript\languages\squirrel_re - - - sdk\vscript\languages\squirrel_re\include - - - sdk\vscript\languages\squirrel_re\include - - - sdk\vscript\languages\squirrel_re\include - - - sdk\vscript\languages\squirrel_re\include - - - sdk\public\tier2 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - - - sdk\resource\png - - - - - sdk\resource - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/dedicated.vcxproj b/r5dev/vproj/dedicated.vcxproj deleted file mode 100644 index 4ac84e40..00000000 --- a/r5dev/vproj/dedicated.vcxproj +++ /dev/null @@ -1,694 +0,0 @@ - - - - - Debug - x64 - - - Profile - x64 - - - Release - x64 - - - - 16.0 - Win32Proj - {ed2c50b3-7c2c-4e44-988e-daa059f72b9c} - dedicated - 10.0 - - - - DynamicLibrary - true - v143 - Unicode - Static - - - DynamicLibrary - false - v143 - true - Unicode - Static - - - DynamicLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(LibraryPath); - $(SolutionDir)game\ - $(SolutionDir)build\$(ProjectName)\debug\ - - - false - $(IncludePath); - $(LibraryPath); - $(SolutionDir)game\ - $(SolutionDir)build\$(ProjectName)\release\ - - - true - $(IncludePath); - $(LibraryPath); - $(SolutionDir)game\ - $(SolutionDir)build\$(ProjectName)\profile\ - - - - Level4 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "GAMESDK" /D "DEDICATED" /D "CURL_STATICLIB" /D "SPDLOG_COMPILED_LIB" %(AdditionalOptions) - Use - core\stdafx.h - stdcpp17 - Default - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\;$(ProjectDir)..\thirdparty\recast\ - Precise - true - CompileAsCpp - true - - - Console - true - advapi32.lib;bcrypt.lib;crypt32.lib;dbghelp.lib;user32.lib;wldap32.lib;ws2_32.lib;libcurl_x64.lib;libdetours_x64.lib;liblzham_x64.lib;libprotobuf_x64.lib;libspdlog_x64.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - ..\Dedicated.def - 8000000 - - - IF EXIST "$(SolutionDir)..\..\r5apex_ds.exe" del "$(SolutionDir)..\..\$(ProjectName)" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\ - - - - - - - - - Level4 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "GAMESDK" /D "DEDICATED" /D "CURL_STATICLIB" /D "SPDLOG_COMPILED_LIB" /D "SPDLOG_NO_EXCEPTIONS" %(AdditionalOptions) - Use - core\stdafx.h - stdcpp17 - true - Speed - Default - false - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\;$(ProjectDir)..\thirdparty\recast\ - Fast - false - true - AnySuitable - false - false - CompileAsCpp - true - - - Console - true - advapi32.lib;bcrypt.lib;crypt32.lib;dbghelp.lib;user32.lib;wldap32.lib;ws2_32.lib;libcurl_x64.lib;libdetours_x64.lib;liblzham_x64.lib;libprotobuf_x64.lib;libspdlog_x64.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - ..\Dedicated.def - true - 8000000 - true - true - false - - - IF EXIST "$(SolutionDir)..\..\r5apex_ds.exe" del "$(SolutionDir)..\..\$(ProjectName)" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\ - - - - - - - - - Level4 - true - false - true - NDEBUG;_PROFILE;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "GAMESDK" /D "DEDICATED" /D "CURL_STATICLIB" /D "SPDLOG_COMPILED_LIB" %(AdditionalOptions) - Use - core\stdafx.h - stdcpp17 - true - Neither - Default - false - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\;$(ProjectDir)..\thirdparty\recast\ - Full - false - Precise - true - CompileAsCpp - true - - - Console - - - - - true - advapi32.lib;bcrypt.lib;crypt32.lib;dbghelp.lib;user32.lib;wldap32.lib;ws2_32.lib;libcurl_x64.lib;libdetours_x64.lib;liblzham_x64.lib;libprotobuf_x64.lib;libspdlog_x64.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - ..\Dedicated.def - - - 8000000 - - - - IF EXIST "$(SolutionDir)..\..\r5apex_ds.exe" del "$(SolutionDir)..\..\$(ProjectName)" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Create - Create - Create - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/dedicated.vcxproj.filters b/r5dev/vproj/dedicated.vcxproj.filters deleted file mode 100644 index 1185f0ba..00000000 --- a/r5dev/vproj/dedicated.vcxproj.filters +++ /dev/null @@ -1,1584 +0,0 @@ - - - - - {f97c7e9b-cc5e-4ec1-8c2a-19cf941b5c90} - - - {f280958c-f362-4918-a1f3-ca66f4bf1ec6} - - - {00cd526c-e897-4d88-86e0-03612cfda456} - - - {495a53fc-5055-4449-b42c-b7edc5e83466} - - - {08dd9239-516c-4b9f-8064-28bd127d9806} - - - {a6ab59cc-8df3-4fbd-b94b-2ec6e83feea9} - - - {009673c6-839f-48d7-b2c6-eca9a6e606b1} - - - {08acc045-15dd-469f-b717-35f1dd35c07c} - - - {8786ae3f-91d3-4eb8-89b7-e2135d143faa} - - - {9dc16eaa-182b-42ea-9524-8cc8421829b6} - - - {3792464a-e366-4bbb-86fa-35631e3748f2} - - - {a7be4dd8-3e52-4053-afa5-26faf833e5b7} - - - {3db73603-e800-4763-98dc-f3bf4c674261} - - - {2b79f12d-1506-42e6-94a9-560891c0ff8c} - - - {1a595a55-8bcf-4c0f-8456-4669b8692ce5} - - - {7c06597f-4eda-4695-9d39-d7719ead774e} - - - {8aacb674-0b73-41fa-94f0-98ba718289a9} - - - {bbb7a170-37ae-4c76-b99a-8ebb924818ed} - - - {e1897f61-953e-4173-9c75-e59ca33929ea} - - - {e7189077-ca26-4a4e-bb60-eec7e5a1bafc} - - - {da2c5c3d-eff4-404f-af3f-e30ec17dcc1a} - - - {efae8c5b-e29e-497f-8bbb-af3b213f6c79} - - - {9d1e327b-f385-4d84-82e0-918bc0bde704} - - - {3e25ba44-6480-463a-8380-0709bf885bc8} - - - {3097f306-20ab-4601-a184-ce56c5265746} - - - {888e265d-d431-4c9c-8d1a-e8a3639c9fbd} - - - {5648c1a1-99dd-4532-af6d-0ce6132a10ef} - - - {9faa91f6-4a34-4a90-b956-eb482f38617d} - - - {ffe79a0d-71dd-46aa-9a1c-6d87dc441f05} - - - {ed2f5f72-7ef5-49ff-bed2-13e2b5d6eabe} - - - {6139087a-fe2d-4a77-aab9-64fcb8c4e472} - - - {40c41a94-4e9d-439f-9b16-68531ecc03a8} - - - {07362c29-d064-4bdb-97a6-6e3dbcdc8c02} - - - {3e3725c1-9a0d-44c7-86dc-8e146bb38eca} - - - {ac641995-20c7-43a8-ae66-809b349b1de7} - - - {f6e1bcba-3548-4849-918d-9adea1603b0b} - - - {4573ce75-0337-41b1-a43e-e9c17773b127} - - - {c56a77b8-efc3-4d5c-8f4a-564134beceee} - - - {42246df3-6c6b-4864-9db9-b9a297ced4da} - - - {d6a24986-87d7-4e4c-af02-4e3e6d55e617} - - - {97e753ae-322e-4c0b-b2dc-e19bdf73d1ad} - - - {4219a658-fbaf-4a6d-8325-c3a7bf45021f} - - - {084ee704-ab75-4264-a715-4ebd1fc82b26} - - - {22044fb7-edac-4d95-be0b-17331043196a} - - - {3816acd1-eb9b-4b81-ac42-5073e7b66e77} - - - {c74bb2ba-7f79-4593-a38e-bc8b1a0708c4} - - - {83ff5829-868f-4af8-83a1-789fa6c7cf7f} - - - {ec4e73bc-3627-4184-afaa-47535aa00982} - - - {b8f37659-c83d-4b75-81ea-5a4cafeea264} - - - {98975892-5379-4f6c-8c7e-35d92d2bc5e5} - - - {d49ec580-58c2-49e7-8e83-957da576febd} - - - {d0650f0e-6359-4322-82c2-97f2e40f141f} - - - {3760be6a-7ccb-4ad7-bba8-608dcc60a6b5} - - - {55c87120-310f-4eb5-81b9-3d8912b1dfb4} - - - {503c54bf-8011-46a0-9439-a7ae035c23e0} - - - {36aae780-3dfa-4fb4-93d8-1e453c4be236} - - - {f6e7b39b-4032-4a7a-8a44-3aabcbe46ba5} - - - {a1808eb5-d397-446f-beef-33adab77733b} - - - {4bccf09c-4f8b-4d7e-ab72-54fd8c1fb5cf} - - - {b63095aa-67e5-4b31-bcfe-05fa3129e463} - - - {5d42095d-1e80-46a9-ac69-8bf90d465576} - - - {827424d4-205c-4b16-8014-395a7bb9ff59} - - - {368a28a5-fc39-4b8d-9d5c-c3c6367460c6} - - - {d124ed64-2bcf-4234-b17c-58fed3737c5c} - - - {4cdd5e98-d7f6-4109-9d68-f060bea42e99} - - - - - sdk\common - - - sdk\common - - - core - - - core - - - core - - - core - - - sdk\ebisusdk - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\launcher - - - sdk\mathlib - - - sdk\networksystem - - - sdk\networksystem - - - sdk\rtech - - - sdk\server - - - thirdparty\detours\include - - - thirdparty\detours\include - - - thirdparty\detours\include - - - thirdparty\detours\include - - - sdk\vpc - - - sdk\vpc - - - sdk\vpc - - - sdk\vphysics - - - windows - - - sdk\mathlib - - - sdk\mathlib - - - sdk\tier0 - - - sdk\mathlib - - - sdk\vpklib - - - sdk\mathlib - - - sdk\common - - - sdk\engine - - - sdk\rtech - - - windows - - - sdk\mathlib - - - sdk\tier0 - - - core - - - sdk\mathlib - - - core - - - sdk\engine - - - sdk\mathlib - - - sdk\mathlib - - - sdk\common - - - sdk\engine - - - thirdparty\protobuf - - - thirdparty\protobuf - - - sdk\launcher - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\networksystem - - - sdk\game\server - - - sdk\common - - - sdk\appframework - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\lzhamcomp\include - - - thirdparty\lzham\lzhamcomp\include - - - thirdparty\lzham\lzhamdecomp\include - - - thirdparty\lzham\lzhamdecomp\include - - - sdk\game\server - - - sdk\game\server - - - sdk\game\server - - - sdk\game\server - - - sdk\public - - - sdk\public - - - sdk\game\server - - - sdk\game\server - - - sdk\tier0 - - - sdk\tier0 - - - sdk\rtech\stryder - - - sdk\materialsystem - - - sdk\public - - - sdk\filesystem - - - sdk\filesystem - - - sdk\vstdlib - - - sdk\vstdlib - - - sdk\common - - - sdk\common - - - sdk\engine - - - sdk\vstdlib - - - sdk\launcher - - - sdk\public - - - sdk\engine - - - sdk\common - - - sdk\public - - - sdk\datacache - - - sdk\datacache - - - sdk\public - - - sdk\game\shared - - - sdk\public - - - sdk\datacache - - - thirdparty\nlohmann - - - thirdparty\nlohmann - - - thirdparty\nlohmann - - - thirdparty\nlohmann - - - thirdparty\nlohmann - - - thirdparty\nlohmann\detail\conversions - - - thirdparty\nlohmann\detail\conversions - - - thirdparty\nlohmann\detail\conversions - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta\call_std - - - thirdparty\nlohmann\detail\meta\call_std - - - thirdparty\nlohmann\detail\output - - - thirdparty\nlohmann\detail\output - - - thirdparty\nlohmann\detail\output - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\public - - - sdk\engine\client - - - sdk\engine\server - - - sdk\engine\server - - - sdk\engine\server - - - sdk\engine - - - sdk\public - - - sdk\vpc - - - sdk\mathlib - - - sdk\public - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\vstdlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\server - - - sdk\tier0 - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\networksystem - - - sdk\public - - - sdk\public - - - sdk\vstdlib - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\pluginsystem - - - sdk\engine - - - sdk\public - - - sdk\engine - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\mathlib - - - sdk\public - - - sdk\public - - - thirdparty\protobuf - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public\engine - - - sdk\game\shared - - - sdk\game\server - - - sdk\game\server - - - sdk\game\server - - - sdk\game\shared - - - sdk\game\shared - - - sdk\public - - - sdk\game\shared - - - sdk\game\server - - - sdk\game\server - - - sdk\game\server - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\server - - - sdk\game\shared - - - sdk\game\server - - - sdk\game\shared - - - sdk\public\engine - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public\engine - - - sdk\engine - - - sdk\game\server - - - sdk\game\server - - - sdk\public\appframework - - - sdk\public\appframework - - - sdk\vstdlib - - - thirdparty\nlohmann\thirdparty\hedley - - - thirdparty\nlohmann\thirdparty\hedley - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail\meta - - - sdk\public - - - sdk\public\tier1 - - - sdk\public\tier0 - - - sdk\public\tier2 - - - sdk\public\tier2 - - - sdk\public\tier2 - - - sdk\public\tier2 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\mathlib - - - sdk\public\tier0 - - - sdk\localize - - - sdk\pluginsystem - - - sdk\vpc - - - sdk\engine - - - sdk\engine\shared - - - sdk\engine\shared - - - sdk\vscript - - - sdk\vscript\languages\squirrel_re - - - sdk\vscript\languages\squirrel_re\include - - - sdk\vscript\languages\squirrel_re\include - - - sdk\vscript\languages\squirrel_re\include - - - sdk\vscript\languages\squirrel_re\include - - - sdk\game\shared - - - sdk\public\tier2 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - - - sdk\common - - - core - - - core - - - core - - - sdk\ebisusdk - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\launcher - - - sdk\rtech - - - sdk\server - - - sdk\vpc - - - sdk\vpc - - - sdk\vphysics - - - windows - - - sdk\mathlib - - - sdk\vpklib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\engine - - - sdk\rtech - - - windows - - - sdk\mathlib - - - sdk\tier0 - - - core - - - core - - - sdk\vpc - - - sdk\engine - - - sdk\tier2 - - - sdk\mathlib - - - sdk\engine - - - thirdparty\protobuf - - - thirdparty\protobuf - - - sdk\launcher - - - sdk\engine - - - sdk\networksystem - - - sdk\game\server - - - sdk\game\server - - - sdk\engine - - - sdk\engine - - - sdk\game\server - - - sdk\tier0 - - - sdk\tier0 - - - sdk\tier0 - - - sdk\rtech\stryder - - - sdk\tier1 - - - sdk\game\server - - - sdk\filesystem - - - sdk\filesystem - - - sdk\tier1 - - - sdk\tier1 - - - sdk\vstdlib - - - sdk\vstdlib - - - sdk\vstdlib - - - sdk\launcher - - - sdk\tier0 - - - sdk\datacache - - - sdk\game\shared - - - sdk\engine - - - sdk\engine\client - - - sdk\engine\server - - - sdk\engine\server - - - sdk\engine\server - - - sdk\engine - - - sdk\tier0 - - - sdk\tier1 - - - sdk\mathlib - - - sdk\tier0 - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\vphysics - - - sdk\vstdlib - - - sdk\bonesetup - - - sdk\mathlib - - - sdk\mathlib - - - sdk\tier0 - - - sdk\server - - - sdk\tier1 - - - sdk\tier1 - - - sdk\networksystem - - - sdk\tier1 - - - sdk\engine - - - sdk\tier0 - - - sdk\pluginsystem - - - sdk\engine - - - sdk\materialsystem - - - sdk\public - - - sdk\tier1 - - - sdk\public - - - thirdparty\protobuf - - - sdk\game\shared - - - sdk\game\server - - - sdk\game\shared - - - sdk\game\server - - - sdk\game\server - - - sdk\game\server - - - sdk\game\shared - - - sdk\game\server - - - sdk\engine - - - sdk\game\server - - - sdk\game\server - - - sdk\common - - - sdk\tier2 - - - sdk\tier1 - - - sdk\public\appframework - - - sdk\tier0 - - - sdk\vstdlib - - - sdk\tier1 - - - sdk\tier1 - - - sdk\tier1 - - - sdk\localize - - - sdk\pluginsystem - - - sdk\vpc - - - sdk\engine - - - sdk\engine\shared - - - sdk\engine\shared - - - sdk\vscript - - - sdk\vscript\languages\squirrel_re - - - sdk\vscript\languages\squirrel_re\sqstdlib - - - sdk\vscript\languages\squirrel_re\squirrel - - - sdk\vscript\languages\squirrel_re\squirrel - - - sdk\game\shared - - - sdk\tier2 - - - sdk\tier0 - - - sdk\tier0 - - - sdk\tier0 - - - sdk\tier0 - - - sdk\tier1 - - - sdk\tier1 - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/gamesdk.vcxproj b/r5dev/vproj/gamesdk.vcxproj deleted file mode 100644 index 01f2e9fc..00000000 --- a/r5dev/vproj/gamesdk.vcxproj +++ /dev/null @@ -1,831 +0,0 @@ - - - - - Debug - x64 - - - Profile - x64 - - - Release - x64 - - - - - - - - - - - - - - - Create - Create - Create - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 16.0 - Win32Proj - {28cc6b4f-7a95-4933-ada9-65e38d48516d} - r5dev - 10.0 - gamesdk - - - - DynamicLibrary - true - v143 - Unicode - Static - - - DynamicLibrary - false - v143 - true - Unicode - Static - - - DynamicLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - - - - true - $(IncludePath);$(DXSDK_DIR)Include - $(LibraryPath);$(DXSDK_DIR)Lib\x64 - gamesdk - $(SolutionDir)game\ - $(SolutionDir)build\$(ProjectName)\debug\ - $(VC_ReferencesPath_x64); - - - false - $(IncludePath);$(DXSDK_DIR)Include - $(LibraryPath);$(DXSDK_DIR)Lib\x64 - gamesdk - $(VC_ReferencesPath_x64); - $(SolutionDir)game\ - $(SolutionDir)build\$(ProjectName)\release\ - - - true - $(IncludePath);$(DXSDK_DIR)Include - $(LibraryPath);$(DXSDK_DIR)Lib\x64 - gamesdk - $(VC_ReferencesPath_x64); - $(SolutionDir)game\ - $(SolutionDir)build\$(ProjectName)\profile\ - - - - Level4 - true - _DEBUG;R5DEV_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - false - Use - core\stdafx.h - - - stdcpp17 - Default - /D "_CRT_SECURE_NO_WARNINGS" /D "GAMESDK" /D "CURL_STATICLIB" /D "SPDLOG_COMPILED_LIB" %(AdditionalOptions) - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\;$(ProjectDir)..\thirdparty\recast\;$(ProjectDir)..\thirdparty\imgui\ - Precise - true - CompileAsCpp - true - - - Windows - true - false - ..\GameSDK.def - advapi32.lib;bcrypt.lib;crypt32.lib;dbghelp.lib;d3d11.lib;wldap32.lib;ws2_32.lib;libdetours_x64.lib;libcurl_x64.lib;libimgui_x64.lib;liblzham_x64.lib;libprotobuf_x64.lib;librecast_x64.lib;libdtdetour_x64.lib;libspdlog_x64.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - 8000000 - - - IF EXIST "$(SolutionDir)..\..\r5apex.exe" del "$(SolutionDir)..\..\gamesdk.dll" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\ - - - - - - - - - Level4 - true - true - NDEBUG;R5DEV_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - false - Use - core\stdafx.h - Speed - - - false - false - AnySuitable - Default - stdcpp17 - true - - - false - /D "_CRT_SECURE_NO_WARNINGS" /D "GAMESDK" /D "CURL_STATICLIB" /D "SPDLOG_COMPILED_LIB" /D "SPDLOG_NO_EXCEPTIONS" %(AdditionalOptions) - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\;$(ProjectDir)..\thirdparty\recast\;$(ProjectDir)..\thirdparty\imgui\ - Fast - false - true - false - CompileAsCpp - true - - - Windows - true - false - ..\GameSDK.def - advapi32.lib;bcrypt.lib;crypt32.lib;dbghelp.lib;d3d11.lib;wldap32.lib;ws2_32.lib;libdetours_x64.lib;libcurl_x64.lib;libimgui_x64.lib;liblzham_x64.lib;libprotobuf_x64.lib;librecast_x64.lib;libdtdetour_x64.lib;libspdlog_x64.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - true - 8000000 - true - true - false - - - IF EXIST "$(SolutionDir)..\..\r5apex.exe" del "$(SolutionDir)..\..\gamesdk.dll" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\ - - - - - - - - - Level4 - true - false - true - NDEBUG;_PROFILE;R5DEV_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - false - Use - core\stdafx.h - Neither - - - false - false - Default - Default - stdcpp17 - true - - - false - /D "_CRT_SECURE_NO_WARNINGS" /D "GAMESDK" /D "CURL_STATICLIB" /D "SPDLOG_COMPILED_LIB" %(AdditionalOptions) - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\;$(ProjectDir)..\thirdparty\recast\;$(ProjectDir)..\thirdparty\imgui\ - Full - Precise - true - CompileAsCpp - true - - - Windows - - - - - true - false - ..\GameSDK.def - advapi32.lib;bcrypt.lib;crypt32.lib;dbghelp.lib;d3d11.lib;wldap32.lib;ws2_32.lib;libdetours_x64.lib;libcurl_x64.lib;libimgui_x64.lib;liblzham_x64.lib;libprotobuf_x64.lib;librecast_x64.lib;libdtdetour_x64.lib;libspdlog_x64.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - - - 8000000 - - - - IF EXIST "$(SolutionDir)..\..\r5apex.exe" del "$(SolutionDir)..\..\gamesdk.dll" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\ - - - - - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/gamesdk.vcxproj.filters b/r5dev/vproj/gamesdk.vcxproj.filters deleted file mode 100644 index 936c1377..00000000 --- a/r5dev/vproj/gamesdk.vcxproj.filters +++ /dev/null @@ -1,1972 +0,0 @@ - - - - - {5857edb8-da8e-491a-96a1-00a4fcfe3d38} - - - {8de4910c-a79a-4e5b-8da1-d6da52425492} - - - {d2a0971d-1de6-47f7-8a77-4246bc0cda3c} - - - {c00eb6b9-50b2-4fc3-9e24-d8f7ff601e0e} - - - {8caa20bd-7dea-4cb9-a69f-e90498e96a93} - - - {c069ad8a-c3be-4e61-afbf-f3eee3846d83} - - - {0b1b90e6-79f6-4b19-8f5e-aac20d346094} - - - {fb47caac-589a-490f-9a7d-00f53add78cc} - - - {4afffd57-c78e-420f-a0a7-863b04e64812} - - - {86b2ad0f-8709-48fa-8e92-0e9b8053ffce} - - - {09875779-c73f-4138-9ed5-14af2b9d8337} - - - {1dd9c7b9-1abc-412a-8e85-928c0d017beb} - - - {525505fd-c8bb-453c-8cce-e11123499ae9} - - - {7977cef5-28c7-40ca-be44-394d9f1b75de} - - - {3d8e58ec-0228-40ca-8ec8-66791a71bc08} - - - {4759136c-9b08-4e32-91a9-a71c62f019c1} - - - {c54c9382-0c06-4046-9e91-fb2a8019a22b} - - - {a37df87a-dfda-47ab-a1be-1e49bdfecf44} - - - {a7469cda-54f2-4efc-8a58-6105c74845f9} - - - {f7c791f6-2cda-4702-88bd-458ea662e7ef} - - - {956f49fb-0d6a-47d6-96a0-9d616e47e5f2} - - - {698f4add-abac-46e5-a3f8-55d3a230b369} - - - {942b8ea5-ce53-4e1e-ad7a-845991aaead6} - - - {14a61eec-93ec-4e7c-b0bf-2ce23c3b782c} - - - {64bc6e43-c5e7-474f-be64-31df89e0034b} - - - {d914384a-56bc-4829-977b-5900f01b5612} - - - {55bb4f60-5f5a-4780-a7a2-b3db51c53680} - - - {c5adc45b-d14c-4d52-9835-29948cab931a} - - - {b0696621-8658-4918-b0f2-ba20acc26829} - - - {cbe60970-f348-4a8b-8cee-d4cfebbe0d99} - - - {9da19829-c065-4584-9cf2-af751fb0d060} - - - {69f89031-0a48-4c3c-9ca8-c9a46f420e67} - - - {f26bcefd-b91a-4a1f-8b41-1124819c6e1d} - - - {5c9f1dab-de5d-4d9f-b542-fad470862de7} - - - {9b8dfdef-ff4d-49c4-89ac-d6ad59a1f58a} - - - {cd141b6d-58a2-4b7d-afc9-32195cd9aa3c} - - - {75f3cdf7-cbe5-4138-90b1-24492f570abb} - - - {7fdf29d5-bc3d-41f4-8788-7ad63e4f9a13} - - - {9432e37b-2460-491e-96cb-ac0cfb477581} - - - {d82555e7-9f83-444b-ba0d-7e309e08ce73} - - - {5f9f0e7f-9bfb-4303-9bb6-fdce3bd23f23} - - - {3446634c-a632-4281-a500-459a56668a6b} - - - {3f399cbb-a487-4562-b651-f8ce846e5f94} - - - {2535a97c-967a-40af-bb52-02033747b4f0} - - - {be813705-b786-4439-b785-eff6bb5f194f} - - - {9fbd3a16-56a4-4794-bfa6-680f41002c24} - - - {48abe326-8ad7-43fa-875d-2e73c7c64106} - - - {42f3eba8-1c16-4a48-b9c7-209eb4e0eb36} - - - {67444ecb-b115-4231-a33b-aab424f785fc} - - - {bb7fbc8a-906a-4322-b8d6-04a495e69a12} - - - {917f0602-b93c-41a1-a802-b437d0487671} - - - {fc0fe9a2-4ff4-4c79-80c1-dfd3ccc41ade} - - - {d85ffc6d-99c3-4f74-9db9-a9382f4ec68e} - - - {bda94568-adf6-4c9d-a738-da358b523dae} - - - {77138c59-323d-498f-98b5-03016cd1f9ac} - - - {785db9fe-1a80-4079-b1cc-ff180e64d0c3} - - - {517eca91-070e-4dfd-9c13-08ea3c049b29} - - - {e0381da1-e78c-422b-8f94-66c8fe8fa772} - - - {c2a22a6a-2542-459c-9f7f-2c82ce93a70c} - - - {205ae17f-10d4-4628-a794-066c81984b6f} - - - {8ce676f2-dc88-4fb5-b747-6eb863033d07} - - - {b7e33427-fd37-44b1-8530-651ae5f4fde1} - - - {acbd4b45-6a8d-4d9f-9747-1bc460481bb4} - - - {a7d7c0e6-d908-4e3e-ae8d-f45dea8de772} - - - {cd7b0538-e28c-4181-9e19-588f77d41d36} - - - {993b2009-3b46-4ffd-8f09-4f2d6ff7691a} - - - {5bdaa309-3120-4e90-a824-41f7ef739225} - - - {1718d302-db9b-4d2e-b666-cb9f2712eef4} - - - {389ac126-74f8-456a-93f3-aae243804dcc} - - - {e10598dd-d765-4394-a017-a3847ded2045} - - - {f53df686-70b6-4883-a966-1eb3fd7eb2b1} - - - {027d27a1-089a-4ea1-b764-1b436c6d20a2} - - - {0c992b91-3491-4337-a630-c789e2654bc2} - - - {0ceb19d4-45ba-4dd0-8ce1-ae87598c7a72} - - - {9c046c8b-a67f-4bac-938e-5bc52bb1baf5} - - - {676c3f77-36b9-44e8-a0d2-ff5ed6a8040e} - - - {42a3745e-8686-4f83-97bd-cec9336b4937} - - - {dd902172-603c-495a-ab31-d786cd1ddbdf} - - - {f3335ce8-0956-4d3c-9d12-ca2bd5646d8c} - - - {306af380-9492-405e-975f-b4d8f8edb33c} - - - {06713de9-e726-48d4-876f-6be67af39e24} - - - {0cf85fa4-0555-46fa-85d3-810380aa3278} - - - {5d93bf0c-25a1-486d-bdf8-4de0f2bf1b7d} - - - {8ae5d70b-05b8-46db-8546-0a1d0cd207f2} - - - {d4aaa740-265b-4125-8b3d-9439a3d4bdf8} - - - {e0afe585-b0c4-4647-af69-1fa709d7e080} - - - - - sdk\client - - - sdk\client - - - sdk\ebisusdk - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\gameui - - - sdk\gameui - - - sdk\rtech - - - sdk\inputsystem - - - sdk\launcher - - - sdk\server - - - sdk\vgui - - - sdk\vgui - - - sdk\vguimatsurface - - - sdk\vpc - - - sdk\vpc - - - sdk\vphysics - - - windows - - - windows - - - windows - - - core - - - core - - - core - - - sdk\common - - - sdk\mathlib - - - sdk\vpklib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\rtech - - - sdk\engine - - - windows - - - sdk\mathlib - - - sdk\tier0 - - - core - - - core - - - sdk\vpc - - - sdk\engine - - - sdk\tier2 - - - sdk\mathlib - - - sdk\engine - - - thirdparty\protobuf - - - thirdparty\protobuf - - - sdk\engine - - - sdk\engine - - - sdk\vgui - - - sdk\networksystem - - - sdk\game\server - - - sdk\game\server - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\materialsystem - - - sdk\game\server - - - sdk\materialsystem - - - sdk\tier0 - - - sdk\tier0 - - - sdk\tier0 - - - sdk\rtech\rui - - - sdk\rtech\stryder - - - sdk\tier1 - - - sdk\game\server - - - sdk\filesystem - - - sdk\filesystem - - - sdk\tier1 - - - sdk\tier1 - - - sdk\vstdlib - - - sdk\vstdlib - - - sdk\vstdlib - - - sdk\launcher - - - sdk\tier0 - - - windows - - - sdk\common - - - sdk\datacache - - - sdk\game\client - - - sdk\engine - - - sdk\game\shared - - - sdk\engine - - - sdk\engine\server - - - sdk\engine\server - - - sdk\engine\client - - - sdk\engine\client - - - sdk\engine\client - - - sdk\engine - - - sdk\tier0 - - - sdk\tier1 - - - sdk\mathlib - - - sdk\engine - - - sdk\tier0 - - - sdk\materialsystem - - - sdk\mathlib - - - sdk\vstdlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\vphysics - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\tier2 - - - sdk\tier2 - - - sdk\bonesetup - - - sdk\mathlib - - - sdk\mathlib - - - sdk\tier0 - - - sdk\server - - - sdk\game\client - - - sdk\game\client - - - sdk\game\shared - - - sdk\tier1 - - - sdk\tier1 - - - sdk\networksystem - - - sdk\tier1 - - - sdk\networksystem - - - sdk\tier0 - - - sdk\engine - - - sdk\pluginsystem - - - sdk\engine - - - sdk\engine\client - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\public - - - sdk\tier1 - - - sdk\codecs\bink - - - sdk\codecs\miles - - - sdk\public - - - sdk\public - - - thirdparty\protobuf - - - sdk\engine - - - sdk\game\server - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\server - - - sdk\game\server - - - sdk\game\client - - - sdk\game\server - - - sdk\game\shared - - - sdk\game\server - - - sdk\engine - - - sdk\game\server - - - sdk\game\server - - - sdk\launcher - - - sdk\tier2 - - - sdk\tier1 - - - sdk\engine\server - - - sdk\public\appframework - - - sdk\tier0 - - - sdk\vstdlib - - - sdk\tier1 - - - sdk\tier1 - - - thirdparty\imgui\misc - - - sdk\tier1 - - - sdk\pluginsystem - - - sdk\vpc - - - sdk\localize - - - sdk\engine - - - sdk\engine\shared - - - sdk\engine\shared - - - sdk\vscript - - - sdk\game\shared - - - sdk\vscript\languages\squirrel_re\squirrel - - - sdk\vscript\languages\squirrel_re\squirrel - - - sdk\vscript\languages\squirrel_re\sqstdlib - - - sdk\vscript\languages\squirrel_re - - - sdk\tier2 - - - sdk\tier0 - - - sdk\tier0 - - - sdk\tier0 - - - sdk\tier0 - - - sdk\tier1 - - - sdk\tier1 - - - - - sdk\client - - - sdk\client - - - sdk\common - - - sdk\ebisusdk - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\gameui - - - sdk\gameui - - - sdk\rtech - - - sdk\inputsystem - - - sdk\inputsystem - - - sdk\launcher - - - sdk\mathlib - - - sdk\networksystem - - - sdk\server - - - thirdparty\detours\include - - - thirdparty\detours\include - - - thirdparty\detours\include - - - thirdparty\detours\include - - - sdk\vgui - - - sdk\vgui - - - sdk\vgui - - - sdk\vguimatsurface - - - sdk\vpc - - - sdk\vpc - - - sdk\vpc - - - sdk\vphysics - - - windows - - - windows - - - windows - - - core - - - core - - - core - - - core - - - sdk\common - - - sdk\mathlib - - - sdk\networksystem - - - sdk\mathlib - - - core - - - sdk\mathlib - - - sdk\vpklib - - - sdk\mathlib - - - sdk\common - - - sdk\rtech - - - sdk\engine - - - windows - - - sdk\mathlib - - - sdk\materialsystem - - - sdk\engine - - - sdk\mathlib - - - sdk\tier0 - - - core - - - core - - - sdk\engine - - - sdk\mathlib - - - sdk\mathlib - - - sdk\common - - - sdk\engine - - - thirdparty\protobuf - - - thirdparty\protobuf - - - sdk\engine - - - sdk\engine - - - sdk\vgui - - - sdk\engine - - - sdk\engine - - - sdk\networksystem - - - sdk\studiorender - - - sdk\engine - - - sdk\game\server - - - sdk\common - - - sdk\appframework - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\include - - - thirdparty\lzham\lzhamcomp\include - - - thirdparty\lzham\lzhamcomp\include - - - thirdparty\lzham\lzhamdecomp\include - - - thirdparty\lzham\lzhamdecomp\include - - - sdk\game\server - - - sdk\game\server - - - sdk\game\server - - - sdk\game\server - - - sdk\public - - - sdk\public - - - sdk\engine - - - sdk\game\server - - - sdk\game\server - - - sdk\materialsystem - - - sdk\tier0 - - - sdk\tier0 - - - sdk\rtech\rui - - - sdk\rtech\stryder - - - sdk\public - - - sdk\game\client - - - sdk\filesystem - - - sdk\filesystem - - - sdk\vstdlib - - - sdk\vstdlib - - - sdk\common - - - sdk\common - - - sdk\engine - - - sdk\vstdlib - - - sdk\launcher - - - windows - - - sdk\datacache - - - sdk\public - - - sdk\engine - - - sdk\common - - - sdk\public - - - sdk\datacache - - - sdk\game\client - - - sdk\public - - - sdk\public\avi - - - sdk\public\avi - - - sdk\game\client - - - sdk\engine - - - sdk\public - - - sdk\game\shared - - - sdk\public - - - sdk\public - - - sdk\datacache - - - thirdparty\nlohmann - - - thirdparty\nlohmann - - - thirdparty\nlohmann - - - thirdparty\nlohmann - - - thirdparty\nlohmann - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail - - - thirdparty\nlohmann\detail\conversions - - - thirdparty\nlohmann\detail\conversions - - - thirdparty\nlohmann\detail\conversions - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\input - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\iterators - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail\meta\call_std - - - thirdparty\nlohmann\detail\meta\call_std - - - thirdparty\nlohmann\detail\output - - - thirdparty\nlohmann\detail\output - - - thirdparty\nlohmann\detail\output - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\engine - - - sdk\public - - - sdk\engine\server - - - sdk\engine\server - - - sdk\engine\client - - - sdk\engine\client - - - sdk\engine\client - - - sdk\engine\client - - - sdk\engine - - - sdk\public - - - sdk\vpc - - - sdk\mathlib - - - sdk\public - - - sdk\materialsystem - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\vstdlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\mathlib - - - sdk\server - - - sdk\public - - - sdk\tier0 - - - sdk\game\client - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\game\client - - - sdk\game\shared - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public\bitmap - - - sdk\networksystem - - - sdk\public - - - sdk\public - - - sdk\vstdlib - - - sdk\public - - - sdk\networksystem - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\pluginsystem - - - sdk\pluginsystem - - - sdk\engine - - - sdk\engine\client - - - sdk\engine - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public\rendersystem\schema - - - sdk\public\materialsystem - - - sdk\engine - - - sdk\engine - - - sdk\public - - - sdk\engine - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\mathlib - - - sdk\codecs\bink - - - sdk\codecs\miles - - - sdk\codecs\miles - - - sdk\codecs\miles - - - sdk\public - - - sdk\public - - - sdk\public - - - thirdparty\protobuf - - - sdk\public - - - sdk\engine - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\game\server - - - sdk\game\shared - - - sdk\public\engine - - - sdk\public - - - sdk\game\server - - - sdk\game\server - - - sdk\game\shared - - - sdk\game\shared - - - sdk\public - - - sdk\game\shared - - - sdk\game\server - - - sdk\game\server - - - sdk\game\server - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\shared - - - sdk\game\server - - - sdk\game\shared - - - sdk\game\client - - - sdk\game\server - - - sdk\game\shared - - - sdk\game\client - - - sdk\public\engine - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public - - - sdk\public\engine - - - sdk\engine - - - sdk\game\server - - - sdk\game\server - - - sdk\launcher - - - sdk\engine\server - - - sdk\public\appframework - - - sdk\public\appframework - - - sdk\vstdlib - - - thirdparty\nlohmann\thirdparty\hedley - - - thirdparty\nlohmann\thirdparty\hedley - - - thirdparty\nlohmann\detail\meta - - - thirdparty\nlohmann\detail - - - thirdparty\imgui\misc - - - sdk\public - - - sdk\public\tier0 - - - sdk\public\tier1 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - sdk\public\tier2 - - - sdk\public\tier2 - - - sdk\public\tier2 - - - sdk\public\tier2 - - - sdk\mathlib - - - sdk\public\tier0 - - - sdk\pluginsystem - - - sdk\vpc - - - sdk\localize - - - sdk\engine - - - sdk\engine\shared - - - sdk\engine\shared - - - sdk\public\vscript - - - sdk\vscript - - - sdk\game\shared - - - sdk\vscript\languages\squirrel_re\include - - - sdk\vscript\languages\squirrel_re\include - - - sdk\vscript\languages\squirrel_re\include - - - sdk\vscript\languages\squirrel_re\include - - - sdk\vscript\languages\squirrel_re - - - sdk\public\tier2 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier0 - - - sdk\public\tier1 - - - sdk\public\tier1 - - - - - sdk\resource\png - - - - - sdk\resource - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libcppkore.vcxproj b/r5dev/vproj/libcppkore.vcxproj deleted file mode 100644 index 8407dc6e..00000000 --- a/r5dev/vproj/libcppkore.vcxproj +++ /dev/null @@ -1,457 +0,0 @@ - - - - - Debug - x64 - - - Profile - x64 - - - Release - x64 - - - - 15.0 - {88BC2D60-A093-4E61-B194-59AB8BE4E33E} - Win32Proj - cppkore - 10.0 - libcppkore - - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - true - $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64) - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)lib\debug\ - libcppkore_x64 - - - false - $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64) - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)lib\release\ - libcppkore_x64 - - - false - $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64) - $(SolutionDir)build\$(ProjectName)\profile\ - $(SolutionDir)lib\profile\ - libcppkore_x64 - - - - Use - Level3 - Disabled - true - _DEBUG;_LIB;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;%(PreprocessorDefinitions) - false - true - %(AdditionalIncludeDirectories) - stdcpp17 - MultiThreadedDebug - Precise - true - CompileAsCpp - - - Windows - true - - - - - - - - - Use - Level3 - MaxSpeed - true - true - NDEBUG;_LIB;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;%(PreprocessorDefinitions) - false - true - %(AdditionalIncludeDirectories) - stdcpp17 - true - Fast - false - false - false - true - AnySuitable - Speed - false - CompileAsCpp - - - Windows - true - - - - - - - - - Use - Level3 - Full - true - false - true - NDEBUG;_LIB;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;%(PreprocessorDefinitions) - false - true - %(AdditionalIncludeDirectories) - stdcpp17 - Default - false - false - true - Precise - true - CompileAsCpp - - - Windows - true - - - - - - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ../stdafx.h - ../stdafx.h - ../stdafx.h - - - ../stdafx.h - ../stdafx.h - ../stdafx.h - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Create - Create - Create - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libcppkore.vcxproj.filters b/r5dev/vproj/libcppkore.vcxproj.filters deleted file mode 100644 index 16ea39ea..00000000 --- a/r5dev/vproj/libcppkore.vcxproj.filters +++ /dev/null @@ -1,855 +0,0 @@ - - - - - {397d58cc-16d7-4d29-98f1-9fd4d17b1ed1} - - - {b84aef37-f23a-485e-ae6d-3b197fe20e3c} - - - {7ed7c84e-47c3-41f8-885a-13344e98b713} - - - {55e4197d-9b85-4410-bdac-e27fd91d46be} - - - {27a79727-7e95-46f7-af7d-00203d1b2467} - - - {7749b0ed-b23c-45de-99fb-85ca33d00793} - - - {d5a3e68c-fac0-4c43-a9a3-4cffd224132f} - - - {eabba284-5560-4089-9f57-37bf6c7d451f} - - - {6a6efd51-9e66-4743-9230-ca30f9e8f648} - - - {d7f0ece7-f3fc-468f-8b9c-8949f8ee495f} - - - {af4d46a3-fb46-4bab-8140-bb0b3f06ac04} - - - {bc22a61f-cd16-4ef6-9305-94ecd0c67e21} - - - {5df6e022-9307-438b-88ed-81433c6fe778} - - - {aa21e46f-59af-4f5e-908b-63d84d67bc55} - - - {bc6fbdb6-79ec-4c1f-a5d3-c2de75a8aa0d} - - - {aa5da805-ec43-4f92-8b5f-4b00b8e7bd2b} - - - {35c8b5d5-d9b7-4827-8d20-4b5754ea8070} - - - {8d414705-c0f8-4918-b24f-dfd5d4e6d5e7} - - - {96d3895a-4359-4887-8baa-3b11259c392f} - - - {a07c1a9f-1774-4279-8e76-fd5843e18df5} - - - {a13074c4-3469-4489-b9d1-21348f5b3e88} - - - - - Data - - - MGL\Fonts - - - MGL\Shaders - - - MGL\Shaders - - - UIX\Images - - - Data - - - Data - - - Data - - - Data - - - Data - - - Data - - - Data - - - Core - - - Core - - - Core - - - Core - - - Clipboard - - - Clipboard - - - Diagnostics - - - Diagnostics - - - Diagnostics - - - Diagnostics - - - Diagnostics - - - Drawing - - - Drawing - - - Drawing - - - Drawing - - - Drawing - - - Drawing - - - Drawing - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Hashing - - - Hashing - - - Hashing - - - Hashing - - - Hashing - - - IO - - - Jobs - - - Jobs - - - Jobs - - - Math - - - Math - - - Math - - - Math - - - Math - - - Math - - - MGL - - - MGL - - - Net - - - Net - - - System - - - System - - - System - - - System - - - System - - - System - - - System - - - Threading - - - Threading - - - Threading - - - Threading - - - Threading - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX\Themes - - - UIX\Themes - - - Win32 - - - Win32 - - - Win32 - - - Win32 - - - Win32 - - - Win32 - - - - - IO - - - Threading - - - Diagnostics - - - System - - - Math - - - Math - - - Math - - - Math - - - Win32 - - - Win32 - - - Win32 - - - System - - - System - - - System - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms - - - Drawing - - - Forms - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms - - - Drawing - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Hashing - - - Math - - - Hashing - - - Forms - - - MGL - - - MGL - - - Forms - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms - - - Forms\EventArgs - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms\EventArgs - - - Forms - - - UIX - - - Forms - - - Forms\EventArgs - - - Drawing - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX - - - UIX - - - Net - - - UIX - - - UIX\Themes - - - UIX - - - UIX - - - UIX\Themes - - - UIX - - - Forms - - - Forms - - - Drawing - - - Jobs - - - Jobs - - - Jobs - - - Hashing - - - Clipboard - - - Clipboard - - - Drawing - - - Core - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libcurl.vcxproj b/r5dev/vproj/libcurl.vcxproj deleted file mode 100644 index 20d44948..00000000 --- a/r5dev/vproj/libcurl.vcxproj +++ /dev/null @@ -1,561 +0,0 @@ - - - - - Debug - Win32 - - - Profile - Win32 - - - Profile - x64 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 16.0 - Win32Proj - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4} - libcurl - 10.0 - - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\debug\ - $(SolutionDir)lib\win32\debug\ - libcurl_x86 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\release\ - $(SolutionDir)lib\win32\release\ - libcurl_x86 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\profile\ - $(SolutionDir)lib\win32\profile\ - libcurl_x86 - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)lib\debug\ - libcurl_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)lib\release\ - libcurl_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\profile\ - $(SolutionDir)lib\profile\ - libcurl_x64 - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "BUILDING_LIBCURL" /D "CURL_STATICLIB" /D "USE_WINDOWS_SSPI" /D "USE_SCHANNEL" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)..\thirdparty\curl\include\;$(ProjectDir)..\thirdparty\curl\;$(ProjectDir)..\;%(AdditionalIncludeDirectories) - Fast - true - Default - true - - - Console - true - - - - - Level3 - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "BUILDING_LIBCURL" /D "CURL_STATICLIB" /D "USE_WINDOWS_SSPI" /D "USE_SCHANNEL" %(AdditionalOptions) - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)..\thirdparty\curl\include\;$(ProjectDir)..\thirdparty\curl\;$(ProjectDir)..\;%(AdditionalIncludeDirectories) - Fast - false - true - true - false - true - true - Default - - - Console - true - - - - - Level3 - true - false - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_PROFILE - false - /D "_CRT_SECURE_NO_WARNINGS" /D "BUILDING_LIBCURL" /D "CURL_STATICLIB" /D "USE_WINDOWS_SSPI" /D "USE_SCHANNEL" %(AdditionalOptions) - stdcpp17 - Default - Neither - false - false - $(ProjectDir)..\thirdparty\curl\include\;$(ProjectDir)..\thirdparty\curl\;$(ProjectDir)..\;%(AdditionalIncludeDirectories) - Full - false - true - Fast - true - Default - true - - - Console - true - - - false - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "BUILDING_LIBCURL" /D "CURL_STATICLIB" /D "USE_WINDOWS_SSPI" /D "USE_SCHANNEL" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)..\thirdparty\curl\include\;$(ProjectDir)..\thirdparty\curl\;$(ProjectDir)..\;%(AdditionalIncludeDirectories) - Precise - true - Default - true - - - Console - true - - - - - Level3 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "BUILDING_LIBCURL" /D "CURL_STATICLIB" /D "USE_WINDOWS_SSPI" /D "USE_SCHANNEL" %(AdditionalOptions) - stdcpp17 - false - AnySuitable - Speed - false - $(ProjectDir)..\thirdparty\curl\include\;$(ProjectDir)..\thirdparty\curl\;$(ProjectDir)..\;%(AdditionalIncludeDirectories) - true - Fast - false - true - true - false - Default - true - - - Console - true - - - - - Level3 - true - false - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_PROFILE - false - /D "_CRT_SECURE_NO_WARNINGS" /D "BUILDING_LIBCURL" /D "CURL_STATICLIB" /D "USE_WINDOWS_SSPI" /D "USE_SCHANNEL" %(AdditionalOptions) - stdcpp17 - false - Default - Neither - false - $(ProjectDir)..\thirdparty\curl\include\;$(ProjectDir)..\thirdparty\curl\;$(ProjectDir)..\;%(AdditionalIncludeDirectories) - Full - false - true - Precise - true - Default - true - - - Console - true - - - false - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libcurl.vcxproj.filters b/r5dev/vproj/libcurl.vcxproj.filters deleted file mode 100644 index f07a7a16..00000000 --- a/r5dev/vproj/libcurl.vcxproj.filters +++ /dev/null @@ -1,565 +0,0 @@ - - - - - vauth\include - - - vauth\include - - - vauth\include - - - vtls\include - - - vtls\include - - - vtls\include - - - vtls\include - - - vtls\include - - - vtls\include - - - vtls\include - - - vtls\include - - - vtls\include - - - vtls\include - - - vtls\include - - - vtls\include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - - - vtls - - - vtls - - - vtls - - - vtls - - - vtls - - - vtls - - - vtls - - - vtls - - - vtls - - - vtls - - - vtls - - - vtls - - - vauth - - - vauth - - - vauth - - - vauth - - - vauth - - - vauth - - - vauth - - - vauth - - - vauth - - - vauth - - - vauth - - - vauth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {b73fd367-1df1-4edc-9369-6b9365b7b55c} - - - {f7975f94-79e8-4052-88fc-7036b8487069} - - - {4606427e-3b74-4855-97e0-c3b02a3e9e7b} - - - {7135506c-650f-41c7-9e06-0cc1e9bd0a66} - - - {f3b420b8-6e86-4e88-a8b1-4dfb6056fc7e} - - - \ No newline at end of file diff --git a/r5dev/vproj/libdebugutils.vcxproj b/r5dev/vproj/libdebugutils.vcxproj deleted file mode 100644 index 1946a52f..00000000 --- a/r5dev/vproj/libdebugutils.vcxproj +++ /dev/null @@ -1,177 +0,0 @@ - - - - - Debug - x64 - - - Profile - x64 - - - Release - x64 - - - - - - - - - - - - - - - - 16.0 - Win32Proj - {0E701104-CD9A-45C0-8E32-3284DBDEAF5E} - libdebugutils - 10.0 - - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)lib\debug\ - libdtdebugutils_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)lib\release\ - libdtdebugutils_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\profile\ - $(SolutionDir)lib\profile\ - libdtdebugutils_x64 - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)..\thirdparty\recast\ - Precise - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)..\thirdparty\recast\ - true - Fast - false - false - true - false - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - false - true - NDEBUG;_PROFILE;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - Default - Neither - false - false - $(ProjectDir)..\thirdparty\recast\ - Full - false - true - Precise - true - CompileAsCpp - true - - - Console - true - - - false - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libdebugutils.vcxproj.filters b/r5dev/vproj/libdebugutils.vcxproj.filters deleted file mode 100644 index ab1ee3e0..00000000 --- a/r5dev/vproj/libdebugutils.vcxproj.filters +++ /dev/null @@ -1,39 +0,0 @@ - - - - - {022aa5b2-9d45-4484-b870-9a5f659dd4b4} - - - {ebbf6275-763e-4acc-9b8c-278cfb975054} - - - - - Include - - - Include - - - Include - - - Include - - - - - Source - - - Source - - - Source - - - Source - - - \ No newline at end of file diff --git a/r5dev/vproj/libdetour.vcxproj b/r5dev/vproj/libdetour.vcxproj deleted file mode 100644 index 78ce38b7..00000000 --- a/r5dev/vproj/libdetour.vcxproj +++ /dev/null @@ -1,185 +0,0 @@ - - - - - Debug - x64 - - - Profile - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - 16.0 - Win32Proj - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB} - libdetour - 10.0 - - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)lib\debug\ - libdtdetour_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)lib\release\ - libdtdetour_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\profile\ - $(SolutionDir)lib\profile\ - libdtdetour_x64 - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)..\thirdparty\recast\ - Precise - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)..\thirdparty\recast\ - true - Fast - false - false - true - false - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - false - true - NDEBUG;_PROFILE;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - Default - Neither - false - false - $(ProjectDir)..\thirdparty\recast\ - Full - false - true - Precise - true - CompileAsCpp - true - - - Console - true - - - false - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libdetour.vcxproj.filters b/r5dev/vproj/libdetour.vcxproj.filters deleted file mode 100644 index 033c8db8..00000000 --- a/r5dev/vproj/libdetour.vcxproj.filters +++ /dev/null @@ -1,63 +0,0 @@ - - - - - {7bb6ba2d-e959-4062-b12a-ca4515afc888} - - - {0e6cf7ad-c477-4de4-89f5-773188180cb7} - - - - - Include - - - Include - - - Include - - - Include - - - Include - - - Include - - - Include - - - Include - - - Include - - - - - Source - - - Source - - - Source - - - Source - - - Source - - - Source - - - Source - - - \ No newline at end of file diff --git a/r5dev/vproj/libdetourcrowd.vcxproj b/r5dev/vproj/libdetourcrowd.vcxproj deleted file mode 100644 index 35ca2f95..00000000 --- a/r5dev/vproj/libdetourcrowd.vcxproj +++ /dev/null @@ -1,183 +0,0 @@ - - - - - Debug - x64 - - - Profile - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - 16.0 - Win32Proj - {6A8085A2-4DD0-4726-A667-ED873020AAB7} - libdetourcrowd - 10.0 - - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)lib\debug\ - libdetourcrowd_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)lib\release\ - libdetourcrowd_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\profile\ - $(SolutionDir)lib\profile\ - libdetourcrowd_x64 - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)..\thirdparty\recast\ - Precise - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)..\thirdparty\recast\ - true - Fast - false - false - true - false - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - false - true - NDEBUG;_PROFILE;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - Default - Neither - false - false - $(ProjectDir)..\thirdparty\recast\ - Full - false - true - Precise - true - CompileAsCpp - true - - - Console - true - - - false - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libdetourcrowd.vcxproj.filters b/r5dev/vproj/libdetourcrowd.vcxproj.filters deleted file mode 100644 index 9f72cf14..00000000 --- a/r5dev/vproj/libdetourcrowd.vcxproj.filters +++ /dev/null @@ -1,57 +0,0 @@ - - - - - {222d8c33-345c-4f97-b793-387ade69400e} - - - {51bf8f18-a125-4c82-af19-93e1a1154384} - - - - - Include - - - Include - - - Include - - - Include - - - Include - - - Include - - - Include - - - - - Source - - - Source - - - Source - - - Source - - - Source - - - Source - - - Source - - - \ No newline at end of file diff --git a/r5dev/vproj/libdetours.vcxproj b/r5dev/vproj/libdetours.vcxproj deleted file mode 100644 index 66a1d5be..00000000 --- a/r5dev/vproj/libdetours.vcxproj +++ /dev/null @@ -1,348 +0,0 @@ - - - - - Debug - Win32 - - - Profile - Win32 - - - Profile - x64 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - - 16.0 - Win32Proj - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D} - libdetours - 10.0 - - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\debug\ - $(SolutionDir)lib\win32\debug\ - libdetours_x86 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\release\ - $(SolutionDir)lib\win32\release\ - libdetours_x86 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\profile\ - $(SolutionDir)lib\win32\profile\ - libdetours_x86 - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)lib\debug\ - libdetours_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)lib\release\ - libdetours_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\profile\ - $(SolutionDir)lib\profile\ - libdetours_x64 - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)..\ - Fast - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)..\ - true - Fast - true - false - false - false - true - CompileAsCpp - - - Console - true - - - - - Level3 - true - false - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_PROFILE - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - Default - Neither - false - false - $(ProjectDir)..\ - Full - false - true - Fast - true - CompileAsCpp - true - - - Console - true - - - false - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)..\ - Precise - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)..\ - true - Fast - false - false - true - false - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - false - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_PROFILE - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - Default - Neither - false - false - $(ProjectDir)..\ - Full - false - true - Precise - true - CompileAsCpp - true - - - Console - true - - - false - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libdetours.vcxproj.filters b/r5dev/vproj/libdetours.vcxproj.filters deleted file mode 100644 index a30da7b2..00000000 --- a/r5dev/vproj/libdetours.vcxproj.filters +++ /dev/null @@ -1,28 +0,0 @@ - - - - - {50abaf44-bd51-4c7a-a050-949827ec8d0e} - - - - - include - - - include - - - include - - - include - - - - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libdetourtilecache.vcxproj b/r5dev/vproj/libdetourtilecache.vcxproj deleted file mode 100644 index 43c31369..00000000 --- a/r5dev/vproj/libdetourtilecache.vcxproj +++ /dev/null @@ -1,173 +0,0 @@ - - - - - Debug - x64 - - - Profile - x64 - - - Release - x64 - - - - - - - - - - - - 16.0 - Win32Proj - {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C} - libdetourtilecache - 10.0 - - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)lib\debug\ - libdetourtilecache_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)lib\release\ - libdetourtilecache_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\profile\ - $(SolutionDir)lib\profile\ - libdetourtilecache_x64 - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)..\thirdparty\recast\ - Precise - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)..\thirdparty\recast\ - true - Fast - false - false - true - false - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - false - true - NDEBUG;_PROFILE;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - Default - Neither - false - false - $(ProjectDir)..\thirdparty\recast\ - Full - false - true - Precise - true - CompileAsCpp - true - - - Console - true - - - false - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libdetourtilecache.vcxproj.filters b/r5dev/vproj/libdetourtilecache.vcxproj.filters deleted file mode 100644 index c1655fe3..00000000 --- a/r5dev/vproj/libdetourtilecache.vcxproj.filters +++ /dev/null @@ -1,27 +0,0 @@ - - - - - {d576172b-e83c-4ad2-9072-04889023abe9} - - - {25bfd9d8-8e84-4ec4-ac69-5f83a0c5f7ef} - - - - - Include - - - Include - - - - - Source - - - Source - - - \ No newline at end of file diff --git a/r5dev/vproj/libimgui.vcxproj b/r5dev/vproj/libimgui.vcxproj deleted file mode 100644 index d8c0f585..00000000 --- a/r5dev/vproj/libimgui.vcxproj +++ /dev/null @@ -1,333 +0,0 @@ - - - - - Debug - Win32 - - - Profile - Win32 - - - Profile - x64 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 16.0 - Win32Proj - {AD7B43E9-2416-4B39-829E-D9D2071479B1} - libimgui - 10.0 - - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\debug\ - $(SolutionDir)lib\win32\debug\ - libimgui_x86 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\release\ - $(SolutionDir)lib\win32\release\ - libimgui_x86 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\profile\ - $(SolutionDir)lib\win32\profile\ - libimgui_x86 - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)lib\debug\ - libimgui_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)lib\release\ - libimgui_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\profile\ - $(SolutionDir)lib\profile\ - libimgui_x64 - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "BUILDING_LIBIMGUI" /D "IMGUI_DEFINE_MATH_OPERATORS" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)..\;$(ProjectDir)..\thirdparty\imgui\ - Fast - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "BUILDING_LIBIMGUI" /D "IMGUI_DEFINE_MATH_OPERATORS" %(AdditionalOptions) - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)..\;$(ProjectDir)..\thirdparty\imgui\ - Fast - true - true - true - false - false - true - CompileAsCpp - - - Console - true - - - - - Level3 - true - false - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_PROFILE - false - /D "_CRT_SECURE_NO_WARNINGS" /D "BUILDING_LIBIMGUI" /D "IMGUI_DEFINE_MATH_OPERATORS" %(AdditionalOptions) - stdcpp17 - Default - Neither - false - false - $(ProjectDir)..\;$(ProjectDir)..\thirdparty\imgui\ - Full - false - true - Fast - true - CompileAsCpp - true - - - Console - true - - - false - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "BUILDING_LIBIMGUI" /D "IMGUI_DEFINE_MATH_OPERATORS" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)..\;$(ProjectDir)..\thirdparty\imgui\ - Precise - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "BUILDING_LIBIMGUI" /D "IMGUI_DEFINE_MATH_OPERATORS" %(AdditionalOptions) - stdcpp17 - false - AnySuitable - Speed - false - $(ProjectDir)..\;$(ProjectDir)..\thirdparty\imgui\ - true - Fast - true - false - true - false - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - false - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_PROFILE - false - /D "_CRT_SECURE_NO_WARNINGS" /D "BUILDING_LIBIMGUI" /D "IMGUI_DEFINE_MATH_OPERATORS" %(AdditionalOptions) - stdcpp17 - false - Default - Neither - false - $(ProjectDir)..\;$(ProjectDir)..\thirdparty\imgui\ - Full - false - true - Precise - true - CompileAsCpp - true - - - Console - true - - - false - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libimgui.vcxproj.filters b/r5dev/vproj/libimgui.vcxproj.filters deleted file mode 100644 index 693a6561..00000000 --- a/r5dev/vproj/libimgui.vcxproj.filters +++ /dev/null @@ -1,59 +0,0 @@ - - - - - {c3c0b872-56c3-40fc-a503-01ae93b96a2a} - - - {33a9c0e4-1df1-4eb9-9d14-a9c2fd16fea0} - - - {dc171a1f-e261-4e8a-8cfa-ab4fb59c8d02} - - - - - backends - - - backends - - - misc\cpp - - - misc - - - misc - - - - - - - - - - - backends - - - backends - - - misc\cpp - - - misc - - - misc - - - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/liblzham.vcxproj b/r5dev/vproj/liblzham.vcxproj deleted file mode 100644 index d8cbe06d..00000000 --- a/r5dev/vproj/liblzham.vcxproj +++ /dev/null @@ -1,501 +0,0 @@ - - - - - Debug - Win32 - - - Profile - Win32 - - - Profile - x64 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - - 16.0 - Win32Proj - {1CC6BF42-D20F-4599-8619-290AF5FB4034} - liblzham - 10.0 - - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\debug\ - $(SolutionDir)lib\win32\debug\ - liblzham_x86 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\release\ - $(SolutionDir)lib\win32\release\ - liblzham_x86 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\profile\ - $(SolutionDir)lib\win32\profile\ - liblzham_x86 - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)lib\debug\ - liblzham_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)lib\release\ - liblzham_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\profile\ - $(SolutionDir)lib\profile\ - liblzham_x64 - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)..\ - Fast - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" %(AdditionalOptions) - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)..\ - Fast - true - true - true - false - false - true - CompileAsCpp - - - Console - true - - - - - Level3 - true - false - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_PROFILE - false - /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" %(AdditionalOptions) - stdcpp17 - Default - Neither - false - false - $(ProjectDir)..\ - Full - false - true - Fast - true - CompileAsCpp - true - - - Console - true - - - false - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)..\ - Precise - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" %(AdditionalOptions) - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)..\ - true - Fast - true - false - true - false - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - false - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_PROFILE - false - /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" %(AdditionalOptions) - stdcpp17 - Default - Neither - false - false - $(ProjectDir)..\ - Full - false - true - Precise - true - CompileAsCpp - true - - - Console - true - - - false - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/liblzham.vcxproj.filters b/r5dev/vproj/liblzham.vcxproj.filters deleted file mode 100644 index 95e7b0fa..00000000 --- a/r5dev/vproj/liblzham.vcxproj.filters +++ /dev/null @@ -1,141 +0,0 @@ - - - - - {e3600bdd-b787-45d7-ad71-4767d70e82af} - - - {1888a8e2-b515-4019-a049-bc59a7faf36b} - - - {e8c7b888-60c4-42df-a006-319616a8f2e9} - - - {3310f623-8be2-4d8a-aa77-c1b9539653b8} - - - {597efe81-52f0-4cd1-94d4-b9e5dbdde1ff} - - - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - lzhamcomp\include - - - lzhamcomp\include - - - lzhamdecomp\include - - - lzhamdecomp\include - - - - - lzhamcomp - - - lzhamcomp - - - lzhamcomp - - - lzhamdecomp - - - lzhamdecomp - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libprotobuf.vcxproj b/r5dev/vproj/libprotobuf.vcxproj deleted file mode 100644 index 90034b25..00000000 --- a/r5dev/vproj/libprotobuf.vcxproj +++ /dev/null @@ -1,398 +0,0 @@ - - - - - Debug - Win32 - - - Profile - Win32 - - - Profile - x64 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 16.0 - Win32Proj - {b273a875-6618-49fe-8ca4-0b693ba264d5} - libprotobuf - 10.0 - - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\debug\ - $(SolutionDir)lib\win32\debug\ - libprotobuf_x86 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\release\ - $(SolutionDir)lib\win32\release\ - libprotobuf_x86 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\profile\ - $(SolutionDir)lib\win32\profile\ - libprotobuf_x86 - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)lib\debug\ - libprotobuf_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)lib\release\ - libprotobuf_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\profile\ - $(SolutionDir)lib\profile\ - libprotobuf_x64 - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - %(AdditionalOptions) /utf-8 /bigobj /D "_CRT_SECURE_NO_WARNINGS" - stdcpp17 - $(ProjectDir)..\ - Fast - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - %(AdditionalOptions) /utf-8 /bigobj /D "_CRT_SECURE_NO_WARNINGS" - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)..\ - true - Fast - true - false - false - true - true - CompileAsCpp - - - Console - true - - - - - Level3 - true - false - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_PROFILE - false - %(AdditionalOptions) /utf-8 /bigobj /D "_CRT_SECURE_NO_WARNINGS" - stdcpp17 - Default - Neither - false - false - $(ProjectDir)..\ - Full - false - true - Fast - true - CompileAsCpp - true - - - Console - true - - - false - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - %(AdditionalOptions) /utf-8 /bigobj /D "_CRT_SECURE_NO_WARNINGS" - stdcpp17 - $(ProjectDir)..\ - Precise - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - %(AdditionalOptions) /utf-8 /bigobj /D "_CRT_SECURE_NO_WARNINGS" - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)..\ - true - Fast - false - true - true - false - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - false - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_PROFILE - false - %(AdditionalOptions) /utf-8 /bigobj /D "_CRT_SECURE_NO_WARNINGS" - stdcpp17 - Default - Neither - false - false - $(ProjectDir)..\ - Full - false - true - Precise - true - CompileAsCpp - true - - - Console - true - - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libprotobuf.vcxproj.filters b/r5dev/vproj/libprotobuf.vcxproj.filters deleted file mode 100644 index 5dc90c45..00000000 --- a/r5dev/vproj/libprotobuf.vcxproj.filters +++ /dev/null @@ -1,291 +0,0 @@ - - - - - {d60db004-45fa-4ae3-b74d-47b327b69c2e} - - - {87c48269-0f18-42b5-b7be-b0ccb26a5f76} - - - {b464f51d-733d-4b4e-8441-b6cabdecd127} - - - {d80f3bd1-5ff7-4d05-a301-b391f6396dea} - - - {1f4012c2-e2e2-48f9-b2f3-2ffe80c9a912} - - - {e42972f8-3b4a-4e5f-8bf5-cc88ae71b499} - - - {4cd49ba1-876f-42de-b9e1-fccab9db185e} - - - {01b23346-904d-4495-b48c-e04281bfda22} - - - {8647c75c-0fa4-49fc-a30c-193a45680c43} - - - {23955e3f-a0de-4045-952a-188b5c12144e} - - - - - - - - source - - - source - - - source - - - stubs - - - io - - - stubs - - - source - - - source - - - source - - - source - - - source - - - source - - - stubs - - - io - - - source - - - source - - - source - - - source - - - source - - - stubs - - - stubs - - - stubs - - - stubs - - - stubs - - - stubs - - - io - - - io - - - io - - - io - - - source - - - stubs - - - - - include - - - include - - - include - - - stubs\include - - - io\include - - - stubs\include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - include - - - stubs\include - - - stubs\include - - - include - - - include - - - include - - - include - - - stubs\include - - - include - - - stubs\include - - - stubs\include - - - stubs\include - - - include - - - include - - - include - - - stubs\include - - - stubs\include - - - include - - - stubs\include - - - stubs\include - - - include - - - include - - - include - - - stubs\include - - - stubs\include - - - stubs\include - - - stubs\include - - - io\include - - - stubs\include - - - io\include - - - io\include - - - io\include - - - stubs\include - - - io\include - - - include - - - stubs\include - - - stubs\include - - - stubs\include - - - include - - - \ No newline at end of file diff --git a/r5dev/vproj/librecast.vcxproj b/r5dev/vproj/librecast.vcxproj deleted file mode 100644 index fda7ca83..00000000 --- a/r5dev/vproj/librecast.vcxproj +++ /dev/null @@ -1,183 +0,0 @@ - - - - - Debug - x64 - - - Profile - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - 16.0 - Win32Proj - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61} - librecast - 10.0 - - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)lib\debug\ - librecast_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)lib\release\ - librecast_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\profile\ - $(SolutionDir)lib\profile\ - librecast_x64 - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)..\thirdparty\recast\ - Precise - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)..\thirdparty\recast\ - true - Fast - false - false - true - false - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - false - true - NDEBUG;_PROFILE;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" %(AdditionalOptions) - stdcpp17 - Default - Neither - false - false - $(ProjectDir)..\thirdparty\recast\ - Full - false - true - Precise - true - CompileAsCpp - true - - - Console - true - - - false - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/librecast.vcxproj.filters b/r5dev/vproj/librecast.vcxproj.filters deleted file mode 100644 index 6112a0e6..00000000 --- a/r5dev/vproj/librecast.vcxproj.filters +++ /dev/null @@ -1,57 +0,0 @@ - - - - - {ff59efde-b1f9-4ac1-aaeb-757a2f0ae956} - - - {94ceccda-35db-41fa-bc13-bdcbda1c326a} - - - - - Include - - - Include - - - Include - - - - - Source - - - Source - - - Source - - - Source - - - Source - - - Source - - - Source - - - Source - - - Source - - - Source - - - Source - - - \ No newline at end of file diff --git a/r5dev/vproj/libsdl.vcxproj b/r5dev/vproj/libsdl.vcxproj deleted file mode 100644 index 048ea060..00000000 --- a/r5dev/vproj/libsdl.vcxproj +++ /dev/null @@ -1,803 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Profile - Win32 - - - Profile - x64 - - - Release - Win32 - - - Release - x64 - - - - libsdl2 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} - SDL - 10.0 - 10.0 - - - - StaticLibrary - v143 - - - StaticLibrary - v143 - - - StaticLibrary - v143 - - - StaticLibrary - v143 - - - StaticLibrary - v143 - - - StaticLibrary - v143 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)lib\win32\debug\ - $(SolutionDir)build\$(ProjectName)\win32\debug\ - $(SolutionDir)lib\debug\ - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)lib\win32\release\ - $(SolutionDir)lib\win32\profile\ - $(SolutionDir)build\$(ProjectName)\win32\release\ - $(SolutionDir)build\$(ProjectName)\win32\profile\ - $(SolutionDir)lib\release\ - $(SolutionDir)lib\profile\ - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)build\$(ProjectName)\profile\ - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;$(LibraryPath) - - - libsdl2_x86 - - - libsdl2_x86 - - - libsdl2_x86 - - - libsdl2_x64 - - - libsdl2_x64 - - - libsdl2_x64 - - - - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Debug/SDL.tlb - - - Disabled - $(ProjectDir)/../thirdparty/sdl/include/;%(AdditionalIncludeDirectories) - %(AdditionalUsingDirectories) - DLL_EXPORT;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - false - StreamingSIMDExtensions - Level3 - OldStyle - false - OnlyExplicitInline - stdcpp17 - Fast - false - true - Default - true - MultiThreadedDebug - - - _DEBUG;%(PreprocessorDefinitions) - - - setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) - true - true - Windows - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\Debug/SDL.tlb - - - Disabled - $(ProjectDir)/../thirdparty/sdl/include/;%(AdditionalIncludeDirectories) - %(AdditionalUsingDirectories) - DLL_EXPORT;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - false - Level3 - OldStyle - false - OnlyExplicitInline - stdcpp17 - Precise - true - Default - false - true - MultiThreadedDebug - - - _DEBUG;%(PreprocessorDefinitions) - - - setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) - true - true - Windows - - - - - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Release/SDL.tlb - - - $(ProjectDir)/../thirdparty/sdl/include/;%(AdditionalIncludeDirectories) - %(AdditionalUsingDirectories) - DLL_EXPORT;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - StreamingSIMDExtensions - Level3 - ProgramDatabase - false - AnySuitable - true - Speed - false - false - false - stdcpp17 - Fast - false - true - true - false - true - true - Default - MultiThreaded - - - NDEBUG;%(PreprocessorDefinitions) - - - setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) - true - true - Windows - - - - - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Release/SDL.tlb - - - $(ProjectDir)/../thirdparty/sdl/include/;%(AdditionalIncludeDirectories) - %(AdditionalUsingDirectories) - DLL_EXPORT;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);_PROFILE - false - StreamingSIMDExtensions - Level3 - ProgramDatabase - false - Default - false - Neither - false - false - false - stdcpp17 - Full - true - Fast - false - true - Default - true - MultiThreaded - - - NDEBUG;%(PreprocessorDefinitions) - - - setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) - true - true - Windows - - - false - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\Release/SDL.tlb - - - $(ProjectDir)/../thirdparty/sdl/include/;%(AdditionalIncludeDirectories) - %(AdditionalUsingDirectories) - DLL_EXPORT;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - false - Level3 - ProgramDatabase - false - AnySuitable - true - Speed - false - false - false - stdcpp17 - true - Fast - true - false - true - Default - false - true - MultiThreaded - - - NDEBUG;%(PreprocessorDefinitions) - - - setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) - true - true - Windows - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\Release/SDL.tlb - - - $(ProjectDir)/../thirdparty/sdl/include/;%(AdditionalIncludeDirectories) - %(AdditionalUsingDirectories) - DLL_EXPORT;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);_PROFILE - false - Level3 - ProgramDatabase - false - Default - false - Neither - false - false - false - stdcpp17 - Full - true - Precise - true - Default - false - true - MultiThreaded - - - NDEBUG;%(PreprocessorDefinitions) - - - setupapi.lib;winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) - true - true - Windows - - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libsdl.vcxproj.filters b/r5dev/vproj/libsdl.vcxproj.filters deleted file mode 100644 index 9a19e88a..00000000 --- a/r5dev/vproj/libsdl.vcxproj.filters +++ /dev/null @@ -1,1330 +0,0 @@ - - - - - {395b3af0-33d0-411b-b153-de1676bf1ef8} - - - {5a3e3167-75be-414f-8947-a5306df372b2} - - - {546d9ed1-988e-49d3-b1a5-e5b3d19de6c1} - - - {a56247ff-5108-4960-ba6a-6814fd1554ec} - - - {8880dfad-2a06-4e84-ab6e-6583641ad2d1} - - - {2b996a7f-f3e9-4300-a97f-2c907bcd89a9} - - - {5713d682-2bc7-4da4-bcf0-262a98f142eb} - - - {5e27e19f-b3f8-4e2d-b323-b00b2040ec86} - - - {a3ab9cff-8495-4a5c-8af6-27e43199a712} - - - {377061e4-3856-4f05-b916-0d3b360df0f6} - - - {226a6643-1c65-4c7f-92aa-861313d974bb} - - - {ef859522-a7fe-4a00-a511-d6a9896adf5b} - - - {01fd2642-4493-4316-b548-fb829f4c9125} - - - {cce7558f-590a-4f0a-ac0d-e579f76e588e} - - - {7a53c9e4-d4bd-40ed-9265-1625df685121} - - - {4c7a051c-ce7c-426c-bf8c-9187827f9052} - - - {97e2f79f-311b-42ea-81b2-e801649fdd93} - - - {baf97c8c-7e90-41e5-bff8-14051b8d3956} - - - {45e50d3a-56c9-4352-b811-0c60c49a2431} - - - {9d86e0ef-d6f6-4db2-bfc5-b3529406fa8d} - - - {b35fa13c-6ed2-4680-8c56-c7d71b76ceab} - - - {61b61b31-9e26-4171-a3bb-b969f1889726} - - - {f63aa216-6ee7-4143-90d3-32be3787f276} - - - {90bee923-89df-417f-a6c3-3e260a7dd54d} - - - {4c8ad943-c2fb-4014-9ca3-041e0ad08426} - - - {e90fa293-2828-4927-8113-35bf561024a9} - - - {3d68ae70-a9ff-46cf-be69-069f0b02aca0} - - - {ebc2fca3-3c26-45e3-815e-3e0581d5e226} - - - {47c445a2-7014-4e15-9660-7c89a27dddcf} - - - {d008487d-6ed0-4251-848b-79a68e3c1459} - - - {c9e8273e-13ae-47dc-bef8-8ad8e64c9a3d} - - - {0b8e136d-56ae-47e7-9981-e863a57ac616} - - - {bf3febd3-9328-43e8-b196-0fd3be8177dd} - - - {1a62dc68-52d2-4c07-9d81-d94dfe1d0d12} - - - {e9f01b22-34b3-4380-ade6-0e96c74e9c90} - - - {f674f22f-7841-4f3a-974e-c36b2d4823fc} - - - {d7ad92de-4e55-4202-9b2b-1bd9a35fe4dc} - - - {8311d79d-9ad5-4369-99fe-b2fb2659d402} - - - {6c4dfb80-fdf9-497c-a6ff-3cd8f22efde9} - - - {4810e35c-33cb-4da2-bfaf-452da20d3c9a} - - - {2cf93f1d-81fd-4bdc-998c-5e2fa43988bc} - - - {5752b7ab-2344-4f38-95ab-b5d3bc150315} - - - {7a0eae3d-f113-4914-b926-6816d1929250} - - - {ee602cbf-96a2-4b0b-92a9-51d38a727411} - - - {a812185b-9060-4a1c-8431-be4f66894626} - - - {31c16cdf-adc4-4950-8293-28ba530f3882} - - - {add61b53-8144-47d6-bd67-3420a87c4905} - - - {e7cdcf36-b462-49c7-98b7-07ea7b3687f4} - - - {82588eef-dcaa-4f69-b2a9-e675940ce54c} - - - {560239c3-8fa1-4d23-a81a-b8408b2f7d3f} - - - {81711059-7575-4ece-9e68-333b63e992c4} - - - {1e44970f-7535-4bfb-b8a5-ea0cea0349e0} - - - {1dd91224-1176-492b-a2cb-e26153394db0} - - - {e3ecfe50-cf22-41d3-8983-2fead5164b47} - - - {5521d22f-1e52-47a6-8c52-06a3b6bdefd7} - - - {4755f3a6-49ac-46d6-86be-21f5c21f2197} - - - {b83a78cc-4e49-439f-b61a-90798f3012db} - - - {cf91bc2a-7739-4654-a08e-51cbcc3878de} - - - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - API Headers - - - - - API Headers - - - API Headers - - - API Headers - - - audio - - - audio - - - audio - - - audio - - - core\windows - - - core\windows - - - core\windows - - - core\windows - - - dynapi - - - dynapi - - - dynapi - - - events - - - events - - - events - - - events - - - events - - - events - - - events - - - events - - - events - - - events - - - events - - - events - - - events - - - haptic - - - haptic - - - joystick - - - joystick - - - joystick - - - joystick - - - joystick - - - libm - - - libm - - - hidapi\hidapi - - - locale - - - misc - - - audio\directsound - - - audio\disk - - - audio\dummy - - - audio\winmm - - - audio\wasapi - - - haptic\windows - - - haptic\windows - - - haptic\windows - - - joystick\hidapi - - - joystick\hidapi - - - joystick\windows - - - joystick\windows - - - joystick\windows - - - joystick\windows - - - joystick\virtual - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video\dummy - - - video\dummy - - - video\dummy - - - video\yuv2rgb - - - video\yuv2rgb - - - video\yuv2rgb - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - timer - - - thread - - - thread - - - thread\windows - - - thread\windows - - - thread\generic - - - sensor - - - sensor - - - sensor\dummy - - - sensor\windows - - - render - - - render - - - render - - - render\direct3d - - - render\direct3d11 - - - render\opengl - - - render\opengl - - - render\opengles2 - - - render\opengles2 - - - render\software - - - render\software - - - render\software - - - render\software - - - render\software - - - render\software - - - render\software - - - render\software - - - render\software - - - power - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - video\khronos\vulkan - - - - - - - - - - - - - - - audio - - - audio - - - audio - - - audio - - - audio - - - audio - - - atomic - - - atomic - - - core\windows - - - core\windows - - - core\windows - - - cpuinfo - - - dynapi - - - events - - - events - - - events - - - events - - - events - - - events - - - events - - - events - - - events - - - events - - - file - - - filesystem\windows - - - haptic - - - hidapi - - - joystick - - - joystick - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - libm - - - loadso\windows - - - misc - - - misc\windows - - - locale\windows - - - locale - - - audio\directsound - - - audio\disk - - - audio\dummy - - - audio\winmm - - - audio\wasapi - - - audio\wasapi - - - haptic\windows - - - haptic\windows - - - haptic\windows - - - haptic\dummy - - - joystick\dummy - - - joystick\hidapi - - - joystick\hidapi - - - joystick\hidapi - - - joystick\hidapi - - - joystick\hidapi - - - joystick\hidapi - - - joystick\hidapi - - - joystick\hidapi - - - joystick\hidapi - - - joystick\hidapi - - - joystick\hidapi - - - joystick\windows - - - joystick\windows - - - joystick\windows - - - joystick\windows - - - joystick\windows - - - joystick\virtual - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video - - - video\dummy - - - video\dummy - - - video\dummy - - - video\yuv2rgb - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - video\windows - - - timer - - - timer\windows - - - thread - - - thread\windows - - - thread\windows - - - thread\windows - - - thread\windows - - - thread\windows - - - thread\generic - - - stdlib - - - stdlib - - - stdlib - - - stdlib - - - stdlib - - - stdlib - - - stdlib - - - stdlib - - - sensor - - - sensor\dummy - - - sensor\windows - - - render - - - render - - - render - - - render\direct3d - - - render\direct3d - - - render\direct3d11 - - - render\direct3d11 - - - render\opengl - - - render\opengl - - - render\opengles2 - - - render\opengles2 - - - render\software - - - render\software - - - render\software - - - render\software - - - render\software - - - render\software - - - render\software - - - render\software - - - power - - - - power\windows - - - main\windows - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libspdlog.vcxproj b/r5dev/vproj/libspdlog.vcxproj deleted file mode 100644 index 781b16ac..00000000 --- a/r5dev/vproj/libspdlog.vcxproj +++ /dev/null @@ -1,421 +0,0 @@ - - - - - Debug - Win32 - - - Profile - Win32 - - - Profile - x64 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 16.0 - Win32Proj - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} - libspdlog - 10.0 - - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - true - v143 - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - StaticLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\debug\ - $(SolutionDir)lib\win32\debug\ - libspdlog_x86 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\release\ - $(SolutionDir)lib\win32\release\ - libspdlog_x86 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\win32\profile\ - $(SolutionDir)lib\win32\profile\ - libspdlog_x86 - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)lib\debug\ - libspdlog_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)lib\release\ - libspdlog_x64 - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\profile\ - $(SolutionDir)lib\profile\ - libspdlog_x64 - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "SPDLOG_COMPILED_LIB" /D "SPDLOG_NO_EXCEPTIONS" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)\..\thirdparty\;%(AdditionalIncludeDirectories) - Fast - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "SPDLOG_COMPILED_LIB" /D "SPDLOG_NO_EXCEPTIONS" %(AdditionalOptions) - stdcpp17 - AnySuitable - Speed - false - false - $(ProjectDir)\..\thirdparty\;%(AdditionalIncludeDirectories) - Fast - true - true - true - false - false - true - CompileAsCpp - - - Console - true - - - - - Level3 - true - false - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_PROFILE - false - /D "_CRT_SECURE_NO_WARNINGS" /D "SPDLOG_COMPILED_LIB" /D "SPDLOG_NO_EXCEPTIONS" %(AdditionalOptions) - stdcpp17 - Default - Neither - false - false - $(ProjectDir)\..\thirdparty\;%(AdditionalIncludeDirectories) - Full - false - true - Fast - true - CompileAsCpp - true - - - Console - true - - - false - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "SPDLOG_COMPILED_LIB" /D "SPDLOG_NO_EXCEPTIONS" %(AdditionalOptions) - stdcpp17 - $(ProjectDir)\..\thirdparty\;%(AdditionalIncludeDirectories) - Precise - true - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "SPDLOG_COMPILED_LIB" /D "SPDLOG_NO_EXCEPTIONS" %(AdditionalOptions) - stdcpp17 - false - AnySuitable - Speed - false - $(ProjectDir)\..\thirdparty\;%(AdditionalIncludeDirectories) - true - Fast - true - false - true - false - CompileAsCpp - true - - - Console - true - - - - - Level3 - true - false - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_PROFILE - false - /D "_CRT_SECURE_NO_WARNINGS" /D "SPDLOG_COMPILED_LIB" /D "SPDLOG_NO_EXCEPTIONS" %(AdditionalOptions) - stdcpp17 - false - Default - Neither - false - $(ProjectDir)\..\thirdparty\;%(AdditionalIncludeDirectories) - Full - false - true - Precise - true - CompileAsCpp - true - - - Console - true - - - false - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/libspdlog.vcxproj.filters b/r5dev/vproj/libspdlog.vcxproj.filters deleted file mode 100644 index 55420db8..00000000 --- a/r5dev/vproj/libspdlog.vcxproj.filters +++ /dev/null @@ -1,318 +0,0 @@ - - - - - {624644b4-2ecb-4bad-83c6-873bda91d638} - - - {7647fb33-1083-4e1c-ab2c-9812b76fc0da} - - - {fbd16ef4-4e98-4dbc-8243-84b7fe99253d} - - - {2ef94ab5-29a7-45be-a7eb-fd26fb8230ec} - - - {35f49864-0ac6-47b6-87fe-a24f3e2355e4} - - - {896d8177-2966-4be4-b183-50d56775c009} - - - - - cfg - - - cfg - - - cfg - - - cfg - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - details - - - fmt\bundled - - - fmt\bundled - - - fmt\bundled - - - fmt\bundled - - - fmt\bundled - - - fmt\bundled - - - fmt\bundled - - - fmt\bundled - - - fmt\bundled - - - fmt\bundled - - - fmt\bundled - - - fmt\bundled - - - fmt\bundled - - - fmt - - - fmt - - - fmt - - - fmt - - - fmt - - - fmt - - - fmt - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - sinks - - - - - - - - - - - - - - - - - - - - - fmt\bundled - - - - - src - - - src - - - src - - - src - - - src - - - src - - - src - - - \ No newline at end of file diff --git a/r5dev/vproj/naveditor.vcxproj b/r5dev/vproj/naveditor.vcxproj deleted file mode 100644 index ea3fc8ec..00000000 --- a/r5dev/vproj/naveditor.vcxproj +++ /dev/null @@ -1,257 +0,0 @@ - - - - - Debug - x64 - - - Profile - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NotUsing - NotUsing - NotUsing - - - Create - Create - Create - - - - 16.0 - Win32Proj - {1942083A-03D9-4D76-B644-A3FA2A118A35} - naveditor - 10.0 - - - - Application - true - v143 - Unicode - Static - - - Application - false - v143 - true - Unicode - Static - - - Application - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\debug\ - $(SolutionDir)game\bin\ - $(ProjectName) - - - false - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\release\ - $(SolutionDir)game\bin\ - $(ProjectName) - - - true - $(IncludePath); - $(SolutionDir)build\$(ProjectName)\profile\ - $(SolutionDir)game\bin\ - $(ProjectName) - - - - Level4 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" %(AdditionalOptions) - stdcpp17 - Use - Pch.h - $(ProjectDir)..\;$(ProjectDir)..\thirdparty\recast\ - Precise - true - CompileAsCpp - true - - - Console - true - $(SolutionDir)lib\$(Configuration)\ - librecast_x64.lib;libdtdetour_x64.lib;libdetourcrowd_x64.lib;libdetourtilecache_x64.lib;libdtdebugutils_x64.lib;libsdl2_x64.lib;OpenGL32.lib;Glu32.lib;Gdi32.lib;User32.lib;Shell32.lib;Comdlg32.lib;Kernel32.lib;Winmm.lib;Setupapi.lib;Advapi32.lib;Version.lib;Ole32.lib;Oleaut32.lib;Imm32.lib;%(AdditionalDependencies) - true - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\bin\$(ProjectName).exe" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\ - - - - - Level4 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" %(AdditionalOptions) - stdcpp17 - Use - Pch.h - AnySuitable - Speed - false - false - $(ProjectDir)..\;$(ProjectDir)..\thirdparty\recast\ - true - Fast - false - true - false - false - CompileAsCpp - true - - - Console - true - $(SolutionDir)lib\$(Configuration)\ - librecast_x64.lib;libdtdetour_x64.lib;libdetourcrowd_x64.lib;libdetourtilecache_x64.lib;libdtdebugutils_x64.lib;libsdl2_x64.lib;OpenGL32.lib;Glu32.lib;Gdi32.lib;User32.lib;Shell32.lib;Comdlg32.lib;Kernel32.lib;Winmm.lib;Setupapi.lib;Advapi32.lib;Version.lib;Ole32.lib;Oleaut32.lib;Imm32.lib;%(AdditionalDependencies) - true - true - true - true - false - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\bin\$(ProjectName).exe" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\ - - - - - Level4 - true - false - true - NDEBUG;_PROFILE;_CONSOLE;%(PreprocessorDefinitions) - false - /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" %(AdditionalOptions) - stdcpp17 - Use - Pch.h - Default - Neither - false - false - $(ProjectDir)..\;$(ProjectDir)..\thirdparty\recast\ - Full - false - true - Precise - true - CompileAsCpp - true - - - Console - - - - - true - $(SolutionDir)lib\$(Configuration)\ - librecast_x64.lib;libdtdetour_x64.lib;libdetourcrowd_x64.lib;libdetourtilecache_x64.lib;libdtdebugutils_x64.lib;libsdl2_x64.lib;OpenGL32.lib;Glu32.lib;Gdi32.lib;User32.lib;Shell32.lib;Comdlg32.lib;Kernel32.lib;Winmm.lib;Setupapi.lib;Advapi32.lib;Version.lib;Ole32.lib;Oleaut32.lib;Imm32.lib;%(AdditionalDependencies) - - - - true - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\bin\$(ProjectName).exe" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\ - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/naveditor.vcxproj.filters b/r5dev/vproj/naveditor.vcxproj.filters deleted file mode 100644 index 8abf187e..00000000 --- a/r5dev/vproj/naveditor.vcxproj.filters +++ /dev/null @@ -1,189 +0,0 @@ - - - - - {958de2b5-c906-4507-98b8-2ef6f119bf43} - - - {0f57b71f-a82f-46f2-a61e-2c8b3b0b7094} - - - {c32f74fb-7c15-4c0d-9096-d40c7bee8644} - - - {a346b89e-1598-4674-8330-b2f7e133ecee} - - - {21426aac-877f-437c-8dac-0a59ecad5f13} - - - {1ac9f8e6-8a00-4875-aa9e-0b439faaff62} - - - {37f33c75-b278-4573-922d-019821d782aa} - - - {8ec57c85-32b6-4c32-804e-7a1381f944f5} - - - {c17c28e9-e920-4aa4-9577-79daabd84e6a} - - - {2d540e1d-2ed3-4905-b58d-559288b5b8d5} - - - {f1d69d7c-e2cf-421b-a106-08c18b620eaf} - - - {798e4d14-fd63-4f63-a6f7-9465f0e0921b} - - - - - core\include - - - io\include - - - io\include - - - io\include - - - io\include - - - builder\include - - - builder\include - - - tools\include - - - tools\include - - - tools\include - - - tools\include - - - tools\include - - - tools\include - - - utils\include - - - utils\include - - - utils\include - - - utils\include - - - utils\include - - - contrib\include - - - contrib\include - - - contrib\include - - - core\include - - - utils\include - - - io\include - - - - - contrib - - - core - - - core - - - io - - - io - - - io - - - io - - - tools - - - tools - - - tools - - - tools - - - contrib - - - contrib - - - tools - - - tools - - - utils - - - utils - - - utils - - - utils - - - builder - - - builder - - - utils - - - core - - - utils - - - \ No newline at end of file diff --git a/r5dev/vproj/netconsole.vcxproj b/r5dev/vproj/netconsole.vcxproj deleted file mode 100644 index a0584492..00000000 --- a/r5dev/vproj/netconsole.vcxproj +++ /dev/null @@ -1,450 +0,0 @@ - - - - - Debug - Win32 - - - Profile - Win32 - - - Profile - x64 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - - - Create - Create - Create - Create - Create - Create - - - - - - - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - NotUsing - - - - - - - - - - - - - - - - - - - - - - - - - 16.0 - Win32Proj - {9579b31f-ce24-4852-a941-cd1ad71e2248} - netconsole - 10.0 - - - - Application - true - v143 - Unicode - Static - - - Application - false - v143 - true - Unicode - Static - - - Application - false - v143 - true - Unicode - Static - - - Application - true - v143 - Unicode - Static - - - Application - false - v143 - true - Unicode - Static - - - Application - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - - - - - - - - - - true - $(SolutionDir)game\bin\ - $(SolutionDir)build\$(ProjectName)\win32\debug\ - netcon32 - $(IncludePath); - - - false - $(SolutionDir)game\bin\ - $(SolutionDir)build\$(ProjectName)\win32\release\ - netcon32 - $(IncludePath); - - - true - $(SolutionDir)game\bin\ - $(SolutionDir)build\$(ProjectName)\win32\release\ - netcon32 - $(IncludePath); - - - true - $(SolutionDir)game\bin\ - $(SolutionDir)build\$(ProjectName)\debug\ - netcon64 - $(IncludePath); - - - false - $(SolutionDir)game\bin\ - $(SolutionDir)build\$(ProjectName)\release\ - netcon64 - $(IncludePath); - - - true - $(SolutionDir)game\bin\ - $(SolutionDir)build\$(ProjectName)\profile\ - netcon64 - $(IncludePath); - - - - Level4 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - stdcpp17 - /D "_CRT_SECURE_NO_WARNINGS" /D "NETCONSOLE" /D "SPDLOG_COMPILED_LIB" %(AdditionalOptions) - Use - core\stdafx.h - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\ - Fast - true - CompileAsCpp - true - - - Console - true - User32.lib;Bcrypt.lib;Ws2_32.lib;libspdlog_x86.lib;libprotobuf_x86.lib;%(AdditionalDependencies) - $(SolutionDir)lib\win32\$(Configuration)\ - true - - - - - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\bin\$(ProjectName).exe" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\ - - - - - Level4 - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - stdcpp17 - /D "_CRT_SECURE_NO_WARNINGS" /D "NETCONSOLE" /D "SPDLOG_COMPILED_LIB" /D "SPDLOG_NO_EXCEPTIONS" %(AdditionalOptions) - Use - core\stdafx.h - AnySuitable - Speed - false - false - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\ - Fast - true - false - true - false - true - true - CompileAsCpp - - - Console - true - User32.lib;Bcrypt.lib;Ws2_32.lib;libspdlog_x86.lib;libprotobuf_x86.lib;%(AdditionalDependencies) - $(SolutionDir)lib\win32\$(Configuration)\ - true - true - true - true - false - - - - - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\bin\$(ProjectName).exe" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\ - - - - - Level4 - true - false - true - WIN32;NDEBUG;_PROFILE;_CONSOLE;%(PreprocessorDefinitions) - false - stdcpp17 - /D "_CRT_SECURE_NO_WARNINGS" /D "NETCONSOLE" /D "SPDLOG_COMPILED_LIB" %(AdditionalOptions) - Use - core\stdafx.h - Default - Neither - false - false - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\ - Full - false - true - Fast - true - CompileAsCpp - true - - - Console - - - - - true - User32.lib;Bcrypt.lib;Ws2_32.lib;libspdlog_x86.lib;libprotobuf_x86.lib;%(AdditionalDependencies) - $(SolutionDir)lib\win32\$(Configuration)\ - - - - true - - - - - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\bin\$(ProjectName).exe" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\ - - - - - Level4 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - stdcpp17 - /D "_CRT_SECURE_NO_WARNINGS" /D "NETCONSOLE" /D "SPDLOG_COMPILED_LIB" %(AdditionalOptions) - Use - core\stdafx.h - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\ - Precise - true - CompileAsCpp - true - - - Console - true - User32.lib;Bcrypt.lib;Ws2_32.lib;libspdlog_x64.lib;libprotobuf_x64.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - true - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\bin\$(ProjectName).exe" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\ - - - - - - - - - Level4 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - stdcpp17 - /D "_CRT_SECURE_NO_WARNINGS" /D "NETCONSOLE" /D "SPDLOG_COMPILED_LIB" /D "SPDLOG_NO_EXCEPTIONS" %(AdditionalOptions) - Use - core\stdafx.h - AnySuitable - Speed - false - false - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\ - true - Fast - true - true - false - false - CompileAsCpp - true - - - Console - true - User32.lib;Bcrypt.lib;Ws2_32.lib;libspdlog_x64.lib;libprotobuf_x64.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - true - true - true - true - false - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\bin\$(ProjectName).exe" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\ - - - - - - - - - Level4 - true - false - true - NDEBUG;_PROFILE;_CONSOLE;%(PreprocessorDefinitions) - false - stdcpp17 - /D "_CRT_SECURE_NO_WARNINGS" /D "NETCONSOLE" /D "SPDLOG_COMPILED_LIB" %(AdditionalOptions) - Use - core\stdafx.h - Default - Neither - false - false - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\ - Full - false - true - Precise - true - CompileAsCpp - true - - - Console - - - - - true - User32.lib;Bcrypt.lib;Ws2_32.lib;libspdlog_x64.lib;libprotobuf_x64.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - - - - true - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\bin\$(ProjectName).exe" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\ - - - - - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/netconsole.vcxproj.filters b/r5dev/vproj/netconsole.vcxproj.filters deleted file mode 100644 index 258f35a6..00000000 --- a/r5dev/vproj/netconsole.vcxproj.filters +++ /dev/null @@ -1,139 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {7ec4619a-05f9-4949-937b-4b945edc3fe8} - - - {82bd526b-7838-4923-8c87-b035f2d5d2c7} - - - {033185e7-f6ca-4225-8ddb-089bf5bd5891} - - - {a6970588-331b-4da5-bfcf-b6f6cf1d87ee} - - - {99b7ba90-bc5d-4f07-a299-b68322c5ca63} - - - {8459ce10-e58c-4fb4-9ec7-e2503f4014e5} - - - {7c7da8dd-043a-46b7-9413-832924e4574e} - - - {7064c656-b1c1-4940-be0a-eeb46b78a221} - - - {2f5f6e2d-440a-472b-807d-aebfdf13dfe2} - - - {60d72a7f-a540-4918-b4af-64f23fdf7306} - - - {83c26208-328a-4a67-b2f7-53bafe94bf3f} - - - {3bbe24ed-5dce-4eb6-bb00-ed575b8bffc3} - - - {b6e80c43-6b7e-4503-aa64-60981ac963dc} - - - - - core - - - sdk\tier2 - - - sdk\engine - - - core - - - core - - - thirdparty\protobuf - - - thirdparty\protobuf - - - sdk\tier1 - - - sdk\tier0 - - - core - - - windows - - - core - - - sdk\engine\shared - - - sdk\engine\shared - - - sdk\tier1 - - - - - core - - - sdk\engine - - - core - - - core - - - thirdparty\protobuf - - - thirdparty\protobuf - - - windows - - - core - - - sdk\public\tier0 - - - sdk\public\tier1 - - - sdk\public\tier2 - - - sdk\engine\shared - - - sdk\engine\shared - - - sdk\public\tier1 - - - \ No newline at end of file diff --git a/r5dev/vproj/pluginsdk.vcxproj b/r5dev/vproj/pluginsdk.vcxproj deleted file mode 100644 index 1c1c6ae2..00000000 --- a/r5dev/vproj/pluginsdk.vcxproj +++ /dev/null @@ -1,211 +0,0 @@ - - - - - Debug - x64 - - - Profile - x64 - - - Release - x64 - - - - 16.0 - Win32Proj - {42214a91-2eef-4717-bd99-6fd7fccf2dbe} - pluginsdk - 10.0 - - - - DynamicLibrary - true - v143 - Unicode - Static - - - DynamicLibrary - false - v143 - true - Unicode - Static - - - DynamicLibrary - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - true - $(SolutionDir)game\bin\x64_retail\plugins\ - $(SolutionDir)build\$(ProjectName)\debug\ - PluginSDK - $(IncludePath); - - - false - $(SolutionDir)game\bin\x64_retail\plugins\ - $(SolutionDir)build\$(ProjectName)\release\ - PluginSDK - $(IncludePath); - - - true - $(SolutionDir)game\bin\x64_retail\plugins\ - $(SolutionDir)build\$(ProjectName)\profile\ - PluginSDK - $(IncludePath); - - - - Level4 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - stdcpp17 - Use - core\stdafx.h - /D "_CRT_SECURE_NO_WARNINGS" /D "PLUGINSDK" /D "SPDLOG_COMPILED_LIB" - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\ - Precise - true - CompileAsCpp - true - - - Console - true - $(SolutionDir)lib\$(Configuration)\ - 8000000 - dbghelp.lib;libspdlog_x64.lib;%(AdditionalDependencies) - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\bin\x64_plugins\pluginsdk_x64.dll" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\x64_plugins - - - - - Level4 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - stdcpp17 - Use - core\stdafx.h - /D "_CRT_SECURE_NO_WARNINGS" /D "PLUGINSDK" /D "SPDLOG_COMPILED_LIB" /D "SPDLOG_NO_EXCEPTIONS" - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\ - true - Fast - false - false - true - Speed - AnySuitable - false - false - CompileAsCpp - true - - - Console - true - $(SolutionDir)lib\$(Configuration)\ - 8000000 - dbghelp.lib;libspdlog_x64.lib;%(AdditionalDependencies) - true - true - false - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\bin\x64_plugins\pluginsdk_x64.dll" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\x64_plugins - - - - - Level4 - true - false - true - NDEBUG;_PROFILE;_CONSOLE;%(PreprocessorDefinitions) - false - stdcpp17 - Use - core\stdafx.h - /D "_CRT_SECURE_NO_WARNINGS" /D "PLUGINSDK" /D "SPDLOG_COMPILED_LIB" - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\ - Full - false - false - true - Precise - true - CompileAsCpp - true - - - Console - - - - - true - $(SolutionDir)lib\$(Configuration)\ - 8000000 - - - dbghelp.lib;libspdlog_x64.lib;%(AdditionalDependencies) - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\bin\x64_plugins\pluginsdk_x64.dll" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\bin\x64_plugins - - - - - Create - Create - Create - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/pluginsdk.vcxproj.filters b/r5dev/vproj/pluginsdk.vcxproj.filters deleted file mode 100644 index 66e6cddc..00000000 --- a/r5dev/vproj/pluginsdk.vcxproj.filters +++ /dev/null @@ -1,66 +0,0 @@ - - - - - {8c48f080-f082-47e6-aa17-03316e0430ee} - - - {b1ddea2b-cc6c-413f-b709-d5d436825d04} - - - {49a28380-a137-410c-ad75-a0b80176443e} - - - {797026e6-4caf-4488-970f-1a956f930a34} - - - {7f44ca93-e652-442b-a16a-cf6f1bd2eb08} - - - {5df719b2-f053-4493-bf77-1e818d98aa99} - - - {ca1aea81-de23-4883-b828-6319d12831fc} - - - - - core - - - core - - - sdk - - - tier0 - - - tier0 - - - tier1 - - - - - core - - - sdk - - - sdk - - - public\tier1 - - - public\tier0 - - - public\tier0 - - - \ No newline at end of file diff --git a/r5dev/vproj/sdklauncher.vcxproj b/r5dev/vproj/sdklauncher.vcxproj deleted file mode 100644 index afd29bc3..00000000 --- a/r5dev/vproj/sdklauncher.vcxproj +++ /dev/null @@ -1,243 +0,0 @@ - - - - - Debug - x64 - - - Profile - x64 - - - Release - x64 - - - - 16.0 - Win32Proj - {18f8c75e-3844-4aa6-ab93-980a08253519} - sdklauncher - 10.0 - sdklauncher - - - - Application - true - v143 - Unicode - Static - - - Application - false - v143 - true - Unicode - Static - - - Application - false - v143 - true - Unicode - Static - - - - - - - - - - - - - - - - - - - true - $(IncludePath); - $(LibraryPath); - launcher - $(SolutionDir)game\ - $(SolutionDir)build\$(ProjectName)\debug\ - - - false - $(IncludePath); - $(LibraryPath); - launcher - $(SolutionDir)game\ - $(SolutionDir)build\$(ProjectName)\release\ - - - true - $(IncludePath); - $(LibraryPath); - launcher - $(SolutionDir)game\ - $(SolutionDir)build\$(ProjectName)\profile\ - - - - Level4 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - - - Use - stdcpp17 - core\stdafx.h - /D "_CRT_SECURE_NO_WARNINGS" /D "SDKLAUNCHER" /D "SPDLOG_COMPILED_LIB" %(AdditionalOptions) - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\; - Precise - true - CompileAsCpp - true - - - Console - true - libcppkore_x64.lib;libdetours_x64.lib;libspdlog_x64.lib;shell32.lib;gdi32.lib;gdiplus.lib;advapi32.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - true - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\$(ProjectName)" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\ - - - - - Level4 - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - false - - - Speed - false - false - true - - - AnySuitable - Use - stdcpp17 - core\stdafx.h - /D "_CRT_SECURE_NO_WARNINGS" /D "SDKLAUNCHER" /D "SPDLOG_COMPILED_LIB" /D "SPDLOG_NO_EXCEPTIONS" %(AdditionalOptions) - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\; - Fast - false - true - false - false - CompileAsCpp - true - - - Console - true - libcppkore_x64.lib;libdetours_x64.lib;libspdlog_x64.lib;shell32.lib;gdi32.lib;gdiplus.lib;advapi32.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - true - true - true - true - false - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\$(ProjectName)" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\ - - - - - Level4 - true - false - true - NDEBUG;_PROFILE;_CONSOLE;%(PreprocessorDefinitions) - false - - - Neither - false - false - true - - - Default - Use - stdcpp17 - core\stdafx.h - /D "_CRT_SECURE_NO_WARNINGS" /D "SDKLAUNCHER" /D "SPDLOG_COMPILED_LIB" %(AdditionalOptions) - $(ProjectDir)..\;$(ProjectDir)..\public\;$(ProjectDir)..\thirdparty\; - Full - false - Precise - true - CompileAsCpp - true - - - Console - - - - - true - libcppkore_x64.lib;libdetours_x64.lib;libspdlog_x64.lib;shell32.lib;gdi32.lib;gdiplus.lib;advapi32.lib;%(AdditionalDependencies) - $(SolutionDir)lib\$(Configuration)\ - - - - true - - - IF EXIST "$(SolutionDir)..\..\r5apexdata.bin" del "$(SolutionDir)..\..\$(ProjectName)" && copy /Y "$(TargetPath)" "$(SolutionDir)..\..\ - - - - - Create - Create - Create - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/r5dev/vproj/sdklauncher.vcxproj.filters b/r5dev/vproj/sdklauncher.vcxproj.filters deleted file mode 100644 index 4ed1ad56..00000000 --- a/r5dev/vproj/sdklauncher.vcxproj.filters +++ /dev/null @@ -1,101 +0,0 @@ - - - - - {ce3f4cd9-6eb2-4133-b109-869c24225000} - - - {9dcfc3ae-597b-4e7a-8e51-11e438faa7f6} - - - {ba246dd9-0473-49d6-8cc0-64330570b81f} - - - {c593f57d-6b04-46e8-8778-02dcafaf969c} - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - {b9c3ead5-38a0-4e31-8446-df55ebcbdb66} - - - {82b18787-373d-42ce-8d8d-1e3adba8d3a0} - - - {dc968871-7ca2-452b-a5b1-350a12dd54aa} - - - {520316cd-14bb-47f8-9390-cc050b7115e3} - - - {8aee4c57-9624-423b-a411-1ea3992077ab} - - - - - core - - - ui - - - launcher - - - tier1 - - - tier1 - - - - - resource - - - - - thirdparty\detours\include - - - thirdparty\detours\include - - - thirdparty\detours\include - - - core - - - ui - - - launcher - - - launcher - - - launcher - - - launcher - - - public\tier1 - - - public\tier1 - - - - - resource - - - resource - - - \ No newline at end of file diff --git a/r5dev/vscript/CMakeLists.txt b/r5dev/vscript/CMakeLists.txt new file mode 100644 index 00000000..e85f8a39 --- /dev/null +++ b/r5dev/vscript/CMakeLists.txt @@ -0,0 +1,31 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( vscript ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Private" + "vscript.cpp" + "vscript.h" +) + +add_sources( SOURCE_GROUP "Squirrel_RE" + "languages/squirrel_re/vsquirrel.cpp" + "languages/squirrel_re/vsquirrel.h" + "languages/squirrel_re/include/sqstate.h" + "languages/squirrel_re/include/sqstdaux.h" + "languages/squirrel_re/include/squirrel.h" + "languages/squirrel_re/include/sqvm.h" + + "languages/squirrel_re/sqstdlib/sqstdaux.cpp" + "languages/squirrel_re/squirrel/sqapi.cpp" + "languages/squirrel_re/squirrel/sqvm.cpp" +) + +add_sources( SOURCE_GROUP "Public" + "${ENGINE_SOURCE_DIR}/public/vscript/ivscript.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vscript/languages/squirrel_re/squirrel/sqvm.cpp b/r5dev/vscript/languages/squirrel_re/squirrel/sqvm.cpp index b74595f4..49377fc3 100644 --- a/r5dev/vscript/languages/squirrel_re/squirrel/sqvm.cpp +++ b/r5dev/vscript/languages/squirrel_re/squirrel/sqvm.cpp @@ -5,15 +5,13 @@ //=============================================================================// #include "core/stdafx.h" -#include "core/logdef.h" #include "tier0/platform_internal.h" #include "tier0/commandline.h" -#include "tier1/cvar.h" #ifndef CLIENT_DLL #include "engine/server/sv_rcon.h" #endif // CLIENT_DLL #ifndef DEDICATED -#include "client/cdll_engine_int.h" +#include "engine/client/cdll_engine_int.h" #include "vgui/vgui_debugpanel.h" #include "gameui/IConsole.h" #endif // !DEDICATED diff --git a/r5dev/vscript/languages/squirrel_re/vsquirrel.cpp b/r5dev/vscript/languages/squirrel_re/vsquirrel.cpp index 6345661c..c3db126c 100644 --- a/r5dev/vscript/languages/squirrel_re/vsquirrel.cpp +++ b/r5dev/vscript/languages/squirrel_re/vsquirrel.cpp @@ -4,10 +4,9 @@ // //===============================================================================// #include "core/stdafx.h" -#include "tier1/cvar.h" #include "vscript/vscript.h" -#include "vsquirrel.h" #include "pluginsystem/modsystem.h" +#include "vsquirrel.h" //--------------------------------------------------------------------------------- // Purpose: Initialises a Squirrel VM instance diff --git a/r5dev/vstdlib/CMakeLists.txt b/r5dev/vstdlib/CMakeLists.txt new file mode 100644 index 00000000..23293be8 --- /dev/null +++ b/r5dev/vstdlib/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required( VERSION 3.16 ) + +project( vstdlib ) +add_library( ${PROJECT_NAME} ) + +start_sources() + +add_sources( SOURCE_GROUP "Private" + "autocompletefilelist.cpp" + "autocompletefilelist.h" + "concommandhash.h" + "keyvaluessystem.cpp" + "keyvaluessystem.h" + "random.cpp" + "random.h" +) + +end_sources() +target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) +target_include_directories( ${PROJECT_NAME} PRIVATE + "${ENGINE_SOURCE_DIR}/tier0/" + "${ENGINE_SOURCE_DIR}/tier1/" +) diff --git a/r5dev/vstdlib/autocompletefilelist.cpp b/r5dev/vstdlib/autocompletefilelist.cpp index 3117dd85..aef98795 100644 --- a/r5dev/vstdlib/autocompletefilelist.cpp +++ b/r5dev/vstdlib/autocompletefilelist.cpp @@ -5,7 +5,7 @@ // $NoKeywords: $ //===========================================================================// #include "core/stdafx.h" -#include "completion.h" +#include "common/completion.h" #include "autocompletefilelist.h" //----------------------------------------------------------------------------- diff --git a/r5dev/windows/console.cpp b/r5dev/windows/console.cpp index cd245c65..04e2447d 100644 --- a/r5dev/windows/console.cpp +++ b/r5dev/windows/console.cpp @@ -9,7 +9,7 @@ #include "core/init.h" #include "core/logdef.h" #include "tier0/frametask.h" -#include "tier1/cmd.h" +#include "engine/cmd.h" #ifndef DEDICATED #include "windows/id3dx.h" #endif // !DEDICATED diff --git a/r5sdk.sln b/r5sdk.sln deleted file mode 100644 index 1eca01a4..00000000 --- a/r5sdk.sln +++ /dev/null @@ -1,357 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31808.319 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gamesdk", "r5dev\vproj\gamesdk.vcxproj", "{28CC6B4F-7A95-4933-ADA9-65E38D48516D}" - ProjectSection(ProjectDependencies) = postProject - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} = {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} - {1CC6BF42-D20F-4599-8619-290AF5FB4034} = {1CC6BF42-D20F-4599-8619-290AF5FB4034} - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61} = {31FB1B73-F4C5-414B-A27D-AB0DC194BC61} - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D} = {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D} - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4} = {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4} - {AD7B43E9-2416-4B39-829E-D9D2071479B1} = {AD7B43E9-2416-4B39-829E-D9D2071479B1} - {B273A875-6618-49FE-8CA4-0B693BA264D5} = {B273A875-6618-49FE-8CA4-0B693BA264D5} - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB} = {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sdklauncher", "r5dev\vproj\sdklauncher.vcxproj", "{18F8C75E-3844-4AA6-AB93-980A08253519}" - ProjectSection(ProjectDependencies) = postProject - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} = {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D} = {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D} - {88BC2D60-A093-4E61-B194-59AB8BE4E33E} = {88BC2D60-A093-4E61-B194-59AB8BE4E33E} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dedicated", "r5dev\vproj\dedicated.vcxproj", "{ED2C50B3-7C2C-4E44-988E-DAA059F72B9C}" - ProjectSection(ProjectDependencies) = postProject - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} = {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} - {1CC6BF42-D20F-4599-8619-290AF5FB4034} = {1CC6BF42-D20F-4599-8619-290AF5FB4034} - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D} = {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D} - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4} = {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4} - {B273A875-6618-49FE-8CA4-0B693BA264D5} = {B273A875-6618-49FE-8CA4-0B693BA264D5} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "netconsole", "r5dev\vproj\netconsole.vcxproj", "{9579B31F-CE24-4852-A941-CD1AD71E2248}" - ProjectSection(ProjectDependencies) = postProject - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} = {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} - {B273A875-6618-49FE-8CA4-0B693BA264D5} = {B273A875-6618-49FE-8CA4-0B693BA264D5} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libprotobuf", "r5dev\vproj\libprotobuf.vcxproj", "{B273A875-6618-49FE-8CA4-0B693BA264D5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblzham", "r5dev\vproj\liblzham.vcxproj", "{1CC6BF42-D20F-4599-8619-290AF5FB4034}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdetours", "r5dev\vproj\libdetours.vcxproj", "{6DC4E2AF-1740-480B-A9E4-BA766BC6B58D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libraries", "libraries", "{9D2825F8-4BEC-4D0A-B125-6390B554D519}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libimgui", "r5dev\vproj\libimgui.vcxproj", "{AD7B43E9-2416-4B39-829E-D9D2071479B1}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "microsoft", "microsoft", "{8814B724-617F-46D1-B29F-36C87F3472BF}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "google", "google", "{2C6C4C79-2028-4165-8BA7-99EB6095A006}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "recast", "recast", "{EB0E2713-EB72-4F68-B6CF-F076D68ECA40}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdetour", "r5dev\vproj\libdetour.vcxproj", "{DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdetourcrowd", "r5dev\vproj\libdetourcrowd.vcxproj", "{6A8085A2-4DD0-4726-A667-ED873020AAB7}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdetourtilecache", "r5dev\vproj\libdetourtilecache.vcxproj", "{DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librecast", "r5dev\vproj\librecast.vcxproj", "{31FB1B73-F4C5-414B-A27D-AB0DC194BC61}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdebugutils", "r5dev\vproj\libdebugutils.vcxproj", "{0E701104-CD9A-45C0-8E32-3284DBDEAF5E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsdl2", "r5dev\vproj\libsdl.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "naveditor", "r5dev\vproj\naveditor.vcxproj", "{1942083A-03D9-4D76-B644-A3FA2A118A35}" - ProjectSection(ProjectDependencies) = postProject - {0E701104-CD9A-45C0-8E32-3284DBDEAF5E} = {0E701104-CD9A-45C0-8E32-3284DBDEAF5E} - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61} = {31FB1B73-F4C5-414B-A27D-AB0DC194BC61} - {6A8085A2-4DD0-4726-A667-ED873020AAB7} = {6A8085A2-4DD0-4726-A667-ED873020AAB7} - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D} = {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D} - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} - {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C} = {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C} - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB} = {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clientsdk", "r5dev\vproj\clientsdk.vcxproj", "{8FC77C68-CE93-45CE-B753-68ABE36BCDDB}" - ProjectSection(ProjectDependencies) = postProject - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} = {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} - {1CC6BF42-D20F-4599-8619-290AF5FB4034} = {1CC6BF42-D20F-4599-8619-290AF5FB4034} - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D} = {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D} - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4} = {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4} - {AD7B43E9-2416-4B39-829E-D9D2071479B1} = {AD7B43E9-2416-4B39-829E-D9D2071479B1} - {B273A875-6618-49FE-8CA4-0B693BA264D5} = {B273A875-6618-49FE-8CA4-0B693BA264D5} - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{3363D141-5FD1-4569-B1B0-EC59ABBA5FAC}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcppkore", "r5dev\vproj\libcppkore.vcxproj", "{88BC2D60-A093-4E61-B194-59AB8BE4E33E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pluginsdk", "r5dev\vproj\pluginsdk.vcxproj", "{42214A91-2EEF-4717-BD99-6FD7FCCF2DBE}" - ProjectSection(ProjectDependencies) = postProject - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} = {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcurl", "r5dev\vproj\libcurl.vcxproj", "{8E2C49F6-0B51-414D-A391-F27FA2FBB8A4}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspdlog", "r5dev\vproj\libspdlog.vcxproj", "{0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Profile|x64 = Profile|x64 - Profile|x86 = Profile|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {28CC6B4F-7A95-4933-ADA9-65E38D48516D}.Debug|x64.ActiveCfg = Debug|x64 - {28CC6B4F-7A95-4933-ADA9-65E38D48516D}.Debug|x64.Build.0 = Debug|x64 - {28CC6B4F-7A95-4933-ADA9-65E38D48516D}.Debug|x86.ActiveCfg = Debug|x64 - {28CC6B4F-7A95-4933-ADA9-65E38D48516D}.Profile|x64.ActiveCfg = Profile|x64 - {28CC6B4F-7A95-4933-ADA9-65E38D48516D}.Profile|x64.Build.0 = Profile|x64 - {28CC6B4F-7A95-4933-ADA9-65E38D48516D}.Profile|x86.ActiveCfg = Profile|x64 - {28CC6B4F-7A95-4933-ADA9-65E38D48516D}.Profile|x86.Build.0 = Profile|x64 - {28CC6B4F-7A95-4933-ADA9-65E38D48516D}.Release|x64.ActiveCfg = Release|x64 - {28CC6B4F-7A95-4933-ADA9-65E38D48516D}.Release|x64.Build.0 = Release|x64 - {28CC6B4F-7A95-4933-ADA9-65E38D48516D}.Release|x86.ActiveCfg = Release|x64 - {18F8C75E-3844-4AA6-AB93-980A08253519}.Debug|x64.ActiveCfg = Debug|x64 - {18F8C75E-3844-4AA6-AB93-980A08253519}.Debug|x64.Build.0 = Debug|x64 - {18F8C75E-3844-4AA6-AB93-980A08253519}.Debug|x86.ActiveCfg = Debug|x64 - {18F8C75E-3844-4AA6-AB93-980A08253519}.Profile|x64.ActiveCfg = Profile|x64 - {18F8C75E-3844-4AA6-AB93-980A08253519}.Profile|x64.Build.0 = Profile|x64 - {18F8C75E-3844-4AA6-AB93-980A08253519}.Profile|x86.ActiveCfg = Profile|x64 - {18F8C75E-3844-4AA6-AB93-980A08253519}.Profile|x86.Build.0 = Profile|x64 - {18F8C75E-3844-4AA6-AB93-980A08253519}.Release|x64.ActiveCfg = Release|x64 - {18F8C75E-3844-4AA6-AB93-980A08253519}.Release|x64.Build.0 = Release|x64 - {18F8C75E-3844-4AA6-AB93-980A08253519}.Release|x86.ActiveCfg = Release|x64 - {ED2C50B3-7C2C-4E44-988E-DAA059F72B9C}.Debug|x64.ActiveCfg = Debug|x64 - {ED2C50B3-7C2C-4E44-988E-DAA059F72B9C}.Debug|x64.Build.0 = Debug|x64 - {ED2C50B3-7C2C-4E44-988E-DAA059F72B9C}.Debug|x86.ActiveCfg = Debug|x64 - {ED2C50B3-7C2C-4E44-988E-DAA059F72B9C}.Profile|x64.ActiveCfg = Profile|x64 - {ED2C50B3-7C2C-4E44-988E-DAA059F72B9C}.Profile|x64.Build.0 = Profile|x64 - {ED2C50B3-7C2C-4E44-988E-DAA059F72B9C}.Profile|x86.ActiveCfg = Profile|x64 - {ED2C50B3-7C2C-4E44-988E-DAA059F72B9C}.Profile|x86.Build.0 = Profile|x64 - {ED2C50B3-7C2C-4E44-988E-DAA059F72B9C}.Release|x64.ActiveCfg = Release|x64 - {ED2C50B3-7C2C-4E44-988E-DAA059F72B9C}.Release|x64.Build.0 = Release|x64 - {ED2C50B3-7C2C-4E44-988E-DAA059F72B9C}.Release|x86.ActiveCfg = Release|x64 - {9579B31F-CE24-4852-A941-CD1AD71E2248}.Debug|x64.ActiveCfg = Debug|x64 - {9579B31F-CE24-4852-A941-CD1AD71E2248}.Debug|x64.Build.0 = Debug|x64 - {9579B31F-CE24-4852-A941-CD1AD71E2248}.Debug|x86.ActiveCfg = Debug|Win32 - {9579B31F-CE24-4852-A941-CD1AD71E2248}.Debug|x86.Build.0 = Debug|Win32 - {9579B31F-CE24-4852-A941-CD1AD71E2248}.Profile|x64.ActiveCfg = Profile|x64 - {9579B31F-CE24-4852-A941-CD1AD71E2248}.Profile|x64.Build.0 = Profile|x64 - {9579B31F-CE24-4852-A941-CD1AD71E2248}.Profile|x86.ActiveCfg = Profile|Win32 - {9579B31F-CE24-4852-A941-CD1AD71E2248}.Profile|x86.Build.0 = Profile|Win32 - {9579B31F-CE24-4852-A941-CD1AD71E2248}.Release|x64.ActiveCfg = Release|x64 - {9579B31F-CE24-4852-A941-CD1AD71E2248}.Release|x64.Build.0 = Release|x64 - {9579B31F-CE24-4852-A941-CD1AD71E2248}.Release|x86.ActiveCfg = Release|Win32 - {9579B31F-CE24-4852-A941-CD1AD71E2248}.Release|x86.Build.0 = Release|Win32 - {B273A875-6618-49FE-8CA4-0B693BA264D5}.Debug|x64.ActiveCfg = Debug|x64 - {B273A875-6618-49FE-8CA4-0B693BA264D5}.Debug|x64.Build.0 = Debug|x64 - {B273A875-6618-49FE-8CA4-0B693BA264D5}.Debug|x86.ActiveCfg = Debug|Win32 - {B273A875-6618-49FE-8CA4-0B693BA264D5}.Debug|x86.Build.0 = Debug|Win32 - {B273A875-6618-49FE-8CA4-0B693BA264D5}.Profile|x64.ActiveCfg = Profile|x64 - {B273A875-6618-49FE-8CA4-0B693BA264D5}.Profile|x64.Build.0 = Profile|x64 - {B273A875-6618-49FE-8CA4-0B693BA264D5}.Profile|x86.ActiveCfg = Profile|Win32 - {B273A875-6618-49FE-8CA4-0B693BA264D5}.Profile|x86.Build.0 = Profile|Win32 - {B273A875-6618-49FE-8CA4-0B693BA264D5}.Release|x64.ActiveCfg = Release|x64 - {B273A875-6618-49FE-8CA4-0B693BA264D5}.Release|x64.Build.0 = Release|x64 - {B273A875-6618-49FE-8CA4-0B693BA264D5}.Release|x86.ActiveCfg = Release|Win32 - {B273A875-6618-49FE-8CA4-0B693BA264D5}.Release|x86.Build.0 = Release|Win32 - {1CC6BF42-D20F-4599-8619-290AF5FB4034}.Debug|x64.ActiveCfg = Debug|x64 - {1CC6BF42-D20F-4599-8619-290AF5FB4034}.Debug|x64.Build.0 = Debug|x64 - {1CC6BF42-D20F-4599-8619-290AF5FB4034}.Debug|x86.ActiveCfg = Debug|Win32 - {1CC6BF42-D20F-4599-8619-290AF5FB4034}.Debug|x86.Build.0 = Debug|Win32 - {1CC6BF42-D20F-4599-8619-290AF5FB4034}.Profile|x64.ActiveCfg = Profile|x64 - {1CC6BF42-D20F-4599-8619-290AF5FB4034}.Profile|x64.Build.0 = Profile|x64 - {1CC6BF42-D20F-4599-8619-290AF5FB4034}.Profile|x86.ActiveCfg = Profile|Win32 - {1CC6BF42-D20F-4599-8619-290AF5FB4034}.Profile|x86.Build.0 = Profile|Win32 - {1CC6BF42-D20F-4599-8619-290AF5FB4034}.Release|x64.ActiveCfg = Release|x64 - {1CC6BF42-D20F-4599-8619-290AF5FB4034}.Release|x64.Build.0 = Release|x64 - {1CC6BF42-D20F-4599-8619-290AF5FB4034}.Release|x86.ActiveCfg = Release|Win32 - {1CC6BF42-D20F-4599-8619-290AF5FB4034}.Release|x86.Build.0 = Release|Win32 - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D}.Debug|x64.ActiveCfg = Debug|x64 - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D}.Debug|x64.Build.0 = Debug|x64 - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D}.Debug|x86.ActiveCfg = Debug|Win32 - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D}.Debug|x86.Build.0 = Debug|Win32 - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D}.Profile|x64.ActiveCfg = Profile|x64 - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D}.Profile|x64.Build.0 = Profile|x64 - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D}.Profile|x86.ActiveCfg = Profile|Win32 - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D}.Profile|x86.Build.0 = Profile|Win32 - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D}.Release|x64.ActiveCfg = Release|x64 - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D}.Release|x64.Build.0 = Release|x64 - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D}.Release|x86.ActiveCfg = Release|Win32 - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D}.Release|x86.Build.0 = Release|Win32 - {AD7B43E9-2416-4B39-829E-D9D2071479B1}.Debug|x64.ActiveCfg = Debug|x64 - {AD7B43E9-2416-4B39-829E-D9D2071479B1}.Debug|x64.Build.0 = Debug|x64 - {AD7B43E9-2416-4B39-829E-D9D2071479B1}.Debug|x86.ActiveCfg = Debug|Win32 - {AD7B43E9-2416-4B39-829E-D9D2071479B1}.Debug|x86.Build.0 = Debug|Win32 - {AD7B43E9-2416-4B39-829E-D9D2071479B1}.Profile|x64.ActiveCfg = Profile|x64 - {AD7B43E9-2416-4B39-829E-D9D2071479B1}.Profile|x64.Build.0 = Profile|x64 - {AD7B43E9-2416-4B39-829E-D9D2071479B1}.Profile|x86.ActiveCfg = Profile|Win32 - {AD7B43E9-2416-4B39-829E-D9D2071479B1}.Profile|x86.Build.0 = Profile|Win32 - {AD7B43E9-2416-4B39-829E-D9D2071479B1}.Release|x64.ActiveCfg = Release|x64 - {AD7B43E9-2416-4B39-829E-D9D2071479B1}.Release|x64.Build.0 = Release|x64 - {AD7B43E9-2416-4B39-829E-D9D2071479B1}.Release|x86.ActiveCfg = Release|Win32 - {AD7B43E9-2416-4B39-829E-D9D2071479B1}.Release|x86.Build.0 = Release|Win32 - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB}.Debug|x64.ActiveCfg = Debug|x64 - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB}.Debug|x64.Build.0 = Debug|x64 - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB}.Debug|x86.ActiveCfg = Debug|x64 - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB}.Profile|x64.ActiveCfg = Profile|x64 - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB}.Profile|x64.Build.0 = Profile|x64 - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB}.Profile|x86.ActiveCfg = Profile|x64 - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB}.Profile|x86.Build.0 = Profile|x64 - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB}.Release|x64.ActiveCfg = Release|x64 - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB}.Release|x64.Build.0 = Release|x64 - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB}.Release|x86.ActiveCfg = Release|x64 - {6A8085A2-4DD0-4726-A667-ED873020AAB7}.Debug|x64.ActiveCfg = Debug|x64 - {6A8085A2-4DD0-4726-A667-ED873020AAB7}.Debug|x64.Build.0 = Debug|x64 - {6A8085A2-4DD0-4726-A667-ED873020AAB7}.Debug|x86.ActiveCfg = Debug|x64 - {6A8085A2-4DD0-4726-A667-ED873020AAB7}.Profile|x64.ActiveCfg = Profile|x64 - {6A8085A2-4DD0-4726-A667-ED873020AAB7}.Profile|x64.Build.0 = Profile|x64 - {6A8085A2-4DD0-4726-A667-ED873020AAB7}.Profile|x86.ActiveCfg = Profile|x64 - {6A8085A2-4DD0-4726-A667-ED873020AAB7}.Profile|x86.Build.0 = Profile|x64 - {6A8085A2-4DD0-4726-A667-ED873020AAB7}.Release|x64.ActiveCfg = Release|x64 - {6A8085A2-4DD0-4726-A667-ED873020AAB7}.Release|x64.Build.0 = Release|x64 - {6A8085A2-4DD0-4726-A667-ED873020AAB7}.Release|x86.ActiveCfg = Release|x64 - {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C}.Debug|x64.ActiveCfg = Debug|x64 - {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C}.Debug|x64.Build.0 = Debug|x64 - {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C}.Debug|x86.ActiveCfg = Debug|x64 - {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C}.Profile|x64.ActiveCfg = Profile|x64 - {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C}.Profile|x64.Build.0 = Profile|x64 - {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C}.Profile|x86.ActiveCfg = Profile|x64 - {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C}.Profile|x86.Build.0 = Profile|x64 - {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C}.Release|x64.ActiveCfg = Release|x64 - {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C}.Release|x64.Build.0 = Release|x64 - {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C}.Release|x86.ActiveCfg = Release|x64 - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61}.Debug|x64.ActiveCfg = Debug|x64 - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61}.Debug|x64.Build.0 = Debug|x64 - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61}.Debug|x86.ActiveCfg = Debug|x64 - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61}.Profile|x64.ActiveCfg = Profile|x64 - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61}.Profile|x64.Build.0 = Profile|x64 - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61}.Profile|x86.ActiveCfg = Profile|x64 - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61}.Profile|x86.Build.0 = Profile|x64 - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61}.Release|x64.ActiveCfg = Release|x64 - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61}.Release|x64.Build.0 = Release|x64 - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61}.Release|x86.ActiveCfg = Release|x64 - {0E701104-CD9A-45C0-8E32-3284DBDEAF5E}.Debug|x64.ActiveCfg = Debug|x64 - {0E701104-CD9A-45C0-8E32-3284DBDEAF5E}.Debug|x64.Build.0 = Debug|x64 - {0E701104-CD9A-45C0-8E32-3284DBDEAF5E}.Debug|x86.ActiveCfg = Debug|x64 - {0E701104-CD9A-45C0-8E32-3284DBDEAF5E}.Profile|x64.ActiveCfg = Profile|x64 - {0E701104-CD9A-45C0-8E32-3284DBDEAF5E}.Profile|x64.Build.0 = Profile|x64 - {0E701104-CD9A-45C0-8E32-3284DBDEAF5E}.Profile|x86.ActiveCfg = Profile|x64 - {0E701104-CD9A-45C0-8E32-3284DBDEAF5E}.Profile|x86.Build.0 = Profile|x64 - {0E701104-CD9A-45C0-8E32-3284DBDEAF5E}.Release|x64.ActiveCfg = Release|x64 - {0E701104-CD9A-45C0-8E32-3284DBDEAF5E}.Release|x64.Build.0 = Release|x64 - {0E701104-CD9A-45C0-8E32-3284DBDEAF5E}.Release|x86.ActiveCfg = Release|x64 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.ActiveCfg = Debug|x64 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.Build.0 = Debug|x64 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x86.ActiveCfg = Debug|Win32 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x86.Build.0 = Debug|Win32 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Profile|x64.ActiveCfg = Profile|x64 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Profile|x64.Build.0 = Profile|x64 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Profile|x86.ActiveCfg = Profile|Win32 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Profile|x86.Build.0 = Profile|Win32 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.ActiveCfg = Release|x64 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.Build.0 = Release|x64 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x86.ActiveCfg = Release|Win32 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x86.Build.0 = Release|Win32 - {1942083A-03D9-4D76-B644-A3FA2A118A35}.Debug|x64.ActiveCfg = Debug|x64 - {1942083A-03D9-4D76-B644-A3FA2A118A35}.Debug|x64.Build.0 = Debug|x64 - {1942083A-03D9-4D76-B644-A3FA2A118A35}.Debug|x86.ActiveCfg = Debug|x64 - {1942083A-03D9-4D76-B644-A3FA2A118A35}.Profile|x64.ActiveCfg = Profile|x64 - {1942083A-03D9-4D76-B644-A3FA2A118A35}.Profile|x64.Build.0 = Profile|x64 - {1942083A-03D9-4D76-B644-A3FA2A118A35}.Profile|x86.ActiveCfg = Profile|x64 - {1942083A-03D9-4D76-B644-A3FA2A118A35}.Profile|x86.Build.0 = Profile|x64 - {1942083A-03D9-4D76-B644-A3FA2A118A35}.Release|x64.ActiveCfg = Release|x64 - {1942083A-03D9-4D76-B644-A3FA2A118A35}.Release|x64.Build.0 = Release|x64 - {1942083A-03D9-4D76-B644-A3FA2A118A35}.Release|x86.ActiveCfg = Release|x64 - {8FC77C68-CE93-45CE-B753-68ABE36BCDDB}.Debug|x64.ActiveCfg = Debug|x64 - {8FC77C68-CE93-45CE-B753-68ABE36BCDDB}.Debug|x64.Build.0 = Debug|x64 - {8FC77C68-CE93-45CE-B753-68ABE36BCDDB}.Debug|x86.ActiveCfg = Debug|x64 - {8FC77C68-CE93-45CE-B753-68ABE36BCDDB}.Profile|x64.ActiveCfg = Profile|x64 - {8FC77C68-CE93-45CE-B753-68ABE36BCDDB}.Profile|x64.Build.0 = Profile|x64 - {8FC77C68-CE93-45CE-B753-68ABE36BCDDB}.Profile|x86.ActiveCfg = Profile|x64 - {8FC77C68-CE93-45CE-B753-68ABE36BCDDB}.Profile|x86.Build.0 = Profile|x64 - {8FC77C68-CE93-45CE-B753-68ABE36BCDDB}.Release|x64.ActiveCfg = Release|x64 - {8FC77C68-CE93-45CE-B753-68ABE36BCDDB}.Release|x64.Build.0 = Release|x64 - {8FC77C68-CE93-45CE-B753-68ABE36BCDDB}.Release|x86.ActiveCfg = Release|x64 - {88BC2D60-A093-4E61-B194-59AB8BE4E33E}.Debug|x64.ActiveCfg = Debug|x64 - {88BC2D60-A093-4E61-B194-59AB8BE4E33E}.Debug|x64.Build.0 = Debug|x64 - {88BC2D60-A093-4E61-B194-59AB8BE4E33E}.Debug|x86.ActiveCfg = Debug|x64 - {88BC2D60-A093-4E61-B194-59AB8BE4E33E}.Profile|x64.ActiveCfg = Profile|x64 - {88BC2D60-A093-4E61-B194-59AB8BE4E33E}.Profile|x64.Build.0 = Profile|x64 - {88BC2D60-A093-4E61-B194-59AB8BE4E33E}.Profile|x86.ActiveCfg = Profile|x64 - {88BC2D60-A093-4E61-B194-59AB8BE4E33E}.Profile|x86.Build.0 = Profile|x64 - {88BC2D60-A093-4E61-B194-59AB8BE4E33E}.Release|x64.ActiveCfg = Release|x64 - {88BC2D60-A093-4E61-B194-59AB8BE4E33E}.Release|x64.Build.0 = Release|x64 - {88BC2D60-A093-4E61-B194-59AB8BE4E33E}.Release|x86.ActiveCfg = Release|x64 - {42214A91-2EEF-4717-BD99-6FD7FCCF2DBE}.Debug|x64.ActiveCfg = Debug|x64 - {42214A91-2EEF-4717-BD99-6FD7FCCF2DBE}.Debug|x64.Build.0 = Debug|x64 - {42214A91-2EEF-4717-BD99-6FD7FCCF2DBE}.Debug|x86.ActiveCfg = Debug|x64 - {42214A91-2EEF-4717-BD99-6FD7FCCF2DBE}.Profile|x64.ActiveCfg = Profile|x64 - {42214A91-2EEF-4717-BD99-6FD7FCCF2DBE}.Profile|x64.Build.0 = Profile|x64 - {42214A91-2EEF-4717-BD99-6FD7FCCF2DBE}.Profile|x86.ActiveCfg = Profile|x64 - {42214A91-2EEF-4717-BD99-6FD7FCCF2DBE}.Profile|x86.Build.0 = Profile|x64 - {42214A91-2EEF-4717-BD99-6FD7FCCF2DBE}.Release|x64.ActiveCfg = Release|x64 - {42214A91-2EEF-4717-BD99-6FD7FCCF2DBE}.Release|x64.Build.0 = Release|x64 - {42214A91-2EEF-4717-BD99-6FD7FCCF2DBE}.Release|x86.ActiveCfg = Release|x64 - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4}.Debug|x64.ActiveCfg = Debug|x64 - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4}.Debug|x64.Build.0 = Debug|x64 - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4}.Debug|x86.ActiveCfg = Debug|Win32 - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4}.Debug|x86.Build.0 = Debug|Win32 - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4}.Profile|x64.ActiveCfg = Profile|x64 - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4}.Profile|x64.Build.0 = Profile|x64 - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4}.Profile|x86.ActiveCfg = Profile|Win32 - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4}.Profile|x86.Build.0 = Profile|Win32 - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4}.Release|x64.ActiveCfg = Release|x64 - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4}.Release|x64.Build.0 = Release|x64 - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4}.Release|x86.ActiveCfg = Release|Win32 - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4}.Release|x86.Build.0 = Release|Win32 - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09}.Debug|x64.ActiveCfg = Debug|x64 - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09}.Debug|x64.Build.0 = Debug|x64 - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09}.Debug|x86.ActiveCfg = Debug|Win32 - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09}.Debug|x86.Build.0 = Debug|Win32 - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09}.Profile|x64.ActiveCfg = Profile|x64 - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09}.Profile|x64.Build.0 = Profile|x64 - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09}.Profile|x86.ActiveCfg = Profile|Win32 - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09}.Profile|x86.Build.0 = Profile|Win32 - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09}.Release|x64.ActiveCfg = Release|x64 - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09}.Release|x64.Build.0 = Release|x64 - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09}.Release|x86.ActiveCfg = Release|Win32 - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {18F8C75E-3844-4AA6-AB93-980A08253519} = {3363D141-5FD1-4569-B1B0-EC59ABBA5FAC} - {9579B31F-CE24-4852-A941-CD1AD71E2248} = {3363D141-5FD1-4569-B1B0-EC59ABBA5FAC} - {B273A875-6618-49FE-8CA4-0B693BA264D5} = {2C6C4C79-2028-4165-8BA7-99EB6095A006} - {1CC6BF42-D20F-4599-8619-290AF5FB4034} = {9D2825F8-4BEC-4D0A-B125-6390B554D519} - {6DC4E2AF-1740-480B-A9E4-BA766BC6B58D} = {8814B724-617F-46D1-B29F-36C87F3472BF} - {AD7B43E9-2416-4B39-829E-D9D2071479B1} = {9D2825F8-4BEC-4D0A-B125-6390B554D519} - {8814B724-617F-46D1-B29F-36C87F3472BF} = {9D2825F8-4BEC-4D0A-B125-6390B554D519} - {2C6C4C79-2028-4165-8BA7-99EB6095A006} = {9D2825F8-4BEC-4D0A-B125-6390B554D519} - {EB0E2713-EB72-4F68-B6CF-F076D68ECA40} = {9D2825F8-4BEC-4D0A-B125-6390B554D519} - {DC72AD9E-F12F-4802-8BB8-F17A16BFCAEB} = {EB0E2713-EB72-4F68-B6CF-F076D68ECA40} - {6A8085A2-4DD0-4726-A667-ED873020AAB7} = {EB0E2713-EB72-4F68-B6CF-F076D68ECA40} - {DC456E49-7FC6-4BB9-B8A1-C879A37F2A1C} = {EB0E2713-EB72-4F68-B6CF-F076D68ECA40} - {31FB1B73-F4C5-414B-A27D-AB0DC194BC61} = {EB0E2713-EB72-4F68-B6CF-F076D68ECA40} - {0E701104-CD9A-45C0-8E32-3284DBDEAF5E} = {EB0E2713-EB72-4F68-B6CF-F076D68ECA40} - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {9D2825F8-4BEC-4D0A-B125-6390B554D519} - {1942083A-03D9-4D76-B644-A3FA2A118A35} = {3363D141-5FD1-4569-B1B0-EC59ABBA5FAC} - {88BC2D60-A093-4E61-B194-59AB8BE4E33E} = {9D2825F8-4BEC-4D0A-B125-6390B554D519} - {42214A91-2EEF-4717-BD99-6FD7FCCF2DBE} = {3363D141-5FD1-4569-B1B0-EC59ABBA5FAC} - {8E2C49F6-0B51-414D-A391-F27FA2FBB8A4} = {9D2825F8-4BEC-4D0A-B125-6390B554D519} - {0B73CFB6-7C19-4BAF-A4A6-3825BDB82C09} = {9D2825F8-4BEC-4D0A-B125-6390B554D519} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5E5FE02E-6BCE-4BAF-9948-C56476039C3C} - EndGlobalSection -EndGlobal From d1157fb54bf79358c2ed41304f6443385d6990a1 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Thu, 11 May 2023 21:04:21 +0200 Subject: [PATCH 03/52] Fix PDB path not getting written properly for shared libraries --- r5dev/cmake/Options.cmake | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/r5dev/cmake/Options.cmake b/r5dev/cmake/Options.cmake index 47e4e9d8..2e52e4fe 100644 --- a/r5dev/cmake/Options.cmake +++ b/r5dev/cmake/Options.cmake @@ -68,10 +68,6 @@ endmacro() # Setup build output directories for target # ----------------------------------------------------------------------------- macro( set_target_output_dirs TARGET ) - # Set abs PDB path - get_filename_component( OUTPUT_DIR_ABSOLUTE "${CMAKE_SOURCE_DIR}/game/" ABSOLUTE ) - set( PDB_FULL_PATH "${OUTPUT_DIR_ABSOLUTE}/${PROJECT_NAME}.pdb" ) - # Set output directories set_target_properties( ${TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/game/" @@ -91,4 +87,9 @@ macro( set_target_output_dirs TARGET ) "LINK_FLAGS_${CONFIG_TYPE}" "/PDB:${PDB_FULL_PATH}" ) endforeach() + + # Set PDB properties for release builds ( should be created ) + set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi" ) + set( CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF" ) + set( PDB_OUTPUT_DIRECTORY "RUNTIME_OUTPUT_DIRECTORY_${CONFIG_TYPE}" ) endmacro() From af21798a128528a028a379b4632392555ab014cb Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Thu, 11 May 2023 21:05:09 +0200 Subject: [PATCH 04/52] Fix crash caused by NULL Cbuf function pointers Register was missing (code was moved elsewhere). --- r5dev/core/init.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/r5dev/core/init.cpp b/r5dev/core/init.cpp index dc5e8161..f4e0f616 100644 --- a/r5dev/core/init.cpp +++ b/r5dev/core/init.cpp @@ -78,6 +78,7 @@ #include "engine/host_cmd.h" #include "engine/host_state.h" #include "engine/modelloader.h" +#include "engine/cmd.h" #include "engine/net.h" #include "engine/net_chan.h" #include "engine/networkstringtable.h" @@ -494,6 +495,7 @@ void DetourRegister() // Register detour classes to be searched and hooked. REGISTER(VHostCmd); REGISTER(VHostState); REGISTER(VModelLoader); + REGISTER(VCmd); REGISTER(VNet); REGISTER(VNetChan); REGISTER(VNetworkStringTableContainer); From ee636477ce34c2780f3ec5f4ee39cdae02cac173 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Thu, 11 May 2023 21:35:54 +0200 Subject: [PATCH 05/52] Uncomment Header file exists, but is stubbed; uncomment. --- r5dev/game/shared/entitylist_base.cpp | 2 +- r5dev/mathlib/color_conversion.cpp | 2 +- r5dev/mathlib/ssenoise.cpp | 2 +- r5dev/mathlib/transform.cpp | 2 +- r5dev/public/tier1/utlblockmemory.h | 2 +- r5dev/public/tier1/utlfixedmemory.h | 2 +- r5dev/public/tier1/utlmemory.h | 2 +- r5dev/tier1/generichash.cpp | 2 +- r5dev/tier1/stringpool.cpp | 2 +- r5dev/tier1/utlbuffer.cpp | 2 +- r5dev/tier1/utlstring.cpp | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/r5dev/game/shared/entitylist_base.cpp b/r5dev/game/shared/entitylist_base.cpp index c1c04266..71c27ec4 100644 --- a/r5dev/game/shared/entitylist_base.cpp +++ b/r5dev/game/shared/entitylist_base.cpp @@ -9,7 +9,7 @@ #include "public/ihandleentity.h" // memdbgon must be the last include file in a .cpp file!!! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" enum { diff --git a/r5dev/mathlib/color_conversion.cpp b/r5dev/mathlib/color_conversion.cpp index 227958cf..14d689f0 100644 --- a/r5dev/mathlib/color_conversion.cpp +++ b/r5dev/mathlib/color_conversion.cpp @@ -8,7 +8,7 @@ #include "mathlib/vector.h" // memdbgon must be the last include file in a .cpp file!!! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" //----------------------------------------------------------------------------- // Gamma conversion support diff --git a/r5dev/mathlib/ssenoise.cpp b/r5dev/mathlib/ssenoise.cpp index acb0b498..df0684de 100644 --- a/r5dev/mathlib/ssenoise.cpp +++ b/r5dev/mathlib/ssenoise.cpp @@ -10,7 +10,7 @@ #include "mathlib/noisedata.h" // memdbgon must be the last include file in a .cpp file!!! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" #define MAGIC_NUMBER (1<<15) // gives 8 bits of fraction diff --git a/r5dev/mathlib/transform.cpp b/r5dev/mathlib/transform.cpp index 9b9a5b79..260a780e 100644 --- a/r5dev/mathlib/transform.cpp +++ b/r5dev/mathlib/transform.cpp @@ -12,7 +12,7 @@ #include "mathlib/mathlib.h" // memdbgon must be the last include file in a .cpp file!!! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" const CTransform g_TransformIdentity(Vector3D(0.0f, 0.0f, 0.0f), Quaternion(0.0f, 0.0f, 0.0f, 1.0f)); diff --git a/r5dev/public/tier1/utlblockmemory.h b/r5dev/public/tier1/utlblockmemory.h index 520cff8e..8043481e 100644 --- a/r5dev/public/tier1/utlblockmemory.h +++ b/r5dev/public/tier1/utlblockmemory.h @@ -19,7 +19,7 @@ #include "mathlib/mathlib.h" //#include "tier0/memalloc.h" -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" #pragma warning (disable:4100) #pragma warning (disable:4514) diff --git a/r5dev/public/tier1/utlfixedmemory.h b/r5dev/public/tier1/utlfixedmemory.h index caea9c73..11497a92 100644 --- a/r5dev/public/tier1/utlfixedmemory.h +++ b/r5dev/public/tier1/utlfixedmemory.h @@ -18,7 +18,7 @@ #include "tier0/platform.h" #include "tier0/memalloc.h" -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" #include "mathlib/mathlib.h" diff --git a/r5dev/public/tier1/utlmemory.h b/r5dev/public/tier1/utlmemory.h index d8baa356..109518b4 100644 --- a/r5dev/public/tier1/utlmemory.h +++ b/r5dev/public/tier1/utlmemory.h @@ -17,7 +17,7 @@ #include "tier0/memstd.h" #include "tier0/memalloc.h" #include "mathlib/mathlib.h" -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" #pragma warning (disable:4100) #pragma warning (disable:4514) diff --git a/r5dev/tier1/generichash.cpp b/r5dev/tier1/generichash.cpp index 16b25c83..c3d5d737 100644 --- a/r5dev/tier1/generichash.cpp +++ b/r5dev/tier1/generichash.cpp @@ -14,7 +14,7 @@ #include "mathlib/swap.h" // NOTE: This has to be the last file included! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" //----------------------------------------------------------------------------- diff --git a/r5dev/tier1/stringpool.cpp b/r5dev/tier1/stringpool.cpp index 48afb485..91ef49e2 100644 --- a/r5dev/tier1/stringpool.cpp +++ b/r5dev/tier1/stringpool.cpp @@ -12,7 +12,7 @@ #include "tier1/generichash.h" // memdbgon must be the last include file in a .cpp file!!! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" //----------------------------------------------------------------------------- // Purpose: Comparison function for string sorted associative data structures diff --git a/r5dev/tier1/utlbuffer.cpp b/r5dev/tier1/utlbuffer.cpp index 4d00fe60..221c0782 100644 --- a/r5dev/tier1/utlbuffer.cpp +++ b/r5dev/tier1/utlbuffer.cpp @@ -14,7 +14,7 @@ #include "tier1/characterset.h" // memdbgon must be the last include file in a .cpp file!!! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" //----------------------------------------------------------------------------- diff --git a/r5dev/tier1/utlstring.cpp b/r5dev/tier1/utlstring.cpp index 52da4b73..4354129e 100644 --- a/r5dev/tier1/utlstring.cpp +++ b/r5dev/tier1/utlstring.cpp @@ -11,7 +11,7 @@ #include // NOTE: This has to be the last file included! -//#include "tier0/memdbgon.h" +#include "tier0/memdbgon.h" static const int64 k_nMillion = 1000000; From ce0ce28040a673bf1f5dd0e02db1c5458b07bf05 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Thu, 11 May 2023 23:50:06 +0200 Subject: [PATCH 06/52] Cleanup main CMakeLists Move init to 'Configure.cmake', and enable the use of folders within project files. --- CMakeLists.txt | 7 +------ r5dev/cmake/Configure.cmake | 14 +++++++++++++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c757d2f5..ab1f4590 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,12 +5,7 @@ include( "r5dev/cmake/Configure.cmake" ) include( "r5dev/cmake/Macros.cmake" ) include( "r5dev/cmake/Options.cmake" ) -set( CMAKE_CXX_STANDARD 17 ) -set( CMAKE_CXX_STANDARD_REQUIRED True ) - -set( ENGINE_SOURCE_DIR ${CMAKE_SOURCE_DIR}/r5dev ) -set( GLOBAL_PCH ${ENGINE_SOURCE_DIR}/core/stdafx.h ) # Global precompiled header shared among all libraries - +initial_setup() define_compiler_variables() setup_build_configurations() apply_project_settings() diff --git a/r5dev/cmake/Configure.cmake b/r5dev/cmake/Configure.cmake index 78666953..01cfe616 100644 --- a/r5dev/cmake/Configure.cmake +++ b/r5dev/cmake/Configure.cmake @@ -1,7 +1,19 @@ +# ----------------------------------------------------------------------------- +# Initial setup for build system +# ----------------------------------------------------------------------------- +macro( initial_setup ) + set( CMAKE_CXX_STANDARD 17 ) + set( CMAKE_CXX_STANDARD_REQUIRED True ) + + set( ENGINE_SOURCE_DIR ${CMAKE_SOURCE_DIR}/r5dev ) + set( GLOBAL_PCH ${ENGINE_SOURCE_DIR}/core/stdafx.h ) # Global precompiled header shared among all libraries + + set_property( GLOBAL PROPERTY USE_FOLDERS ON ) # Use filters +endmacro() # ----------------------------------------------------------------------------- # Set global configuration types # ----------------------------------------------------------------------------- macro( setup_build_configurations ) -set( CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" CACHE STRING "" FORCE ) + set( CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" CACHE STRING "" FORCE ) endmacro() From 7a745a404a247bc08e8c2bffd93ffe1f0f2e24d4 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Thu, 11 May 2023 23:50:57 +0200 Subject: [PATCH 07/52] Add CMake macro for adding modules Add macro for adding modules and setting all the properties at ones. --- r5dev/cmake/Macros.cmake | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/r5dev/cmake/Macros.cmake b/r5dev/cmake/Macros.cmake index 70a10ea4..1dafed42 100644 --- a/r5dev/cmake/Macros.cmake +++ b/r5dev/cmake/Macros.cmake @@ -38,6 +38,26 @@ macro( end_sources ) set_target_output_dirs( ${PROJECT_NAME} ) endmacro() +# ----------------------------------------------------------------------------- +# Add modules to the project +# ----------------------------------------------------------------------------- +macro( add_module MODULE_TYPE MODULE_NAME REUSE_PCH FOLDER_NAME ) + project( ${MODULE_NAME} ) + + if( ${MODULE_TYPE} STREQUAL "lib" ) + add_library( ${PROJECT_NAME} ) + elseif( ${MODULE_TYPE} STREQUAL "shared_lib" ) + add_library( ${PROJECT_NAME} SHARED ) + elseif(${MODULE_TYPE} STREQUAL "exe") + add_executable( ${PROJECT_NAME} ) + else() + message( FATAL_ERROR "Invalid module type: ${MODULE_TYPE}; expected 'lib', 'shared_lib', or 'exe'." ) + endif() + + target_precompile_headers( ${PROJECT_NAME} REUSE_FROM ${REUSE_PCH} ) + set_target_properties( ${MODULE_NAME} PROPERTIES FOLDER ${FOLDER_NAME} ) +endmacro( add_module ) + # ----------------------------------------------------------------------------- # Initialize global compiler defines # ----------------------------------------------------------------------------- From 8dbc2024c69bb441fea4f6e5ede85a4bf268b123 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 00:14:53 +0200 Subject: [PATCH 08/52] CMake code improvements Use the 'add_module' macro to add modules without creating duplicate code. This macro also takes a reuse PCH as parameter, so modules that need a precompiled header, could reuse those from different targets that compile them. This commit also restructures the group order of the generated solution files for easier code navigation. --- r5dev/CMakeLists.txt | 63 ++++++++++++++---------- r5dev/appframework/CMakeLists.txt | 5 +- r5dev/cmake/Macros.cmake | 7 ++- r5dev/codecs/CMakeLists.txt | 5 +- r5dev/core/CMakeLists.txt | 7 +-- r5dev/datacache/CMakeLists.txt | 5 +- r5dev/ebisusdk/CMakeLists.txt | 5 +- r5dev/engine/CMakeLists.txt | 5 +- r5dev/filesystem/CMakeLists.txt | 5 +- r5dev/game/CMakeLists.txt | 10 ++-- r5dev/gameui/CMakeLists.txt | 5 +- r5dev/inputsystem/CMakeLists.txt | 5 +- r5dev/launcher/CMakeLists.txt | 5 +- r5dev/localize/CMakeLists.txt | 5 +- r5dev/materialsystem/CMakeLists.txt | 5 +- r5dev/mathlib/CMakeLists.txt | 4 +- r5dev/naveditor/CMakeLists.txt | 4 +- r5dev/netconsole/CMakeLists.txt | 5 +- r5dev/networksystem/CMakeLists.txt | 5 +- r5dev/pluginsdk/CMakeLists.txt | 6 +-- r5dev/pluginsystem/CMakeLists.txt | 5 +- r5dev/protoc/CMakeLists.txt | 5 +- r5dev/rtech/CMakeLists.txt | 5 +- r5dev/sdklauncher/CMakeLists.txt | 9 ++-- r5dev/thirdparty/cppnet/CMakeLists.txt | 4 +- r5dev/thirdparty/curl/CMakeLists.txt | 4 +- r5dev/thirdparty/detours/CMakeLists.txt | 4 +- r5dev/thirdparty/fastlz/CMakeLists.txt | 4 +- r5dev/thirdparty/imgui/CMakeLists.txt | 4 +- r5dev/thirdparty/lzham/CMakeLists.txt | 4 +- r5dev/thirdparty/protobuf/CMakeLists.txt | 4 +- r5dev/thirdparty/recast/CMakeLists.txt | 19 ++----- r5dev/thirdparty/sdl/CMakeLists.txt | 4 +- r5dev/thirdparty/spdlog/CMakeLists.txt | 4 +- r5dev/tier0/CMakeLists.txt | 4 +- r5dev/tier1/CMakeLists.txt | 7 +-- r5dev/tier2/CMakeLists.txt | 5 +- r5dev/vgui/CMakeLists.txt | 5 +- r5dev/vguimatsurface/CMakeLists.txt | 5 +- r5dev/vpc/CMakeLists.txt | 4 +- r5dev/vphysics/CMakeLists.txt | 5 +- r5dev/vpklib/CMakeLists.txt | 5 +- r5dev/vscript/CMakeLists.txt | 5 +- r5dev/vstdlib/CMakeLists.txt | 6 +-- 44 files changed, 97 insertions(+), 199 deletions(-) diff --git a/r5dev/CMakeLists.txt b/r5dev/CMakeLists.txt index 82150530..4a71e52a 100644 --- a/r5dev/CMakeLists.txt +++ b/r5dev/CMakeLists.txt @@ -1,53 +1,64 @@ cmake_minimum_required( VERSION 3.16 ) project( sdk ) -add_subdirectory( vpc ) # Must be the first as this creates the shared PCH! +set( FOLDER_CONTEXT "Foundation" ) +add_subdirectory( vpc ) # VPC and Tier0 must be the first as this creates the shared PCH! add_subdirectory( tier0 ) add_subdirectory( tier1 ) add_subdirectory( tier2 ) +add_subdirectory( rtech ) +add_subdirectory( protoc ) +add_subdirectory( appframework ) + +set( FOLDER_CONTEXT "Libraries" ) +add_subdirectory( mathlib ) add_subdirectory( vpklib ) -add_subdirectory( vscript ) add_subdirectory( vstdlib ) add_subdirectory( vphysics ) +add_subdirectory( ebisusdk ) +add_subdirectory( codecs ) + +set( FOLDER_CONTEXT "UI" ) add_subdirectory( vguimatsurface ) add_subdirectory( vgui ) -add_subdirectory( thirdparty/detours ) +set( FOLDER_CONTEXT "Thirdparty" ) add_subdirectory( thirdparty/cppnet ) +add_subdirectory( thirdparty/curl ) +add_subdirectory( thirdparty/sdl ) +add_subdirectory( thirdparty/imgui ) +add_subdirectory( thirdparty/spdlog ) add_subdirectory( thirdparty/lzham ) add_subdirectory( thirdparty/fastlz ) -add_subdirectory( thirdparty/imgui ) -add_subdirectory( thirdparty/curl ) -add_subdirectory( thirdparty/protobuf ) -add_subdirectory( thirdparty/spdlog ) -add_subdirectory( thirdparty/sdl ) + +set( FOLDER_CONTEXT "Thirdparty/Recast" ) add_subdirectory( thirdparty/recast ) +set( FOLDER_CONTEXT "Thirdparty/Microsoft" ) +add_subdirectory( thirdparty/detours ) + +set( FOLDER_CONTEXT "Thirdparty/Google" ) +add_subdirectory( thirdparty/protobuf ) + +set( FOLDER_CONTEXT "Tools" ) add_subdirectory( sdklauncher ) -add_subdirectory( rtech ) -add_subdirectory( protoc ) - - -add_subdirectory( networksystem ) -add_subdirectory( pluginsystem ) -add_subdirectory( pluginsdk ) - -add_subdirectory( mathlib ) add_subdirectory( netconsole ) add_subdirectory( naveditor ) - +set( FOLDER_CONTEXT "System" ) +add_subdirectory( networksystem ) +add_subdirectory( pluginsystem ) add_subdirectory( materialsystem ) - -add_subdirectory( localize ) add_subdirectory( inputsystem ) -add_subdirectory( game ) - -add_subdirectory( datacache ) add_subdirectory( filesystem ) -add_subdirectory( ebisusdk ) -add_subdirectory( codecs ) +add_subdirectory( datacache ) +add_subdirectory( localize ) add_subdirectory( engine ) +set( FOLDER_CONTEXT "Plugins" ) +add_subdirectory( pluginsdk ) + +set( FOLDER_CONTEXT "Game" ) +add_subdirectory( vscript ) +add_subdirectory( game ) add_subdirectory( core ) -add_subdirectory( appframework ) diff --git a/r5dev/appframework/CMakeLists.txt b/r5dev/appframework/CMakeLists.txt index a2e34bae..a3607f9c 100644 --- a/r5dev/appframework/CMakeLists.txt +++ b/r5dev/appframework/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( appframework ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "appframework" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -15,4 +13,3 @@ add_sources( SOURCE_GROUP "Public" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/cmake/Macros.cmake b/r5dev/cmake/Macros.cmake index 1dafed42..528270c0 100644 --- a/r5dev/cmake/Macros.cmake +++ b/r5dev/cmake/Macros.cmake @@ -54,9 +54,12 @@ macro( add_module MODULE_TYPE MODULE_NAME REUSE_PCH FOLDER_NAME ) message( FATAL_ERROR "Invalid module type: ${MODULE_TYPE}; expected 'lib', 'shared_lib', or 'exe'." ) endif() - target_precompile_headers( ${PROJECT_NAME} REUSE_FROM ${REUSE_PCH} ) + if ( NOT "${REUSE_PCH}" STREQUAL "" ) + target_precompile_headers( ${PROJECT_NAME} REUSE_FROM ${REUSE_PCH} ) + endif() + set_target_properties( ${MODULE_NAME} PROPERTIES FOLDER ${FOLDER_NAME} ) -endmacro( add_module ) +endmacro() # ----------------------------------------------------------------------------- # Initialize global compiler defines diff --git a/r5dev/codecs/CMakeLists.txt b/r5dev/codecs/CMakeLists.txt index 97e147b1..5454dd5c 100644 --- a/r5dev/codecs/CMakeLists.txt +++ b/r5dev/codecs/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( codecs ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "codecs" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -20,4 +18,3 @@ add_sources( SOURCE_GROUP "Miles" end_sources() target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/core/CMakeLists.txt b/r5dev/core/CMakeLists.txt index 39f1ecc5..81e6eae7 100644 --- a/r5dev/core/CMakeLists.txt +++ b/r5dev/core/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( gamesdk ) -add_library( ${PROJECT_NAME} SHARED ) +add_module( "shared_lib" "gamesdk" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -60,7 +58,7 @@ target_link_libraries( ${PROJECT_NAME} PRIVATE "localize" - "gamedll" + "game" "engine" @@ -81,4 +79,3 @@ end_sources() target_compile_definitions( ${PROJECT_NAME} PRIVATE "GAMESDK" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/datacache/CMakeLists.txt b/r5dev/datacache/CMakeLists.txt index 53726f62..f00f19dd 100644 --- a/r5dev/datacache/CMakeLists.txt +++ b/r5dev/datacache/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( datacache ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "datacache" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -18,4 +16,3 @@ add_sources( SOURCE_GROUP "Public" end_sources() target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/ebisusdk/CMakeLists.txt b/r5dev/ebisusdk/CMakeLists.txt index a63a098a..46b5b35b 100644 --- a/r5dev/ebisusdk/CMakeLists.txt +++ b/r5dev/ebisusdk/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( EbisuSDK ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "EbisuSDK" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -17,4 +15,3 @@ add_sources( SOURCE_GROUP "Public" end_sources() target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/engine/CMakeLists.txt b/r5dev/engine/CMakeLists.txt index fae36e4b..c160cf7f 100644 --- a/r5dev/engine/CMakeLists.txt +++ b/r5dev/engine/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( engine ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "engine" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -170,4 +168,3 @@ add_sources( SOURCE_GROUP "Common" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/filesystem/CMakeLists.txt b/r5dev/filesystem/CMakeLists.txt index 32ae48ac..67b81271 100644 --- a/r5dev/filesystem/CMakeLists.txt +++ b/r5dev/filesystem/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( filesystem ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "filesystem" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -20,4 +18,3 @@ add_sources( SOURCE_GROUP "Public" end_sources() target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/game/CMakeLists.txt b/r5dev/game/CMakeLists.txt index 3ecfd590..a759de54 100644 --- a/r5dev/game/CMakeLists.txt +++ b/r5dev/game/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( gamedll ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "game" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -75,5 +73,7 @@ add_sources( SOURCE_GROUP "Client" end_sources() -target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) +target_include_directories( ${PROJECT_NAME} PRIVATE + "${ENGINE_SOURCE_DIR}/tier0/" + "${ENGINE_SOURCE_DIR}/tier1/" +) diff --git a/r5dev/gameui/CMakeLists.txt b/r5dev/gameui/CMakeLists.txt index 7af5810d..05764f98 100644 --- a/r5dev/gameui/CMakeLists.txt +++ b/r5dev/gameui/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( gameui ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "gameui" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -15,4 +13,3 @@ add_sources( SOURCE_GROUP "Core" end_sources() target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/inputsystem/CMakeLists.txt b/r5dev/inputsystem/CMakeLists.txt index 1932f7cc..b608b3e9 100644 --- a/r5dev/inputsystem/CMakeLists.txt +++ b/r5dev/inputsystem/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( inputsystem ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "inputsystem" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -15,4 +13,3 @@ add_sources( SOURCE_GROUP "Public" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/launcher/CMakeLists.txt b/r5dev/launcher/CMakeLists.txt index 1b9d633a..4eb77760 100644 --- a/r5dev/launcher/CMakeLists.txt +++ b/r5dev/launcher/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( launcher ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "launcher" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -14,4 +12,3 @@ add_sources( SOURCE_GROUP "Core" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/localize/CMakeLists.txt b/r5dev/localize/CMakeLists.txt index 8ff3adfd..b18d30f6 100644 --- a/r5dev/localize/CMakeLists.txt +++ b/r5dev/localize/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( localize ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "localize" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -11,4 +9,3 @@ add_sources( SOURCE_GROUP "Core" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/materialsystem/CMakeLists.txt b/r5dev/materialsystem/CMakeLists.txt index 715121d1..0936e7a4 100644 --- a/r5dev/materialsystem/CMakeLists.txt +++ b/r5dev/materialsystem/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( materialsystem ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "materialsystem" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -15,4 +13,3 @@ add_sources( SOURCE_GROUP "Core" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/mathlib/CMakeLists.txt b/r5dev/mathlib/CMakeLists.txt index b868d2bd..7891c210 100644 --- a/r5dev/mathlib/CMakeLists.txt +++ b/r5dev/mathlib/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( mathlib ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "mathlib" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/naveditor/CMakeLists.txt b/r5dev/naveditor/CMakeLists.txt index 47da6cf3..afe430ab 100644 --- a/r5dev/naveditor/CMakeLists.txt +++ b/r5dev/naveditor/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( naveditor ) -add_executable( ${PROJECT_NAME} ) +add_module( "exe" "naveditor" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/netconsole/CMakeLists.txt b/r5dev/netconsole/CMakeLists.txt index c4f70ee7..449cf9c0 100644 --- a/r5dev/netconsole/CMakeLists.txt +++ b/r5dev/netconsole/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( netconsole ) -add_executable( ${PROJECT_NAME} ) +add_module( "exe" "netconsole" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -12,7 +10,6 @@ add_sources( SOURCE_GROUP "Core" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) set_target_properties( ${PROJECT_NAME} PROPERTIES OUTPUT_NAME "netcon32" ) target_link_libraries( ${PROJECT_NAME} PRIVATE diff --git a/r5dev/networksystem/CMakeLists.txt b/r5dev/networksystem/CMakeLists.txt index a2440408..c3247e0d 100644 --- a/r5dev/networksystem/CMakeLists.txt +++ b/r5dev/networksystem/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( networksystem ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "networksystem" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -17,4 +15,3 @@ add_sources( SOURCE_GROUP "Core" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/pluginsdk/CMakeLists.txt b/r5dev/pluginsdk/CMakeLists.txt index 3f83fe13..0f6a702a 100644 --- a/r5dev/pluginsdk/CMakeLists.txt +++ b/r5dev/pluginsdk/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( PluginSDK ) -add_library( ${PROJECT_NAME} SHARED ) +add_module( "shared_lib" "PluginSDK" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -14,8 +12,6 @@ add_sources( SOURCE_GROUP "Core" end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) - target_link_libraries( ${PROJECT_NAME} PRIVATE "tier0" "libdetours" diff --git a/r5dev/pluginsystem/CMakeLists.txt b/r5dev/pluginsystem/CMakeLists.txt index a05634e2..357cffe7 100644 --- a/r5dev/pluginsystem/CMakeLists.txt +++ b/r5dev/pluginsystem/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( pluginsystem ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "pluginsystem" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -14,4 +12,3 @@ add_sources( SOURCE_GROUP "Core" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/protoc/CMakeLists.txt b/r5dev/protoc/CMakeLists.txt index 2caeb433..d71d771f 100644 --- a/r5dev/protoc/CMakeLists.txt +++ b/r5dev/protoc/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( protocol_pb ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "protocol_pb" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -18,4 +16,3 @@ add_sources( SOURCE_GROUP "SigCache" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/rtech/CMakeLists.txt b/r5dev/rtech/CMakeLists.txt index d8a8f865..5df7a6bd 100644 --- a/r5dev/rtech/CMakeLists.txt +++ b/r5dev/rtech/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( rtech ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "rtech" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -23,4 +21,3 @@ add_sources( SOURCE_GROUP "Stryder" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/sdklauncher/CMakeLists.txt b/r5dev/sdklauncher/CMakeLists.txt index 0fe012e0..c0439874 100644 --- a/r5dev/sdklauncher/CMakeLists.txt +++ b/r5dev/sdklauncher/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( sdklauncher ) -add_executable( ${PROJECT_NAME} ) +add_module( "exe" "sdklauncher" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -23,10 +21,9 @@ add_sources( SOURCE_GROUP "Resource" end_sources() -target_compile_definitions( ${PROJECT_NAME} PRIVATE SDKLAUNCHER ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) - set_target_properties( ${PROJECT_NAME} PROPERTIES OUTPUT_NAME "launcher" ) + +target_compile_definitions( ${PROJECT_NAME} PRIVATE SDKLAUNCHER ) target_link_libraries( ${PROJECT_NAME} PRIVATE "tier0" "libdetours" diff --git a/r5dev/thirdparty/cppnet/CMakeLists.txt b/r5dev/thirdparty/cppnet/CMakeLists.txt index bc238b42..19d0d409 100644 --- a/r5dev/thirdparty/cppnet/CMakeLists.txt +++ b/r5dev/thirdparty/cppnet/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libcppkore ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libcppkore" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/curl/CMakeLists.txt b/r5dev/thirdparty/curl/CMakeLists.txt index ad3a93b1..93f0bba6 100644 --- a/r5dev/thirdparty/curl/CMakeLists.txt +++ b/r5dev/thirdparty/curl/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libcurl ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libcurl" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/detours/CMakeLists.txt b/r5dev/thirdparty/detours/CMakeLists.txt index 760c2e1f..b90ae810 100644 --- a/r5dev/thirdparty/detours/CMakeLists.txt +++ b/r5dev/thirdparty/detours/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libdetours ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libdetours" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/fastlz/CMakeLists.txt b/r5dev/thirdparty/fastlz/CMakeLists.txt index 715b78e5..6bcd7b18 100644 --- a/r5dev/thirdparty/fastlz/CMakeLists.txt +++ b/r5dev/thirdparty/fastlz/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( FastLZ ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "FastLZ" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/imgui/CMakeLists.txt b/r5dev/thirdparty/imgui/CMakeLists.txt index 416ef1ce..3d015a20 100644 --- a/r5dev/thirdparty/imgui/CMakeLists.txt +++ b/r5dev/thirdparty/imgui/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libimgui ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libimgui" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/lzham/CMakeLists.txt b/r5dev/thirdparty/lzham/CMakeLists.txt index 3a21b701..a79dc5d8 100644 --- a/r5dev/thirdparty/lzham/CMakeLists.txt +++ b/r5dev/thirdparty/lzham/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( liblzham ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "liblzham" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/protobuf/CMakeLists.txt b/r5dev/thirdparty/protobuf/CMakeLists.txt index 6bfa2fba..1ab284c7 100644 --- a/r5dev/thirdparty/protobuf/CMakeLists.txt +++ b/r5dev/thirdparty/protobuf/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libprotobuf ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libprotobuf" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/recast/CMakeLists.txt b/r5dev/thirdparty/recast/CMakeLists.txt index 1b55525b..599bd579 100644 --- a/r5dev/thirdparty/recast/CMakeLists.txt +++ b/r5dev/thirdparty/recast/CMakeLists.txt @@ -3,8 +3,7 @@ cmake_minimum_required( VERSION 3.16 ) # ----------------------------------------------------------------------------- # Recast & Detour debug utilities # ----------------------------------------------------------------------------- -project( navdebugutils ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "navdebugutils" "" ${FOLDER_CONTEXT} ) start_sources() @@ -28,8 +27,7 @@ target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) # ----------------------------------------------------------------------------- # Detour runtime # ----------------------------------------------------------------------------- -project( libdetour ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libdetour" "navdebugutils" ${FOLDER_CONTEXT} ) start_sources() @@ -56,13 +54,11 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) # ----------------------------------------------------------------------------- # Detour crowd # ----------------------------------------------------------------------------- -project( libdetourcrowd ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libdetourcrowd" "navdebugutils" ${FOLDER_CONTEXT} ) start_sources() @@ -87,13 +83,11 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) # ----------------------------------------------------------------------------- # Detour tile cache # ----------------------------------------------------------------------------- -project( libdetourtilecache ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libdetourtilecache" "navdebugutils" ${FOLDER_CONTEXT} ) start_sources() @@ -108,13 +102,11 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) # ----------------------------------------------------------------------------- # Recast runtime # ----------------------------------------------------------------------------- -project( librecast ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "librecast" "navdebugutils" ${FOLDER_CONTEXT} ) start_sources() @@ -139,4 +131,3 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) diff --git a/r5dev/thirdparty/sdl/CMakeLists.txt b/r5dev/thirdparty/sdl/CMakeLists.txt index 0ed47d7d..c701b860 100644 --- a/r5dev/thirdparty/sdl/CMakeLists.txt +++ b/r5dev/thirdparty/sdl/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libsdl2 ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libsdl2" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/spdlog/CMakeLists.txt b/r5dev/thirdparty/spdlog/CMakeLists.txt index abe6df75..a5626a84 100644 --- a/r5dev/thirdparty/spdlog/CMakeLists.txt +++ b/r5dev/thirdparty/spdlog/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libspdlog ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libspdlog" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/tier0/CMakeLists.txt b/r5dev/tier0/CMakeLists.txt index 599d58e5..8b6d3d7f 100644 --- a/r5dev/tier0/CMakeLists.txt +++ b/r5dev/tier0/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( tier0 ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "tier0" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/tier1/CMakeLists.txt b/r5dev/tier1/CMakeLists.txt index 0a5e9adf..7fbe1c68 100644 --- a/r5dev/tier1/CMakeLists.txt +++ b/r5dev/tier1/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( tier1 ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "tier1" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -14,7 +12,6 @@ add_sources( SOURCE_GROUP "Utility" "bitbuf.cpp" "generichash.cpp" "lzss.cpp" - "memstack.cpp" "splitstring.cpp" "stringpool.cpp" "strtools.cpp" @@ -57,5 +54,5 @@ add_sources( SOURCE_GROUP "Public" end_sources() +target_compile_definitions( ${PROJECT_NAME} PRIVATE "MEM_DEBUG_CLASSNAME" ) target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/tier2/CMakeLists.txt b/r5dev/tier2/CMakeLists.txt index a9c96a33..55554aa8 100644 --- a/r5dev/tier2/CMakeLists.txt +++ b/r5dev/tier2/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( tier2 ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "tier2" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -24,4 +22,3 @@ add_sources( SOURCE_GROUP "Public" end_sources() target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/vgui/CMakeLists.txt b/r5dev/vgui/CMakeLists.txt index 0292f3d1..3261e553 100644 --- a/r5dev/vgui/CMakeLists.txt +++ b/r5dev/vgui/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vgui ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vgui" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -16,4 +14,3 @@ add_sources( SOURCE_GROUP "Runtime" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vguimatsurface/CMakeLists.txt b/r5dev/vguimatsurface/CMakeLists.txt index a68eee4f..d1f8eb18 100644 --- a/r5dev/vguimatsurface/CMakeLists.txt +++ b/r5dev/vguimatsurface/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vguimatsurface ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vguimatsurface" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -11,4 +9,3 @@ add_sources( SOURCE_GROUP "Private" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vpc/CMakeLists.txt b/r5dev/vpc/CMakeLists.txt index f89a5fcb..6862bd9c 100644 --- a/r5dev/vpc/CMakeLists.txt +++ b/r5dev/vpc/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vpc ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vpc" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/vphysics/CMakeLists.txt b/r5dev/vphysics/CMakeLists.txt index 1f7ec7f1..b3b85bbf 100644 --- a/r5dev/vphysics/CMakeLists.txt +++ b/r5dev/vphysics/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vphysics ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vphysics" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -18,4 +16,3 @@ add_sources( SOURCE_GROUP "Public" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vpklib/CMakeLists.txt b/r5dev/vpklib/CMakeLists.txt index f83ad8ff..f85dd2e8 100644 --- a/r5dev/vpklib/CMakeLists.txt +++ b/r5dev/vpklib/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vpklib ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vpklib" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -15,4 +13,3 @@ add_sources( SOURCE_GROUP "Public" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vscript/CMakeLists.txt b/r5dev/vscript/CMakeLists.txt index e85f8a39..949d5055 100644 --- a/r5dev/vscript/CMakeLists.txt +++ b/r5dev/vscript/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vscript ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vscript" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -28,4 +26,3 @@ add_sources( SOURCE_GROUP "Public" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vstdlib/CMakeLists.txt b/r5dev/vstdlib/CMakeLists.txt index 23293be8..1017f3be 100644 --- a/r5dev/vstdlib/CMakeLists.txt +++ b/r5dev/vstdlib/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vstdlib ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vstdlib" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -16,7 +14,7 @@ add_sources( SOURCE_GROUP "Private" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) + target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" From 7419170b635e1070e026a09008354b0374f265ba Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 00:15:53 +0200 Subject: [PATCH 09/52] Add batch file for creating solutions --- CreateSolution.bat | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 CreateSolution.bat diff --git a/CreateSolution.bat b/CreateSolution.bat new file mode 100644 index 00000000..4b3f5d00 --- /dev/null +++ b/CreateSolution.bat @@ -0,0 +1,13 @@ +@echo off +set CMAKE_GENERATOR=Visual Studio 16 2019 +set BUILDDIR=build_intermediate + +if not exist "%BUILDDIR%" ( + mkdir "%BUILDDIR%" +) + +cd "%BUILDDIR%" +cmake .. -G"%CMAKE_GENERATOR%" +cd .. + +echo Finished generating solution files. From dcb22a5a13bfa1ae8b7bc31e18bef4d0bd33fb37 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 01:49:31 +0200 Subject: [PATCH 10/52] Fix code crash caused by missing resource file Crashes when the developer console gets invoked due to missing textures. --- r5dev/core/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/r5dev/core/CMakeLists.txt b/r5dev/core/CMakeLists.txt index 81e6eae7..1e20abf6 100644 --- a/r5dev/core/CMakeLists.txt +++ b/r5dev/core/CMakeLists.txt @@ -4,6 +4,7 @@ add_module( "shared_lib" "gamesdk" "vpc" ${FOLDER_CONTEXT} ) start_sources() add_sources( SOURCE_GROUP "Core" + "${ENGINE_SOURCE_DIR}/resource/r5dev.rc" "assert.h" "dllmain.cpp" "init.cpp" From d7ef449e15956da2cc11fe6dc3e0e26c9d37b202 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 10:34:23 +0200 Subject: [PATCH 11/52] Split RTech libraries --- r5dev/CMakeLists.txt | 4 +++- r5dev/core/CMakeLists.txt | 5 ++++- r5dev/rtech/CMakeLists.txt | 25 +++++++++++++++++++++---- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/r5dev/CMakeLists.txt b/r5dev/CMakeLists.txt index 4a71e52a..0e10f6f9 100644 --- a/r5dev/CMakeLists.txt +++ b/r5dev/CMakeLists.txt @@ -6,7 +6,6 @@ add_subdirectory( vpc ) # VPC and Tier0 must be the first as this creates the sh add_subdirectory( tier0 ) add_subdirectory( tier1 ) add_subdirectory( tier2 ) -add_subdirectory( rtech ) add_subdirectory( protoc ) add_subdirectory( appframework ) @@ -22,6 +21,9 @@ set( FOLDER_CONTEXT "UI" ) add_subdirectory( vguimatsurface ) add_subdirectory( vgui ) +set( FOLDER_CONTEXT "Respawn" ) +add_subdirectory( rtech ) + set( FOLDER_CONTEXT "Thirdparty" ) add_subdirectory( thirdparty/cppnet ) add_subdirectory( thirdparty/curl ) diff --git a/r5dev/core/CMakeLists.txt b/r5dev/core/CMakeLists.txt index 1e20abf6..fbb7a47f 100644 --- a/r5dev/core/CMakeLists.txt +++ b/r5dev/core/CMakeLists.txt @@ -34,7 +34,10 @@ target_link_libraries( ${PROJECT_NAME} PRIVATE "vpc" "vgui" - "rtech" + "rtech_tools" + "rtech_game" + "rui" + "stryder" "mathlib" diff --git a/r5dev/rtech/CMakeLists.txt b/r5dev/rtech/CMakeLists.txt index 5df7a6bd..6ec38877 100644 --- a/r5dev/rtech/CMakeLists.txt +++ b/r5dev/rtech/CMakeLists.txt @@ -1,21 +1,38 @@ cmake_minimum_required( VERSION 3.16 ) -add_module( "lib" "rtech" "vpc" ${FOLDER_CONTEXT} ) +add_module( "lib" "rtech_game" "vpc" ${FOLDER_CONTEXT} ) start_sources() -add_sources( SOURCE_GROUP "Private" +add_sources( SOURCE_GROUP "Source" "rtech_game.cpp" "rtech_game.h" +) + +end_sources() + +add_module( "lib" "rtech_tools" "vpc" ${FOLDER_CONTEXT} ) + +start_sources() + +add_sources( SOURCE_GROUP "Source" "rtech_utils.cpp" "rtech_utils.h" ) -add_sources( SOURCE_GROUP "RUI" +add_module( "lib" "rui" "vpc" ${FOLDER_CONTEXT} ) + +start_sources() + +add_sources( SOURCE_GROUP "Source" "rui/rui.cpp" "rui/rui.h" ) -add_sources( SOURCE_GROUP "Stryder" +add_module( "lib" "stryder" "vpc" ${FOLDER_CONTEXT} ) + +start_sources() + +add_sources( SOURCE_GROUP "Source" "stryder/stryder.cpp" "stryder/stryder.h" ) From 1ef573a9b2ec728a71b2aaf521293c1676cea6f2 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 10:35:05 +0200 Subject: [PATCH 12/52] Fix compile errors on Visual Studio 2017 Error: ''std::isdigit': no matching overloaded function found'. --- r5dev/core/shared_pch.h | 1 + 1 file changed, 1 insertion(+) diff --git a/r5dev/core/shared_pch.h b/r5dev/core/shared_pch.h index 1279d240..37792299 100644 --- a/r5dev/core/shared_pch.h +++ b/r5dev/core/shared_pch.h @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include From 5ba0beab408f39b534aa6075a12adb2dcd619be8 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 10:46:54 +0200 Subject: [PATCH 13/52] Set stack reserve size for GameSDK project Should match that of the game executable. --- r5dev/core/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/r5dev/core/CMakeLists.txt b/r5dev/core/CMakeLists.txt index fbb7a47f..cf06a8bd 100644 --- a/r5dev/core/CMakeLists.txt +++ b/r5dev/core/CMakeLists.txt @@ -83,3 +83,6 @@ end_sources() target_compile_definitions( ${PROJECT_NAME} PRIVATE "GAMESDK" ) +target_link_options( ${PROJECT_NAME} PRIVATE + "/STACK:8000000" # Match game executable stack reserve size +) From e5a455e7c781952c1f272af7eb1c160cc23a9ac6 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 11:57:57 +0200 Subject: [PATCH 14/52] Apply whole program optimization for certain targets Only applied to certain targets to prevent bombing compile times; other projects don't really benefit of this. --- r5dev/cmake/Macros.cmake | 12 ++++++++++++ r5dev/mathlib/CMakeLists.txt | 10 +++++++--- r5dev/thirdparty/fastlz/CMakeLists.txt | 1 + r5dev/thirdparty/lzham/CMakeLists.txt | 6 +++++- r5dev/thirdparty/recast/CMakeLists.txt | 10 +++++++++- r5dev/thirdparty/spdlog/CMakeLists.txt | 2 ++ 6 files changed, 36 insertions(+), 5 deletions(-) diff --git a/r5dev/cmake/Macros.cmake b/r5dev/cmake/Macros.cmake index 528270c0..bb064a47 100644 --- a/r5dev/cmake/Macros.cmake +++ b/r5dev/cmake/Macros.cmake @@ -75,3 +75,15 @@ macro( define_compiler_variables ) message( FATAL_ERROR "Unsupported compiler: ${CMAKE_CXX_COMPILER_ID}" ) endif() endmacro() + +# ----------------------------------------------------------------------------- +# Apply whole program optimization for this target in release ( !slow! ) +# ----------------------------------------------------------------------------- +macro( whole_program_optimization ) + target_compile_options( ${PROJECT_NAME} PRIVATE + $<$:/GL> + ) + target_link_options( ${PROJECT_NAME} PRIVATE + $<$:/LTCG> + ) +endmacro() diff --git a/r5dev/mathlib/CMakeLists.txt b/r5dev/mathlib/CMakeLists.txt index 7891c210..f94f7ea6 100644 --- a/r5dev/mathlib/CMakeLists.txt +++ b/r5dev/mathlib/CMakeLists.txt @@ -57,7 +57,11 @@ add_sources( SOURCE_GROUP "Math" ) end_sources() +whole_program_optimization() -# Setup precompiled header -target_precompile_headers( ${PROJECT_NAME} PRIVATE mathlib_pch.h ) -target_compile_definitions( ${PROJECT_NAME} PRIVATE -DBUILDING_MATHLIB ) +target_precompile_headers( ${PROJECT_NAME} PRIVATE + "mathlib_pch.h" +) +target_compile_definitions( ${PROJECT_NAME} PRIVATE + "BUILDING_MATHLIB" +) diff --git a/r5dev/thirdparty/fastlz/CMakeLists.txt b/r5dev/thirdparty/fastlz/CMakeLists.txt index 6bcd7b18..57779243 100644 --- a/r5dev/thirdparty/fastlz/CMakeLists.txt +++ b/r5dev/thirdparty/fastlz/CMakeLists.txt @@ -9,3 +9,4 @@ add_sources( SOURCE_GROUP "Core" ) end_sources() +whole_program_optimization() diff --git a/r5dev/thirdparty/lzham/CMakeLists.txt b/r5dev/thirdparty/lzham/CMakeLists.txt index a79dc5d8..0476a67b 100644 --- a/r5dev/thirdparty/lzham/CMakeLists.txt +++ b/r5dev/thirdparty/lzham/CMakeLists.txt @@ -65,4 +65,8 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() -target_compile_definitions( ${PROJECT_NAME} PRIVATE WIN32 ) +whole_program_optimization() + +target_compile_definitions( ${PROJECT_NAME} PRIVATE + "WIN32" +) diff --git a/r5dev/thirdparty/recast/CMakeLists.txt b/r5dev/thirdparty/recast/CMakeLists.txt index 599bd579..90a8d610 100644 --- a/r5dev/thirdparty/recast/CMakeLists.txt +++ b/r5dev/thirdparty/recast/CMakeLists.txt @@ -22,7 +22,11 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) +whole_program_optimization() + +target_precompile_headers( ${PROJECT_NAME} PRIVATE + "Pch.h" +) # ----------------------------------------------------------------------------- # Detour runtime @@ -54,6 +58,7 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() +whole_program_optimization() # ----------------------------------------------------------------------------- # Detour crowd @@ -83,6 +88,7 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() +whole_program_optimization() # ----------------------------------------------------------------------------- # Detour tile cache @@ -102,6 +108,7 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() +whole_program_optimization() # ----------------------------------------------------------------------------- # Recast runtime @@ -131,3 +138,4 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() +whole_program_optimization() diff --git a/r5dev/thirdparty/spdlog/CMakeLists.txt b/r5dev/thirdparty/spdlog/CMakeLists.txt index a5626a84..5cd8ae7b 100644 --- a/r5dev/thirdparty/spdlog/CMakeLists.txt +++ b/r5dev/thirdparty/spdlog/CMakeLists.txt @@ -132,6 +132,8 @@ add_sources( SOURCE_GROUP "Sinks" ) end_sources() +whole_program_optimization() + target_compile_definitions( ${PROJECT_NAME} PRIVATE "SPDLOG_COMPILED_LIB" "SPDLOG_NO_EXCEPTIONS" From fdfc0a748bf5afa307a504b59f5d6b46910158e7 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 12:10:32 +0200 Subject: [PATCH 15/52] Remove extraneous project --- r5dev/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/r5dev/CMakeLists.txt b/r5dev/CMakeLists.txt index 0e10f6f9..33ca6f05 100644 --- a/r5dev/CMakeLists.txt +++ b/r5dev/CMakeLists.txt @@ -1,5 +1,4 @@ cmake_minimum_required( VERSION 3.16 ) -project( sdk ) set( FOLDER_CONTEXT "Foundation" ) add_subdirectory( vpc ) # VPC and Tier0 must be the first as this creates the shared PCH! From f22504f09503727f02f52f8e24835d54f5cde545 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 12:11:02 +0200 Subject: [PATCH 16/52] Enable whole program optimization for naveditor Libs use them under the same PCH. --- r5dev/naveditor/CMakeLists.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/r5dev/naveditor/CMakeLists.txt b/r5dev/naveditor/CMakeLists.txt index afe430ab..60e1cccb 100644 --- a/r5dev/naveditor/CMakeLists.txt +++ b/r5dev/naveditor/CMakeLists.txt @@ -86,9 +86,14 @@ add_sources( SOURCE_GROUP "Utils/Include" ) end_sources() +whole_program_optimization() -target_compile_definitions( ${PROJECT_NAME} PRIVATE WIN32 ) -target_precompile_headers( ${PROJECT_NAME} PRIVATE ${ENGINE_SOURCE_DIR}/thirdparty/recast/Pch.h ) +target_compile_definitions( ${PROJECT_NAME} PRIVATE + "WIN32" +) +target_precompile_headers( ${PROJECT_NAME} PRIVATE + "${ENGINE_SOURCE_DIR}/thirdparty/recast/Pch.h" +) target_link_libraries( ${PROJECT_NAME} PRIVATE "navdebugutils" "libsdl2" From 7ef50395eb803f612b8fbd73172fed3e76f39343 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 14:02:16 +0200 Subject: [PATCH 17/52] Remove unused header file --- r5dev/tier1/NetAdr.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/r5dev/tier1/NetAdr.cpp b/r5dev/tier1/NetAdr.cpp index 1d5efe3b..7c5f3089 100644 --- a/r5dev/tier1/NetAdr.cpp +++ b/r5dev/tier1/NetAdr.cpp @@ -7,7 +7,6 @@ #include "tier0_pch.h" #include "tier1/NetAdr.h" #include "tier1/strtools.h" -#include "mathlib/swap.h" ////////////////////////////////////////////////////////////////////// // Constructors. From 84c43cffa8fc0874d3c5f803390d5913b7a70591 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 14:02:47 +0200 Subject: [PATCH 18/52] Properly setup netconsole CMakeLists --- r5dev/netconsole/CMakeLists.txt | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/r5dev/netconsole/CMakeLists.txt b/r5dev/netconsole/CMakeLists.txt index 449cf9c0..8712320d 100644 --- a/r5dev/netconsole/CMakeLists.txt +++ b/r5dev/netconsole/CMakeLists.txt @@ -7,17 +7,43 @@ add_sources( SOURCE_GROUP "Core" "netconsole.cpp" "netconsole.h" "plat_time.cpp" + "${ENGINE_SOURCE_DIR}/core/logdef.cpp" + "${ENGINE_SOURCE_DIR}/core/logdef.h" + "${ENGINE_SOURCE_DIR}/core/logger.cpp" + "${ENGINE_SOURCE_DIR}/core/logger.h" + "${ENGINE_SOURCE_DIR}/core/termutil.cpp" + "${ENGINE_SOURCE_DIR}/core/termutil.h" +) + +add_sources( SOURCE_GROUP "Engine" + "${ENGINE_SOURCE_DIR}/engine/net.cpp" + "${ENGINE_SOURCE_DIR}/engine/net.h" + "${ENGINE_SOURCE_DIR}/engine/shared/base_rcon.cpp" + "${ENGINE_SOURCE_DIR}/engine/shared/base_rcon.h" + "${ENGINE_SOURCE_DIR}/engine/shared/shared_rcon.cpp" + "${ENGINE_SOURCE_DIR}/engine/shared/shared_rcon.h" +) + +add_sources( SOURCE_GROUP "Windows" + "${ENGINE_SOURCE_DIR}/windows/console.cpp" + "${ENGINE_SOURCE_DIR}/Windows/console.h" ) end_sources() -set_target_properties( ${PROJECT_NAME} PROPERTIES OUTPUT_NAME "netcon32" ) +set_target_properties( ${PROJECT_NAME} PROPERTIES OUTPUT_NAME + "netcon32" +) +target_compile_definitions( ${PROJECT_NAME} PRIVATE + "NETCONSOLE" +) target_link_libraries( ${PROJECT_NAME} PRIVATE "tier0" + "tier1" + "tier2" "libprotobuf" "libspdlog" "protocol_pb" - "engine_ds" "Rpcrt4.lib" "ws2_32.lib" ) From 8b60300dcea0ccfa62dd77f6ba64630f6f664286 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 14:03:42 +0200 Subject: [PATCH 19/52] Guard mathlib debug globals Only compile when 'DEBUG_MATHLIB' is set. --- r5dev/mathlib/CMakeLists.txt | 1 + r5dev/mathlib/vector2d.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/r5dev/mathlib/CMakeLists.txt b/r5dev/mathlib/CMakeLists.txt index f94f7ea6..93fcdcf1 100644 --- a/r5dev/mathlib/CMakeLists.txt +++ b/r5dev/mathlib/CMakeLists.txt @@ -64,4 +64,5 @@ target_precompile_headers( ${PROJECT_NAME} PRIVATE ) target_compile_definitions( ${PROJECT_NAME} PRIVATE "BUILDING_MATHLIB" + $<$,$>:DEBUG_MATHLIB> ) diff --git a/r5dev/mathlib/vector2d.h b/r5dev/mathlib/vector2d.h index e051c396..dd1ed3ef 100644 --- a/r5dev/mathlib/vector2d.h +++ b/r5dev/mathlib/vector2d.h @@ -158,8 +158,10 @@ private: //----------------------------------------------------------------------------- +#ifdef DEBUG_MATHLIB const Vector2D vec2_origin(0, 0); const Vector2D vec2_invalid(FLT_MAX, FLT_MAX); +#endif // DEBUG_MATHLIB //----------------------------------------------------------------------------- // Vector2D related operations From 08384346bf925ba4b5df389bd68254913f91b6c4 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 14:04:13 +0200 Subject: [PATCH 20/52] Setup log callback sink for netconsole --- r5dev/core/dllmain.cpp | 2 +- r5dev/netconsole/netconsole.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/r5dev/core/dllmain.cpp b/r5dev/core/dllmain.cpp index 26e9577e..44e542ab 100644 --- a/r5dev/core/dllmain.cpp +++ b/r5dev/core/dllmain.cpp @@ -44,7 +44,7 @@ void Tier0_Init() #endif // !DEDICATED // Setup logger callback sink. - g_CoreMsgVCallback = EngineLoggerSink; + g_CoreMsgVCallback = &EngineLoggerSink; // Setup crash callback. g_CrashHandler->SetCrashCallback(&Crash_Callback); diff --git a/r5dev/netconsole/netconsole.cpp b/r5dev/netconsole/netconsole.cpp index 3da4fa80..07b36be0 100644 --- a/r5dev/netconsole/netconsole.cpp +++ b/r5dev/netconsole/netconsole.cpp @@ -6,6 +6,7 @@ #include "core/stdafx.h" #include "core/logdef.h" +#include "core/logger.h" #include "tier0/utility.h" #include "tier1/NetAdr.h" #include "tier2/socketcreator.h" @@ -40,6 +41,8 @@ CNetCon::~CNetCon(void) //----------------------------------------------------------------------------- bool CNetCon::Init(void) { + g_CoreMsgVCallback = &EngineLoggerSink; + WSAData wsaData; const int nError = ::WSAStartup(MAKEWORD(2, 2), &wsaData); From de02febdc0d3f247c0631e5fcd45cb34667a1ad8 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 14:05:08 +0200 Subject: [PATCH 21/52] Fix assert failure in netconsole caused by AddDetour Remove extraneous register call for detour callbacks. --- r5dev/thirdparty/detours/include/idetour.h | 1 - 1 file changed, 1 deletion(-) diff --git a/r5dev/thirdparty/detours/include/idetour.h b/r5dev/thirdparty/detours/include/idetour.h index 372443e1..40b5166c 100644 --- a/r5dev/thirdparty/detours/include/idetour.h +++ b/r5dev/thirdparty/detours/include/idetour.h @@ -42,5 +42,4 @@ inline std::size_t AddDetour(IDetour* pDetour) return g_DetourVector.size(); } -REGISTER(VDetour); #endif // IDETOUR_H From b94a9dcd7cb7bd9328cde63ae3b6a50b4edfc05c Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 17:48:00 +0200 Subject: [PATCH 22/52] Add dedicated server engine library Added to CMake projects. --- r5dev/engine/CMakeLists.txt | 42 ++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/r5dev/engine/CMakeLists.txt b/r5dev/engine/CMakeLists.txt index c160cf7f..c72715d6 100644 --- a/r5dev/engine/CMakeLists.txt +++ b/r5dev/engine/CMakeLists.txt @@ -1,5 +1,7 @@ cmake_minimum_required( VERSION 3.16 ) -add_module( "lib" "engine" "vpc" ${FOLDER_CONTEXT} ) + +macro( add_engine_project PROJECT_NAME ) +add_module( "lib" ${PROJECT_NAME} "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -18,11 +20,14 @@ add_sources( SOURCE_GROUP "Collision" "traceinit.h" ) +if( ${PROJECT_NAME} STREQUAL "engine" ) add_sources( SOURCE_GROUP "Debug" "debugoverlay.cpp" "debugoverlay.h" ) +endif() +if( ${PROJECT_NAME} STREQUAL "engine" ) add_sources( SOURCE_GROUP "Render" "gl_matsysiface.h" "gl_model_private.h" @@ -35,6 +40,7 @@ add_sources( SOURCE_GROUP "Render" "matsys_interface.cpp" "matsys_interface.h" ) +endif() add_sources( SOURCE_GROUP "Network" "datablock.h" @@ -75,16 +81,21 @@ add_sources( SOURCE_GROUP "System" "sys_dll2.h" "sys_engine.cpp" "sys_engine.h" - "sys_getmodes.cpp" - "sys_getmodes.h" - "sys_mainwind.cpp" - "sys_mainwind.h" "sys_utils.cpp" "sys_utils.h" "sdk_dll.cpp" "sdk_dll.h" ) +if( ${PROJECT_NAME} STREQUAL "engine" ) +add_sources( SOURCE_GROUP "System" + "sys_getmodes.cpp" + "sys_getmodes.h" + "sys_mainwind.cpp" + "sys_mainwind.h" +) +endif() + add_sources( SOURCE_GROUP "Server" "server/persistence.cpp" "server/persistence.h" @@ -108,22 +119,29 @@ add_sources( SOURCE_GROUP "Client" "client/cl_ents_parse.cpp" "client/cl_ents_parse.h" "client/cl_main.h" - "client/cl_rcon.cpp" - "client/cl_rcon.h" "client/client.cpp" "client/client.h" +) + +if( ${PROJECT_NAME} STREQUAL "engine" ) +add_sources( SOURCE_GROUP "Client" # Client only. "client/clientstate.cpp" "client/clientstate.h" + "client/cl_rcon.cpp" + "client/cl_rcon.h" "client/vengineclient_impl.cpp" "client/vengineclient_impl.h" ) +endif() +if( ${PROJECT_NAME} STREQUAL "engine" ) add_sources( SOURCE_GROUP "GameUI" "${ENGINE_SOURCE_DIR}/gameui/IBrowser.cpp" "${ENGINE_SOURCE_DIR}/gameui/IBrowser.h" "${ENGINE_SOURCE_DIR}/gameui/IConsole.cpp" "${ENGINE_SOURCE_DIR}/gameui/IConsole.h" ) +endif() add_sources( SOURCE_GROUP "Launcher" "${ENGINE_SOURCE_DIR}/launcher/launcher.cpp" @@ -168,3 +186,13 @@ add_sources( SOURCE_GROUP "Common" ) end_sources() + +if( ${PROJECT_NAME} STREQUAL "engine_ds" ) +target_compile_definitions( ${PROJECT_NAME} PRIVATE + "DEDICATED" +) +endif() +endmacro() + +add_engine_project( "engine" ) +add_engine_project( "engine_ds" ) From d9cc37914a1120ad7a4f01eed13bdb59fd54f988 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 17:48:19 +0200 Subject: [PATCH 23/52] Add server and client DLL to CMake projects --- r5dev/core/CMakeLists.txt | 137 +++++++++++++++++++++++++------------- 1 file changed, 89 insertions(+), 48 deletions(-) diff --git a/r5dev/core/CMakeLists.txt b/r5dev/core/CMakeLists.txt index cf06a8bd..74623422 100644 --- a/r5dev/core/CMakeLists.txt +++ b/r5dev/core/CMakeLists.txt @@ -1,10 +1,20 @@ cmake_minimum_required( VERSION 3.16 ) -add_module( "shared_lib" "gamesdk" "vpc" ${FOLDER_CONTEXT} ) +macro( add_sdk_project PROJECT_NAME ) +add_module( "shared_lib" ${PROJECT_NAME} "vpc" ${FOLDER_CONTEXT} ) start_sources() -add_sources( SOURCE_GROUP "Core" +if( NOT ${PROJECT_NAME} STREQUAL "dedicated" ) +file( GLOB PNG_SOURCES + "${ENGINE_SOURCE_DIR}/resource/png/*.png" +) +add_sources( SOURCE_GROUP "Resource" "${ENGINE_SOURCE_DIR}/resource/r5dev.rc" + "${PNG_SOURCES}" +) +endif() + +add_sources( SOURCE_GROUP "Core" "assert.h" "dllmain.cpp" "init.cpp" @@ -23,66 +33,97 @@ add_sources( SOURCE_GROUP "Core" ) target_link_libraries( ${PROJECT_NAME} PRIVATE - "tier0" - "tier1" - "tier2" - "vpklib" - "vscript" - "vstdlib" - "vphysics" - "vguimatsurface" - "vpc" - "vgui" - - "rtech_tools" - "rtech_game" - "rui" - "stryder" - - "mathlib" - - "libdetours" - "liblzham" - "libimgui" - "libcurl" - "libprotobuf" - "libspdlog" - "navdebugutils" - "libdetour" - "protocol_pb" - - "networksystem" - "pluginsystem" - "materialsystem" - "inputsystem" - "filesystem" - "datacache" - "EbisuSDK" - "codecs" - - "localize" - - "game" - - "engine" - - "appframework" - "advapi32.lib" "bcrypt.lib" "crypt32.lib" "dbghelp.lib" - "d3d11.lib" "wldap32.lib" "ws2_32.lib" "Rpcrt4.lib" + + "vpc" + "tier0" + "tier1" + "tier2" + "appframework" + + "vstdlib" + "vpklib" + "mathlib" + "protocol_pb" + "vphysics" + + "rtech_tools" + "rtech_game" + "stryder" + + "libdetours" + "liblzham" + "libcurl" + "libprotobuf" + "libspdlog" + + "networksystem" + "pluginsystem" +# "materialsystem" + "filesystem" + "datacache" + "EbisuSDK" + + "localize" + + "vscript" + "game" ) +if( NOT ${PROJECT_NAME} STREQUAL "client" ) +target_link_libraries( ${PROJECT_NAME} PRIVATE + "navdebugutils" + "libdetour" +) +endif() + +if( NOT ${PROJECT_NAME} STREQUAL "dedicated" ) +target_link_libraries( ${PROJECT_NAME} PRIVATE + "libimgui" + "codecs" + + "inputsystem" + + "vguimatsurface" + "vgui" + "rui" + + "engine" + "d3d11.lib" +) +else() +target_link_libraries( ${PROJECT_NAME} PRIVATE + "engine_ds" +) +endif() end_sources() +if( ${PROJECT_NAME} STREQUAL "gamesdk" ) target_compile_definitions( ${PROJECT_NAME} PRIVATE "GAMESDK" ) +elseif( ${PROJECT_NAME} STREQUAL "dedicated" ) +target_compile_definitions( ${PROJECT_NAME} PRIVATE + "DEDICATED" +) +elseif( ${PROJECT_NAME} STREQUAL "client" ) +target_compile_definitions( ${PROJECT_NAME} PRIVATE + "CLIENT_DLL" +) +endif() + target_link_options( ${PROJECT_NAME} PRIVATE "/STACK:8000000" # Match game executable stack reserve size ) + +endmacro() + +add_sdk_project( "gamesdk" ) +add_sdk_project( "dedicated" ) +add_sdk_project( "client" ) From 8d38de1ce0e12882d1b9f066d70e528f2670625b Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 18:03:48 +0200 Subject: [PATCH 24/52] Move client only code from rtech libraries Moved, and renamed to 'CreateTextureResource'. Reason for move was that the rtech libraries is used by server and client, and using this on dedicated requires linking directx libraries, as it has to be hooked (even when not used). Moved to client only code to avoid having to hook it. Material system is no longer linked to the dedicated server module, as nothing from it was getting used. --- r5dev/core/init.cpp | 3 +- r5dev/materialsystem/cmaterialsystem.h | 7 ++ r5dev/rtech/rtech_utils.cpp | 112 ---------------------- r5dev/rtech/rtech_utils.h | 31 +------ r5dev/vgui/vgui_debugpanel.cpp | 2 +- r5dev/windows/id3dx.cpp | 123 +++++++++++++++++++++++++ r5dev/windows/id3dx.h | 9 +- 7 files changed, 139 insertions(+), 148 deletions(-) diff --git a/r5dev/core/init.cpp b/r5dev/core/init.cpp index f4e0f616..6c134d1a 100644 --- a/r5dev/core/init.cpp +++ b/r5dev/core/init.cpp @@ -433,10 +433,9 @@ void DetourRegister() // Register detour classes to be searched and hooked. // StaticPropMgr REGISTER(VStaticPropMgr); +#ifndef DEDICATED // MaterialSystem REGISTER(VMaterialSystem); - -#ifndef DEDICATED REGISTER(VMaterialGlue); REGISTER(VShaderGlue); diff --git a/r5dev/materialsystem/cmaterialsystem.h b/r5dev/materialsystem/cmaterialsystem.h index d0bea309..fbb2691a 100644 --- a/r5dev/materialsystem/cmaterialsystem.h +++ b/r5dev/materialsystem/cmaterialsystem.h @@ -33,6 +33,9 @@ inline auto v_DispatchDrawCall = p_DispatchDrawCall.RCast(); #endif +inline CMemory p_GetStreamOverlay; +inline auto v_GetStreamOverlay = p_GetStreamOverlay.RCast(); + inline CMemory p_DrawStreamOverlay; inline auto v_DrawStreamOverlay = p_DrawStreamOverlay.RCast(); @@ -54,6 +57,7 @@ class VMaterialSystem : public IDetour LogFunAdr("CMaterialSystem::FindMaterialEx", p_CMaterialSystem__FindMaterialEx.GetPtr()); LogFunAdr("CMaterialSystem::GetScreenSize", p_CMaterialSystem_GetScreenSize.GetPtr()); LogFunAdr("CMaterialSystem::DispatchDrawCall", p_DispatchDrawCall.GetPtr()); + LogFunAdr("CMaterialSystem::GetStreamOverlay", p_GetStreamOverlay.GetPtr()); LogFunAdr("CMaterialSystem::DrawStreamOverlay", p_DrawStreamOverlay.GetPtr()); LogVarAdr("g_nTotalStreamingTextureMemory", reinterpret_cast(g_nTotalStreamingTextureMemory)); LogVarAdr("g_nUnfreeStreamingTextureMemory", reinterpret_cast(g_nUnfreeStreamingTextureMemory)); @@ -79,6 +83,9 @@ class VMaterialSystem : public IDetour p_DispatchDrawCall = g_GameDll.FindPatternSIMD("44 89 4C 24 ?? 44 89 44 24 ?? 48 89 4C 24 ?? 55 53 56"); v_DispatchDrawCall = p_DispatchDrawCall.RCast(); #endif + p_GetStreamOverlay = g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 80 7C 24 ?? ?? 0F 84 ?? ?? ?? ?? 48 89 9C 24 ?? ?? ?? ??").FollowNearCallSelf(); + v_GetStreamOverlay = p_GetStreamOverlay.RCast(); /*E8 ? ? ? ? 80 7C 24 ? ? 0F 84 ? ? ? ? 48 89 9C 24 ? ? ? ?*/ + p_DrawStreamOverlay = g_GameDll.FindPatternSIMD("41 56 B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 2B E0 C6 02 ??"); v_DrawStreamOverlay = p_DrawStreamOverlay.RCast(); // 41 56 B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 2B E0 C6 02 00 // #endif // !DEDICATED diff --git a/r5dev/rtech/rtech_utils.cpp b/r5dev/rtech/rtech_utils.cpp index c74823f7..f6eca39f 100644 --- a/r5dev/rtech/rtech_utils.cpp +++ b/r5dev/rtech/rtech_utils.cpp @@ -484,109 +484,6 @@ LABEL_69: return result; } -#if !defined(DEDICATED) - -#pragma warning( push ) -// Disable stack warning, tells us to move more data to the heap instead. Not really possible with 'initialData' here. Since its parallel processed. -// Also disable 6378, complains that there is no control path where it would use 'nullptr', if that happens 'Error' will be called though. -#pragma warning( disable : 6262 6387) -constexpr uint32_t ALIGNMENT_SIZE = 15; // Used by the game in CreateDXTexture. -//---------------------------------------------------------------------------------- -// Purpose: creates 2D texture and shader resource from textureHeader and imageData. -//---------------------------------------------------------------------------------- -void RTech::CreateDXTexture(TextureHeader_t* textureHeader, int64_t imageData) -{ - if (textureHeader->m_nDepth && !textureHeader->m_nHeight) // Return never gets hit. Maybe its some debug check? - return; - - __int64 initialData[4096]{}; - textureHeader->m_nTextureMipLevels = textureHeader->m_nPermanentMipCount; - - const int totalStreamedMips = textureHeader->m_nOptStreamedMipCount + textureHeader->m_nStreamedMipCount; - int mipLevel = textureHeader->m_nPermanentMipCount + totalStreamedMips; - if (mipLevel != totalStreamedMips) - { - do - { - --mipLevel; - if (textureHeader->m_nArraySize) - { - int mipWidth = 0; - if (textureHeader->m_nWidth >> mipLevel > 1) - mipWidth = (textureHeader->m_nWidth >> mipLevel) - 1; - - int mipHeight = 0; - if (textureHeader->m_nHeight >> mipLevel > 1) - mipHeight = (textureHeader->m_nHeight >> mipLevel) - 1; - - uint8_t x = s_pBytesPerPixel[textureHeader->m_nImageFormat].first; - uint8_t y = s_pBytesPerPixel[textureHeader->m_nImageFormat].second; - - uint32_t bppWidth = (y + mipWidth) >> (y >> 1); - uint32_t bppHeight = (y + mipHeight) >> (y >> 1); - uint32_t sliceWidth = x * (y >> (y >> 1)); - - uint32_t rowPitch = sliceWidth * bppWidth; - uint32_t slicePitch = x * bppWidth * bppHeight; - - uint32_t subResourceEntry = mipLevel; - for (int i = 0; i < textureHeader->m_nArraySize; i++) - { - uint32_t offsetCurrentResourceData = subResourceEntry << 4u; - - *(int64_t*)((uint8_t*)initialData + offsetCurrentResourceData) = imageData; - *(uint32_t*)((uint8_t*)&initialData[1] + offsetCurrentResourceData) = rowPitch; - *(uint32_t*)((uint8_t*)&initialData[1] + offsetCurrentResourceData + 4) = slicePitch; - - imageData += (slicePitch + ALIGNMENT_SIZE) & ~ALIGNMENT_SIZE; - subResourceEntry += textureHeader->m_nPermanentMipCount; - } - } - } while (mipLevel != totalStreamedMips); - } - - const DXGI_FORMAT dxgiFormat = g_TxtrAssetToDxgiFormat[textureHeader->m_nImageFormat]; // Get dxgi format - - D3D11_TEXTURE2D_DESC textureDesc{}; - textureDesc.Width = textureHeader->m_nWidth >> mipLevel; - textureDesc.Height = textureHeader->m_nHeight >> mipLevel; - textureDesc.MipLevels = textureHeader->m_nPermanentMipCount; - textureDesc.ArraySize = textureHeader->m_nArraySize; - textureDesc.Format = dxgiFormat; - textureDesc.SampleDesc.Count = 1; - textureDesc.SampleDesc.Quality = 0; - textureDesc.Usage = textureHeader->m_nCPUAccessFlag != 2 ? D3D11_USAGE_IMMUTABLE : D3D11_USAGE_DEFAULT; - textureDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE; - textureDesc.MiscFlags = 0; - - const uint32_t offsetStartResourceData = mipLevel << 4u; - const D3D11_SUBRESOURCE_DATA* subResData = (D3D11_SUBRESOURCE_DATA*)((uint8_t*)initialData + offsetStartResourceData); - const HRESULT createTextureRes = (*g_ppGameDevice)->CreateTexture2D(&textureDesc, subResData, &textureHeader->m_ppTexture); - if (createTextureRes < S_OK) - Error(eDLL_T::RTECH, EXIT_FAILURE, "Couldn't create texture \"%s\": error code = %08x\n", textureHeader->m_pDebugName, createTextureRes); - - D3D11_SHADER_RESOURCE_VIEW_DESC shaderResource{}; - shaderResource.Format = dxgiFormat; - shaderResource.Texture2D.MipLevels = textureHeader->m_nTextureMipLevels; - if (textureHeader->m_nArraySize > 1) // Do we have a texture array? - { - shaderResource.Texture2DArray.FirstArraySlice = 0; - shaderResource.Texture2DArray.ArraySize = textureHeader->m_nArraySize; - shaderResource.ViewDimension = D3D_SRV_DIMENSION_TEXTURE2DARRAY; - } - else - { - shaderResource.ViewDimension = D3D_SRV_DIMENSION_TEXTURE2D; - } - - const HRESULT createShaderResourceRes = (*g_ppGameDevice)->CreateShaderResourceView(textureHeader->m_ppTexture, &shaderResource, &textureHeader->m_ppShaderResourceView); - if (createShaderResourceRes < S_OK) - Error(eDLL_T::RTECH, EXIT_FAILURE, "Couldn't create shader resource view for texture \"%s\": error code = %08x\n", textureHeader->m_pDebugName, createShaderResourceRes); -} -#pragma warning( pop ) -#endif - -#ifndef DEDICATED //---------------------------------------------------------------------------------- // Purpose: start loading shader sets, assign vftable pointer //---------------------------------------------------------------------------------- @@ -595,7 +492,6 @@ void** RTech::LoadShaderSet(void** VTablePtr) *VTablePtr = &g_pShaderGlueVFTable; return &g_pShaderGlueVFTable; } -#endif //---------------------------------------------------------------------------------- // Purpose: open a file and add it to m_FileHandles. @@ -811,10 +707,6 @@ void V_RTechUtils::Attach() const #ifdef GAMEDLL_S3 DetourAttach(&RTech_Pak_ProcessGuidRelationsForAsset, &RTech::PakProcessGuidRelationsForAsset); #endif - -#if !defined (DEDICATED) && defined (GAMEDLL_S3) - DetourAttach(&RTech_CreateDXTexture, &RTech::CreateDXTexture); -#endif // !DEDICATED } void V_RTechUtils::Detach() const @@ -824,10 +716,6 @@ void V_RTechUtils::Detach() const #ifdef GAMEDLL_S3 DetourDetach(&RTech_Pak_ProcessGuidRelationsForAsset, &RTech::PakProcessGuidRelationsForAsset); #endif - -#if !defined (DEDICATED) && defined (GAMEDLL_S3) - DetourDetach(&RTech_CreateDXTexture, &RTech::CreateDXTexture); -#endif // !DEDICATED } /////////////////////////////////////////////////////////////////////////////// diff --git a/r5dev/rtech/rtech_utils.h b/r5dev/rtech/rtech_utils.h index d48855eb..d96fd35a 100644 --- a/r5dev/rtech/rtech_utils.h +++ b/r5dev/rtech/rtech_utils.h @@ -2,9 +2,7 @@ #include "tier0/jobthread.h" #include "vpklib/packedstore.h" #include "rtech/rtech_game.h" -#ifndef DEDICATED #include "public/rendersystem/schema/texture.g.h" -#endif // !DEDICATED #define PAK_MAX_TYPES 64 #define PAK_PARAM_SIZE 0xB0 @@ -376,14 +374,6 @@ static_assert(sizeof(RPakDecompState_t) == 136); static_assert(sizeof(RPakPatchCompressedHeader_t) == 16); /* ==== RTECH =========================================================================================================================================================== */ -#if !defined (DEDICATED) -inline CMemory p_RTech_CreateDXTexture; -inline auto RTech_CreateDXTexture = p_RTech_CreateDXTexture.RCast(); - -inline CMemory p_GetStreamOverlay; -inline auto GetStreamOverlay = p_GetStreamOverlay.RCast(); -#endif - // [ PIXIE ]: I'm very unsure about this, but it really seems like it inline CMemory p_RTech_FindFreeSlotInFiles; inline auto RTech_FindFreeSlotInFiles = p_RTech_FindFreeSlotInFiles.RCast(); @@ -431,10 +421,7 @@ public: static void PakProcessGuidRelationsForAsset(PakFile_t* pak, RPakAssetEntry_t* asset); #endif // GAMEDLL_S3 -#if !defined (DEDICATED) - static void CreateDXTexture(TextureHeader_t* textureHeader, int64_t cpuArg); void** LoadShaderSet(void** VTablePtr); -#endif // !DEDICATED }; /////////////////////////////////////////////////////////////////////////////// @@ -445,14 +432,9 @@ class V_RTechUtils : public IDetour { virtual void GetAdr(void) const { -#if !defined (DEDICATED) - LogFunAdr("RTech::CreateDXTexture", p_RTech_CreateDXTexture.GetPtr()); -#endif // !DEDICATED LogFunAdr("RTech::FindFreeSlotInFiles", p_RTech_FindFreeSlotInFiles.GetPtr()); LogFunAdr("RTech::OpenFile", p_RTech_OpenFile.GetPtr()); -#if !defined (DEDICATED) - LogFunAdr("GetStreamOverlay", p_GetStreamOverlay.GetPtr()); -#endif // !DEDICATED + LogFunAdr("StreamDB_Init", p_StreamDB_Init.GetPtr()); LogVarAdr("s_FileArray", reinterpret_cast(s_pFileArray)); LogVarAdr("s_FileArrayMutex", reinterpret_cast(s_pFileArrayMutex)); @@ -471,17 +453,6 @@ class V_RTechUtils : public IDetour } virtual void GetFun(void) const { -#if !defined (DEDICATED) -#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1) - p_RTech_CreateDXTexture = g_GameDll.FindPatternSIMD("48 8B C4 48 89 48 08 53 55 41 55"); - RTech_CreateDXTexture = p_RTech_CreateDXTexture.RCast(); /*48 8B C4 48 89 48 08 53 55 41 55*/ -#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3) - p_RTech_CreateDXTexture = g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 4C 8B C7 48 8B D5 48 8B CB 48 83 C4 60").FollowNearCallSelf(); - RTech_CreateDXTexture = p_RTech_CreateDXTexture.RCast(); /*E8 ? ? ? ? 4C 8B C7 48 8B D5 48 8B CB 48 83 C4 60*/ -#endif - p_GetStreamOverlay = g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 80 7C 24 ?? ?? 0F 84 ?? ?? ?? ?? 48 89 9C 24 ?? ?? ?? ??").FollowNearCallSelf(); - GetStreamOverlay = p_GetStreamOverlay.RCast(); /*E8 ? ? ? ? 80 7C 24 ? ? 0F 84 ? ? ? ? 48 89 9C 24 ? ? ? ?*/ -#endif // !DEDICATED p_StreamDB_Init = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 48 89 7C 24 ?? 41 54 41 56 41 57 48 83 EC 40 48 8B E9"); v_StreamDB_Init = p_StreamDB_Init.RCast(); /*48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 48 89 7C 24 ?? 41 54 41 56 41 57 48 83 EC 40 48 8B E9*/ diff --git a/r5dev/vgui/vgui_debugpanel.cpp b/r5dev/vgui/vgui_debugpanel.cpp index 5da52aeb..99e76259 100644 --- a/r5dev/vgui/vgui_debugpanel.cpp +++ b/r5dev/vgui/vgui_debugpanel.cpp @@ -247,7 +247,7 @@ void CTextOverlay::DrawStreamOverlay(void) const static char szLogbuf[4096]; static const Color c = { 255, 255, 255, 255 }; - GetStreamOverlay(stream_overlay_mode->GetString(), szLogbuf, sizeof(szLogbuf)); + v_GetStreamOverlay(stream_overlay_mode->GetString(), szLogbuf, sizeof(szLogbuf)); CMatSystemSurface_DrawColoredText(g_pMatSystemSurface, v_Rui_GetFontFace(), m_nFontHeight, 20, 300, c.r(), c.g(), c.b(), c.a(), "%s", szLogbuf); } diff --git a/r5dev/windows/id3dx.cpp b/r5dev/windows/id3dx.cpp index 9f2fc977..b3771552 100644 --- a/r5dev/windows/id3dx.cpp +++ b/r5dev/windows/id3dx.cpp @@ -11,6 +11,7 @@ #include "engine/sys_mainwind.h" #include "inputsystem/inputsystem.h" #include "public/bitmap/stb_image.h" +#include "public/rendersystem/schema/texture.g.h" /********************************************************************************** ----------------------------------------------------------------------------------- @@ -151,6 +152,102 @@ HRESULT __stdcall ResizeBuffers(IDXGISwapChain* pSwapChain, UINT nBufferCount, U // INTERNALS //################################################################################# +#pragma warning( push ) +// Disable stack warning, tells us to move more data to the heap instead. Not really possible with 'initialData' here. Since its parallel processed. +// Also disable 6378, complains that there is no control path where it would use 'nullptr', if that happens 'Error' will be called though. +#pragma warning( disable : 6262 6387) +constexpr uint32_t ALIGNMENT_SIZE = 15; // Creates 2D texture and shader resource from textureHeader and imageData. +void CreateTextureResource(TextureHeader_t* textureHeader, int64_t imageData) +{ + if (textureHeader->m_nDepth && !textureHeader->m_nHeight) // Return never gets hit. Maybe its some debug check? + return; + + __int64 initialData[4096]{}; + textureHeader->m_nTextureMipLevels = textureHeader->m_nPermanentMipCount; + + const int totalStreamedMips = textureHeader->m_nOptStreamedMipCount + textureHeader->m_nStreamedMipCount; + int mipLevel = textureHeader->m_nPermanentMipCount + totalStreamedMips; + if (mipLevel != totalStreamedMips) + { + do + { + --mipLevel; + if (textureHeader->m_nArraySize) + { + int mipWidth = 0; + if (textureHeader->m_nWidth >> mipLevel > 1) + mipWidth = (textureHeader->m_nWidth >> mipLevel) - 1; + + int mipHeight = 0; + if (textureHeader->m_nHeight >> mipLevel > 1) + mipHeight = (textureHeader->m_nHeight >> mipLevel) - 1; + + uint8_t x = s_pBytesPerPixel[textureHeader->m_nImageFormat].first; + uint8_t y = s_pBytesPerPixel[textureHeader->m_nImageFormat].second; + + uint32_t bppWidth = (y + mipWidth) >> (y >> 1); + uint32_t bppHeight = (y + mipHeight) >> (y >> 1); + uint32_t sliceWidth = x * (y >> (y >> 1)); + + uint32_t rowPitch = sliceWidth * bppWidth; + uint32_t slicePitch = x * bppWidth * bppHeight; + + uint32_t subResourceEntry = mipLevel; + for (int i = 0; i < textureHeader->m_nArraySize; i++) + { + uint32_t offsetCurrentResourceData = subResourceEntry << 4u; + + *(int64_t*)((uint8_t*)initialData + offsetCurrentResourceData) = imageData; + *(uint32_t*)((uint8_t*)&initialData[1] + offsetCurrentResourceData) = rowPitch; + *(uint32_t*)((uint8_t*)&initialData[1] + offsetCurrentResourceData + 4) = slicePitch; + + imageData += (slicePitch + ALIGNMENT_SIZE) & ~ALIGNMENT_SIZE; + subResourceEntry += textureHeader->m_nPermanentMipCount; + } + } + } while (mipLevel != totalStreamedMips); + } + + const DXGI_FORMAT dxgiFormat = g_TxtrAssetToDxgiFormat[textureHeader->m_nImageFormat]; // Get dxgi format + + D3D11_TEXTURE2D_DESC textureDesc{}; + textureDesc.Width = textureHeader->m_nWidth >> mipLevel; + textureDesc.Height = textureHeader->m_nHeight >> mipLevel; + textureDesc.MipLevels = textureHeader->m_nPermanentMipCount; + textureDesc.ArraySize = textureHeader->m_nArraySize; + textureDesc.Format = dxgiFormat; + textureDesc.SampleDesc.Count = 1; + textureDesc.SampleDesc.Quality = 0; + textureDesc.Usage = textureHeader->m_nCPUAccessFlag != 2 ? D3D11_USAGE_IMMUTABLE : D3D11_USAGE_DEFAULT; + textureDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE; + textureDesc.MiscFlags = 0; + + const uint32_t offsetStartResourceData = mipLevel << 4u; + const D3D11_SUBRESOURCE_DATA* subResData = (D3D11_SUBRESOURCE_DATA*)((uint8_t*)initialData + offsetStartResourceData); + const HRESULT createTextureRes = (*g_ppGameDevice)->CreateTexture2D(&textureDesc, subResData, &textureHeader->m_ppTexture); + if (createTextureRes < S_OK) + Error(eDLL_T::RTECH, EXIT_FAILURE, "Couldn't create texture \"%s\": error code = %08x\n", textureHeader->m_pDebugName, createTextureRes); + + D3D11_SHADER_RESOURCE_VIEW_DESC shaderResource{}; + shaderResource.Format = dxgiFormat; + shaderResource.Texture2D.MipLevels = textureHeader->m_nTextureMipLevels; + if (textureHeader->m_nArraySize > 1) // Do we have a texture array? + { + shaderResource.Texture2DArray.FirstArraySlice = 0; + shaderResource.Texture2DArray.ArraySize = textureHeader->m_nArraySize; + shaderResource.ViewDimension = D3D_SRV_DIMENSION_TEXTURE2DARRAY; + } + else + { + shaderResource.ViewDimension = D3D_SRV_DIMENSION_TEXTURE2D; + } + + const HRESULT createShaderResourceRes = (*g_ppGameDevice)->CreateShaderResourceView(textureHeader->m_ppTexture, &shaderResource, &textureHeader->m_ppShaderResourceView); + if (createShaderResourceRes < S_OK) + Error(eDLL_T::RTECH, EXIT_FAILURE, "Couldn't create shader resource view for texture \"%s\": error code = %08x\n", textureHeader->m_pDebugName, createShaderResourceRes); +} +#pragma warning( pop ) + bool LoadTextureBuffer(unsigned char* buffer, int len, ID3D11ShaderResourceView** out_srv, int* out_width, int* out_height) { // Load PNG buffer to a raw RGBA buffer @@ -295,11 +392,23 @@ void VDXGI::GetAdr(void) const { /////////////////////////////////////////////////////////////////////////////// LogFunAdr("IDXGISwapChain::Present", reinterpret_cast(s_fnSwapChainPresent)); + LogFunAdr("CreateTextureResource", p_CreateTextureResource.GetPtr()); LogVarAdr("g_pSwapChain", reinterpret_cast(g_ppSwapChain)); LogVarAdr("g_pGameDevice", reinterpret_cast(g_ppGameDevice)); LogVarAdr("g_pImmediateContext", reinterpret_cast(g_ppImmediateContext)); } +void VDXGI::GetFun(void) const +{ +#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1) + p_CreateTextureResource = g_GameDll.FindPatternSIMD("48 8B C4 48 89 48 08 53 55 41 55"); + v_CreateTextureResource = p_CreateTextureResource.RCast(); /*48 8B C4 48 89 48 08 53 55 41 55*/ +#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3) + p_CreateTextureResource = g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 4C 8B C7 48 8B D5 48 8B CB 48 83 C4 60").FollowNearCallSelf(); + v_CreateTextureResource = p_CreateTextureResource.RCast(); /*E8 ? ? ? ? 4C 8B C7 48 8B D5 48 8B CB 48 83 C4 60*/ +#endif +} + void VDXGI::GetVar(void) const { #if defined (GAMEDLL_S0) || defined (GAMEDLL_S1) @@ -316,4 +425,18 @@ void VDXGI::GetVar(void) const g_ppSwapChain = pBase.FindPattern("48 8B 0D").ResolveRelativeAddressSelf(0x3, 0x7).RCast(); } +void VDXGI::Attach(void) const +{ +#ifdef GAMEDLL_S3 + DetourAttach(&v_CreateTextureResource, &CreateTextureResource); +#endif // GAMEDLL_S3 +} + +void VDXGI::Detach(void) const +{ +#ifdef GAMEDLL_S3 + DetourDetach(&v_CreateTextureResource, &CreateTextureResource); +#endif // GAMEDLL_S3 +} + #endif // !DEDICATED diff --git a/r5dev/windows/id3dx.h b/r5dev/windows/id3dx.h index 82ab2c65..bdb6a8c0 100644 --- a/r5dev/windows/id3dx.h +++ b/r5dev/windows/id3dx.h @@ -10,7 +10,7 @@ void DirectX_Shutdown(); extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); extern HRESULT __stdcall Present(IDXGISwapChain* pSwapChain, UINT nSyncInterval, UINT nFlags); -//extern bool LoadTextureBuffer(unsigned char* image_data, const int& image_width, const int& image_height, ID3D11ShaderResourceView** out_srv); +extern void CreateTextureResource(TextureHeader_t* textureHeader, int64_t imageData); extern bool LoadTextureBuffer(unsigned char* buffer, int len, ID3D11ShaderResourceView** out_srv, int* out_width, int* out_height); extern void ResetInput(); @@ -21,6 +21,9 @@ extern bool PanelsVisible(); typedef HRESULT(__stdcall* IDXGISwapChainPresent)(IDXGISwapChain* pSwapChain, UINT nSyncInterval, UINT nFlags); typedef HRESULT(__stdcall* IDXGIResizeBuffers) (IDXGISwapChain* pSwapChain, UINT nBufferCount, UINT nWidth, UINT nHeight, DXGI_FORMAT dxFormat, UINT nSwapChainFlags); +inline CMemory p_CreateTextureResource; +inline auto v_CreateTextureResource = p_CreateTextureResource.RCast(); + ///////////////////////////////////////////////////////////////////////////// // Globals inline UINT g_nWindowRect[2]; @@ -117,8 +120,8 @@ class VDXGI : public IDetour virtual void GetFun(void) const { } virtual void GetVar(void) const; virtual void GetCon(void) const { } - virtual void Attach(void) const { } - virtual void Detach(void) const { } + virtual void Attach(void) const; + virtual void Detach(void) const; /////////////////////////////////////////////////////////////////////////////// }; #endif // !BUILDING_LIBIMGUI From 3a4ce7cf029d29cad3c396d9147490709f9907c7 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 18:04:30 +0200 Subject: [PATCH 25/52] Comment unused function pointer (NULL on dedi) Not getting used anywhere, and was NULL on dedi. --- r5dev/common/netmessages.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/r5dev/common/netmessages.h b/r5dev/common/netmessages.h index e418f36d..f6969270 100644 --- a/r5dev/common/netmessages.h +++ b/r5dev/common/netmessages.h @@ -27,7 +27,7 @@ class Base_CmdKeyValues; //------------------------------------------------------------------------- // MM_HEARTBEAT //------------------------------------------------------------------------- -inline CMemory MM_Heartbeat__ToString; // server HeartBeat? (baseserver.cpp). +//inline CMemory MM_Heartbeat__ToString; // server HeartBeat? (baseserver.cpp). //------------------------------------------------------------------------- // SVC_Print @@ -315,11 +315,11 @@ class V_NetMessages : public IDetour LogConAdr("SVC_ServerTick::`vftable'", reinterpret_cast(g_pSVC_ServerTick_VFTable)); LogConAdr("SVC_VoiceData::`vftable'", reinterpret_cast(g_pSVC_VoiceData_VFTable)); LogConAdr("Base_CmdKeyValues::`vftable'", reinterpret_cast(g_pBase_CmdKeyValues_VFTable)); - LogFunAdr("MM_Heartbeat::ToString", MM_Heartbeat__ToString.GetPtr()); + //LogFunAdr("MM_Heartbeat::ToString", MM_Heartbeat__ToString.GetPtr()); } virtual void GetFun(void) const { - MM_Heartbeat__ToString = g_GameDll.FindPatternSIMD("48 83 EC 38 E8 ?? ?? ?? ?? 3B 05 ?? ?? ?? ??"); + //MM_Heartbeat__ToString = g_GameDll.FindPatternSIMD("48 83 EC 38 E8 ?? ?? ?? ?? 3B 05 ?? ?? ?? ??"); // 48 83 EC 38 E8 ? ? ? ? 3B 05 ? ? ? ? } virtual void GetVar(void) const { } From ab3abce664339b2bbc63c06f3e6d058b039ce9ee Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 18:06:00 +0200 Subject: [PATCH 26/52] Remove preprocessor directives These preprocessor directives are invalid, as 'vscript' gets compiled as a standalone library. Compile everything (this doesn't cause an issue if its on the server or client). --- r5dev/vscript/vscript.cpp | 28 ++-------------------------- r5dev/vscript/vscript.h | 13 +------------ 2 files changed, 3 insertions(+), 38 deletions(-) diff --git a/r5dev/vscript/vscript.cpp b/r5dev/vscript/vscript.cpp index 5d6bbe6d..9691e29a 100644 --- a/r5dev/vscript/vscript.cpp +++ b/r5dev/vscript/vscript.cpp @@ -12,7 +12,6 @@ #include "game/shared/vscript_shared.h" #include "pluginsystem/modsystem.h" -#ifndef CLIENT_DLL //--------------------------------------------------------------------------------- // Purpose: registers script functions in SERVER context // Input : *s - @@ -40,9 +39,7 @@ void Script_RegisterServerFunctions(CSquirrelVM* s) s->RegisterFunction("IsDedicated", "Script_IsDedicated", "Returns whether this is a dedicated server", "bool", "", &VScriptCode::SERVER::IsDedicated); } -#endif // !CLIENT_DLL -#ifndef DEDICATED //--------------------------------------------------------------------------------- // Purpose: registers script functions in CLIENT context // Input : *s - @@ -94,7 +91,7 @@ void Script_RegisterUIFunctions(CSquirrelVM* s) s->RegisterFunction("GetHiddenServerName", "Script_GetHiddenServerName", "Gets hidden server name by token", "string", "string", &VScriptCode::UI::GetHiddenServerName); s->RegisterFunction("GetAvailableMaps", "Script_GetAvailableMaps", "Gets an array of all available maps", "array< string >", "", &VScriptCode::SHARED::GetAvailableMaps); s->RegisterFunction("GetAvailablePlaylists", "Script_GetAvailablePlaylists", "Gets an array of all available playlists", "array< string >", "", &VScriptCode::SHARED::GetAvailablePlaylists); -#ifndef CLIENT_DLL + s->RegisterFunction("KickPlayerByName", "Script_KickPlayerByName", "Kicks a player from the server by name", "void", "string", &VScriptCode::SHARED::KickPlayerByName); s->RegisterFunction("KickPlayerById", "Script_KickPlayerById", "Kicks a player from the server by handle or nucleus id", "void", "string", &VScriptCode::SHARED::KickPlayerById); @@ -102,11 +99,10 @@ void Script_RegisterUIFunctions(CSquirrelVM* s) s->RegisterFunction("BanPlayerById", "Script_BanPlayerById", "Bans a player from the server by handle or nucleus id", "void", "string", &VScriptCode::SHARED::BanPlayerById); s->RegisterFunction("UnbanPlayer", "Script_UnbanPlayer", "Unbans a player from the server by nucleus id or ip address", "void", "string", &VScriptCode::SHARED::UnbanPlayer); -#endif // !CLIENT_DLL + s->RegisterFunction("ShutdownHostGame", "Script_ShutdownHostGame", "Shuts the local host game down", "void", "", &VScriptCode::SHARED::ShutdownHostGame); s->RegisterFunction("IsClientDLL", "Script_IsClientDLL", "Returns whether this build is client only", "bool", "", &VScriptCode::SHARED::IsClientDLL); } -#endif // !DEDICATED //--------------------------------------------------------------------------------- // Purpose: Returns the script VM pointer by context @@ -116,16 +112,12 @@ CSquirrelVM* Script_GetScriptHandle(const SQCONTEXT context) { switch (context) { -#ifndef CLIENT_DLL case SQCONTEXT::SERVER: return g_pServerScript; -#endif // !CLIENT_DLL -#ifndef DEDICATED case SQCONTEXT::CLIENT: return g_pClientScript; case SQCONTEXT::UI: return g_pUIScript; -#endif // !DEDICATED default: return nullptr; } @@ -194,21 +186,17 @@ SQBool Script_PrecompileScripts(CSquirrelVM* vm) switch (context) { -#ifndef CLIENT_DLL case SQCONTEXT::SERVER: { result = v_Script_PrecompileServerScripts(vm); break; } -#endif -#ifndef DEDICATED case SQCONTEXT::CLIENT: case SQCONTEXT::UI: { result = v_Script_PrecompileClientScripts(vm); break; } -#endif } timer.End(); @@ -217,19 +205,15 @@ SQBool Script_PrecompileScripts(CSquirrelVM* vm) return result; } -#ifndef CLIENT_DLL SQBool Script_PrecompileServerScripts(CSquirrelVM* vm) { return Script_PrecompileScripts(g_pServerScript); } -#endif // !CLIENT_DLL -#ifndef DEDICATED SQBool Script_PrecompileClientScripts(CSquirrelVM* vm) { return Script_PrecompileScripts(vm); } -#endif // !DEDICATED //--------------------------------------------------------------------------------- // Purpose: Compiles and executes input code on target VM by context @@ -283,22 +267,14 @@ void VScript::Attach() const { DetourAttach((LPVOID*)&v_Script_LoadScriptList, &Script_LoadScriptList); DetourAttach((LPVOID*)&v_Script_LoadScriptFile, &Script_LoadScriptFile); -#ifndef CLIENT_DLL DetourAttach((LPVOID*)&v_Script_PrecompileServerScripts, &Script_PrecompileServerScripts); -#endif -#ifndef DEDICATED DetourAttach((LPVOID*)&v_Script_PrecompileClientScripts, &Script_PrecompileClientScripts); -#endif } //--------------------------------------------------------------------------------- void VScript::Detach() const { DetourDetach((LPVOID*)&v_Script_LoadScriptList, &Script_LoadScriptList); DetourDetach((LPVOID*)&v_Script_LoadScriptFile, &Script_LoadScriptFile); -#ifndef CLIENT_DLL DetourDetach((LPVOID*)&v_Script_PrecompileServerScripts, &Script_PrecompileServerScripts); -#endif -#ifndef DEDICATED DetourDetach((LPVOID*)&v_Script_PrecompileClientScripts, &Script_PrecompileClientScripts); -#endif } diff --git a/r5dev/vscript/vscript.h b/r5dev/vscript/vscript.h index 9d2a89f4..41f24a69 100644 --- a/r5dev/vscript/vscript.h +++ b/r5dev/vscript/vscript.h @@ -22,21 +22,17 @@ inline auto v_Script_LoadScriptFile = p_Script_LoadScriptFile.RCast(); -#ifndef CLIENT_DLL inline CMemory p_Script_PrecompileServerScripts; inline auto v_Script_PrecompileServerScripts = p_Script_PrecompileServerScripts.RCast(); inline CMemory p_Script_SetServerCompiler; inline auto v_Script_SetServerPrecompiler = p_Script_SetServerCompiler.RCast(); -#endif -#ifndef DEDICATED inline CMemory p_Script_PrecompileClientScripts; inline auto v_Script_PrecompileClientScripts = p_Script_PrecompileClientScripts.RCast(); inline CMemory p_Script_SetClientCompiler; inline auto v_Script_SetClientPrecompiler = p_Script_SetClientCompiler.RCast(); -#endif void Script_RegisterServerFunctions(CSquirrelVM* s); void Script_RegisterClientFunctions(CSquirrelVM* s); @@ -57,14 +53,10 @@ class VScript : public IDetour LogFunAdr("Script_LoadScriptList", p_Script_LoadScriptList.GetPtr()); LogFunAdr("Script_LoadScriptFile", p_Script_LoadScriptFile.GetPtr()); LogFunAdr("Script_ParseScriptList", p_Script_ParseScriptList.GetPtr()); -#ifndef CLIENT_DLL LogFunAdr("Script_PrecompileServerInit", p_Script_PrecompileServerScripts.GetPtr()); LogFunAdr("Script_SetServerCompiler", p_Script_SetServerCompiler.GetPtr()); -#endif // !CLIENT_DLL -#ifndef DEDICATED LogFunAdr("Script_PrecompileClientInit", p_Script_PrecompileClientScripts.GetPtr()); LogFunAdr("Script_SetClientCompiler", p_Script_SetClientCompiler.GetPtr()); -#endif // !DEDICATED } virtual void GetFun(void) const { @@ -77,20 +69,17 @@ class VScript : public IDetour #endif v_Script_LoadScriptFile = p_Script_LoadScriptFile.RCast(); -#ifndef CLIENT_DLL p_Script_PrecompileServerScripts = g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 33 DB 88 05 ?? ?? ?? ??").FollowNearCallSelf(); v_Script_PrecompileServerScripts = p_Script_PrecompileServerScripts.RCast(); p_Script_SetServerCompiler = g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 48 8D 84 24 ?? ?? ?? ?? 44 89 64 24 ?? 4C 89 64 24 ?? 4C 8D 8C 24 ?? ?? ?? ?? 4C 8B C5").FollowNearCallSelf(); v_Script_SetServerPrecompiler = p_Script_SetServerCompiler.RCast(); -#endif // !CLIENT_DLL -#ifndef DEDICATED + p_Script_PrecompileClientScripts = g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 88 05 ?? ?? ?? ?? 33 C0").FollowNearCallSelf(); v_Script_PrecompileClientScripts = p_Script_PrecompileClientScripts.RCast(); p_Script_SetClientCompiler = g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 48 8D 84 24 ?? ?? ?? ?? 44 89 64 24 ?? 4C 89 64 24 ?? 4C 8D 8C 24 ?? ?? ?? ?? 4C 8B C6").FollowNearCallSelf(); v_Script_SetClientPrecompiler = p_Script_SetClientCompiler.RCast(); -#endif // !DEDICATED p_Script_ParseScriptList = g_GameDll.FindPatternSIMD("4C 89 4C 24 ?? 55 41 56"); v_Script_ParseScriptList = p_Script_ParseScriptList.RCast(); From 04ed774c467eb7bac8ef5d9506d4f80ffa8c29bf Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 18:07:05 +0200 Subject: [PATCH 27/52] Swap preprocessor directive with global Since launcher does not get compiled with the engine, the dedicated check has to be performed using the global instead. --- r5dev/launcher/launcher.cpp | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/r5dev/launcher/launcher.cpp b/r5dev/launcher/launcher.cpp index b627a379..972ef01e 100644 --- a/r5dev/launcher/launcher.cpp +++ b/r5dev/launcher/launcher.cpp @@ -10,6 +10,7 @@ #include "tier0/commandline.h" #include "tier1/strtools.h" #include "launcher/launcher.h" +#include int HWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { @@ -74,20 +75,22 @@ void RemoveSpuriousGameParameters() // as all there are required to run the game with the game sdk. void AppendSDKParametersPreInit() { -#ifdef DEDICATED - CommandLine()->AppendParm("-collate", ""); - CommandLine()->AppendParm("-multiple", ""); - CommandLine()->AppendParm("-noorigin", ""); - CommandLine()->AppendParm("-nodiscord", ""); - CommandLine()->AppendParm("-noshaderapi", ""); - CommandLine()->AppendParm("-nobakedparticles", ""); - CommandLine()->AppendParm("-novid", ""); - CommandLine()->AppendParm("-nomenuvid", ""); - CommandLine()->AppendParm("-nosound", ""); - CommandLine()->AppendParm("-nomouse", ""); - CommandLine()->AppendParm("-nojoy", ""); - CommandLine()->AppendParm("-nosendtable", ""); -#endif + if (s_bIsDedicated) + { + CommandLine()->AppendParm("-collate", ""); + CommandLine()->AppendParm("-multiple", ""); + CommandLine()->AppendParm("-noorigin", ""); + CommandLine()->AppendParm("-nodiscord", ""); + CommandLine()->AppendParm("-noshaderapi", ""); + CommandLine()->AppendParm("-nobakedparticles", ""); + CommandLine()->AppendParm("-novid", ""); + CommandLine()->AppendParm("-nomenuvid", ""); + CommandLine()->AppendParm("-nosound", ""); + CommandLine()->AppendParm("-nomouse", ""); + CommandLine()->AppendParm("-nojoy", ""); + CommandLine()->AppendParm("-nosendtable", ""); + } + // Assume default configs if the game isn't launched with the SDKLauncher. if (!CommandLine()->FindParm("-launcher")) { From c96ca324c9fb582be4111a04678e8f12f8434f14 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 19:38:32 +0200 Subject: [PATCH 28/52] Set plugin stack reserve size Set it to that of the game exe. --- r5dev/pluginsdk/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/r5dev/pluginsdk/CMakeLists.txt b/r5dev/pluginsdk/CMakeLists.txt index 0f6a702a..20dddbf7 100644 --- a/r5dev/pluginsdk/CMakeLists.txt +++ b/r5dev/pluginsdk/CMakeLists.txt @@ -19,4 +19,8 @@ target_link_libraries( ${PROJECT_NAME} PRIVATE "liblzham" "protocol_pb" "Rpcrt4.lib" -) \ No newline at end of file +) + +target_link_options( ${PROJECT_NAME} PRIVATE + "/STACK:8000000" # Match game executable stack reserve size +) From 934819574bb677b244b9733e0c60bb94400c4ec3 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 19:39:17 +0200 Subject: [PATCH 29/52] Fix missing lib in GameSDK and ClientDLL Lib was commented, but should be part of the client only libs; moved. --- r5dev/core/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/r5dev/core/CMakeLists.txt b/r5dev/core/CMakeLists.txt index 74623422..6f6640db 100644 --- a/r5dev/core/CMakeLists.txt +++ b/r5dev/core/CMakeLists.txt @@ -65,7 +65,6 @@ target_link_libraries( ${PROJECT_NAME} PRIVATE "networksystem" "pluginsystem" -# "materialsystem" "filesystem" "datacache" "EbisuSDK" @@ -88,6 +87,7 @@ target_link_libraries( ${PROJECT_NAME} PRIVATE "codecs" "inputsystem" + "materialsystem" "vguimatsurface" "vgui" From 81182f078b2f8884e4dbff5f5046095977fcee73 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 19:39:53 +0200 Subject: [PATCH 30/52] Fix missing deref in launcher.cpp Pointer should be dereferenced. --- r5dev/launcher/launcher.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/r5dev/launcher/launcher.cpp b/r5dev/launcher/launcher.cpp index 972ef01e..1a1c072a 100644 --- a/r5dev/launcher/launcher.cpp +++ b/r5dev/launcher/launcher.cpp @@ -75,7 +75,7 @@ void RemoveSpuriousGameParameters() // as all there are required to run the game with the game sdk. void AppendSDKParametersPreInit() { - if (s_bIsDedicated) + if (*s_bIsDedicated) { CommandLine()->AppendParm("-collate", ""); CommandLine()->AppendParm("-multiple", ""); From e468fa1065eb82470bef258ee8017360356a39e7 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 19:40:41 +0200 Subject: [PATCH 31/52] Fix build errors caused by 'CreateTextureResource' Moved declarations to source file; this is currently only used by the engine. --- r5dev/windows/id3dx.cpp | 4 +++- r5dev/windows/id3dx.h | 6 +----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/r5dev/windows/id3dx.cpp b/r5dev/windows/id3dx.cpp index b3771552..77624426 100644 --- a/r5dev/windows/id3dx.cpp +++ b/r5dev/windows/id3dx.cpp @@ -156,8 +156,10 @@ HRESULT __stdcall ResizeBuffers(IDXGISwapChain* pSwapChain, UINT nBufferCount, U // Disable stack warning, tells us to move more data to the heap instead. Not really possible with 'initialData' here. Since its parallel processed. // Also disable 6378, complains that there is no control path where it would use 'nullptr', if that happens 'Error' will be called though. #pragma warning( disable : 6262 6387) +inline CMemory p_CreateTextureResource; +inline auto v_CreateTextureResource = p_CreateTextureResource.RCast(); constexpr uint32_t ALIGNMENT_SIZE = 15; // Creates 2D texture and shader resource from textureHeader and imageData. -void CreateTextureResource(TextureHeader_t* textureHeader, int64_t imageData) +void CreateTextureResource(TextureHeader_t* textureHeader, INT_PTR imageData) { if (textureHeader->m_nDepth && !textureHeader->m_nHeight) // Return never gets hit. Maybe its some debug check? return; diff --git a/r5dev/windows/id3dx.h b/r5dev/windows/id3dx.h index bdb6a8c0..a151837f 100644 --- a/r5dev/windows/id3dx.h +++ b/r5dev/windows/id3dx.h @@ -10,7 +10,6 @@ void DirectX_Shutdown(); extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); extern HRESULT __stdcall Present(IDXGISwapChain* pSwapChain, UINT nSyncInterval, UINT nFlags); -extern void CreateTextureResource(TextureHeader_t* textureHeader, int64_t imageData); extern bool LoadTextureBuffer(unsigned char* buffer, int len, ID3D11ShaderResourceView** out_srv, int* out_width, int* out_height); extern void ResetInput(); @@ -21,9 +20,6 @@ extern bool PanelsVisible(); typedef HRESULT(__stdcall* IDXGISwapChainPresent)(IDXGISwapChain* pSwapChain, UINT nSyncInterval, UINT nFlags); typedef HRESULT(__stdcall* IDXGIResizeBuffers) (IDXGISwapChain* pSwapChain, UINT nBufferCount, UINT nWidth, UINT nHeight, DXGI_FORMAT dxFormat, UINT nSwapChainFlags); -inline CMemory p_CreateTextureResource; -inline auto v_CreateTextureResource = p_CreateTextureResource.RCast(); - ///////////////////////////////////////////////////////////////////////////// // Globals inline UINT g_nWindowRect[2]; @@ -117,7 +113,7 @@ inline IDXGISwapChain** g_ppSwapChain = nullptr; class VDXGI : public IDetour { virtual void GetAdr(void) const; - virtual void GetFun(void) const { } + virtual void GetFun(void) const; virtual void GetVar(void) const; virtual void GetCon(void) const { } virtual void Attach(void) const; From 0c25246f91f4ccc6c9f5efb2b154021157d7f612 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 19:41:57 +0200 Subject: [PATCH 32/52] Check if dedicated using global Global instead of directive as the ebisusdk lib is used for both the server and client. Removed useless directives. --- r5dev/ebisusdk/EbisuSDK.cpp | 25 +++++++++++++------------ r5dev/ebisusdk/EbisuSDK.h | 4 ---- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/r5dev/ebisusdk/EbisuSDK.cpp b/r5dev/ebisusdk/EbisuSDK.cpp index 6beac029..92bcf9ec 100644 --- a/r5dev/ebisusdk/EbisuSDK.cpp +++ b/r5dev/ebisusdk/EbisuSDK.cpp @@ -1,17 +1,19 @@ #include "core/stdafx.h" #include "tier1/cvar.h" #include "ebisusdk/EbisuSDK.h" +#include "engine/server/sv_main.h" //----------------------------------------------------------------------------- // Purpose: sets the EbisuSDK globals for dedicated to satisfy command callbacks //----------------------------------------------------------------------------- void HEbisuSDK_Init() { -#ifdef DEDICATED - *g_EbisuSDKInit = true; // <- 1st EbisuSDK - *g_EbisuProfileInit = true; // <- 2nd EbisuSDK - *g_NucleusID = 9990000; // <- 3rd EbisuSDK -#endif // DEDICATED + if (*s_bIsDedicated) + { + *g_EbisuSDKInit = true; // <- 1st EbisuSDK + *g_EbisuProfileInit = true; // <- 2nd EbisuSDK + *g_NucleusID = 9990000; // <- 3rd EbisuSDK + } } //----------------------------------------------------------------------------- @@ -20,23 +22,23 @@ void HEbisuSDK_Init() //----------------------------------------------------------------------------- bool IsOriginInitialized() { -#ifndef DEDICATED - if ((!(*g_OriginErrorLevel) + if (*s_bIsDedicated) + { + return true; + } + else if ((!(*g_OriginErrorLevel) && (*g_EbisuSDKInit) && (*g_NucleusID) && (*g_EbisuProfileInit))) // && (*g_OriginAuthCode) // && (g_NucleusToken[0]))) -#endif // DEDICATED { return true; } -#ifndef DEDICATED + return false; -#endif // DEDICATED } -#ifndef CLIENT_DLL //----------------------------------------------------------------------------- // Purpose: validates if client's persona name meets EA's criteria // Input : *pszName - @@ -61,4 +63,3 @@ bool IsValidPersonaName(const char* pszName) size_t pos = strspn(pszName, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"); return pszName[pos] == '\0'; } -#endif // !CLIENT_DLL diff --git a/r5dev/ebisusdk/EbisuSDK.h b/r5dev/ebisusdk/EbisuSDK.h index 7db41a3c..f4aa50ae 100644 --- a/r5dev/ebisusdk/EbisuSDK.h +++ b/r5dev/ebisusdk/EbisuSDK.h @@ -1,6 +1,5 @@ #pragma once -//#ifdef DEDICATED inline CMemory p_EbisuSDK_Tier0_Init; inline auto EbisuSDK_Tier0_Init = p_EbisuSDK_Tier0_Init.RCast(); @@ -16,14 +15,11 @@ inline char* g_OriginAuthCode = nullptr; /*SIZE = 256*/ inline int* g_OriginErrorLevel = nullptr; inline bool* g_EbisuSDKInit = nullptr; inline bool* g_EbisuProfileInit = nullptr; -//#endif // DEDICATED /////////////////////////////////////////////////////////////////////////////// void HEbisuSDK_Init(); bool IsOriginInitialized(); -#ifndef CLIENT_DLL bool IsValidPersonaName(const char* pszName); -#endif // !CLIENT_DLL /////////////////////////////////////////////////////////////////////////////// class VEbisuSDK : public IDetour From 2fd62b70911d14d8c6ca9fd0301ff0f2e3a3ce0d Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 19:44:41 +0200 Subject: [PATCH 33/52] Enable LTCG for executables and shared libraries Enable Link Time Code Generation as some libraries are compiled using /GL (Whole Program Optimization) which requires the code generation to be delayed to link time. Not doing this will result in longer build times, as the linker has to terminate its progress if it links a library compiled with /GL, and restart this operation using /LTCG. --- r5dev/cmake/Macros.cmake | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/r5dev/cmake/Macros.cmake b/r5dev/cmake/Macros.cmake index bb064a47..e4ae03ca 100644 --- a/r5dev/cmake/Macros.cmake +++ b/r5dev/cmake/Macros.cmake @@ -48,8 +48,14 @@ macro( add_module MODULE_TYPE MODULE_NAME REUSE_PCH FOLDER_NAME ) add_library( ${PROJECT_NAME} ) elseif( ${MODULE_TYPE} STREQUAL "shared_lib" ) add_library( ${PROJECT_NAME} SHARED ) + target_link_options( ${PROJECT_NAME} PRIVATE + "$<$:/LTCG>" + ) elseif(${MODULE_TYPE} STREQUAL "exe") add_executable( ${PROJECT_NAME} ) + target_link_options( ${PROJECT_NAME} PRIVATE + "$<$:/LTCG>" + ) else() message( FATAL_ERROR "Invalid module type: ${MODULE_TYPE}; expected 'lib', 'shared_lib', or 'exe'." ) endif() @@ -83,7 +89,4 @@ macro( whole_program_optimization ) target_compile_options( ${PROJECT_NAME} PRIVATE $<$:/GL> ) - target_link_options( ${PROJECT_NAME} PRIVATE - $<$:/LTCG> - ) endmacro() From 67fb566dfbbb5888ffafe320eac2c6a794d3c520 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 20:03:42 +0200 Subject: [PATCH 34/52] Compile launcher as separate library again --- r5dev/CMakeLists.txt | 1 + r5dev/core/CMakeLists.txt | 1 + r5dev/engine/CMakeLists.txt | 8 -------- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/r5dev/CMakeLists.txt b/r5dev/CMakeLists.txt index 33ca6f05..cfc2ccd5 100644 --- a/r5dev/CMakeLists.txt +++ b/r5dev/CMakeLists.txt @@ -5,6 +5,7 @@ add_subdirectory( vpc ) # VPC and Tier0 must be the first as this creates the sh add_subdirectory( tier0 ) add_subdirectory( tier1 ) add_subdirectory( tier2 ) +add_subdirectory( launcher ) add_subdirectory( protoc ) add_subdirectory( appframework ) diff --git a/r5dev/core/CMakeLists.txt b/r5dev/core/CMakeLists.txt index 6f6640db..3ac7e2da 100644 --- a/r5dev/core/CMakeLists.txt +++ b/r5dev/core/CMakeLists.txt @@ -45,6 +45,7 @@ target_link_libraries( ${PROJECT_NAME} PRIVATE "tier0" "tier1" "tier2" + "launcher" "appframework" "vstdlib" diff --git a/r5dev/engine/CMakeLists.txt b/r5dev/engine/CMakeLists.txt index c72715d6..2a17f30d 100644 --- a/r5dev/engine/CMakeLists.txt +++ b/r5dev/engine/CMakeLists.txt @@ -143,14 +143,6 @@ add_sources( SOURCE_GROUP "GameUI" ) endif() -add_sources( SOURCE_GROUP "Launcher" - "${ENGINE_SOURCE_DIR}/launcher/launcher.cpp" - "${ENGINE_SOURCE_DIR}/launcher/launcher.h" - "${ENGINE_SOURCE_DIR}/launcher/launcherdefs.h" - "${ENGINE_SOURCE_DIR}/launcher/prx.cpp" - "${ENGINE_SOURCE_DIR}/launcher/prx.h" -) - add_sources( SOURCE_GROUP "Windows" "${ENGINE_SOURCE_DIR}/windows/console.cpp" "${ENGINE_SOURCE_DIR}/windows/console.h" From 44e08be6d9a1e5f2abb0575fab3e3ee5789bb8b4 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 20:04:11 +0200 Subject: [PATCH 35/52] Add missing library to PluginSDK PluginSDK also uses SpdLog for the logger callback sink. --- r5dev/pluginsdk/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/r5dev/pluginsdk/CMakeLists.txt b/r5dev/pluginsdk/CMakeLists.txt index 20dddbf7..ae53bdd0 100644 --- a/r5dev/pluginsdk/CMakeLists.txt +++ b/r5dev/pluginsdk/CMakeLists.txt @@ -17,6 +17,7 @@ target_link_libraries( ${PROJECT_NAME} PRIVATE "libdetours" "libprotobuf" "liblzham" + "libspdlog" "protocol_pb" "Rpcrt4.lib" ) From 904976e4f55465508c877ad6c835e7651302b85b Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 22:54:15 +0200 Subject: [PATCH 36/52] Move shared files from server --- r5dev/engine/CMakeLists.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/r5dev/engine/CMakeLists.txt b/r5dev/engine/CMakeLists.txt index 2a17f30d..96e449c7 100644 --- a/r5dev/engine/CMakeLists.txt +++ b/r5dev/engine/CMakeLists.txt @@ -107,10 +107,6 @@ add_sources( SOURCE_GROUP "Server" "server/sv_rcon.h" "server/vengineserver_impl.cpp" "server/vengineserver_impl.h" - "shared/base_rcon.cpp" - "shared/base_rcon.h" - "shared/shared_rcon.cpp" - "shared/shared_rcon.h" ) add_sources( SOURCE_GROUP "Client" @@ -123,6 +119,13 @@ add_sources( SOURCE_GROUP "Client" "client/client.h" ) +add_sources( SOURCE_GROUP "Shared" + "shared/base_rcon.cpp" + "shared/base_rcon.h" + "shared/shared_rcon.cpp" + "shared/shared_rcon.h" +) + if( ${PROJECT_NAME} STREQUAL "engine" ) add_sources( SOURCE_GROUP "Client" # Client only. "client/clientstate.cpp" From 0a0552d75c6e0393df25b052929264227d2a1d16 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 01:21:35 +0200 Subject: [PATCH 37/52] Fix verbose compiler warning This is getting set from CMake now. --- r5dev/thirdparty/cppnet/cppkore/stdafx.h | Bin 1232 -> 1236 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/r5dev/thirdparty/cppnet/cppkore/stdafx.h b/r5dev/thirdparty/cppnet/cppkore/stdafx.h index e74891a4933f36f22cfb3fc6467a53a86a9c6ef7..aa984ac63b4fd03d8f0ef3a1690803efbc0c0ea7 100644 GIT binary patch delta 16 Xcmcb>d4+R>9wW0pgZ^e+#>LD4EEEKO delta 15 Wcmcb@d4Y3-9^=Fgfz3{glb8W7s|88` From 5577d4fe87e2dcc2d1296e59ac161788ebdabe28 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 01:23:31 +0200 Subject: [PATCH 38/52] Use dedicated PCH for sdklauncher SDKLauncher now uses its own PCH. --- r5dev/sdklauncher/CMakeLists.txt | 10 ++++++++-- r5dev/sdklauncher/basepanel.cpp | 4 ++-- r5dev/sdklauncher/launcher_pch.h | 17 +++++++++++++++++ r5dev/sdklauncher/sdklauncher.cpp | 3 +-- r5dev/sdklauncher/sdklauncher.h | 1 - 5 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 r5dev/sdklauncher/launcher_pch.h diff --git a/r5dev/sdklauncher/CMakeLists.txt b/r5dev/sdklauncher/CMakeLists.txt index c0439874..3eb12629 100644 --- a/r5dev/sdklauncher/CMakeLists.txt +++ b/r5dev/sdklauncher/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) -add_module( "exe" "sdklauncher" "vpc" ${FOLDER_CONTEXT} ) +add_module( "exe" "sdklauncher" "" ${FOLDER_CONTEXT} ) start_sources() @@ -23,10 +23,16 @@ end_sources() set_target_properties( ${PROJECT_NAME} PROPERTIES OUTPUT_NAME "launcher" ) -target_compile_definitions( ${PROJECT_NAME} PRIVATE SDKLAUNCHER ) +target_compile_definitions( ${PROJECT_NAME} PRIVATE + "SDKLAUNCHER" +) +target_precompile_headers( ${PROJECT_NAME} PRIVATE + "launcher_pch.h" +) target_link_libraries( ${PROJECT_NAME} PRIVATE "tier0" "libdetours" "libcppkore" + "libspdlog" "Rpcrt4.lib" ) diff --git a/r5dev/sdklauncher/basepanel.cpp b/r5dev/sdklauncher/basepanel.cpp index 7a5cf996..f78f08a2 100644 --- a/r5dev/sdklauncher/basepanel.cpp +++ b/r5dev/sdklauncher/basepanel.cpp @@ -3,9 +3,9 @@ // Purpose: Launcher user interface implementation. // //=============================================================================// -#include "core/stdafx.h" -#include "sdklauncher.h" +#include "launcher_pch.h" #include "basepanel.h" +#include "sdklauncher.h" #include "utility/vdf_parser.h" //----------------------------------------------------------------------------- diff --git a/r5dev/sdklauncher/launcher_pch.h b/r5dev/sdklauncher/launcher_pch.h new file mode 100644 index 00000000..57fe7f95 --- /dev/null +++ b/r5dev/sdklauncher/launcher_pch.h @@ -0,0 +1,17 @@ +#pragma once +#include "core/stdafx.h" + +#include "thirdparty/cppnet/cppkore/Form.h" +#include "thirdparty/cppnet/cppkore/Kore.h" +#include "thirdparty/cppnet/cppkore/UIXTheme.h" +#include "thirdparty/cppnet/cppkore/UIXLabel.h" +#include "thirdparty/cppnet/cppkore/UIXListView.h" +#include "thirdparty/cppnet/cppkore/UIXCheckBox.h" +#include "thirdparty/cppnet/cppkore/UIXComboBox.h" +#include "thirdparty/cppnet/cppkore/UIXTextBox.h" +#include "thirdparty/cppnet/cppkore/UIXGroupBox.h" +#include "thirdparty/cppnet/cppkore/UIXButton.h" +#include "thirdparty/cppnet/cppkore/UIXRadioButton.h" +#include "thirdparty/cppnet/cppkore/KoreTheme.h" + +#include "launcher/launcherdefs.h" diff --git a/r5dev/sdklauncher/sdklauncher.cpp b/r5dev/sdklauncher/sdklauncher.cpp index 01af649e..00f432ea 100644 --- a/r5dev/sdklauncher/sdklauncher.cpp +++ b/r5dev/sdklauncher/sdklauncher.cpp @@ -3,10 +3,9 @@ // Purpose: SDK launcher implementation. // //=============================================================================// -#include "core/stdafx.h" +#include "launcher_pch.h" #include "tier0/binstream.h" #include "basepanel.h" -#include "sdklauncher_const.h" #include "sdklauncher.h" /////////////////////////////////////////////////////////////////////////////// diff --git a/r5dev/sdklauncher/sdklauncher.h b/r5dev/sdklauncher/sdklauncher.h index cded4724..d066c645 100644 --- a/r5dev/sdklauncher/sdklauncher.h +++ b/r5dev/sdklauncher/sdklauncher.h @@ -1,5 +1,4 @@ #pragma once -#include "basepanel.h" #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") class CLauncher From 59d8f970da803d87f55d52f9d6269df02faf9bfb Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 01:24:33 +0200 Subject: [PATCH 39/52] Cleanup PCH files Decoupled them to improve compile times. --- r5dev/core/shared_pch.h | 37 +++++++----------------------- r5dev/core/stdafx.h | 50 ++++++++++++++++++----------------------- r5dev/tier0/tier0_pch.h | 20 +++++++++++++++++ 3 files changed, 50 insertions(+), 57 deletions(-) diff --git a/r5dev/core/shared_pch.h b/r5dev/core/shared_pch.h index 37792299..f46a2834 100644 --- a/r5dev/core/shared_pch.h +++ b/r5dev/core/shared_pch.h @@ -10,6 +10,7 @@ #pragma message ("Profiling is turned on; do not release this binary!\n") #endif // _DEBUG || _PROFILE +// System includes. #define WIN32_LEAN_AND_MEAN // Prevent winsock2 redefinition. #include #include @@ -50,24 +51,6 @@ #include -// Windows specifics, to support compiling the SDK with older versions of the Windows 10 SDK. -#ifndef FILE_SUPPORTS_GHOSTING -#define FILE_SUPPORTS_GHOSTING 0x40000000 // winnt -#endif -#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING -#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 -#endif - -// Thirdparty includes. -#include "thirdparty/detours/include/detours.h" -#include "thirdparty/detours/include/idetour.h" - -#include "thirdparty/lzham/include/lzham_assert.h" -#include "thirdparty/lzham/include/lzham_types.h" -#include "thirdparty/lzham/include/lzham.h" - -#include "thirdparty/curl/include/curl/curl.h" - // Core includes. #include "core/assert.h" #include "core/termutil.h" @@ -78,16 +61,12 @@ #include "common/x86defs.h" #include "common/sdkdefs.h" -// Tier0 includes. -#include "tier0/utility.h" -#include "tier0/memaddr.h" -#include "tier0/module.h" -#include "tier0/basetypes.h" -#include "tier0/platform.h" -#include "tier0/annotations.h" -#include "tier0/commonmacros.h" -#include "tier0/memalloc.h" -#include "tier0/tier0_iface.h" -#include "tier0/dbg.h" +// Windows specifics, to support compiling the SDK with older versions of the Windows 10 SDK. +#ifndef FILE_SUPPORTS_GHOSTING +#define FILE_SUPPORTS_GHOSTING 0x40000000 // winnt +#endif +#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING +#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 +#endif #endif // SHARED_PCH_H diff --git a/r5dev/core/stdafx.h b/r5dev/core/stdafx.h index b1b776c7..afa376fe 100644 --- a/r5dev/core/stdafx.h +++ b/r5dev/core/stdafx.h @@ -1,32 +1,21 @@ #pragma once #include "shared_pch.h" - -#if !defined(DEDICATED) && !defined(SDKLAUNCHER) && !defined (NETCONSOLE) && !defined(PLUGINSDK) +#if !defined(DEDICATED) && !defined (NETCONSOLE) && !defined(PLUGINSDK) #include -#endif // !DEDICATED && !SDKLAUNCHER && !NETCONSOLE && !PLUGINSDK - -#include "thirdparty/nlohmann/json.hpp" +#endif // !DEDICATED && !NETCONSOLE && !PLUGINSDK +// Thirdparty includes. #include "thirdparty/detours/include/detours.h" #include "thirdparty/detours/include/idetour.h" -#if defined(SDKLAUNCHER) -#include "thirdparty/cppnet/cppkore/Kore.h" -#include "thirdparty/cppnet/cppkore/UIXTheme.h" -#include "thirdparty/cppnet/cppkore/UIXLabel.h" -#include "thirdparty/cppnet/cppkore/UIXListView.h" -#include "thirdparty/cppnet/cppkore/UIXCheckBox.h" -#include "thirdparty/cppnet/cppkore/UIXComboBox.h" -#include "thirdparty/cppnet/cppkore/UIXTextBox.h" -#include "thirdparty/cppnet/cppkore/UIXGroupBox.h" -#include "thirdparty/cppnet/cppkore/UIXButton.h" -#include "thirdparty/cppnet/cppkore/UIXRadioButton.h" -#include "thirdparty/cppnet/cppkore/KoreTheme.h" +#include "thirdparty/lzham/include/lzham_assert.h" +#include "thirdparty/lzham/include/lzham_types.h" +#include "thirdparty/lzham/include/lzham.h" -#include "launcher/launcherdefs.h" -#endif // SDKLAUNCHER +#include "thirdparty/curl/include/curl/curl.h" +#include "thirdparty/nlohmann/json.hpp" -#if !defined(DEDICATED) && !defined(SDKLAUNCHER) && !defined (NETCONSOLE) && !defined(PLUGINSDK) +#if !defined(DEDICATED) && !defined (NETCONSOLE) && !defined(PLUGINSDK) #include "thirdparty/imgui/imgui.h" #include "thirdparty/imgui/imgui_internal.h" #include "thirdparty/imgui/misc/imgui_logger.h" @@ -35,13 +24,7 @@ #include "thirdparty/imgui/misc/cpp/imgui_stdlib.h" #include "thirdparty/imgui/backends/imgui_impl_dx11.h" #include "thirdparty/imgui/backends/imgui_impl_win32.h" -#endif // !DEDICATED && !SDKLAUNCHER && !NETCONSOLE && !PLUGINSDK - -#if !defined(SDKLAUNCHER) && !defined (NETCONSOLE) && !defined(PLUGINSDK) -#include "thirdparty/lzham/include/lzham_assert.h" -#include "thirdparty/lzham/include/lzham_types.h" -#include "thirdparty/lzham/include/lzham.h" -#endif // !SDKLAUNCHER && !NETCONSOLE && !PLUGINSDK +#endif // !DEDICATED && !NETCONSOLE && !PLUGINSDK #include "thirdparty/spdlog/spdlog.h" #include "thirdparty/spdlog/async.h" @@ -52,8 +35,19 @@ #include "thirdparty/spdlog/sinks/ansicolor_sink.h" #include "thirdparty/spdlog/sinks/rotating_file_sink.h" -#include "thirdparty/curl/include/curl/curl.h" +// Tier0 includes. +#include "tier0/utility.h" +#include "tier0/memaddr.h" +#include "tier0/module.h" +#include "tier0/basetypes.h" +#include "tier0/platform.h" +#include "tier0/annotations.h" +#include "tier0/commonmacros.h" +#include "tier0/memalloc.h" +#include "tier0/tier0_iface.h" +#include "tier0/dbg.h" +// Tier1 includes. #include "tier1/cvar.h" #include "tier1/cmd.h" #include "common/global.h" diff --git a/r5dev/tier0/tier0_pch.h b/r5dev/tier0/tier0_pch.h index 582c0179..a2f74356 100644 --- a/r5dev/tier0/tier0_pch.h +++ b/r5dev/tier0/tier0_pch.h @@ -8,4 +8,24 @@ #include "core/shared_pch.h" +#include "thirdparty/detours/include/detours.h" +#include "thirdparty/detours/include/idetour.h" + +#include "thirdparty/lzham/include/lzham_assert.h" +#include "thirdparty/lzham/include/lzham_types.h" +#include "thirdparty/lzham/include/lzham.h" + +#include "thirdparty/curl/include/curl/curl.h" + +#include "tier0/utility.h" +#include "tier0/memaddr.h" +#include "tier0/module.h" +#include "tier0/basetypes.h" +#include "tier0/platform.h" +#include "tier0/annotations.h" +#include "tier0/commonmacros.h" +#include "tier0/memalloc.h" +#include "tier0/tier0_iface.h" +#include "tier0/dbg.h" + #endif // TIER0_PCH_H From ede19e04720edb89ca25002b1b431336e20102a6 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 01:26:17 +0200 Subject: [PATCH 40/52] Improve CMake macro's Allow setting custom runtime output directories using the 'end_sources' macro. If parameter is empty, it will use "game/" (default). --- r5dev/cmake/Macros.cmake | 9 ++++++--- r5dev/cmake/Options.cmake | 12 ++++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/r5dev/cmake/Macros.cmake b/r5dev/cmake/Macros.cmake index e4ae03ca..004c924a 100644 --- a/r5dev/cmake/Macros.cmake +++ b/r5dev/cmake/Macros.cmake @@ -31,11 +31,14 @@ macro( add_sources ) endmacro() # ----------------------------------------------------------------------------- -# End the source file list +# End the source file list ( optional parameter sets the runtime output dir ) # ----------------------------------------------------------------------------- macro( end_sources ) - get_property( SRCS_LIST GLOBAL PROPERTY SRCS_LIST ) - set_target_output_dirs( ${PROJECT_NAME} ) + if( NOT "${ARGN}" STREQUAL "" ) # Check if an output directory is passed + set_target_output_dirs( ${PROJECT_NAME} ${ARGN} ) + else() + set_target_output_dirs( ${PROJECT_NAME} "game/" ) + endif() endmacro() # ----------------------------------------------------------------------------- diff --git a/r5dev/cmake/Options.cmake b/r5dev/cmake/Options.cmake index 2e52e4fe..4bcb63d7 100644 --- a/r5dev/cmake/Options.cmake +++ b/r5dev/cmake/Options.cmake @@ -67,13 +67,13 @@ endmacro() # ----------------------------------------------------------------------------- # Setup build output directories for target # ----------------------------------------------------------------------------- -macro( set_target_output_dirs TARGET ) +macro( set_target_output_dirs TARGET RUNTIME_DIR ) # Set output directories set_target_properties( ${TARGET} PROPERTIES - RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/game/" - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/game/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/game/" - RUNTIME_OUTPUT_DIRECTORY_PROFILE "${CMAKE_SOURCE_DIR}/game/" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/${RUNTIME_DIR}" + RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/${RUNTIME_DIR}" + RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/${RUNTIME_DIR}" + RUNTIME_OUTPUT_DIRECTORY_PROFILE "${CMAKE_SOURCE_DIR}/${RUNTIME_DIR}" ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/${TARGET}" LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/${TARGET}" ) @@ -81,7 +81,7 @@ macro( set_target_output_dirs TARGET ) # Set output directories for each configuration foreach( CONFIG_TYPE ${CMAKE_CONFIGURATION_TYPES} ) set_target_properties( ${TARGET} PROPERTIES - "RUNTIME_OUTPUT_DIRECTORY_${CONFIG_TYPE}" "${CMAKE_SOURCE_DIR}/game/" + "RUNTIME_OUTPUT_DIRECTORY_${CONFIG_TYPE}" "${CMAKE_SOURCE_DIR}/${RUNTIME_DIR}" "ARCHIVE_OUTPUT_DIRECTORY_${CONFIG_TYPE}" "${CMAKE_SOURCE_DIR}/lib/${TARGET}/${CONFIG_TYPE}" "LIBRARY_OUTPUT_DIRECTORY_${CONFIG_TYPE}" "${CMAKE_SOURCE_DIR}/lib/${TARGET}/${CONFIG_TYPE}" "LINK_FLAGS_${CONFIG_TYPE}" "/PDB:${PDB_FULL_PATH}" From b57eb0c0c33d89c28812e6113f52d1dfc73e1bcd Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 01:27:51 +0200 Subject: [PATCH 41/52] Set runtime directories for projects Adjust the runtime directories, so they are identical to pre-cmake port. --- r5dev/core/CMakeLists.txt | 13 +++++-------- r5dev/naveditor/CMakeLists.txt | 2 +- r5dev/netconsole/CMakeLists.txt | 4 ++-- r5dev/pluginsdk/CMakeLists.txt | 2 +- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/r5dev/core/CMakeLists.txt b/r5dev/core/CMakeLists.txt index 3ac7e2da..1c1c9100 100644 --- a/r5dev/core/CMakeLists.txt +++ b/r5dev/core/CMakeLists.txt @@ -63,6 +63,8 @@ target_link_libraries( ${PROJECT_NAME} PRIVATE "libcurl" "libprotobuf" "libspdlog" + "libdetour" + "navdebugutils" "networksystem" "pluginsystem" @@ -75,12 +77,6 @@ target_link_libraries( ${PROJECT_NAME} PRIVATE "vscript" "game" ) -if( NOT ${PROJECT_NAME} STREQUAL "client" ) -target_link_libraries( ${PROJECT_NAME} PRIVATE - "navdebugutils" - "libdetour" -) -endif() if( NOT ${PROJECT_NAME} STREQUAL "dedicated" ) target_link_libraries( ${PROJECT_NAME} PRIVATE @@ -103,17 +99,18 @@ target_link_libraries( ${PROJECT_NAME} PRIVATE ) endif() -end_sources() - if( ${PROJECT_NAME} STREQUAL "gamesdk" ) +end_sources() target_compile_definitions( ${PROJECT_NAME} PRIVATE "GAMESDK" ) elseif( ${PROJECT_NAME} STREQUAL "dedicated" ) +end_sources() target_compile_definitions( ${PROJECT_NAME} PRIVATE "DEDICATED" ) elseif( ${PROJECT_NAME} STREQUAL "client" ) +end_sources( "game/bin/x64_retail/" ) target_compile_definitions( ${PROJECT_NAME} PRIVATE "CLIENT_DLL" ) diff --git a/r5dev/naveditor/CMakeLists.txt b/r5dev/naveditor/CMakeLists.txt index 60e1cccb..df21ca65 100644 --- a/r5dev/naveditor/CMakeLists.txt +++ b/r5dev/naveditor/CMakeLists.txt @@ -85,7 +85,7 @@ add_sources( SOURCE_GROUP "Utils/Include" "include/ValueHistory.h" ) -end_sources() +end_sources( "game/bin/" ) whole_program_optimization() target_compile_definitions( ${PROJECT_NAME} PRIVATE diff --git a/r5dev/netconsole/CMakeLists.txt b/r5dev/netconsole/CMakeLists.txt index 8712320d..0856e0df 100644 --- a/r5dev/netconsole/CMakeLists.txt +++ b/r5dev/netconsole/CMakeLists.txt @@ -26,10 +26,10 @@ add_sources( SOURCE_GROUP "Engine" add_sources( SOURCE_GROUP "Windows" "${ENGINE_SOURCE_DIR}/windows/console.cpp" - "${ENGINE_SOURCE_DIR}/Windows/console.h" + "${ENGINE_SOURCE_DIR}/windows/console.h" ) -end_sources() +end_sources( "game/bin/" ) set_target_properties( ${PROJECT_NAME} PROPERTIES OUTPUT_NAME "netcon32" diff --git a/r5dev/pluginsdk/CMakeLists.txt b/r5dev/pluginsdk/CMakeLists.txt index ae53bdd0..818c951f 100644 --- a/r5dev/pluginsdk/CMakeLists.txt +++ b/r5dev/pluginsdk/CMakeLists.txt @@ -10,7 +10,7 @@ add_sources( SOURCE_GROUP "Core" "pluginsdk.h" ) -end_sources() +end_sources( "game/bin/x64_retail/plugins/" ) target_link_libraries( ${PROJECT_NAME} PRIVATE "tier0" From d809a9f633f7b8adbf893f0b60f69b58161e1037 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 02:10:17 +0200 Subject: [PATCH 42/52] Use PCH generated from VPC globally This reduced output code size with 40KiB, improved compile times and appeared to improve runtime performance as well. --- r5dev/appframework/CMakeLists.txt | 2 +- r5dev/codecs/CMakeLists.txt | 2 +- r5dev/datacache/CMakeLists.txt | 2 +- r5dev/ebisusdk/CMakeLists.txt | 2 +- r5dev/filesystem/CMakeLists.txt | 2 +- r5dev/gameui/CMakeLists.txt | 2 +- r5dev/tier0/CMakeLists.txt | 4 +--- r5dev/tier0/binstream.cpp | 1 - r5dev/tier0/commandline.cpp | 1 - r5dev/tier0/cpu.cpp | 1 - r5dev/tier0/cputopology.cpp | 2 -- r5dev/tier0/crashhandler.cpp | 1 - r5dev/tier0/dbg.cpp | 1 - r5dev/tier0/fasttimer.cpp | 1 - r5dev/tier0/frametask.cpp | 1 - r5dev/tier0/jobthread.cpp | 1 - r5dev/tier0/memaddr.cpp | 1 - r5dev/tier0/module.cpp | 1 - r5dev/tier0/platform.cpp | 1 - r5dev/tier0/sigcache.cpp | 1 - r5dev/tier0/threadtools.cpp | 1 - r5dev/tier0/tier0_pch.h | 31 ------------------------------- r5dev/tier0/utility.cpp | 1 - r5dev/tier0/vtable.cpp | 1 - r5dev/tier1/CMakeLists.txt | 2 +- r5dev/tier1/NetAdr.cpp | 1 - r5dev/tier1/NetKey.cpp | 1 - r5dev/tier1/bitbuf.cpp | 1 - r5dev/tier1/characterset.cpp | 1 - r5dev/tier1/cmd.cpp | 1 - r5dev/tier1/cvar.cpp | 1 - r5dev/tier1/generichash.cpp | 1 - r5dev/tier1/lzss.cpp | 1 - r5dev/tier1/memstack.cpp | 1 - r5dev/tier1/splitstring.cpp | 1 - r5dev/tier1/stringpool.cpp | 1 - r5dev/tier1/strtools.cpp | 1 - r5dev/tier1/utlbuffer.cpp | 1 - r5dev/tier1/utlstring.cpp | 1 - r5dev/tier2/CMakeLists.txt | 2 +- r5dev/tier2/renderutils.cpp | 1 - 41 files changed, 9 insertions(+), 74 deletions(-) delete mode 100644 r5dev/tier0/tier0_pch.h diff --git a/r5dev/appframework/CMakeLists.txt b/r5dev/appframework/CMakeLists.txt index a3607f9c..f70fb886 100644 --- a/r5dev/appframework/CMakeLists.txt +++ b/r5dev/appframework/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) -add_module( "lib" "appframework" "tier0" ${FOLDER_CONTEXT} ) +add_module( "lib" "appframework" "vpc" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/codecs/CMakeLists.txt b/r5dev/codecs/CMakeLists.txt index 5454dd5c..6be341c2 100644 --- a/r5dev/codecs/CMakeLists.txt +++ b/r5dev/codecs/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) -add_module( "lib" "codecs" "tier0" ${FOLDER_CONTEXT} ) +add_module( "lib" "codecs" "vpc" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/datacache/CMakeLists.txt b/r5dev/datacache/CMakeLists.txt index f00f19dd..b8a7ca34 100644 --- a/r5dev/datacache/CMakeLists.txt +++ b/r5dev/datacache/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) -add_module( "lib" "datacache" "tier0" ${FOLDER_CONTEXT} ) +add_module( "lib" "datacache" "vpc" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/ebisusdk/CMakeLists.txt b/r5dev/ebisusdk/CMakeLists.txt index 46b5b35b..2cbce379 100644 --- a/r5dev/ebisusdk/CMakeLists.txt +++ b/r5dev/ebisusdk/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) -add_module( "lib" "EbisuSDK" "tier0" ${FOLDER_CONTEXT} ) +add_module( "lib" "EbisuSDK" "vpc" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/filesystem/CMakeLists.txt b/r5dev/filesystem/CMakeLists.txt index 67b81271..3ec6bc65 100644 --- a/r5dev/filesystem/CMakeLists.txt +++ b/r5dev/filesystem/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) -add_module( "lib" "filesystem" "tier0" ${FOLDER_CONTEXT} ) +add_module( "lib" "filesystem" "vpc" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/gameui/CMakeLists.txt b/r5dev/gameui/CMakeLists.txt index 05764f98..ccc78290 100644 --- a/r5dev/gameui/CMakeLists.txt +++ b/r5dev/gameui/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) -add_module( "lib" "gameui" "tier0" ${FOLDER_CONTEXT} ) +add_module( "lib" "gameui" "vpc" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/tier0/CMakeLists.txt b/r5dev/tier0/CMakeLists.txt index 8b6d3d7f..8f58381d 100644 --- a/r5dev/tier0/CMakeLists.txt +++ b/r5dev/tier0/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) -add_module( "lib" "tier0" "" ${FOLDER_CONTEXT} ) +add_module( "lib" "tier0" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -29,7 +29,6 @@ add_sources( SOURCE_GROUP "Runtime" "threadtools.cpp" "tslist.cpp" "vtable.cpp" - "tier0_pch.h" "tier0_iface.cpp" "utility.cpp" "binstream.cpp" @@ -65,4 +64,3 @@ add_sources( SOURCE_GROUP "Public" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} PRIVATE tier0_pch.h ) diff --git a/r5dev/tier0/binstream.cpp b/r5dev/tier0/binstream.cpp index b62bd391..405a5c96 100644 --- a/r5dev/tier0/binstream.cpp +++ b/r5dev/tier0/binstream.cpp @@ -1,4 +1,3 @@ -#include "tier0_pch.h" #include "tier0/binstream.h" //----------------------------------------------------------------------------- diff --git a/r5dev/tier0/commandline.cpp b/r5dev/tier0/commandline.cpp index 5ce60ca6..a66138dc 100644 --- a/r5dev/tier0/commandline.cpp +++ b/r5dev/tier0/commandline.cpp @@ -4,7 +4,6 @@ // //=============================================================================// -#include "tier0_pch.h" #include "tier0/commandline.h" #include "tier1/cvar.h" diff --git a/r5dev/tier0/cpu.cpp b/r5dev/tier0/cpu.cpp index 790fea2b..167d14d3 100644 --- a/r5dev/tier0/cpu.cpp +++ b/r5dev/tier0/cpu.cpp @@ -4,7 +4,6 @@ // // $NoKeywords: $ //=============================================================================// -#include "tier0_pch.h" #include "tier0/cpu.h" #include "tier0/cputopology.h" #include "tier0/fasttimer.h" diff --git a/r5dev/tier0/cputopology.cpp b/r5dev/tier0/cputopology.cpp index 1c6091a5..8769e3cd 100644 --- a/r5dev/tier0/cputopology.cpp +++ b/r5dev/tier0/cputopology.cpp @@ -5,8 +5,6 @@ // // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------------- -#include "tier0_pch.h" - #if defined(_WIN32) && !defined(_X360) && !defined(_PS3) #include "tier0/cputopology.h" diff --git a/r5dev/tier0/crashhandler.cpp b/r5dev/tier0/crashhandler.cpp index e5995fa5..4d552d03 100644 --- a/r5dev/tier0/crashhandler.cpp +++ b/r5dev/tier0/crashhandler.cpp @@ -3,7 +3,6 @@ // Purpose: Crash handler (overrides the game's implementation!) // //=============================================================================// -#include "tier0_pch.h" #include "tier0/binstream.h" #include "tier0/cpu.h" #include "tier0/crashhandler.h" diff --git a/r5dev/tier0/dbg.cpp b/r5dev/tier0/dbg.cpp index 18758970..f0787a44 100644 --- a/r5dev/tier0/dbg.cpp +++ b/r5dev/tier0/dbg.cpp @@ -6,7 +6,6 @@ // //===========================================================================// -#include "tier0_pch.h" #include "tier0/dbg.h" #include "tier0/platform.h" #ifndef NETCONSOLE diff --git a/r5dev/tier0/fasttimer.cpp b/r5dev/tier0/fasttimer.cpp index f2c62143..69a27b05 100644 --- a/r5dev/tier0/fasttimer.cpp +++ b/r5dev/tier0/fasttimer.cpp @@ -5,7 +5,6 @@ // $NoKeywords: $ //=============================================================================// -#include "tier0_pch.h" #include "tier0/fasttimer.h" // Constructor init the clock speed. diff --git a/r5dev/tier0/frametask.cpp b/r5dev/tier0/frametask.cpp index 208a7323..899f0cda 100644 --- a/r5dev/tier0/frametask.cpp +++ b/r5dev/tier0/frametask.cpp @@ -5,7 +5,6 @@ //----------------------------------------------------------------------------- // //=============================================================================// -#include "tier0_pch.h" #include "tier0/frametask.h" //----------------------------------------------------------------------------- diff --git a/r5dev/tier0/jobthread.cpp b/r5dev/tier0/jobthread.cpp index c81759f6..b17a8fc4 100644 --- a/r5dev/tier0/jobthread.cpp +++ b/r5dev/tier0/jobthread.cpp @@ -1,5 +1,4 @@ -#include "tier0_pch.h" #include "engine/host_cmd.h" #include "tier0/jobthread.h" diff --git a/r5dev/tier0/memaddr.cpp b/r5dev/tier0/memaddr.cpp index 7390c324..75343a59 100644 --- a/r5dev/tier0/memaddr.cpp +++ b/r5dev/tier0/memaddr.cpp @@ -3,7 +3,6 @@ // Purpose: Implementation of the CMemory class. // //===========================================================================// -#include "tier0_pch.h" #include "tier0/memaddr.h" //----------------------------------------------------------------------------- diff --git a/r5dev/tier0/module.cpp b/r5dev/tier0/module.cpp index c6842d6c..b9f06b83 100644 --- a/r5dev/tier0/module.cpp +++ b/r5dev/tier0/module.cpp @@ -3,7 +3,6 @@ // Purpose: Implementation of the CModule class. // //===========================================================================// -#include "tier0_pch.h" #include "tier0/memaddr.h" #include "tier0/sigcache.h" diff --git a/r5dev/tier0/platform.cpp b/r5dev/tier0/platform.cpp index bbefb30d..9de984d3 100644 --- a/r5dev/tier0/platform.cpp +++ b/r5dev/tier0/platform.cpp @@ -1,4 +1,3 @@ -#include "tier0_pch.h" #include "tier0/platform_internal.h" //----------------------------------------------------------------------------- diff --git a/r5dev/tier0/sigcache.cpp b/r5dev/tier0/sigcache.cpp index 9b965255..0570afc5 100644 --- a/r5dev/tier0/sigcache.cpp +++ b/r5dev/tier0/sigcache.cpp @@ -16,7 +16,6 @@ // searching for each signature in the memory region of the target executable. // /////////////////////////////////////////////////////////////////////////////// -#include "tier0_pch.h" #include "tier0/sigcache.h" #include "tier0/binstream.h" diff --git a/r5dev/tier0/threadtools.cpp b/r5dev/tier0/threadtools.cpp index 1dda2002..01b0a6be 100644 --- a/r5dev/tier0/threadtools.cpp +++ b/r5dev/tier0/threadtools.cpp @@ -6,7 +6,6 @@ // $NoKeywords: $ //===========================================================================// -#include "tier0_pch.h" #include "tier0/threadtools.h" int32 ThreadInterlockedCompareExchange(LONG volatile* pDest, int32 value, int32 comperand) diff --git a/r5dev/tier0/tier0_pch.h b/r5dev/tier0/tier0_pch.h deleted file mode 100644 index a2f74356..00000000 --- a/r5dev/tier0/tier0_pch.h +++ /dev/null @@ -1,31 +0,0 @@ -//===========================================================================// -// -// Purpose: Tier0 precompiled header file. -// -//===========================================================================// -#ifndef TIER0_PCH_H -#define TIER0_PCH_H - -#include "core/shared_pch.h" - -#include "thirdparty/detours/include/detours.h" -#include "thirdparty/detours/include/idetour.h" - -#include "thirdparty/lzham/include/lzham_assert.h" -#include "thirdparty/lzham/include/lzham_types.h" -#include "thirdparty/lzham/include/lzham.h" - -#include "thirdparty/curl/include/curl/curl.h" - -#include "tier0/utility.h" -#include "tier0/memaddr.h" -#include "tier0/module.h" -#include "tier0/basetypes.h" -#include "tier0/platform.h" -#include "tier0/annotations.h" -#include "tier0/commonmacros.h" -#include "tier0/memalloc.h" -#include "tier0/tier0_iface.h" -#include "tier0/dbg.h" - -#endif // TIER0_PCH_H diff --git a/r5dev/tier0/utility.cpp b/r5dev/tier0/utility.cpp index c72742ea..cb2b7a7b 100644 --- a/r5dev/tier0/utility.cpp +++ b/r5dev/tier0/utility.cpp @@ -2,7 +2,6 @@ * _utility *-----------------------------------------------------------------------------*/ -#include "tier0_pch.h" #include "core/logdef.h" #include "tier0/utility.h" diff --git a/r5dev/tier0/vtable.cpp b/r5dev/tier0/vtable.cpp index 999c8fbe..196f9485 100644 --- a/r5dev/tier0/vtable.cpp +++ b/r5dev/tier0/vtable.cpp @@ -5,7 +5,6 @@ // DO NOT USE FOR SHIPPING CODE!!!!!!!!!! // //===========================================================================// -#include "tier0_pch.h" #include "tier0/vtable.h" //----------------------------------------------------------------------------- diff --git a/r5dev/tier1/CMakeLists.txt b/r5dev/tier1/CMakeLists.txt index 7fbe1c68..b5b48ab5 100644 --- a/r5dev/tier1/CMakeLists.txt +++ b/r5dev/tier1/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) -add_module( "lib" "tier1" "tier0" ${FOLDER_CONTEXT} ) +add_module( "lib" "tier1" "vpc" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/tier1/NetAdr.cpp b/r5dev/tier1/NetAdr.cpp index 7c5f3089..9618695f 100644 --- a/r5dev/tier1/NetAdr.cpp +++ b/r5dev/tier1/NetAdr.cpp @@ -4,7 +4,6 @@ // -------------------------------------------------------------------------- //===========================================================================// -#include "tier0_pch.h" #include "tier1/NetAdr.h" #include "tier1/strtools.h" diff --git a/r5dev/tier1/NetKey.cpp b/r5dev/tier1/NetKey.cpp index 55281a6b..38bdf48f 100644 --- a/r5dev/tier1/NetKey.cpp +++ b/r5dev/tier1/NetKey.cpp @@ -3,7 +3,6 @@ // Purpose: implementation of the CNetKey class. // -------------------------------------------------------------------------- //===========================================================================// -#include "tier0_pch.h" #include "tier1/NetKey.h" ////////////////////////////////////////////////////////////////////// diff --git a/r5dev/tier1/bitbuf.cpp b/r5dev/tier1/bitbuf.cpp index f194a88b..b3cf7692 100644 --- a/r5dev/tier1/bitbuf.cpp +++ b/r5dev/tier1/bitbuf.cpp @@ -5,7 +5,6 @@ // $NoKeywords: $ //===========================================================================// -#include "tier0_pch.h" #include "tier1/bitbuf.h" #include "mathlib/swap.h" #include "mathlib/bitvec.h" diff --git a/r5dev/tier1/characterset.cpp b/r5dev/tier1/characterset.cpp index 1b13a1c9..e1d49c03 100644 --- a/r5dev/tier1/characterset.cpp +++ b/r5dev/tier1/characterset.cpp @@ -11,7 +11,6 @@ // $NoKeywords: $ //============================================================================= -#include "tier0_pch.h" #include "tier1/characterset.h" // memdbgon must be the last include file in a .cpp file!!! diff --git a/r5dev/tier1/cmd.cpp b/r5dev/tier1/cmd.cpp index 4ee5e7e6..ba7b7664 100644 --- a/r5dev/tier1/cmd.cpp +++ b/r5dev/tier1/cmd.cpp @@ -4,7 +4,6 @@ // //=============================================================================// -#include "tier0_pch.h" #include "tier0/tslist.h" #include "tier0/memstd.h" #include "tier0/commandline.h" diff --git a/r5dev/tier1/cvar.cpp b/r5dev/tier1/cvar.cpp index 9a4aeab1..93833676 100644 --- a/r5dev/tier1/cvar.cpp +++ b/r5dev/tier1/cvar.cpp @@ -1,4 +1,3 @@ -#include "tier0_pch.h" #include "tier1/utlrbtree.h" #include "tier1/NetAdr.h" #include "tier1/cvar.h" diff --git a/r5dev/tier1/generichash.cpp b/r5dev/tier1/generichash.cpp index c3d5d737..87cd0558 100644 --- a/r5dev/tier1/generichash.cpp +++ b/r5dev/tier1/generichash.cpp @@ -5,7 +5,6 @@ // //============================================================================= -#include "tier0_pch.h" #include "tier0/dbg.h" #include "tier0/basetypes.h" #include "tier0/platform.h" diff --git a/r5dev/tier1/lzss.cpp b/r5dev/tier1/lzss.cpp index b80046af..590c29ab 100644 --- a/r5dev/tier1/lzss.cpp +++ b/r5dev/tier1/lzss.cpp @@ -5,7 +5,6 @@ // //=====================================================================================// -#include "tier0_pch.h" #include "tier0/platform.h" #include "tier0/dbg.h" #include "tier1/lzss.h" diff --git a/r5dev/tier1/memstack.cpp b/r5dev/tier1/memstack.cpp index 35a53e30..a8508b4b 100644 --- a/r5dev/tier1/memstack.cpp +++ b/r5dev/tier1/memstack.cpp @@ -4,7 +4,6 @@ // //=============================================================================// -#include "tier0_pch.h" #include "tier0/dbg.h" #include "tier0/memstd.h" #include "tier1/memstack.h" diff --git a/r5dev/tier1/splitstring.cpp b/r5dev/tier1/splitstring.cpp index a813829a..c74b78e9 100644 --- a/r5dev/tier1/splitstring.cpp +++ b/r5dev/tier1/splitstring.cpp @@ -4,7 +4,6 @@ // //================================================================================================== -#include "tier0_pch.h" #include "tier1/strtools.h" #include "tier1/utlvector.h" diff --git a/r5dev/tier1/stringpool.cpp b/r5dev/tier1/stringpool.cpp index 91ef49e2..a3063dd9 100644 --- a/r5dev/tier1/stringpool.cpp +++ b/r5dev/tier1/stringpool.cpp @@ -5,7 +5,6 @@ // $NoKeywords: $ //===========================================================================// -#include "tier0_pch.h" #include "tier0/dbg.h" #include "tier1/strtools.h" #include "tier1/stringpool.h" diff --git a/r5dev/tier1/strtools.cpp b/r5dev/tier1/strtools.cpp index b7fd9139..db76b12e 100644 --- a/r5dev/tier1/strtools.cpp +++ b/r5dev/tier1/strtools.cpp @@ -1,4 +1,3 @@ -#include "tier0_pch.h" #include "tier1/strtools.h" FORCEINLINE unsigned char tolower_fast(unsigned char c) diff --git a/r5dev/tier1/utlbuffer.cpp b/r5dev/tier1/utlbuffer.cpp index 221c0782..3d62423e 100644 --- a/r5dev/tier1/utlbuffer.cpp +++ b/r5dev/tier1/utlbuffer.cpp @@ -8,7 +8,6 @@ #pragma warning (disable : 4514) -#include "tier0_pch.h" #include "tier1/utlbuffer.h" #include "tier1/strtools.h" #include "tier1/characterset.h" diff --git a/r5dev/tier1/utlstring.cpp b/r5dev/tier1/utlstring.cpp index 4354129e..6cd7fcc7 100644 --- a/r5dev/tier1/utlstring.cpp +++ b/r5dev/tier1/utlstring.cpp @@ -4,7 +4,6 @@ // //============================================================================= -#include "tier0_pch.h" #include "tier1/utlstring.h" #include "tier1/utlvector.h" #include "tier1/strtools.h" diff --git a/r5dev/tier2/CMakeLists.txt b/r5dev/tier2/CMakeLists.txt index 55554aa8..d79b497f 100644 --- a/r5dev/tier2/CMakeLists.txt +++ b/r5dev/tier2/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) -add_module( "lib" "tier2" "tier0" ${FOLDER_CONTEXT} ) +add_module( "lib" "tier2" "vpc" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/tier2/renderutils.cpp b/r5dev/tier2/renderutils.cpp index 20c59773..7f0dd093 100644 --- a/r5dev/tier2/renderutils.cpp +++ b/r5dev/tier2/renderutils.cpp @@ -6,7 +6,6 @@ // /////////////////////////////////////////////////////////////////////////////// -#include "tier0_pch.h" #include "mathlib/color.h" #include "mathlib/vector.h" #include "mathlib/vector2d.h" From 7248c8aab78b4682787680e360744ca46eaf3e4c Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 02:11:29 +0200 Subject: [PATCH 43/52] Fix compiler warning Use size_t instead to avoid the type truncation warning. --- r5dev/tier1/cvar.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/r5dev/tier1/cvar.cpp b/r5dev/tier1/cvar.cpp index 93833676..fb03088b 100644 --- a/r5dev/tier1/cvar.cpp +++ b/r5dev/tier1/cvar.cpp @@ -392,11 +392,11 @@ void ConVar::RemoveChangeCallback(FnChangeCallback_t callback) //----------------------------------------------------------------------------- bool ConVar::ParseFlagString(const char* pszFlags, int& nFlags, const char* pszConVarName) { - int len = strlen(pszFlags); - int flags = 0; + size_t len = strlen(pszFlags); + int flags = FCVAR_NONE; - std::string sFlag = ""; - for (int i = 0; i < len; ++i) + string sFlag = ""; + for (size_t i = 0; i < len; ++i) { char c = pszFlags[i]; From ae108ef1ccb584c02dbaed903b7b66af3b329c87 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 02:27:54 +0200 Subject: [PATCH 44/52] Light CMakeLists cleanup Use global var for PCH name instead. --- r5dev/vpc/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/r5dev/vpc/CMakeLists.txt b/r5dev/vpc/CMakeLists.txt index 6862bd9c..71d165be 100644 --- a/r5dev/vpc/CMakeLists.txt +++ b/r5dev/vpc/CMakeLists.txt @@ -20,4 +20,4 @@ add_sources( SOURCE_GROUP "Public" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} PRIVATE ${ENGINE_SOURCE_DIR}/core/stdafx.h ) +target_precompile_headers( ${PROJECT_NAME} PRIVATE ${GLOBAL_PCH} ) From b3fc2c5adbf065a5d62a9aba1bd268b5c5dd0d0b Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 02:28:53 +0200 Subject: [PATCH 45/52] Enable profiling for Profile builds Enable linker option for profiling. --- r5dev/cmake/Options.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/r5dev/cmake/Options.cmake b/r5dev/cmake/Options.cmake index 4bcb63d7..263f9740 100644 --- a/r5dev/cmake/Options.cmake +++ b/r5dev/cmake/Options.cmake @@ -90,6 +90,9 @@ macro( set_target_output_dirs TARGET RUNTIME_DIR ) # Set PDB properties for release builds ( should be created ) set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi" ) - set( CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF" ) set( PDB_OUTPUT_DIRECTORY "RUNTIME_OUTPUT_DIRECTORY_${CONFIG_TYPE}" ) + + # Set linker properties + set( CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF" ) + set( CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_PROFILE} /DEBUG /PROFILE" ) endmacro() From d8ac2852ba2ddbbde7d5dd4f9c9240a360c16428 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 12:03:16 +0200 Subject: [PATCH 46/52] Regenerate 'build.txt' after DLL project builds This post build event function regenerates the 'build.txt' file after compiling the engine projects. It takes the branch name, commit hash (short), current time and time designator. --- r5dev/cmake/PostBuild.cmake | 49 +++++++++++++++++++++++++++++++++++++ r5dev/core/CMakeLists.txt | 4 +++ 2 files changed, 53 insertions(+) create mode 100644 r5dev/cmake/PostBuild.cmake diff --git a/r5dev/cmake/PostBuild.cmake b/r5dev/cmake/PostBuild.cmake new file mode 100644 index 00000000..a5355aff --- /dev/null +++ b/r5dev/cmake/PostBuild.cmake @@ -0,0 +1,49 @@ +# ----------------------------------------------------------------------------- +# Creates and writes the build string after building a project +# ----------------------------------------------------------------------------- +function( WriteBuildString OUTPUT_DIR ) + # Get the current date and time + string( TIMESTAMP CURRENT_DATE "%Y_%m_%d_%I_%M" ) # Use %I for 12-hour clock + + # Compute AM/PM + string( TIMESTAMP CURRENT_HOUR "%H" ) + if( CURRENT_HOUR LESS 12 ) + set( TIME_DESIGNATOR "AM" ) + else() + set( TIME_DESIGNATOR "PM" ) + endif() + + # Get the current git commit hash + execute_process( COMMAND + git rev-parse --short HEAD + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_COMMIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + # Convert the hash to uppercase + string( TOUPPER + "${GIT_COMMIT_HASH} GIT_COMMIT_HASH" + ) + + # Get the current git branch name + execute_process( COMMAND + git rev-parse --abbrev-ref HEAD + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_BRANCH_NAME + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + # Construct the build string + set( BUILD_STRING + "R5pc_${GIT_BRANCH_NAME}_N1094_${GIT_COMMIT_HASH}_${CURRENT_DATE}_${TIME_DESIGNATOR}\n" + ) + + # Write the build string to a file + file( WRITE + "${CMAKE_SOURCE_DIR}/${OUTPUT_DIR}/build.txt ${BUILD_STRING}" + ) +endfunction() + +# Initiate the creation command +WriteBuildString( "../../../game" ) diff --git a/r5dev/core/CMakeLists.txt b/r5dev/core/CMakeLists.txt index 1c1c9100..baa7b3b0 100644 --- a/r5dev/core/CMakeLists.txt +++ b/r5dev/core/CMakeLists.txt @@ -120,6 +120,10 @@ target_link_options( ${PROJECT_NAME} PRIVATE "/STACK:8000000" # Match game executable stack reserve size ) +add_custom_command( TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -P ${ENGINE_SOURCE_DIR}/cmake/PostBuild.cmake +) + endmacro() add_sdk_project( "gamesdk" ) From 7078a8b10ab0fab4404d5059c2eefe594c53a77e Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 12:07:25 +0200 Subject: [PATCH 47/52] Fix syntax error Fix small syntax error in post build event code. --- r5dev/cmake/PostBuild.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/r5dev/cmake/PostBuild.cmake b/r5dev/cmake/PostBuild.cmake index a5355aff..bb12b675 100644 --- a/r5dev/cmake/PostBuild.cmake +++ b/r5dev/cmake/PostBuild.cmake @@ -23,7 +23,7 @@ function( WriteBuildString OUTPUT_DIR ) # Convert the hash to uppercase string( TOUPPER - "${GIT_COMMIT_HASH} GIT_COMMIT_HASH" + "${GIT_COMMIT_HASH}" GIT_COMMIT_HASH ) # Get the current git branch name @@ -41,7 +41,7 @@ function( WriteBuildString OUTPUT_DIR ) # Write the build string to a file file( WRITE - "${CMAKE_SOURCE_DIR}/${OUTPUT_DIR}/build.txt ${BUILD_STRING}" + "${CMAKE_SOURCE_DIR}/${OUTPUT_DIR}/build.txt" "${BUILD_STRING}" ) endfunction() From 2174cc977c2d8d57beccbaf0ff36241f2e8c2ef1 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 14:16:12 +0200 Subject: [PATCH 48/52] Automatically detect Visual Studio version Automatically detect when using the batch file to create solution files. The system will search from Visual Studio 2017 up to Visual Studio 2022. --- CreateSolution.bat | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/CreateSolution.bat b/CreateSolution.bat index 4b3f5d00..d1534583 100644 --- a/CreateSolution.bat +++ b/CreateSolution.bat @@ -1,13 +1,34 @@ @echo off -set CMAKE_GENERATOR=Visual Studio 16 2019 +setlocal + set BUILDDIR=build_intermediate +REM Check for Visual Studio versions in order +for %%V in (15 16 17) do ( + reg query "HKEY_CLASSES_ROOT\VisualStudio.DTE.%%V.0" >> nul 2>&1 + if NOT ERRORLEVEL 1 ( + if "%%V"=="15" ( + set "CMAKE_GENERATOR=Visual Studio 15 2017" + ) else if "%%V"=="16" ( + set "CMAKE_GENERATOR=Visual Studio 16 2019" + ) else if "%%V"=="17" ( + set "CMAKE_GENERATOR=Visual Studio 17 2022" + ) + echo Using Visual Studio %%V as generator. + goto :build + ) +) + +echo Could not find a supported version of Visual Studio; exiting... +exit /b 1 + +:build if not exist "%BUILDDIR%" ( mkdir "%BUILDDIR%" ) cd "%BUILDDIR%" -cmake .. -G"%CMAKE_GENERATOR%" +cmake .. -G"%CMAKE_GENERATOR%" -A"x64" cd .. echo Finished generating solution files. From 048f8a6467a9be7585a1c692a20b0acf0681dc67 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 14:54:34 +0200 Subject: [PATCH 49/52] Create the runtime directory Create the runtime (binary) directory while running the project generator. --- CreateSolution.bat | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CreateSolution.bat b/CreateSolution.bat index d1534583..ab3a3f56 100644 --- a/CreateSolution.bat +++ b/CreateSolution.bat @@ -2,6 +2,7 @@ setlocal set BUILDDIR=build_intermediate +set BINDIR=game REM Check for Visual Studio versions in order for %%V in (15 16 17) do ( @@ -26,6 +27,9 @@ exit /b 1 if not exist "%BUILDDIR%" ( mkdir "%BUILDDIR%" ) +if not exist "%BINDIR%" ( + mkdir "%BINDIR%" +) cd "%BUILDDIR%" cmake .. -G"%CMAKE_GENERATOR%" -A"x64" From 69509def9598a66e2ac605fc201563f0767f62c4 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 14:57:06 +0200 Subject: [PATCH 50/52] Update README.md Update to new build system. --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 91960958..ed1493c0 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ * This repository houses the source code for the development package targeting the game **Apex Legends**. ## Building +R5sdk uses the CMake project generation and build tools. For more information, visit [CMake](https://cmake.org/).
In order to compile the SDK, you will need to install Visual Studio 2017, 2019 or 2022 with: * Desktop Development with C++ Package. * Windows SDK 10.0.10240.0 or higher. @@ -9,13 +10,12 @@ In order to compile the SDK, you will need to install Visual Studio 2017, 2019 o * [Optional] C++ Clang/LLVM compiler. Steps: -1. Download or clone the solution to anywhere on your disk. - 1. In the folder `r5sdk.sln` resides, create a new folder called `game`. +1. Download or clone the project to anywhere on your disk. + 1. Run `CreateSolution.bat` in the root folder, this will generate the files in `build_intermediate`. 2. Move all the game files in the `game` folder so that the path `game/r5apex(_ds).exe` is valid. 2. Open `r5sdk.sln` in Visual Studio and compile the solution. - 1. Depending on your version of Visual Studio and the selected compiler, you might need to re-target the solution. - 2. All binaries and symbols are compiled in the `game` folder. - 3. Run `launcher.exe`, toggle and set the desired options and hit the `Launch Game` button. + 1. All binaries and symbols are compiled in the `game` folder. + 2. Run `launcher.exe`, toggle and set the desired options and hit the `Launch Game` button. ## Debugging The tools and libraries offered by the SDK could be debugged right after they are compiled. @@ -35,11 +35,11 @@ Steps: - The `-nosmap` parameter instructs the SDK to always compute the RVA's of each function signature on launch (!! slow !!). - The `-noworkerdll` parameter prevents the GameSDK DLL from initializing (workaround as the DLL is imported by the game executable). -Launch parameters can be added to the `startup_*.cfg` files, +Launch parameters can be added to the `startup_*.cfg` files,
which are located in `\platform\cfg\startup_*.cfg`. ## Note [IMPORTANT] -This is not a cheat or hack; attempting to use the SDK on the live version of the game could result in a permanent account ban. +This is not a cheat or hack; attempting to use the SDK on the live version of the game could result in a permanent account ban.
The supported game versions are: * S0 `R5pc_r5launch_J1557_CL387233_2019_01_28_07_43_PM`. From 78c80faf7d51b2b296b461089ed356938c18e4dc Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 16:22:44 +0200 Subject: [PATCH 51/52] Fix S0/S1 compiler error Update name. --- r5dev/vscript/vscript.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/r5dev/vscript/vscript.h b/r5dev/vscript/vscript.h index 41f24a69..f32a702c 100644 --- a/r5dev/vscript/vscript.h +++ b/r5dev/vscript/vscript.h @@ -63,7 +63,7 @@ class VScript : public IDetour p_Script_LoadScriptList = g_GameDll.FindPatternSIMD("4C 8B DC 49 89 5B 08 57 48 81 EC A0 ?? ?? ?? 33"); v_Script_LoadScriptList = p_Script_LoadScriptList.RCast(); #if defined (GAMEDLL_S0) || defined (GAMEDLL_S1) - p_Script_LoadScript = g_GameDll.FindPatternSIMD("48 89 5C 24 10 48 89 74 24 18 48 89 7C 24 20 48 89 4C 24 08 55 41 54 41 55 41 56 41 57 48 8D 6C"); + p_Script_LoadScriptFile = g_GameDll.FindPatternSIMD("48 89 5C 24 10 48 89 74 24 18 48 89 7C 24 20 48 89 4C 24 08 55 41 54 41 55 41 56 41 57 48 8D 6C"); #elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3) p_Script_LoadScriptFile = g_GameDll.FindPatternSIMD("48 8B C4 48 89 48 08 55 41 56 48 8D 68"); #endif From c50f8d86f60cb2b5a1b30b96dbf9db05b227c485 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 May 2023 16:27:31 +0200 Subject: [PATCH 52/52] Add option for GameDLL version and source directory Options could be set from the CMake GUI. By default, GameDLL version is set to 'GAMEDLL_S3', and engine source directory is set to 'r5dev/'. --- CMakeLists.txt | 10 +++++----- r5dev/cmake/Configure.cmake | 7 +++++-- r5dev/cmake/Options.cmake | 9 +++++++++ r5dev/public/tier0/basetypes.h | 3 ++- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ab1f4590..263b21c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,13 +6,13 @@ include( "r5dev/cmake/Macros.cmake" ) include( "r5dev/cmake/Options.cmake" ) initial_setup() -define_compiler_variables() setup_build_configurations() +define_compiler_variables() apply_project_settings() -include_directories( ${ENGINE_SOURCE_DIR} ) -include_directories( ${ENGINE_SOURCE_DIR}/public ) -include_directories( ${ENGINE_SOURCE_DIR}/thirdparty ) +include_directories( "${ENGINE_SOURCE_DIR}" ) +include_directories( "${ENGINE_SOURCE_DIR}/public" ) +include_directories( "${ENGINE_SOURCE_DIR}/thirdparty" ) # Include the subdirectories that contain the individual projects -add_subdirectory( ${ENGINE_SOURCE_DIR} ) +add_subdirectory( "${ENGINE_SOURCE_DIR}" ) diff --git a/r5dev/cmake/Configure.cmake b/r5dev/cmake/Configure.cmake index 01cfe616..c1f81670 100644 --- a/r5dev/cmake/Configure.cmake +++ b/r5dev/cmake/Configure.cmake @@ -5,8 +5,11 @@ macro( initial_setup ) set( CMAKE_CXX_STANDARD 17 ) set( CMAKE_CXX_STANDARD_REQUIRED True ) - set( ENGINE_SOURCE_DIR ${CMAKE_SOURCE_DIR}/r5dev ) - set( GLOBAL_PCH ${ENGINE_SOURCE_DIR}/core/stdafx.h ) # Global precompiled header shared among all libraries + set(ENGINE_SOURCE_DIR "${CMAKE_SOURCE_DIR}/r5dev" CACHE PATH "Engine source directory") + + set( GLOBAL_PCH + "${ENGINE_SOURCE_DIR}/core/stdafx.h" + ) # Global precompiled header shared among all libraries set_property( GLOBAL PROPERTY USE_FOLDERS ON ) # Use filters endmacro() diff --git a/r5dev/cmake/Options.cmake b/r5dev/cmake/Options.cmake index 263f9740..38b2e31c 100644 --- a/r5dev/cmake/Options.cmake +++ b/r5dev/cmake/Options.cmake @@ -12,12 +12,21 @@ macro( apply_project_settings ) $<$:/DUNICODE> ) + set( GAMEDLL_OPTION "GAMEDLL_S3" CACHE STRING "Game DLL version" ) + set_property( CACHE GAMEDLL_OPTION PROPERTY STRINGS + "GAMEDLL_S0" + "GAMEDLL_S1" + "GAMEDLL_S2" + "GAMEDLL_S3" + ) + # Set common defines add_compile_definitions( "_CRT_SECURE_NO_WARNINGS" "SPDLOG_COMPILED_LIB" "SPDLOG_NO_EXCEPTIONS" "CURL_STATICLIB" + "${GAMEDLL_OPTION}" ) # Set settings for Debug configuration diff --git a/r5dev/public/tier0/basetypes.h b/r5dev/public/tier0/basetypes.h index 9b67bc43..c21e3b3d 100644 --- a/r5dev/public/tier0/basetypes.h +++ b/r5dev/public/tier0/basetypes.h @@ -4,10 +4,11 @@ * _basetypes *-----------------------------------------------------------------------------*/ +// These are set from CMake now. //#define GAMEDLL_S0 /*[r]*/ //#define GAMEDLL_S1 /*[r]*/ //#define GAMEDLL_S2 /*[i]*/ -#define GAMEDLL_S3 /*[r]*/ +//#define GAMEDLL_S3 /*[r]*/ //#define GAMEDLL_S4 /*[i]*/ //#define GAMEDLL_S5 /*[i]*/ //#define GAMEDLL_S7 /*[i]*/