mirror of
https://github.com/Dingo-Shenanigans/ReSkate.git
synced 2026-10-23 08:45:53 +02:00
Fourth Studio's Board Break pack (ten decks and every sound) and Road Rash wounds are built into ReSkate.dll beside the FPV drone, unpacked under Mods/.reskate-builtin and always on. - The Thunderstore copies (Fourth_Studio-Board_Break_Pack, Fourth_Studio-Road_Rash and the deprecated Fourth_Studio-Board_Break, or the same put in by hand) are moved to the Recycle Bin as the launcher starts and dropped from mods.json; the merge leaves them out should one still be there, and the Thunderstore browser no longer lists, updates or installs them, a dependency on one included. - Board Break's deck list, sounds and deck settings look in the built-in packs too. - Names with spaces inside them (Board Break's "Body Impact 1.wav") unpack. - The build makes each zip in assets/builtin into one zstd stream (ReSkateBuiltinPacker, Engine/Vfs/builtin_pack_format.h), which the DLL carries: repeated files across a pack cost next to nothing. Board Break 15.0 -> 5.4 MB, the drone 6.0 -> 5.4 MB, Road Rash 36.1 -> 34.2 MB; ReSkate.dll 86 -> 70 MB. Plain zips still unpack. - Tests: the mods taken for built-in ones and their retirement, and a pack unpacking to exactly its files, refusing one that leaves its folder or is cut short (RESKATE_BUILTIN_PACKS also unpacks the packs a build made).
132 lines
5.7 KiB
CMake
132 lines
5.7 KiB
CMake
if(WIN32)
|
|
add_library(dingosdk_hooks STATIC
|
|
Engine/Core/Hooks/hooks.cpp)
|
|
target_link_libraries(dingosdk_hooks PRIVATE dingosdk_detours)
|
|
endif()
|
|
|
|
add_library(dingosdk_launcher_support STATIC
|
|
Engine/Core/Platform/launcher_support.cpp
|
|
Engine/Core/Platform/launcher_pe.cpp
|
|
$<$<BOOL:${WIN32}>:Engine/Core/Platform/launcher_injection.cpp>)
|
|
|
|
if(WIN32)
|
|
target_link_libraries(dingosdk_launcher_support PUBLIC bcrypt)
|
|
else()
|
|
find_package(OpenSSL REQUIRED)
|
|
target_link_libraries(dingosdk_launcher_support PUBLIC OpenSSL::Crypto)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
# Checks that the running game is the supported Skate.exe build.
|
|
add_library(dingosdk_supported_build STATIC Engine/Game/Build/image_identity.cpp)
|
|
target_link_libraries(dingosdk_supported_build PUBLIC bcrypt)
|
|
endif()
|
|
|
|
add_library(dingosdk_console_core STATIC
|
|
Engine/Core/Console/console_core.cpp
|
|
Engine/Core/Console/command_registry.cpp
|
|
Engine/Core/Console/console_activity.cpp)
|
|
|
|
add_library(dingosdk_json STATIC
|
|
Engine/Core/Json/json.cpp)
|
|
|
|
# The bad-word filter (Engine/Core/Text/word_filter.h); its words come from the backend.
|
|
add_library(dingosdk_word_filter STATIC Engine/Core/Text/word_filter.cpp)
|
|
|
|
target_include_directories(dingosdk_json SYSTEM PRIVATE External)
|
|
|
|
|
|
if(WIN32)
|
|
add_library(dingosdk_logging STATIC
|
|
Engine/Core/Log/logger.cpp
|
|
Engine/Core/Log/banner.cpp
|
|
Engine/Core/Log/events.cpp
|
|
Engine/Core/Log/paths.cpp
|
|
Engine/Core/Log/crash.cpp)
|
|
target_link_libraries(dingosdk_logging PUBLIC dingosdk_console_core PRIVATE shell32 ole32)
|
|
target_include_directories(dingosdk_logging SYSTEM PRIVATE External/spdlog/include External)
|
|
target_compile_definitions(dingosdk_logging PRIVATE SPDLOG_USE_STD_FORMAT SPDLOG_WCHAR_FILENAMES)
|
|
|
|
# The performance profiler: zones, frame timing, thread CPU use and the stack sampler
|
|
# (Engine/Core/Profiling/profiler.h). Shared by the overlay and the runtime.
|
|
add_library(dingosdk_profiler STATIC
|
|
Engine/Core/Profiling/profiler.cpp
|
|
Engine/Core/Profiling/sampler.cpp)
|
|
target_link_libraries(dingosdk_profiler PUBLIC dingosdk_logging PRIVATE dbghelp)
|
|
|
|
add_library(dingosdk_storage STATIC Engine/Core/Storage/save_database.cpp)
|
|
target_link_libraries(dingosdk_storage PUBLIC dingosdk_json PRIVATE dingosdk_sqlite)
|
|
endif()
|
|
|
|
add_library(dingosdk_frostbite STATIC
|
|
Engine/Resource/binary_io.cpp
|
|
Engine/Resource/binary_bundle.cpp
|
|
Engine/Resource/cas_codec.cpp
|
|
Engine/Resource/ebx_document.cpp
|
|
Engine/Resource/ebx_merge.cpp
|
|
Engine/Resource/material_grid.cpp
|
|
Engine/Resource/shader_lookup.cpp
|
|
Engine/Resource/bundle_ref_table.cpp
|
|
Engine/Resource/ebx_writer.cpp
|
|
Engine/Resource/toc.cpp
|
|
Engine/Resource/texture.cpp
|
|
Engine/Resource/mesh_set.cpp
|
|
Engine/Resource/skeleton_asset.cpp)
|
|
target_include_directories(dingosdk_frostbite SYSTEM PRIVATE External/bcdec)
|
|
target_link_libraries(dingosdk_frostbite PRIVATE dingosdk_lz4 dingosdk_zstd dingosdk_miniz)
|
|
|
|
add_library(dingosdk_native_db STATIC Engine/Vfs/native_db.cpp)
|
|
|
|
if(WIN32)
|
|
add_library(dingosdk_initfs STATIC Engine/Vfs/initfs.cpp)
|
|
target_link_libraries(dingosdk_initfs PUBLIC dingosdk_launcher_support dingosdk_json PRIVATE dingosdk_native_db bcrypt)
|
|
|
|
# The Mods folder list and mods.json writer, without the merge: shared with
|
|
# the launcher's mod manager.
|
|
add_library(dingosdk_mod_list STATIC Engine/Vfs/mod_list.cpp)
|
|
target_link_libraries(dingosdk_mod_list PUBLIC dingosdk_json)
|
|
endif()
|
|
|
|
# Read access to the installed game's cas archives.
|
|
add_library(dingosdk_game_archives STATIC Engine/Vfs/game_archives.cpp Engine/Vfs/game_bundles.cpp
|
|
Engine/Vfs/item_thumbnails.cpp Engine/Vfs/game_textures.cpp)
|
|
target_link_libraries(dingosdk_game_archives PUBLIC dingosdk_native_db dingosdk_frostbite)
|
|
|
|
if(WIN32)
|
|
add_library(dingosdk_mods STATIC
|
|
Engine/Vfs/mod_catalog.cpp
|
|
Engine/Vfs/mod_merge.cpp
|
|
Engine/Vfs/mod_merge_files.cpp
|
|
Engine/Vfs/mod_merge_stamp.cpp
|
|
Engine/Vfs/mod_merge_cas_store.cpp
|
|
Engine/Vfs/mod_merge_combine.cpp
|
|
Engine/Vfs/mod_merge_overrides.cpp
|
|
Engine/Vfs/mod_merge_grid.cpp
|
|
Engine/Vfs/mod_merge_load_screens.cpp
|
|
Engine/Vfs/mod_music.cpp
|
|
Engine/Vfs/mod_scoring.cpp
|
|
Engine/Vfs/mod_store_copies.cpp
|
|
Engine/Vfs/builtin_packs.cpp)
|
|
target_link_libraries(dingosdk_mods PUBLIC dingosdk_json dingosdk_mod_list PRIVATE dingosdk_game_archives dingosdk_native_db dingosdk_frostbite dingosdk_content_cache dingosdk_miniz dingosdk_zstd shell32 bcrypt)
|
|
|
|
add_library(dingosdk_custom_scripts STATIC Engine/Scripting/custom_scripts.cpp)
|
|
target_link_libraries(dingosdk_custom_scripts PUBLIC dingosdk_json PRIVATE dingosdk_initfs)
|
|
|
|
# HTTPS downloads shared by the park preview and content cache packs.
|
|
add_library(dingosdk_https STATIC Engine/Vfs/https_download.cpp)
|
|
target_link_libraries(dingosdk_https PUBLIC winhttp)
|
|
endif()
|
|
|
|
# The live game's content cache: the launcher installs it, the runtime reads
|
|
# catalogues from it (Engine/Vfs/content_cache.h).
|
|
add_library(dingosdk_content_cache STATIC Engine/Vfs/content_cache.cpp Engine/Vfs/content_catalogs.cpp)
|
|
target_link_libraries(dingosdk_content_cache PUBLIC dingosdk_json)
|
|
if(WIN32)
|
|
add_library(dingosdk_content_cache_install STATIC Engine/Vfs/content_cache_install.cpp)
|
|
target_link_libraries(dingosdk_content_cache_install PUBLIC dingosdk_content_cache
|
|
PRIVATE dingosdk_launcher_support dingosdk_https dingosdk_miniz)
|
|
endif()
|
|
# World layers read from the installed level data, cached per game build.
|
|
add_library(dingosdk_world_layer_scan STATIC Engine/Vfs/world_layer_scan.cpp)
|
|
target_link_libraries(dingosdk_world_layer_scan PUBLIC dingosdk_json PRIVATE dingosdk_game_archives dingosdk_content_cache)
|