diff options
Diffstat (limited to 'editor')
| -rw-r--r-- | editor/app.cpp | 1 | ||||
| -rw-r--r-- | editor/app.hpp | 9 | ||||
| -rw-r--r-- | editor/camera.cpp | 5 | ||||
| -rw-r--r-- | editor/events.cpp | 1 | ||||
| -rw-r--r-- | editor/keys.hpp | 1 | ||||
| -rw-r--r-- | editor/update.cpp | 20 |
6 files changed, 28 insertions, 9 deletions
diff --git a/editor/app.cpp b/editor/app.cpp index db395b98..10f4b25d 100644 --- a/editor/app.cpp +++ b/editor/app.cpp @@ -5,6 +5,7 @@ #include "editor.hpp" #include "src/anim-atlas.hpp" #include "src/critter.hpp" +#include "src/timer-fwd.hpp" #include "src/world.hpp" #include "floormat/main.hpp" #include "floormat/settings.hpp" diff --git a/editor/app.hpp b/editor/app.hpp index ea618bac..32193fe6 100644 --- a/editor/app.hpp +++ b/editor/app.hpp @@ -93,14 +93,14 @@ private: int exec(); - void update(float dt) override; - void update_world(float dt); + void update(Ns dt) override; + void update_world(Ns dt); void update_cursor_tile(const Optional<Vector2i>& pixel); z_bounds get_z_bounds() override; void set_cursor(); void maybe_initialize_chunk(const chunk_coords_& pos, chunk& c) override; void maybe_initialize_chunk_(const chunk_coords_& pos, chunk& c); - void update_character(float dt); + void update_character(Ns dt); void reset_world(); void reset_world(class world&& w); @@ -157,6 +157,7 @@ private: void do_key(key k); void do_set_mode(editor_mode mode); void do_rotate(bool backward); + static void do_emit_timestamp(); void apply_commands(const key_set& k); int get_key_modifiers(); void clear_keys(key min_inclusive, key max_exclusive); @@ -164,7 +165,7 @@ private: void clear_non_global_keys(); void clear_non_repeated_keys(); - void do_camera(float dt, const key_set& cmds, int mods); + void do_camera(Ns dt, const key_set& cmds, int mods); void reset_camera_offset(); [[nodiscard]] bool tests_handle_key(const key_event& e, bool is_down); diff --git a/editor/camera.cpp b/editor/camera.cpp index e103c844..e71be739 100644 --- a/editor/camera.cpp +++ b/editor/camera.cpp @@ -7,13 +7,14 @@ #include "src/object.hpp" #include "src/world.hpp" #include "src/camera-offset.hpp" +#include "src/timer.hpp" #include "compat/enum-bitset.hpp" #include <bit> #include <Magnum/Math/Functions.h> namespace floormat { -void app::do_camera(float dt, const key_set& cmds, int mods) +void app::do_camera(Ns dt, const key_set& cmds, int mods) { if (cmds[key_camera_reset]) { @@ -44,7 +45,7 @@ void app::do_camera(float dt, const key_set& cmds, int mods) auto camera_offset = shader.camera_offset(); const auto max_camera_offset = Vector2d(sz * 10); - camera_offset -= dir.normalized() * (double)dt * pixels_per_second; + camera_offset -= dir.normalized() * (double)Time::to_seconds(dt) * pixels_per_second; camera_offset = Math::clamp(camera_offset, -max_camera_offset, max_camera_offset); shader.set_camera_offset(camera_offset, shader.depth_offset()); diff --git a/editor/events.cpp b/editor/events.cpp index cc1dbb3d..2ba39ff5 100644 --- a/editor/events.cpp +++ b/editor/events.cpp @@ -137,6 +137,7 @@ auto app::resolve_keybinding(int k_, int mods_) -> std::tuple<key, int> case SDLK_d: return key_camera_right; case SDLK_HOME: return key_camera_reset; case SDLK_r: return key_rotate_tile; + case SDLK_F2: return key_emit_timestamp; case SDLK_1: return key_mode_none; case SDLK_2: return key_mode_floor; case SDLK_3: return key_mode_walls; diff --git a/editor/keys.hpp b/editor/keys.hpp index a7f042d6..407d1f63 100644 --- a/editor/keys.hpp +++ b/editor/keys.hpp @@ -19,6 +19,7 @@ enum key : unsigned { key_rotate_tile, key_mode_none, key_mode_floor, key_mode_walls, key_mode_scenery, key_mode_vobj, key_mode_tests, key_render_collision_boxes, key_render_clickables, key_render_vobjs, key_render_all_z_levels, + key_emit_timestamp, key_GLOBAL, key_new_file, key_quit, diff --git a/editor/update.cpp b/editor/update.cpp index 05b12e51..dffc1fdd 100644 --- a/editor/update.cpp +++ b/editor/update.cpp @@ -12,6 +12,7 @@ #include "floormat/main.hpp" #include "src/critter.hpp" #include "src/tile-iterator.hpp" +#include "src/timer.hpp" #include "keys.hpp" #include "loader/loader.hpp" #include "compat/enum-bitset.hpp" @@ -121,6 +122,17 @@ void app::do_rotate(bool backward) } } +void app::do_emit_timestamp() +{ + static struct + { + Time time = Time::now(); + unsigned ctr = 0; + } s; + char buf[fm_DATETIME_BUF_SIZE]; + fm_debug("%s -- MARK -- 0x%08X", format_datetime_to_string(buf), ++s.ctr & 0xffff'ffffU); +} + void app::do_set_mode(editor_mode mode) { if (mode != _editor->mode()) @@ -152,6 +164,8 @@ void app::do_key(key k, int mods) return; case key_rotate_tile: return do_rotate(false); + case key_emit_timestamp: + return do_emit_timestamp(); case key_mode_none: return do_set_mode(editor_mode::none); case key_mode_floor: @@ -193,7 +207,7 @@ void app::apply_commands(const key_set& keys) do_key(k, key_modifiers[i]); } -void app::update_world(float dt) +void app::update_world(Ns dt) { auto& world = M->world(); world.increment_frame_no(); @@ -214,7 +228,7 @@ void app::update_world(float dt) } } -void app::update_character([[maybe_unused]] float dt) +void app::update_character([[maybe_unused]] Ns dt) { auto& keys = *keys_; if (_character_id) @@ -244,7 +258,7 @@ auto app::get_z_bounds() -> z_bounds return { chunk_z_min, chunk_z_max, _z_level, !_render_all_z_levels }; } -void app::update(float dt) +void app::update(Ns dt) { //M->world().collect(); M->world().collect(true); |
