From beb6685f605b89ce4b2dd99f87b9319e4f7f4d94 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sun, 27 Nov 2022 17:27:56 +0100 Subject: more WIP --- editor/scenery-editor.cpp | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) (limited to 'editor/scenery-editor.cpp') diff --git a/editor/scenery-editor.cpp b/editor/scenery-editor.cpp index 482b2131..c8f9f910 100644 --- a/editor/scenery-editor.cpp +++ b/editor/scenery-editor.cpp @@ -8,8 +8,6 @@ namespace floormat { using rotation_ = rotation; using rotation_t = std::underlying_type_t; -scenery_editor::pair::operator bool() const { return atlas != nullptr; } - scenery_editor::scenery_editor() noexcept { load_atlases(); @@ -17,45 +15,45 @@ scenery_editor::scenery_editor() noexcept void scenery_editor::set_rotation(rotation_ r) { - _selected.r = r; + _selected.frame.r = r; } rotation_ scenery_editor::rotation() const { - return _selected.r; + return _selected.frame.r; } void scenery_editor::next_rotation() { - auto r_1 = (rotation_t)_selected.r + 1; + // todo + auto r_1 = (rotation_t)_selected.frame.r + 1; auto rot = (rotation_)r_1; if (rot >= rotation_COUNT) rot = (rotation_)0; - _selected.r = rot; + _selected.frame.r = rot; } void scenery_editor::prev_rotation() { - if (_selected.r == (rotation_)0) - _selected.r = (rotation_)((rotation_t)rotation_COUNT - 1); + if (_selected.frame.r == (rotation_)0) + _selected.frame.r = (rotation_)((rotation_t)rotation_COUNT - 1); else - _selected.r = (rotation_)((rotation_t)_selected.r - 1); + _selected.frame.r = (rotation_)((rotation_t)_selected.frame.r - 1); } //return atlas == _selected.atlas && r == _selected.s.r && frame == _selected.s.frame; -void scenery_editor::select_tile(const std::shared_ptr& atlas, rotation_ r, frame_t frame) +void scenery_editor::select_tile(const scenery_proto& proto) { - fm_assert(frame < atlas->group(r).frames.size()); - _selected = { atlas, r, frame }; + _selected = proto; } void scenery_editor::clear_selection() { - _selected = { nullptr, rotation_COUNT, scenery::NO_FRAME }; + _selected = {}; } -auto scenery_editor::get_selected() -> pair +const scenery_proto& scenery_editor::get_selected() { return _selected; } @@ -65,9 +63,9 @@ bool scenery_editor::is_atlas_selected(const std::shared_ptr& atlas) return _selected.atlas == atlas; } -bool scenery_editor::is_item_selected(const std::shared_ptr& atlas, rotation_ r, frame_t frame) const +bool scenery_editor::is_item_selected(const scenery_proto& proto) const { - return is_atlas_selected(atlas) && _selected.r == r && _selected.frame == frame; + return _selected == proto; } void scenery_editor::load_atlases() -- cgit v1.2.3