diff options
-rw-r--r-- | cmake/msvc.cmake | 2 | ||||
-rw-r--r-- | compat/prelude.hpp | 6 | ||||
-rw-r--r-- | editor/draw.cpp | 1 | ||||
-rw-r--r-- | editor/editor-enums.hpp | 2 | ||||
-rw-r--r-- | editor/events.cpp | 5 | ||||
-rw-r--r-- | editor/imgui.cpp | 4 | ||||
-rw-r--r-- | editor/keys.hpp | 2 | ||||
-rw-r--r-- | editor/update.cpp | 2 | ||||
-rw-r--r-- | src/object.hpp | 1 |
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); |