summaryrefslogtreecommitdiffhomepage
path: root/editor
diff options
context:
space:
mode:
Diffstat (limited to 'editor')
-rw-r--r--editor/app.cpp1
-rw-r--r--editor/app.hpp9
-rw-r--r--editor/camera.cpp5
-rw-r--r--editor/events.cpp1
-rw-r--r--editor/keys.hpp1
-rw-r--r--editor/update.cpp20
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);