Files
sacred_k/CMakeLists.txt
T
khallaandClaude Opus 5.5 1d16fc65c4 Quest book as one list: story, then side quests by region with ??? rows
The game's list builder runs on a reordered copy of the book: the story, then
one section per region (id blocks of 100 grouped by the region their quests
lie in, named as the megamap names regions), unknown quests as "???", the
rest joined to the nearest area, undiscovered counts. Act tabs hidden, page
turning kept. "Erledigte anzeigen" row toggles completed quests
([questbook] ShowCompleted).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 11:41:19 +01:00

93 lines
2.9 KiB
CMake

cmake_minimum_required(VERSION 3.24)
project(sacredK LANGUAGES C CXX)
# sacred.exe is a 32-bit process; everything we inject into it must be 32-bit too.
if(NOT CMAKE_SIZEOF_VOID_P EQUAL 4)
message(FATAL_ERROR "sacredK must be built for 32-bit x86 (use the 'x86-*' presets / an x86 MSVC environment).")
endif()
if(NOT MSVC)
message(FATAL_ERROR "sacredK requires MSVC (the game's C++ ABI is MSVC's).")
endif()
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Static CRT: no VC++ redistributable needed next to the game.
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
add_compile_definitions(WIN32_LEAN_AND_MEAN NOMINMAX _CRT_SECURE_NO_WARNINGS)
include(cmake/Detours.cmake)
include(cmake/Json.cmake)
set(SACREDK_CXX_FLAGS /W4 /permissive- /utf-8)
# --- sacredK.dll: injected into sacred.exe, installs the hooks -------------
add_library(sacredK SHARED
src/re/dllmain.cpp
src/re/hook.cpp
src/re/log.cpp
src/re/config.cpp
src/re/patch.cpp
src/re/crash.cpp
src/re/sacredK.def
src/game/engine/log.cpp
src/game/engine/cmdline.cpp
src/game/engine/events.cpp
src/game/engine/fx.cpp
src/game/engine/orders.cpp
src/game/engine/items.cpp
src/game/engine/stream.cpp
src/game/ui/texts.cpp
src/game/engine/art.cpp
src/mods/borderless.cpp
src/mods/widescreen.cpp
src/mods/hud.cpp
src/mods/wasd.cpp
src/mods/skillkeys.cpp
src/mods/input.cpp
src/mods/skillslots.cpp
src/mods/inventory_save.cpp
src/mods/potioncounts.cpp
src/mods/itemstack.cpp
src/mods/sharedchest.cpp
src/mods/skillbar.cpp
src/mods/arttarget.cpp
src/mods/aura_restore.cpp
src/mods/autoattack.cpp
src/mods/aurarecast.cpp
src/mods/artregen.cpp
src/mods/combos.cpp
src/mods/aurahits.cpp
src/mods/chainlightning.cpp
src/mods/arttooltip.cpp
src/mods/escape.cpp
src/mods/recordcache.cpp
src/mods/megamap.cpp
src/mods/respec.cpp
src/mods/runetrade.cpp
src/mods/teleportpotion.cpp
src/mods/guards.cpp
src/mods/options.cpp
src/mods/lootfilter.cpp
src/mods/userfolders.cpp
src/mods/charfile.cpp
src/mods/screen.cpp
src/mods/characters.cpp
src/mods/mainmenu.cpp
src/mods/mapreveal.cpp
src/mods/questbook.cpp
src/mods/questfail.cpp
src/mods/anticheat.cpp
src/mods/loadingscreen.cpp
)
target_include_directories(sacredK PRIVATE src)
target_compile_options(sacredK PRIVATE ${SACREDK_CXX_FLAGS})
target_link_libraries(sacredK PRIVATE detours nlohmann_json::nlohmann_json dbghelp)
# --- sacredK.exe: launches sacred.exe with sacredK.dll injected ----------
add_executable(sacredK_launcher WIN32 src/launcher/main.cpp)
set_target_properties(sacredK_launcher PROPERTIES OUTPUT_NAME sacredK)
target_compile_options(sacredK_launcher PRIVATE ${SACREDK_CXX_FLAGS})
target_link_libraries(sacredK_launcher PRIVATE detours)
add_dependencies(sacredK_launcher sacredK)