From 852681846fc1daa67da580e532f38d5da6fd361c Mon Sep 17 00:00:00 2001 From: Marcin Kurczewski Date: Tue, 17 Sep 2024 21:33:56 +0200 Subject: [PATCH 1/3] libtrx: move opengl linking to libtrx --- meson.build | 7 ------- subprojects/libtrx | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/meson.build b/meson.build index 4c9e6196f..382d998c6 100644 --- a/meson.build +++ b/meson.build @@ -38,12 +38,6 @@ endif null_dep = dependency('', required: false) -if host_machine.system() == 'windows' - dep_opengl = c_compiler.find_library('opengl32') -else - dep_opengl = dependency('GL') -endif - dep_trx = trx.get_variable('dep_trx') dep_avcodec = dependency('libavcodec', static: staticdeps) dep_avformat = dependency('libavformat', static: staticdeps) @@ -292,7 +286,6 @@ dependencies = [ dep_avformat, dep_avutil, dep_mathlibrary, - dep_opengl, dep_sdl2, dep_swresample, dep_swscale, diff --git a/subprojects/libtrx b/subprojects/libtrx index 16c687c19..8ad35cc89 160000 --- a/subprojects/libtrx +++ b/subprojects/libtrx @@ -1 +1 @@ -Subproject commit 16c687c19688453218cf65d2371c3f9bf8f95654 +Subproject commit 8ad35cc897de2af3d1b58407adfbf2908ade5dd6 From 75a432c0f598b517df42624b2b8ebc5935a422bb Mon Sep 17 00:00:00 2001 From: Marcin Kurczewski Date: Tue, 17 Sep 2024 22:41:11 +0200 Subject: [PATCH 2/3] game-string: manage game strings in libtrx --- .gitignore | 2 + src/game/game_string.c | 57 ++---------- src/game/game_string.h | 15 +--- src/game/gameflow.c | 11 +-- src/game/option/option_control.c | 144 +++++++++++++++--------------- src/game/option/option_graphics.c | 27 +++--- src/game/shell.c | 2 + subprojects/libtrx | 2 +- 8 files changed, 108 insertions(+), 152 deletions(-) diff --git a/.gitignore b/.gitignore index fdfd1e4c9..b9ec2a7a4 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,5 @@ Release/ subprojects/packagecache/ subprojects/dwarfstack-*/ subprojects/dwarfstack.wrap +subprojects/uthash-*/ +subprojects/uthash.wrap diff --git a/src/game/game_string.c b/src/game/game_string.c index eae8d5187..264a97ff3 100644 --- a/src/game/game_string.c +++ b/src/game/game_string.c @@ -1,58 +1,15 @@ #include "game_string.h" -#include -#include +#include -#include -#include -#include - -typedef struct ENUM_NAME_MAP { - const char *str; - const GAME_STRING_ID val; -} ENUM_NAME_MAP; - -static ENUM_NAME_MAP m_EnumNameMap[]; -static char *m_StringMap[GS_NUMBER_OF] = { 0 }; -#undef GS_DEFINE -#define GS_DEFINE(id, str) str, -static const char *m_DefaultStringMap[GS_NUMBER_OF] = { -#include "game/game_string.def" -}; - -#undef GS_DEFINE -#define GS_DEFINE(id, str) \ - { \ - QUOTE(id), \ - GS_##id, \ - }, -static ENUM_NAME_MAP m_EnumNameMap[] = { -#include "game/game_string.def" - { NULL, 0 }, -}; - -void GameString_Set(GAME_STRING_ID id, const char *value) -{ - assert(id >= 0); - assert(id < GS_NUMBER_OF); - Memory_FreePointer(&m_StringMap[id]); - m_StringMap[id] = Memory_DupStr(value); -} - -const char *GameString_Get(GAME_STRING_ID id) +void GameString_Init(void) { - return m_StringMap[id] != NULL ? (const char *)m_StringMap[id] - : m_DefaultStringMap[id]; + // IWYU pragma: begin_keep +#include "game_string.def" + // IWYU pragma: end_keep } -GAME_STRING_ID GameString_IDFromEnum(const char *const str) +void GameString_Shutdown(void) { - const ENUM_NAME_MAP *current = &m_EnumNameMap[0]; - while (current->str) { - if (!strcmp(str, current->str)) { - return current->val; - } - current++; - } - return GS_INVALID; + GameString_Clear(); } diff --git a/src/game/game_string.h b/src/game/game_string.h index 23f902ca3..78c02b199 100644 --- a/src/game/game_string.h +++ b/src/game/game_string.h @@ -1,15 +1,6 @@ #pragma once -#define GS(id) GameString_Get(GS_##id) +#include -#undef GS_DEFINE -#define GS_DEFINE(id, str) GS_##id, -typedef enum GAME_STRING_ID { - GS_INVALID = -1, -#include "game/game_string.def" - GS_NUMBER_OF, -} GAME_STRING_ID; - -void GameString_Set(GAME_STRING_ID id, const char *value); -const char *GameString_Get(GAME_STRING_ID id); -GAME_STRING_ID GameString_IDFromEnum(const char *str); +void GameString_Init(void); +void GameString_Shutdown(void); diff --git a/src/game/gameflow.c b/src/game/gameflow.c index 44bb1312b..722cfc542 100644 --- a/src/game/gameflow.c +++ b/src/game/gameflow.c @@ -243,13 +243,14 @@ static bool GameFlow_LoadScriptGameStrings(struct json_object_s *obj) struct json_object_element_s *strings_elem = strings_obj->start; while (strings_elem) { - const GAME_STRING_ID key = - GameString_IDFromEnum(strings_elem->name->string); + const char *const key = strings_elem->name->string; struct json_string_s *value = json_value_as_string(strings_elem->value); - if (!value || !value->string || key < 0 || key >= GS_NUMBER_OF) { - LOG_ERROR("invalid string key %s", strings_elem->name->string); + if (!GameString_IsKnown(key)) { + LOG_ERROR("invalid game string key: %s", key); + } else if (!value || value->string == NULL) { + LOG_ERROR("invalid game string value: %s", key); } else { - GameString_Set(key, value->string); + GameString_Define(key, value->string); } strings_elem = strings_elem->next; } diff --git a/src/game/option/option_control.c b/src/game/option/option_control.c index 9a2eb1fe7..7346d1b27 100644 --- a/src/game/option/option_control.c +++ b/src/game/option/option_control.c @@ -106,86 +106,86 @@ static MENU m_ControlMenu = { }; static const LAYOUT_NUM_GS_MAP m_LayoutMap[] = { - { INPUT_LAYOUT_DEFAULT, GS_CONTROL_DEFAULT_KEYS }, - { INPUT_LAYOUT_CUSTOM_1, GS_CONTROL_CUSTOM_1 }, - { INPUT_LAYOUT_CUSTOM_2, GS_CONTROL_CUSTOM_2 }, - { INPUT_LAYOUT_CUSTOM_3, GS_CONTROL_CUSTOM_3 }, + { INPUT_LAYOUT_DEFAULT, GS_ID(CONTROL_DEFAULT_KEYS) }, + { INPUT_LAYOUT_CUSTOM_1, GS_ID(CONTROL_CUSTOM_1) }, + { INPUT_LAYOUT_CUSTOM_2, GS_ID(CONTROL_CUSTOM_2) }, + { INPUT_LAYOUT_CUSTOM_3, GS_ID(CONTROL_CUSTOM_3) }, }; static const TEXT_COLUMN_PLACEMENT CtrlTextPlacementNormal[] = { - { INPUT_ROLE_UP, GS_KEYMAP_RUN, false }, - { INPUT_ROLE_DOWN, GS_KEYMAP_BACK, false }, - { INPUT_ROLE_LEFT, GS_KEYMAP_LEFT, false }, - { INPUT_ROLE_RIGHT, GS_KEYMAP_RIGHT, false }, - { INPUT_ROLE_DRAW, GS_KEYMAP_DRAW_WEAPON, false }, - { INPUT_ROLE_ACTION, GS_KEYMAP_ACTION, false }, - { INPUT_ROLE_JUMP, GS_KEYMAP_JUMP, false }, - { INPUT_ROLE_ROLL, GS_KEYMAP_ROLL, false }, - { INPUT_ROLE_LOOK, GS_KEYMAP_LOOK, false }, - { INPUT_ROLE_SLOW, GS_KEYMAP_WALK, false }, - { INPUT_ROLE_STEP_L, GS_KEYMAP_STEP_LEFT, true }, - { INPUT_ROLE_STEP_R, GS_KEYMAP_STEP_RIGHT, true }, - { INPUT_ROLE_OPTION, GS_KEYMAP_INVENTORY, false }, - { INPUT_ROLE_PAUSE, GS_KEYMAP_PAUSE, true }, - { INPUT_ROLE_CHANGE_TARGET, GS_KEYMAP_CHANGE_TARGET, true }, - { INPUT_ROLE_CAMERA_UP, GS_KEYMAP_CAMERA_UP, true }, - { INPUT_ROLE_CAMERA_DOWN, GS_KEYMAP_CAMERA_DOWN, true }, - { INPUT_ROLE_CAMERA_LEFT, GS_KEYMAP_CAMERA_LEFT, true }, - { INPUT_ROLE_CAMERA_RIGHT, GS_KEYMAP_CAMERA_RIGHT, true }, - { INPUT_ROLE_CAMERA_RESET, GS_KEYMAP_CAMERA_RESET, true }, - { INPUT_ROLE_EQUIP_PISTOLS, GS_KEYMAP_EQUIP_PISTOLS, true }, - { INPUT_ROLE_EQUIP_SHOTGUN, GS_KEYMAP_EQUIP_SHOTGUN, true }, - { INPUT_ROLE_EQUIP_MAGNUMS, GS_KEYMAP_EQUIP_MAGNUMS, true }, - { INPUT_ROLE_EQUIP_UZIS, GS_KEYMAP_EQUIP_UZIS, true }, - { INPUT_ROLE_USE_SMALL_MEDI, GS_KEYMAP_USE_SMALL_MEDI, true }, - { INPUT_ROLE_USE_BIG_MEDI, GS_KEYMAP_USE_BIG_MEDI, true }, - { INPUT_ROLE_SAVE, GS_KEYMAP_SAVE, true }, - { INPUT_ROLE_LOAD, GS_KEYMAP_LOAD, true }, - { INPUT_ROLE_FPS, GS_KEYMAP_FPS, true }, - { INPUT_ROLE_BILINEAR, GS_KEYMAP_BILINEAR, true }, - { INPUT_ROLE_ENTER_CONSOLE, GS_KEYMAP_ENTER_CONSOLE, true }, + { INPUT_ROLE_UP, GS_ID(KEYMAP_RUN), false }, + { INPUT_ROLE_DOWN, GS_ID(KEYMAP_BACK), false }, + { INPUT_ROLE_LEFT, GS_ID(KEYMAP_LEFT), false }, + { INPUT_ROLE_RIGHT, GS_ID(KEYMAP_RIGHT), false }, + { INPUT_ROLE_DRAW, GS_ID(KEYMAP_DRAW_WEAPON), false }, + { INPUT_ROLE_ACTION, GS_ID(KEYMAP_ACTION), false }, + { INPUT_ROLE_JUMP, GS_ID(KEYMAP_JUMP), false }, + { INPUT_ROLE_ROLL, GS_ID(KEYMAP_ROLL), false }, + { INPUT_ROLE_LOOK, GS_ID(KEYMAP_LOOK), false }, + { INPUT_ROLE_SLOW, GS_ID(KEYMAP_WALK), false }, + { INPUT_ROLE_STEP_L, GS_ID(KEYMAP_STEP_LEFT), true }, + { INPUT_ROLE_STEP_R, GS_ID(KEYMAP_STEP_RIGHT), true }, + { INPUT_ROLE_OPTION, GS_ID(KEYMAP_INVENTORY), false }, + { INPUT_ROLE_PAUSE, GS_ID(KEYMAP_PAUSE), true }, + { INPUT_ROLE_CHANGE_TARGET, GS_ID(KEYMAP_CHANGE_TARGET), true }, + { INPUT_ROLE_CAMERA_UP, GS_ID(KEYMAP_CAMERA_UP), true }, + { INPUT_ROLE_CAMERA_DOWN, GS_ID(KEYMAP_CAMERA_DOWN), true }, + { INPUT_ROLE_CAMERA_LEFT, GS_ID(KEYMAP_CAMERA_LEFT), true }, + { INPUT_ROLE_CAMERA_RIGHT, GS_ID(KEYMAP_CAMERA_RIGHT), true }, + { INPUT_ROLE_CAMERA_RESET, GS_ID(KEYMAP_CAMERA_RESET), true }, + { INPUT_ROLE_EQUIP_PISTOLS, GS_ID(KEYMAP_EQUIP_PISTOLS), true }, + { INPUT_ROLE_EQUIP_SHOTGUN, GS_ID(KEYMAP_EQUIP_SHOTGUN), true }, + { INPUT_ROLE_EQUIP_MAGNUMS, GS_ID(KEYMAP_EQUIP_MAGNUMS), true }, + { INPUT_ROLE_EQUIP_UZIS, GS_ID(KEYMAP_EQUIP_UZIS), true }, + { INPUT_ROLE_USE_SMALL_MEDI, GS_ID(KEYMAP_USE_SMALL_MEDI), true }, + { INPUT_ROLE_USE_BIG_MEDI, GS_ID(KEYMAP_USE_BIG_MEDI), true }, + { INPUT_ROLE_SAVE, GS_ID(KEYMAP_SAVE), true }, + { INPUT_ROLE_LOAD, GS_ID(KEYMAP_LOAD), true }, + { INPUT_ROLE_FPS, GS_ID(KEYMAP_FPS), true }, + { INPUT_ROLE_BILINEAR, GS_ID(KEYMAP_BILINEAR), true }, + { INPUT_ROLE_ENTER_CONSOLE, GS_ID(KEYMAP_ENTER_CONSOLE), true }, // end - { COL_END, -1, false }, + { COL_END, NULL, false }, }; static const TEXT_COLUMN_PLACEMENT CtrlTextPlacementCheats[] = { - { INPUT_ROLE_UP, GS_KEYMAP_RUN, false }, - { INPUT_ROLE_DOWN, GS_KEYMAP_BACK, false }, - { INPUT_ROLE_LEFT, GS_KEYMAP_LEFT, false }, - { INPUT_ROLE_RIGHT, GS_KEYMAP_RIGHT, false }, - { INPUT_ROLE_DRAW, GS_KEYMAP_DRAW_WEAPON, false }, - { INPUT_ROLE_ACTION, GS_KEYMAP_ACTION, false }, - { INPUT_ROLE_JUMP, GS_KEYMAP_JUMP, false }, - { INPUT_ROLE_ROLL, GS_KEYMAP_ROLL, false }, - { INPUT_ROLE_LOOK, GS_KEYMAP_LOOK, false }, - { INPUT_ROLE_SLOW, GS_KEYMAP_WALK, false }, - { INPUT_ROLE_STEP_L, GS_KEYMAP_STEP_LEFT, true }, - { INPUT_ROLE_STEP_R, GS_KEYMAP_STEP_RIGHT, true }, - { INPUT_ROLE_OPTION, GS_KEYMAP_INVENTORY, false }, - { INPUT_ROLE_PAUSE, GS_KEYMAP_PAUSE, true }, - { INPUT_ROLE_CHANGE_TARGET, GS_KEYMAP_CHANGE_TARGET, true }, - { INPUT_ROLE_CAMERA_UP, GS_KEYMAP_CAMERA_UP, true }, - { INPUT_ROLE_CAMERA_DOWN, GS_KEYMAP_CAMERA_DOWN, true }, - { INPUT_ROLE_CAMERA_LEFT, GS_KEYMAP_CAMERA_LEFT, true }, - { INPUT_ROLE_CAMERA_RIGHT, GS_KEYMAP_CAMERA_RIGHT, true }, - { INPUT_ROLE_CAMERA_RESET, GS_KEYMAP_CAMERA_RESET, true }, - { INPUT_ROLE_EQUIP_PISTOLS, GS_KEYMAP_EQUIP_PISTOLS, true }, - { INPUT_ROLE_EQUIP_SHOTGUN, GS_KEYMAP_EQUIP_SHOTGUN, true }, - { INPUT_ROLE_EQUIP_MAGNUMS, GS_KEYMAP_EQUIP_MAGNUMS, true }, - { INPUT_ROLE_EQUIP_UZIS, GS_KEYMAP_EQUIP_UZIS, true }, - { INPUT_ROLE_USE_SMALL_MEDI, GS_KEYMAP_USE_SMALL_MEDI, true }, - { INPUT_ROLE_USE_BIG_MEDI, GS_KEYMAP_USE_BIG_MEDI, true }, - { INPUT_ROLE_SAVE, GS_KEYMAP_SAVE, true }, - { INPUT_ROLE_LOAD, GS_KEYMAP_LOAD, true }, - { INPUT_ROLE_FPS, GS_KEYMAP_FPS, true }, - { INPUT_ROLE_BILINEAR, GS_KEYMAP_BILINEAR, true }, - { INPUT_ROLE_FLY_CHEAT, GS_KEYMAP_FLY_CHEAT, true }, - { INPUT_ROLE_ITEM_CHEAT, GS_KEYMAP_ITEM_CHEAT, true }, - { INPUT_ROLE_LEVEL_SKIP_CHEAT, GS_KEYMAP_LEVEL_SKIP_CHEAT, true }, - { INPUT_ROLE_TURBO_CHEAT, GS_KEYMAP_TURBO_CHEAT, true }, - { INPUT_ROLE_ENTER_CONSOLE, GS_KEYMAP_ENTER_CONSOLE, true }, + { INPUT_ROLE_UP, GS_ID(KEYMAP_RUN), false }, + { INPUT_ROLE_DOWN, GS_ID(KEYMAP_BACK), false }, + { INPUT_ROLE_LEFT, GS_ID(KEYMAP_LEFT), false }, + { INPUT_ROLE_RIGHT, GS_ID(KEYMAP_RIGHT), false }, + { INPUT_ROLE_DRAW, GS_ID(KEYMAP_DRAW_WEAPON), false }, + { INPUT_ROLE_ACTION, GS_ID(KEYMAP_ACTION), false }, + { INPUT_ROLE_JUMP, GS_ID(KEYMAP_JUMP), false }, + { INPUT_ROLE_ROLL, GS_ID(KEYMAP_ROLL), false }, + { INPUT_ROLE_LOOK, GS_ID(KEYMAP_LOOK), false }, + { INPUT_ROLE_SLOW, GS_ID(KEYMAP_WALK), false }, + { INPUT_ROLE_STEP_L, GS_ID(KEYMAP_STEP_LEFT), true }, + { INPUT_ROLE_STEP_R, GS_ID(KEYMAP_STEP_RIGHT), true }, + { INPUT_ROLE_OPTION, GS_ID(KEYMAP_INVENTORY), false }, + { INPUT_ROLE_PAUSE, GS_ID(KEYMAP_PAUSE), true }, + { INPUT_ROLE_CHANGE_TARGET, GS_ID(KEYMAP_CHANGE_TARGET), true }, + { INPUT_ROLE_CAMERA_UP, GS_ID(KEYMAP_CAMERA_UP), true }, + { INPUT_ROLE_CAMERA_DOWN, GS_ID(KEYMAP_CAMERA_DOWN), true }, + { INPUT_ROLE_CAMERA_LEFT, GS_ID(KEYMAP_CAMERA_LEFT), true }, + { INPUT_ROLE_CAMERA_RIGHT, GS_ID(KEYMAP_CAMERA_RIGHT), true }, + { INPUT_ROLE_CAMERA_RESET, GS_ID(KEYMAP_CAMERA_RESET), true }, + { INPUT_ROLE_EQUIP_PISTOLS, GS_ID(KEYMAP_EQUIP_PISTOLS), true }, + { INPUT_ROLE_EQUIP_SHOTGUN, GS_ID(KEYMAP_EQUIP_SHOTGUN), true }, + { INPUT_ROLE_EQUIP_MAGNUMS, GS_ID(KEYMAP_EQUIP_MAGNUMS), true }, + { INPUT_ROLE_EQUIP_UZIS, GS_ID(KEYMAP_EQUIP_UZIS), true }, + { INPUT_ROLE_USE_SMALL_MEDI, GS_ID(KEYMAP_USE_SMALL_MEDI), true }, + { INPUT_ROLE_USE_BIG_MEDI, GS_ID(KEYMAP_USE_BIG_MEDI), true }, + { INPUT_ROLE_SAVE, GS_ID(KEYMAP_SAVE), true }, + { INPUT_ROLE_LOAD, GS_ID(KEYMAP_LOAD), true }, + { INPUT_ROLE_FPS, GS_ID(KEYMAP_FPS), true }, + { INPUT_ROLE_BILINEAR, GS_ID(KEYMAP_BILINEAR), true }, + { INPUT_ROLE_FLY_CHEAT, GS_ID(KEYMAP_FLY_CHEAT), true }, + { INPUT_ROLE_ITEM_CHEAT, GS_ID(KEYMAP_ITEM_CHEAT), true }, + { INPUT_ROLE_LEVEL_SKIP_CHEAT, GS_ID(KEYMAP_LEVEL_SKIP_CHEAT), true }, + { INPUT_ROLE_TURBO_CHEAT, GS_ID(KEYMAP_TURBO_CHEAT), true }, + { INPUT_ROLE_ENTER_CONSOLE, GS_ID(KEYMAP_ENTER_CONSOLE), true }, // end - { COL_END, -1, false }, + { COL_END, NULL, false }, }; static void Option_Control_InitMenu(void); diff --git a/src/game/option/option_graphics.c b/src/game/option/option_graphics.c index 70ca67adb..4ff1f707d 100644 --- a/src/game/option/option_graphics.c +++ b/src/game/option/option_graphics.c @@ -74,18 +74,21 @@ typedef struct GRAPHICS_MENU { } GRAPHICS_MENU; static const GRAPHICS_OPTION_ROW m_GfxOptionRows[] = { - { OPTION_FPS, GS_DETAIL_FPS, GS_DETAIL_DECIMAL_FMT }, - { OPTION_TEXTURE_FILTER, GS_DETAIL_TEXTURE_FILTER, GS_MISC_OFF }, - { OPTION_FBO_FILTER, GS_DETAIL_FBO_FILTER, GS_MISC_OFF }, - { OPTION_VSYNC, GS_DETAIL_VSYNC, GS_MISC_ON }, - { OPTION_BRIGHTNESS, GS_DETAIL_BRIGHTNESS, GS_DETAIL_FLOAT_FMT }, - { OPTION_UI_TEXT_SCALE, GS_DETAIL_UI_TEXT_SCALE, GS_DETAIL_FLOAT_FMT }, - { OPTION_UI_BAR_SCALE, GS_DETAIL_UI_BAR_SCALE, GS_DETAIL_FLOAT_FMT }, - { OPTION_RENDER_MODE, GS_DETAIL_RENDER_MODE, GS_DETAIL_STRING_FMT }, - { OPTION_RESOLUTION, GS_DETAIL_RESOLUTION, GS_DETAIL_RESOLUTION_FMT }, - { OPTION_PERSPECTIVE, GS_DETAIL_PERSPECTIVE, GS_MISC_ON }, - { OPTION_PRETTY_PIXELS, GS_DETAIL_PRETTY_PIXELS, GS_MISC_ON }, - { OPTION_REFLECTIONS, GS_DETAIL_REFLECTIONS, GS_MISC_ON }, + { OPTION_FPS, GS_ID(DETAIL_FPS), GS_ID(DETAIL_DECIMAL_FMT) }, + { OPTION_TEXTURE_FILTER, GS_ID(DETAIL_TEXTURE_FILTER), GS_ID(MISC_OFF) }, + { OPTION_FBO_FILTER, GS_ID(DETAIL_FBO_FILTER), GS_ID(MISC_OFF) }, + { OPTION_VSYNC, GS_ID(DETAIL_VSYNC), GS_ID(MISC_ON) }, + { OPTION_BRIGHTNESS, GS_ID(DETAIL_BRIGHTNESS), GS_ID(DETAIL_FLOAT_FMT) }, + { OPTION_UI_TEXT_SCALE, GS_ID(DETAIL_UI_TEXT_SCALE), + GS_ID(DETAIL_FLOAT_FMT) }, + { OPTION_UI_BAR_SCALE, GS_ID(DETAIL_UI_BAR_SCALE), + GS_ID(DETAIL_FLOAT_FMT) }, + { OPTION_RENDER_MODE, GS_ID(DETAIL_RENDER_MODE), GS_ID(DETAIL_STRING_FMT) }, + { OPTION_RESOLUTION, GS_ID(DETAIL_RESOLUTION), + GS_ID(DETAIL_RESOLUTION_FMT) }, + { OPTION_PERSPECTIVE, GS_ID(DETAIL_PERSPECTIVE), GS_ID(MISC_ON) }, + { OPTION_PRETTY_PIXELS, GS_ID(DETAIL_PRETTY_PIXELS), GS_ID(MISC_ON) }, + { OPTION_REFLECTIONS, GS_ID(DETAIL_REFLECTIONS), GS_ID(MISC_ON) }, // end { OPTION_NUMBER_OF, 0, 0 }, }; diff --git a/src/game/shell.c b/src/game/shell.c index fb84e6f81..0322be2dd 100644 --- a/src/game/shell.c +++ b/src/game/shell.c @@ -156,6 +156,7 @@ void Shell_Shutdown(void) void Shell_Main(void) { + GameString_Init(); Config_Read(); const char *gameflow_path = m_TR1XGameflowPath; @@ -269,6 +270,7 @@ void Shell_Main(void) } Config_Write(); + GameString_Shutdown(); } void Shell_ExitSystem(const char *message) diff --git a/subprojects/libtrx b/subprojects/libtrx index 8ad35cc89..0d395b79e 160000 --- a/subprojects/libtrx +++ b/subprojects/libtrx @@ -1 +1 @@ -Subproject commit 8ad35cc897de2af3d1b58407adfbf2908ade5dd6 +Subproject commit 0d395b79ec7cea7afd40fe241a535b3bb48602a6 From 823a45d7c1afc9f38e8ba6c5e52ec0a6e5048daa Mon Sep 17 00:00:00 2001 From: Marcin Kurczewski Date: Tue, 17 Sep 2024 23:27:12 +0200 Subject: [PATCH 3/3] tools: ditch iwyu --- .pre-commit-config.yaml | 6 ++++++ CONTRIBUTING.md | 6 ++---- src/game/clock.c | 1 - src/game/game_string.c | 2 -- src/specific/s_fmv.c | 2 -- subprojects/libtrx | 2 +- 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8023ff509..52a3f03a3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,3 +19,9 @@ repos: entry: tools/additional_lint language: python stages: [commit] + + - id: imports + name: imports + entry: tools/sort_imports + language: system + files: \.[ch](pp)?$ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 707f3bd4c..d01a4122b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -71,9 +71,7 @@ will be always considered supplementary. This project uses [pre-commit](https://pre-commit.com/) to make sure the code is formatted the right way. This tool has additional external dependencies: -`clang-format` for automatic code formatting and `include-what-you-use` to -remove unused `#include`s. -To install pre-commit: +`clang-format` for automatic code formatting. To install pre-commit: ``` python3 -m pip install --user pre-commit @@ -83,7 +81,7 @@ pre-commit install To install required external dependencies on Ubuntu: ``` -apt-get install -y iwyu clang-format-18 +apt-get install -y clang-format-18 ``` After this, each time you make a commit a hook should trigger to automatically diff --git a/src/game/clock.c b/src/game/clock.c index ad51882e6..c29027496 100644 --- a/src/game/clock.c +++ b/src/game/clock.c @@ -1,4 +1,3 @@ -// IWYU pragma: no_include #include "game/clock.h" #include "config.h" diff --git a/src/game/game_string.c b/src/game/game_string.c index 264a97ff3..aff8bd572 100644 --- a/src/game/game_string.c +++ b/src/game/game_string.c @@ -4,9 +4,7 @@ void GameString_Init(void) { - // IWYU pragma: begin_keep #include "game_string.def" - // IWYU pragma: end_keep } void GameString_Shutdown(void) diff --git a/src/specific/s_fmv.c b/src/specific/s_fmv.c index 5cbc7d536..5d081ba33 100644 --- a/src/specific/s_fmv.c +++ b/src/specific/s_fmv.c @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -// IWYU pragma: no_include - #include "specific/s_fmv.h" #include "config.h" diff --git a/subprojects/libtrx b/subprojects/libtrx index 0d395b79e..c1f3ab51a 160000 --- a/subprojects/libtrx +++ b/subprojects/libtrx @@ -1 +1 @@ -Subproject commit 0d395b79ec7cea7afd40fe241a535b3bb48602a6 +Subproject commit c1f3ab51a07bd8ff93f975b3112830f838147a21