Files
sacred_k/CMakeLists.txt
T
khallaandClaude Opus 5.5 838b1aa491 Options: tabs Allgemein / Beute / Tastenbelegung with key bindings
- Options window in three tabs; the auto-pickup settings move to Beute;
  sliders move with their page; black sides like the save game screen.
- Tastenbelegung: every binding settable (click, press key; Esc cancels,
  Backspace unbinds), "Alle zurücksetzen" as a game button, saved on OK.
- Potions bindable (default unbound), named by the game's potion texts; the
  game's own potion hotkeys are off; bar tooltips show the bound key.
- Map (M), overview map (Tab, held) and labels (Alt, held) bindable; the
  game's own M / Tab / Alt handling is switched off.
- Save game key calls the game's save window code instead of a posted key.
- Teleportationstrank: fixed text replacement from startup (also the
  Ausdauertrank items, potion kind 5 as well).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-19 00:38:34 +02:00

83 lines
2.7 KiB
CMake

cmake_minimum_required(VERSION 3.24)
project(sacred_re 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 "sacred_re must be built for 32-bit x86 (use the 'x86-*' presets / an x86 MSVC environment).")
endif()
if(NOT MSVC)
message(FATAL_ERROR "sacred_re 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(SACRED_RE_CXX_FLAGS /W4 /permissive- /utf-8)
# --- sacred_re.dll: injected into sacred.exe, installs the hooks -------------
add_library(sacred_re 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/sacred_re.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/charexport.cpp
src/mods/options.cpp
)
target_include_directories(sacred_re PRIVATE src)
target_compile_options(sacred_re PRIVATE ${SACRED_RE_CXX_FLAGS})
target_link_libraries(sacred_re PRIVATE detours nlohmann_json::nlohmann_json dbghelp)
# --- sacred_re.exe: launches sacred.exe with sacred_re.dll injected ----------
add_executable(sacred_re_launcher WIN32 src/launcher/main.cpp)
set_target_properties(sacred_re_launcher PROPERTIES OUTPUT_NAME sacred_re)
target_compile_options(sacred_re_launcher PRIVATE ${SACRED_RE_CXX_FLAGS})
target_link_libraries(sacred_re_launcher PRIVATE detours)
add_dependencies(sacred_re_launcher sacred_re)