mirror of
https://github.com/Dingo-Shenanigans/ReSkate.git
synced 2026-10-23 13:05:54 +02:00
The merge measures each custom map's own meshes, every level of detail of every MeshSet in its level bundles, into Mods/.reskate/reskate-map-meshes.json. A custom map's mesh streaming pool is the game's 520 MB and half as much again as those meshes, at most half the video memory free (as before): most maps have 25 to 70 MB of meshes and reserved 1 to 2 GB for them. When the map needs more than the card has room for, Mesh.GlobalLodScale goes from the quality preset's 1.25 or 1.5 to 1, so coarser levels take over nearer; the game's value comes back for the next map that fits. A map's world textures (texture group Worlds_*) flagged to stream that keep every mip with the bundle, as an older Studio built them (404 MB of PQS Cordoba's), are made to stream as the game's own do: the bundle keeps the mip tail from a 64 KB block, both first-mip fields of the header and the chunk record say so, and the sharper mips stream from the chunk the map's TOC lists in full. Only in a map's own level bundles (Studio keeps cosmetics whole; changing those left a load at Starting server), and only for chunks whose guid marks them compressed (the streamer reads any other as raw pixels and copied past what it read).
135 lines
5.8 KiB
CMake
135 lines
5.8 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_fixup_repair.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_textures.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/mod_item_sources.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)
|