diff options
| author | untodesu <kirill@untode.su> | 2025-03-21 18:16:40 +0500 |
|---|---|---|
| committer | untodesu <kirill@untode.su> | 2025-03-21 18:16:40 +0500 |
| commit | 9f80a278a6f188c8e9131df0684bad14a07491ee (patch) | |
| tree | 067c6ad4b892a34c3c03e3ecdbe312453bd46ea4 /game/client/toggles.hh | |
| parent | fddd7f761176bb45cfdd41eeccaeadac22d33ddf (diff) | |
| download | voxelius-9f80a278a6f188c8e9131df0684bad14a07491ee.tar.bz2 voxelius-9f80a278a6f188c8e9131df0684bad14a07491ee.zip | |
Toggles system rework, added flight pmove mode
- Reworked toggles to use a constant-styled enumerations
- Added TOGGLE_PM_FLIGHT and an according movement mode. Now server-side
just doesn't simulate gravity altogether for players, instead relying
on whatever the client provides which works fine for now. Closes #12
Diffstat (limited to 'game/client/toggles.hh')
| -rw-r--r-- | game/client/toggles.hh | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/game/client/toggles.hh b/game/client/toggles.hh index 98b9fe5..d5b18c7 100644 --- a/game/client/toggles.hh +++ b/game/client/toggles.hh @@ -2,6 +2,23 @@ #define CLIENT_TOGGLES_HH 1 #pragma once +using toggle_type = unsigned int; +constexpr static toggle_type TOGGLE_WIREFRAME = 0x0000U; // Render things in wireframe mode +constexpr static toggle_type TOGGLE_FULLBRIGHT = 0x0001U; // Render things without lighting +constexpr static toggle_type TOGGLE_CHUNK_AABB = 0x0002U; // Render chunk bounding boxes +constexpr static toggle_type TOGGLE_METRICS_UI = 0x0003U; // Render debug metrics overlay +constexpr static toggle_type TOGGLE_USE_GAMEPAD = 0x0004U; // Use gamepad for player movement +constexpr static toggle_type TOGGLE_PM_FLIGHT = 0x0005U; // Enable flight for player movement +constexpr static std::size_t TOGGLE_COUNT = 0x0006U; + +struct ToggleEnabledEvent final { + toggle_type type; +}; + +struct ToggleDisabledEvent final { + toggle_type type; +}; + namespace toggles { // The value is true whenever the debug @@ -13,15 +30,10 @@ extern bool is_sequence_await; namespace toggles { -extern bool draw_chunk_borders; -extern bool draw_metrics; -extern bool render_fullbright; -extern bool render_wireframe; -} // namespace toggles - -namespace toggles -{ void init(void); +void init_late(void); +bool get(toggle_type type); +void set(toggle_type type, bool value); } // namespace toggles #endif /* CLIENT_TOGGLES_HH */ |
