diff --git a/src/jasper/modules/world/src/studio/worldeditor/commands/addrmobjectset.cpp b/src/jasper/modules/world/src/studio/worldeditor/commands/addrmobjectset.cpp index e024c09..48e41b4 100644 --- a/src/jasper/modules/world/src/studio/worldeditor/commands/addrmobjectset.cpp +++ b/src/jasper/modules/world/src/studio/worldeditor/commands/addrmobjectset.cpp @@ -20,17 +20,18 @@ AddObjectSet::AddObjectSet(WorldDoc &doc, ox::UUID const&objSetUuid): } } -void AddObjectSet::redo() noexcept { +ox::Error AddObjectSet::redo() noexcept { m_doc.objSets.insert(m_insertIdx, { .path = std::move(m_path), .id = ++m_doc.objSetIdIdx, }); + return {}; } -void AddObjectSet::undo() noexcept { +ox::Error AddObjectSet::undo() noexcept { m_path = std::move(m_doc.objSets[m_insertIdx].path); --m_doc.objSetIdIdx; - std::ignore = m_doc.objSets.erase(m_insertIdx); + return m_doc.objSets.erase(m_insertIdx).error; } int AddObjectSet::commandId() const noexcept { @@ -43,13 +44,14 @@ RmObjectSet::RmObjectSet(WorldDoc &doc, size_t idx): m_idx(idx) { } -void RmObjectSet::redo() noexcept { +ox::Error RmObjectSet::redo() noexcept { m_entry = std::move(m_doc.objSets[m_idx]); - std::ignore = m_doc.objSets.erase(m_idx); + return m_doc.objSets.erase(m_idx).error; } -void RmObjectSet::undo() noexcept { +ox::Error RmObjectSet::undo() noexcept { m_doc.objSets.emplace(m_idx, std::move(m_entry)); + return {}; } int RmObjectSet::commandId() const noexcept { diff --git a/src/jasper/modules/world/src/studio/worldeditor/commands/addrmobjectset.hpp b/src/jasper/modules/world/src/studio/worldeditor/commands/addrmobjectset.hpp index 288716f..7cf0312 100644 --- a/src/jasper/modules/world/src/studio/worldeditor/commands/addrmobjectset.hpp +++ b/src/jasper/modules/world/src/studio/worldeditor/commands/addrmobjectset.hpp @@ -19,8 +19,8 @@ class AddObjectSet: public studio::UndoCommand { ox::String m_path; public: AddObjectSet(WorldDoc &doc, ox::UUID const&objSetUuid); - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; [[nodiscard]] int commandId() const noexcept override; [[nodiscard]] @@ -36,8 +36,8 @@ class RmObjectSet: public studio::UndoCommand { ObjectSetEntry m_entry; public: RmObjectSet(WorldDoc &doc, size_t idx); - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; [[nodiscard]] int commandId() const noexcept override; }; diff --git a/src/jasper/modules/world/src/studio/worldeditor/commands/editsize.cpp b/src/jasper/modules/world/src/studio/worldeditor/commands/editsize.cpp index 0a8d1d1..8368513 100644 --- a/src/jasper/modules/world/src/studio/worldeditor/commands/editsize.cpp +++ b/src/jasper/modules/world/src/studio/worldeditor/commands/editsize.cpp @@ -18,16 +18,18 @@ EditWorldSizeCommand::EditWorldSizeCommand( m_oldSize(m_doc.columns, m_doc.rows), m_newSize(size) {} -void EditWorldSizeCommand::redo() noexcept { +ox::Error EditWorldSizeCommand::redo() noexcept { m_oldMap = m_doc.tiles; resize(m_doc, m_newSize); - oxLogError(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic)); + oxReturnError(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic)); + return {}; } -void EditWorldSizeCommand::undo() noexcept { +ox::Error EditWorldSizeCommand::undo() noexcept { resize(m_doc, m_oldSize); m_doc.tiles = std::move(m_oldMap); - oxLogError(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic)); + oxReturnError(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic)); + return {}; } bool EditWorldSizeCommand::mergeWith(studio::UndoCommand const&cmd) noexcept { diff --git a/src/jasper/modules/world/src/studio/worldeditor/commands/editsize.hpp b/src/jasper/modules/world/src/studio/worldeditor/commands/editsize.hpp index 9998d9c..3d6c1fb 100644 --- a/src/jasper/modules/world/src/studio/worldeditor/commands/editsize.hpp +++ b/src/jasper/modules/world/src/studio/worldeditor/commands/editsize.hpp @@ -27,8 +27,8 @@ class EditWorldSizeCommand: public studio::UndoCommand { WorldDoc &doc, WorldStatic &worldStatic, ox::Size const&size); - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; bool mergeWith(studio::UndoCommand const&cmd) noexcept override; [[nodiscard]] int commandId() const noexcept override; diff --git a/src/jasper/modules/world/src/studio/worldeditor/commands/modifytiles.cpp b/src/jasper/modules/world/src/studio/worldeditor/commands/modifytiles.cpp index 3ccf854..91e5489 100644 --- a/src/jasper/modules/world/src/studio/worldeditor/commands/modifytiles.cpp +++ b/src/jasper/modules/world/src/studio/worldeditor/commands/modifytiles.cpp @@ -27,12 +27,14 @@ ModifyTilesCommand::ModifyTilesCommand( } } -void ModifyTilesCommand::redo() noexcept { +ox::Error ModifyTilesCommand::redo() noexcept { swap(); + return {}; } -void ModifyTilesCommand::undo() noexcept { +ox::Error ModifyTilesCommand::undo() noexcept { swap(); + return {}; } int ModifyTilesCommand::commandId() const noexcept { diff --git a/src/jasper/modules/world/src/studio/worldeditor/commands/modifytiles.hpp b/src/jasper/modules/world/src/studio/worldeditor/commands/modifytiles.hpp index 3f7b940..d48db8b 100644 --- a/src/jasper/modules/world/src/studio/worldeditor/commands/modifytiles.hpp +++ b/src/jasper/modules/world/src/studio/worldeditor/commands/modifytiles.hpp @@ -29,8 +29,8 @@ class ModifyTilesCommand: public studio::UndoCommand { WorldStatic &worldStatic, ObjectCache &objCache, ox::Vector mods); - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; [[nodiscard]] int commandId() const noexcept override; private: diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addobject.cpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addobject.cpp index bf0ab83..70c7f0f 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addobject.cpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addobject.cpp @@ -19,15 +19,17 @@ AddObject::AddObject(WorldObjectSet &doc) noexcept: } } -void AddObject::redo() noexcept { +ox::Error AddObject::redo() noexcept { ++m_doc.objIdIdx; m_doc.objects.emplace(m_insertIdx, std::move(m_obj)); + return {}; } -void AddObject::undo() noexcept { +ox::Error AddObject::undo() noexcept { m_obj = std::move(m_doc.objects[m_insertIdx]); - std::ignore = m_doc.objects.erase(m_insertIdx); + oxReturnError(m_doc.objects.erase(m_insertIdx)); --m_doc.objIdIdx; + return {}; } int AddObject::commandId() const noexcept { diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addobject.hpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addobject.hpp index dee0b9c..55e6f4f 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addobject.hpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addobject.hpp @@ -19,8 +19,8 @@ class AddObject: public studio::UndoCommand { WorldObject m_obj{}; public: AddObject(WorldObjectSet &doc) noexcept; - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; [[nodiscard]] int commandId() const noexcept override; [[nodiscard]] diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addpalette.cpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addpalette.cpp index 592cffb..a9277c0 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addpalette.cpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addpalette.cpp @@ -14,20 +14,21 @@ AddPalette::AddPalette(WorldObjectSet &doc, ox::FileAddress palAddr) noexcept: m_palAddr(std::move(palAddr)) { } -void AddPalette::redo() noexcept { +ox::Error AddPalette::redo() noexcept { m_doc.palettes.emplace_back(PaletteCycle{ .palette = m_palAddr }); std::sort(m_doc.palettes.begin(), m_doc.palettes.end(), [](PaletteCycle const&a, PaletteCycle const&b) { return a.palette.getPath().or_value("") < b.palette.getPath().or_value(""); }); + return {}; } -void AddPalette::undo() noexcept { +ox::Error AddPalette::undo() noexcept { auto const idx = std::find_if(m_doc.palettes.begin(), m_doc.palettes.end(), [this](PaletteCycle const&v) { return v.palette == m_palAddr; }); - std::ignore = m_doc.palettes.erase(idx); + return m_doc.palettes.erase(idx).error; } int AddPalette::commandId() const noexcept { diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addpalette.hpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addpalette.hpp index b9d9a91..579b994 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addpalette.hpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addpalette.hpp @@ -18,8 +18,8 @@ class AddPalette: public studio::UndoCommand { ox::FileAddress m_palAddr; public: AddPalette(WorldObjectSet &doc, ox::FileAddress palAddr) noexcept; - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; [[nodiscard]] int commandId() const noexcept override; }; diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/changetilesheet.cpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/changetilesheet.cpp index 1b74ec0..e09c393 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/changetilesheet.cpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/changetilesheet.cpp @@ -19,16 +19,18 @@ ChangeTileSheet::ChangeTileSheet( m_selectedTilesheetIdx(selectedTilesheetIdx) { } -void ChangeTileSheet::redo() noexcept { +ox::Error ChangeTileSheet::redo() noexcept { m_oldVal = std::move(m_doc.tilesheet); m_doc.tilesheet = std::move(m_newVal); m_selectedTilesheetIdx = m_newIdx; + return {}; } -void ChangeTileSheet::undo() noexcept { +ox::Error ChangeTileSheet::undo() noexcept { m_newVal = std::move(m_doc.tilesheet); m_doc.tilesheet = std::move(m_oldVal); m_selectedTilesheetIdx = m_oldIdx; + return {}; } int ChangeTileSheet::commandId() const noexcept { diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/changetilesheet.hpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/changetilesheet.hpp index 6fcd358..501e748 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/changetilesheet.hpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/changetilesheet.hpp @@ -26,8 +26,8 @@ class ChangeTileSheet: public studio::UndoCommand { ox::FileAddress newVal, size_t newIdx, size_t &selectedTilesheetIdx) noexcept; - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; [[nodiscard]] int commandId() const noexcept override; }; diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editobject.cpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editobject.cpp index cdd328d..e140601 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editobject.cpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editobject.cpp @@ -16,15 +16,17 @@ EditObjectName::EditObjectName(WorldObjectSet &doc, size_t objIdx, ox::String ne m_newVal(std::move(newName)) { } -void EditObjectName::redo() noexcept { +ox::Error EditObjectName::redo() noexcept { auto &obj = m_doc.objects[m_objIdx]; obj.name = std::move(m_newVal); + return {}; } -void EditObjectName::undo() noexcept { +ox::Error EditObjectName::undo() noexcept { auto &obj = m_doc.objects[m_objIdx]; m_newVal = std::move(obj.name); obj.name = m_oldVal; + return {}; } int EditObjectName::commandId() const noexcept { @@ -51,14 +53,16 @@ EditObjectSubSheet::EditObjectSubSheet( m_oldVal(m_doc.objects[m_objIdx].subsheetId) { } -void EditObjectSubSheet::redo() noexcept { +ox::Error EditObjectSubSheet::redo() noexcept { auto &obj = m_doc.objects[m_objIdx]; obj.subsheetId = m_newVal; + return {}; } -void EditObjectSubSheet::undo() noexcept { +ox::Error EditObjectSubSheet::undo() noexcept { auto &obj = m_doc.objects[m_objIdx]; obj.subsheetId = m_oldVal; + return {}; } int EditObjectSubSheet::commandId() const noexcept { @@ -73,14 +77,16 @@ EditObjectPalette::EditObjectPalette(WorldObjectSet &doc, size_t objIdx, uint16_ m_newVal(palBank) { } -void EditObjectPalette::redo() noexcept { +ox::Error EditObjectPalette::redo() noexcept { auto &obj = m_doc.objects[m_objIdx]; obj.palBank = m_newVal; + return {}; } -void EditObjectPalette::undo() noexcept { +ox::Error EditObjectPalette::undo() noexcept { auto &obj = m_doc.objects[m_objIdx]; obj.palBank = m_oldVal; + return {}; } [[nodiscard]] @@ -96,14 +102,16 @@ EditObjectCollisionMap::EditObjectCollisionMap(WorldObjectSet &doc, size_t objId m_newVal(colMap) { } -void EditObjectCollisionMap::redo() noexcept { +ox::Error EditObjectCollisionMap::redo() noexcept { auto &obj = m_doc.objects[m_objIdx]; obj.collisionMap = m_newVal; + return {}; } -void EditObjectCollisionMap::undo() noexcept { +ox::Error EditObjectCollisionMap::undo() noexcept { auto &obj = m_doc.objects[m_objIdx]; obj.collisionMap = m_oldVal; + return {}; } [[nodiscard]] diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editobject.hpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editobject.hpp index 82ffe2d..76db776 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editobject.hpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editobject.hpp @@ -20,8 +20,8 @@ class EditObjectName: public studio::UndoCommand { ox::String m_newVal{}; public: EditObjectName(WorldObjectSet &doc, size_t objIdx, ox::String newName) noexcept; - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; [[nodiscard]] int commandId() const noexcept override; bool mergeWith(UndoCommand const&cmd) noexcept override; @@ -35,8 +35,8 @@ class EditObjectSubSheet: public studio::UndoCommand { ncore::SubSheetId const m_oldVal{}; public: EditObjectSubSheet(WorldObjectSet &doc, size_t objIdx, ncore::SubSheetId subSheetId) noexcept; - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; [[nodiscard]] int commandId() const noexcept override; }; @@ -49,8 +49,8 @@ class EditObjectPalette: public studio::UndoCommand { uint16_t const m_newVal{}; public: EditObjectPalette(WorldObjectSet &doc, size_t objIdx, uint16_t palBank) noexcept; - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; [[nodiscard]] int commandId() const noexcept override; }; @@ -63,8 +63,8 @@ class EditObjectCollisionMap: public studio::UndoCommand { CollisionMap const m_newVal{}; public: EditObjectCollisionMap(WorldObjectSet &doc, size_t objIdx, CollisionMap colMap) noexcept; - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; [[nodiscard]] int commandId() const noexcept override; }; diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editpalette.cpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editpalette.cpp index 78e1eed..2a7c3b3 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editpalette.cpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editpalette.cpp @@ -13,12 +13,14 @@ EditPalette::EditPalette(PaletteCycle &doc, uint16_t interval) noexcept: m_newVal(interval) { } -void EditPalette::redo() noexcept { +ox::Error EditPalette::redo() noexcept { m_doc.intervalMs = m_newVal; + return {}; } -void EditPalette::undo() noexcept { +ox::Error EditPalette::undo() noexcept { m_doc.intervalMs = m_oldVal; + return {}; } int EditPalette::commandId() const noexcept { diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editpalette.hpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editpalette.hpp index 2b7cc5e..abf7154 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editpalette.hpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/editpalette.hpp @@ -19,8 +19,8 @@ class EditPalette: public studio::UndoCommand { uint16_t const m_newVal{}; public: EditPalette(PaletteCycle &doc, uint16_t interval) noexcept; - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; [[nodiscard]] int commandId() const noexcept override; }; diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmobject.cpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmobject.cpp index 189711a..8cb3e3c 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmobject.cpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmobject.cpp @@ -12,13 +12,14 @@ RmObject::RmObject(WorldObjectSet &doc, size_t const rmIdx) noexcept: m_rmIdx(rmIdx) { } -void RmObject::redo() noexcept { +ox::Error RmObject::redo() noexcept { m_obj = std::move(m_doc.objects[m_rmIdx]); - std::ignore = m_doc.objects.erase(m_rmIdx); + return m_doc.objects.erase(m_rmIdx).error; } -void RmObject::undo() noexcept { +ox::Error RmObject::undo() noexcept { m_doc.objects.emplace(m_rmIdx, std::move(m_obj)); + return {}; } int RmObject::commandId() const noexcept { diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmobject.hpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmobject.hpp index d0a7389..316cc8a 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmobject.hpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmobject.hpp @@ -19,8 +19,8 @@ class RmObject: public studio::UndoCommand { WorldObject m_obj{}; public: RmObject(WorldObjectSet &doc, size_t rmIdx) noexcept; - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; [[nodiscard]] int commandId() const noexcept override; }; diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmpalette.cpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmpalette.cpp index 296a2de..71112a0 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmpalette.cpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmpalette.cpp @@ -14,16 +14,18 @@ RmPalette::RmPalette(WorldObjectSet &doc, size_t rmIdx) noexcept: m_rmIdx(rmIdx) { } -void RmPalette::redo() noexcept { +ox::Error RmPalette::redo() noexcept { m_pal = std::move(m_doc.palettes[m_rmIdx]); std::ignore = m_doc.palettes.erase(m_rmIdx); + return {}; } -void RmPalette::undo() noexcept { +ox::Error RmPalette::undo() noexcept { m_doc.palettes.emplace_back(std::move(m_pal)); std::sort(m_doc.palettes.begin(), m_doc.palettes.end(), [](PaletteCycle const&a, PaletteCycle const&b) { return a.palette.getPath().or_value("") < b.palette.getPath().or_value(""); }); + return {}; } int RmPalette::commandId() const noexcept { diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmpalette.hpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmpalette.hpp index 5c7ae83..f58de9f 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmpalette.hpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/rmpalette.hpp @@ -19,8 +19,8 @@ class RmPalette: public studio::UndoCommand { size_t const m_rmIdx = 0; public: RmPalette(WorldObjectSet &doc, size_t rmIdx) noexcept; - void redo() noexcept override; - void undo() noexcept override; + ox::Error redo() noexcept override; + ox::Error undo() noexcept override; [[nodiscard]] int commandId() const noexcept override; };