Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CREDITS
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Credited on the About page of the settings screen: [Section] lines become headings, other lines names.
[Developers]
carrdylan52
Adubbz
Alessandro Suha
Thomas Cantwell
Jeffiest
drkm9743

[Artists]
Carbon
19 changes: 11 additions & 8 deletions docs/PC.md
Original file line number Diff line number Diff line change
Expand Up @@ -1200,13 +1200,15 @@ gives back -1 and leaves the file as it was where either would not hold.
## The Options screen

The game's Options screen, from the title, the town menu and the dungeon menu,
is the port's settings screen (`port/src/menu_option.cpp`, which replaces
is the port's settings screen (`port/src/menu_option.cpp` replaces
`InitMenuOption`, `MenuOptionKey`, `DrawMenuOption` and
`OptionMenuFadeOutStart`). It keeps the game's frame, cursor, sounds, EXIT
`OptionMenuFadeOutStart` and hands them to `port/src/options/`: `rows` defines
the pages and their rows, `screen` runs input and help, `draw` lays it out). It keeps the game's frame, cursor, sounds, EXIT
button and help window, and draws its rows in the game's message font ("Game
text"). Four pages, Game, Display, Audio and Controls, are named on a help
window's plate with L1 and R1 at its ends; L1 and L2, R1 and R2 turn the page,
and so do left and right on the page names. Each row is a label and a value:
text"). Five pages, Game, Display, Audio, Controls and Accessibility,
are named on a help window's plate with L1 and R1 at its ends; the names
scroll along it, with `<` and `>` where more lie past an end. L1 and L2, R1
and R2 turn the page, and so do left and right on the page names. Each row is a label and a value:
left and right change the value at once, cross goes round its choices, and a
value whose setting `ConfigAppliesOnRestart` names ends in ` *`. Every change
goes through `ConfigChange`, so it applies at once and rewrites `config.json`.
Expand All @@ -1220,10 +1222,11 @@ help. Retail's screen-position row is gone: `MGAdjustScreen` moves nothing on PC

| Page | Rows |
|---|---|
| Game | save cursor position, message speed, clock, time speed, dungeon map, enemy damage, party damage, enemy HP, names |
| Display | window mode, resolution (the monitor's own and the sizes that fit it), V-Sync (`fifo`, `mailbox`, `immediate`), frame limit, aspect ratio, interface size (`ui_scale`), smooth motion (`interpolation`), FPS counter, soft focus |
| Game | save cursor position, message speed, clock, time speed, dungeon map, enemy damage, party damage, enemy HP, names, Discord Rich Presence |
| Display | window mode, resolution (the monitor's own and the sizes that fit it), V-Sync (`fifo`, `mailbox`, `immediate`), frame limit, aspect ratio, interface size (`ui_scale`), smooth motion (`interpolation`), FPS counter, FPS info (`fps_detail`), soft focus |
| Audio | volume, sound (stereo or mono) |
| Controls | vibration, mouse sensitivity (in hundredths below 1 and tenths above, whatever its unit), invert mouse Y, stick sensitivity |
| Controls | vibration, mouse sensitivity (in hundredths below 1 and tenths above, whatever its unit), invert mouse Y, mouse wheel zoom, reset zoom (its binding), stick sensitivity, invert stick X and Y, gyro, gyro sensitivity, invert gyro X and Y |
| Accessibility | always win QTEs |

Resolution choices are the sizes that fit the display (its usable area less
the window's borders when windowed) and follow changes of mode. Desktop is
Expand Down
22 changes: 21 additions & 1 deletion port/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,26 @@ string(REGEX REPLACE "(..)" "0x\\1," icon_bytes "${icon_hex}")
file(CONFIGURE OUTPUT ${SHADER_HEADER_DIR}/icon/chronicle.hpp
CONTENT "#pragma once\n#include <cstdint>\ninline constexpr int kIconSize = 128;\ninline constexpr std::uint8_t kIconRgba[] = {${icon_bytes}};\n")

# CREDITS, one contributor a line and # for comments, as the About page's list of names.
set(CREDITS_FILE ${CMAKE_SOURCE_DIR}/CREDITS)
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${CREDITS_FILE})
file(STRINGS ${CREDITS_FILE} credit_lines ENCODING UTF-8)
set(credit_names "")
foreach(line IN LISTS credit_lines)
string(STRIP "${line}" line)
if(line STREQUAL "" OR line MATCHES "^#")
continue()
endif()
string(REPLACE "\\" "\\\\" line "${line}")
string(REPLACE "\"" "\\\"" line "${line}")
string(APPEND credit_names "\"${line}\", ")
endforeach()
if(credit_names STREQUAL "")
set(credit_names "\"\"")
endif()
file(CONFIGURE OUTPUT ${SHADER_HEADER_DIR}/options/credits.hpp
CONTENT "#pragma once\ninline constexpr const char *kCredits[] = {${credit_names}};\n")

add_library(dc_host OBJECT ${HOST_SOURCES} ${SHADER_HEADERS})
target_include_directories(dc_host PRIVATE ${PORT_DIR} ${SHADER_HEADER_DIR})
target_link_libraries(dc_host PRIVATE SDL3::SDL3 Vulkan::Vulkan nlohmann_json::nlohmann_json)
Expand All @@ -184,7 +204,7 @@ target_compile_options(dc_host PRIVATE -Wall -ffunction-sections -fdata-sections
add_library(dc_port OBJECT ${PORT_LIB_SOURCES})
target_link_libraries(dc_port PRIVATE dc_options SDL3::SDL3 Vulkan::Vulkan)
# Replacement units reach the host side as "gfx/gfx.hpp", "platform/window.hpp".
target_include_directories(dc_port PRIVATE ${PORT_DIR})
target_include_directories(dc_port PRIVATE ${PORT_DIR} ${SHADER_HEADER_DIR})
# The game's headers trip a few warnings that only describe how MWCC's source
# was written, not a problem in the port.
target_compile_options(dc_port PRIVATE -Wall -Wno-mismatched-tags -Wno-unused-label
Expand Down
Loading
Loading