summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cmake/msvc.cmake2
-rw-r--r--compat/prelude.hpp6
-rw-r--r--editor/draw.cpp1
-rw-r--r--editor/editor-enums.hpp2
-rw-r--r--editor/events.cpp5
-rw-r--r--editor/imgui.cpp4
-rw-r--r--editor/keys.hpp2
-rw-r--r--editor/update.cpp2
-rw-r--r--src/object.hpp1
9 files changed, 20 insertions, 5 deletions
diff --git a/cmake/msvc.cmake b/cmake/msvc.cmake
index 578d7721..e54431bc 100644
--- a/cmake/msvc.cmake
+++ b/cmake/msvc.cmake
@@ -78,7 +78,7 @@ if(DEFINED floormat-64bit)
endif()
endif()
-set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:DEBUG>:Debug>")
+set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:DEBUG,Debug>:Debug>")
add_link_options(-cgthreads:$ENV{NUMBER_OF_PROCESSORS})
diff --git a/compat/prelude.hpp b/compat/prelude.hpp
index 897a1d26..969c0cb8 100644
--- a/compat/prelude.hpp
+++ b/compat/prelude.hpp
@@ -18,6 +18,12 @@ namespace Corrade::Containers::Literals {}
namespace Corrade::Utility::Path {}
namespace Magnum::Math::Literals {}
+namespace Magnum {
+using Vector2uz = ::Magnum::Math::Vector2<size_t>;
+using Vector3uz = ::Magnum::Math::Vector3<size_t>;
+using Vector4uz = ::Magnum::Math::Vector4<size_t>;
+}
+
namespace floormat {
using namespace ::Magnum;
using namespace ::Corrade::Containers;
diff --git a/editor/draw.cpp b/editor/draw.cpp
index 539b6c53..c898ed35 100644
--- a/editor/draw.cpp
+++ b/editor/draw.cpp
@@ -145,6 +145,7 @@ void app::draw_collision_boxes()
const auto tile_ = Vector2(M->pixel_to_tile_(Vector2d(pixel)));
const auto curchunk = Vector2(tile.chunk()), curtile = Vector2(tile.local());
const auto subpixel_ = Vector2(std::fmod(tile_[0], 1.f), std::fmod(tile_[1], 1.f));
+ // todo use this formula for dragging objs
const auto subpixel = m * Vector2(curchunk[0] < 0 ? 1 + subpixel_[0] : subpixel_[0],
curchunk[1] < 0 ? 1 + subpixel_[1] : subpixel_[1]);
for (int16_t y = miny; y <= maxy; y++)
diff --git a/editor/editor-enums.hpp b/editor/editor-enums.hpp
index 6480433f..77323ab3 100644
--- a/editor/editor-enums.hpp
+++ b/editor/editor-enums.hpp
@@ -3,7 +3,7 @@
namespace floormat {
enum class editor_mode : unsigned char {
- none, floor, walls, scenery, vobj,
+ none, floor, walls, scenery, vobj, tests,
};
enum class editor_wall_rotation : unsigned char {
diff --git a/editor/events.cpp b/editor/events.cpp
index e140cd4e..1c73188c 100644
--- a/editor/events.cpp
+++ b/editor/events.cpp
@@ -136,6 +136,11 @@ auto app::resolve_keybinding(int k_, int mods_) -> std::tuple<key, int>
case SDLK_3: return key_mode_walls;
case SDLK_4: return key_mode_scenery;
case SDLK_5: return key_mode_vobj;
+ // for things like:
+ // - detect collisions with a line placed using the cursor (can be diagonal)
+ // - make charactere pathfind somewhere
+ // - make character walk around waypoints
+ case SDLK_6: return key_mode_tests;
case SDLK_c | ALT: return key_render_collision_boxes;
case SDLK_l | ALT: return key_render_clickables;
case SDLK_v | ALT: return key_render_vobjs;
diff --git a/editor/imgui.cpp b/editor/imgui.cpp
index 00c0c58d..96eb940f 100644
--- a/editor/imgui.cpp
+++ b/editor/imgui.cpp
@@ -61,7 +61,7 @@ float app::draw_main_menu()
mode == editor_mode::walls && ed_w;
bool m_none = mode == m::none, m_floor = mode == m::floor, m_walls = mode == m::walls,
- m_scenery = mode == m::scenery, m_vobjs = mode == m::vobj,
+ m_scenery = mode == m::scenery, m_vobjs = mode == m::vobj, m_tests = mode == m::tests,
b_collisions = _render_bboxes, b_clickables = _render_clickables,
b_vobjs = _render_vobjs, b_all_z_levels = _render_all_z_levels;
@@ -76,6 +76,8 @@ float app::draw_main_menu()
do_key(key_mode_scenery);
if (ImGui::MenuItem("Virtual objects", "5", m_vobjs))
do_key(key_mode_vobj);
+ if (ImGui::MenuItem("Functional tests", "6", m_tests))
+ do_key(key_mode_tests);
ImGui::SeparatorText("Modify");
if (ImGui::MenuItem("Rotate", "R", false, b_rotate))
do_key(key_rotate_tile);
diff --git a/editor/keys.hpp b/editor/keys.hpp
index 79cd695b..a7f042d6 100644
--- a/editor/keys.hpp
+++ b/editor/keys.hpp
@@ -17,7 +17,7 @@ enum key : unsigned {
key_left, key_right, key_up, key_down,
key_NO_REPEAT,
key_rotate_tile,
- key_mode_none, key_mode_floor, key_mode_walls, key_mode_scenery, key_mode_vobj,
+ 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_GLOBAL,
key_new_file,
diff --git a/editor/update.cpp b/editor/update.cpp
index aa1495c1..73e5cb00 100644
--- a/editor/update.cpp
+++ b/editor/update.cpp
@@ -179,6 +179,8 @@ void app::do_key(key k, int mods)
return do_set_mode(editor_mode::scenery);
case key_mode_vobj:
return do_set_mode(editor_mode::vobj);
+ case key_mode_tests:
+ return do_set_mode(editor_mode::tests);
case key_render_collision_boxes:
return void(_render_bboxes = !_render_bboxes);
case key_render_clickables:
diff --git a/src/object.hpp b/src/object.hpp
index cbd9bcde..fc27d5c4 100644
--- a/src/object.hpp
+++ b/src/object.hpp
@@ -36,7 +36,6 @@ struct object_proto
object_type type_of() const noexcept;
};
-// todo rename to 'object'
struct object
{
fm_DECLARE_DELETED_COPY_ASSIGNMENT(object);