diff --git a/src/jasper/modules/core/include/jasper/core/bootfile.hpp b/src/jasper/modules/core/include/jasper/core/bootfile.hpp index 01bb003..a1e6d9e 100644 --- a/src/jasper/modules/core/include/jasper/core/bootfile.hpp +++ b/src/jasper/modules/core/include/jasper/core/bootfile.hpp @@ -18,10 +18,10 @@ struct Bootfile { ox::Vector args; }; -oxModelBegin(Bootfile) - oxModelField(app) - oxModelField(args) -oxModelEnd() +OX_MODEL_BEGIN(Bootfile) + OX_MODEL_FIELD(app) + OX_MODEL_FIELD(args) +OX_MODEL_END() } diff --git a/src/jasper/modules/world/include/jasper/world/worlddoc.hpp b/src/jasper/modules/world/include/jasper/world/worlddoc.hpp index 4d6f0c6..7e82a89 100644 --- a/src/jasper/modules/world/include/jasper/world/worlddoc.hpp +++ b/src/jasper/modules/world/include/jasper/world/worlddoc.hpp @@ -33,10 +33,10 @@ struct DocObjRef { ObjectId worldObjectId{}; }; -oxModelBegin(DocObjRef) - oxModelFieldRename(worldObjectSetId, world_object_set_id) - oxModelFieldRename(worldObjectId, world_object_id) -oxModelEnd() +OX_MODEL_BEGIN(DocObjRef) + OX_MODEL_FIELD_RENAME(worldObjectSetId, world_object_set_id) + OX_MODEL_FIELD_RENAME(worldObjectId, world_object_id) +OX_MODEL_END() struct TileDoc { constexpr static auto TypeName = "net.drinkingtea.jasper.world.TileDoc"; @@ -50,15 +50,15 @@ struct TileDoc { uint8_t rightLayerAttachment{}; }; -oxModelBegin(TileDoc) - oxModelField(obj) - oxModelField(type) - oxModelFieldRename(palBank, pal_bank) - oxModelFieldRename(topLayerAttachment, top_layer_attachment) - oxModelFieldRename(bottomLayerAttachment, bottom_layer_attachment) - oxModelFieldRename(leftLayerAttachment, left_layer_attachment) - oxModelFieldRename(rightLayerAttachment, right_layer_attachment) -oxModelEnd() +OX_MODEL_BEGIN(TileDoc) + OX_MODEL_FIELD(obj) + OX_MODEL_FIELD(type) + OX_MODEL_FIELD_RENAME(palBank, pal_bank) + OX_MODEL_FIELD_RENAME(topLayerAttachment, top_layer_attachment) + OX_MODEL_FIELD_RENAME(bottomLayerAttachment, bottom_layer_attachment) + OX_MODEL_FIELD_RENAME(leftLayerAttachment, left_layer_attachment) + OX_MODEL_FIELD_RENAME(rightLayerAttachment, right_layer_attachment) +OX_MODEL_END() struct ObjectSetEntry { @@ -68,10 +68,10 @@ struct ObjectSetEntry { uint64_t id{}; }; -oxModelBegin(ObjectSetEntry) - oxModelField(path) - oxModelField(id) -oxModelEnd() +OX_MODEL_BEGIN(ObjectSetEntry) + OX_MODEL_FIELD(path) + OX_MODEL_FIELD(id) +OX_MODEL_END() struct WorldDoc { @@ -92,7 +92,7 @@ constexpr ox::Result objectSetPath(WorldDoc const&wd, uint64_t setId auto const obj = ox::find_if(wd.objSets.begin(), wd.objSets.end(), [setId](ObjectSetEntry const&e) { return e.id == setId; }); - oxReturnError(ox::Error(obj == wd.objSets.end(), "Obj set not found")); + OX_RETURN_ERROR(ox::Error(obj == wd.objSets.end(), "Obj set not found")); return obj->path; } @@ -101,17 +101,17 @@ constexpr ox::Result objectSetId(WorldDoc const&wd, ox::StringView set auto const obj = ox::find_if(wd.objSets.begin(), wd.objSets.end(), [setPath](ObjectSetEntry const&e) { return e.path == setPath; }); - oxReturnError(ox::Error(obj == wd.objSets.end(), "Obj set not found")); + OX_RETURN_ERROR(ox::Error(obj == wd.objSets.end(), "Obj set not found")); return obj->id; } -oxModelBegin(WorldDoc) - oxModelFieldRename(objSets, object_sets) - oxModelFieldRename(objSetIdIdx, object_set_id_idx) - oxModelField(columns) - oxModelField(rows) - oxModelField(tiles) -oxModelEnd() +OX_MODEL_BEGIN(WorldDoc) + OX_MODEL_FIELD_RENAME(objSets, object_sets) + OX_MODEL_FIELD_RENAME(objSetIdIdx, object_set_id_idx) + OX_MODEL_FIELD(columns) + OX_MODEL_FIELD(rows) + OX_MODEL_FIELD(tiles) +OX_MODEL_END() [[nodiscard]] constexpr bool valid(WorldDoc const&doc) noexcept { diff --git a/src/jasper/modules/world/include/jasper/world/worldobject.hpp b/src/jasper/modules/world/include/jasper/world/worldobject.hpp index 4b3e8eb..d6ec4f7 100644 --- a/src/jasper/modules/world/include/jasper/world/worldobject.hpp +++ b/src/jasper/modules/world/include/jasper/world/worldobject.hpp @@ -39,18 +39,18 @@ struct WorldObject { uint8_t ext3{}; }; -oxModelBegin(WorldObject) - oxModelField(id) - oxModelField(name) - oxModelFieldRename(intervalMs, interval_ms) - oxModelFieldRename(palBank, pal_bank) - oxModelFieldRename(subsheetId, subsheet_id) - oxModelFieldRename(collisionMap, collision_map) - oxModelFieldRename(objectType, object_type) - oxModelField(ext1) - oxModelField(ext2) - oxModelField(ext3) -oxModelEnd() +OX_MODEL_BEGIN(WorldObject) + OX_MODEL_FIELD(id) + OX_MODEL_FIELD(name) + OX_MODEL_FIELD_RENAME(intervalMs, interval_ms) + OX_MODEL_FIELD_RENAME(palBank, pal_bank) + OX_MODEL_FIELD_RENAME(subsheetId, subsheet_id) + OX_MODEL_FIELD_RENAME(collisionMap, collision_map) + OX_MODEL_FIELD_RENAME(objectType, object_type) + OX_MODEL_FIELD(ext1) + OX_MODEL_FIELD(ext2) + OX_MODEL_FIELD(ext3) +OX_MODEL_END() enum class TerrainType: uint8_t { NormalLand, @@ -73,12 +73,12 @@ struct WorldObjectSet { ox::Vector objects; }; -oxModelBegin(WorldObjectSet) - oxModelFieldRename(objIdIdx, obj_id_idx) - oxModelField(tilesheet) - oxModelField(palettes) - oxModelField(objects) -oxModelEnd() +OX_MODEL_BEGIN(WorldObjectSet) + OX_MODEL_FIELD_RENAME(objIdIdx, obj_id_idx) + OX_MODEL_FIELD(tilesheet) + OX_MODEL_FIELD(palettes) + OX_MODEL_FIELD(objects) +OX_MODEL_END() ox::Error loadObjectSet(WorldObjectSet const&os) noexcept; diff --git a/src/jasper/modules/world/include/jasper/world/worldstatic.hpp b/src/jasper/modules/world/include/jasper/world/worldstatic.hpp index 40ffdf6..e983c70 100644 --- a/src/jasper/modules/world/include/jasper/world/worldstatic.hpp +++ b/src/jasper/modules/world/include/jasper/world/worldstatic.hpp @@ -65,12 +65,12 @@ struct TileStatic { uint8_t layerAttachments{}; }; -oxModelBegin(TileStatic) - oxModelField(tileIdx) - oxModelField(palBank) - oxModelField(tileType) - oxModelField(layerAttachments) -oxModelEnd() +OX_MODEL_BEGIN(TileStatic) + OX_MODEL_FIELD(tileIdx) + OX_MODEL_FIELD(palBank) + OX_MODEL_FIELD(tileType) + OX_MODEL_FIELD(layerAttachments) +OX_MODEL_END() struct BgLayer { @@ -80,10 +80,10 @@ struct BgLayer { ox::Vector tiles; }; -oxModelBegin(BgLayer) - oxModelField(cbb) - oxModelField(tiles) -oxModelEnd() +OX_MODEL_BEGIN(BgLayer) + OX_MODEL_FIELD(cbb) + OX_MODEL_FIELD(tiles) +OX_MODEL_END() struct WorldStatic { @@ -97,13 +97,13 @@ struct WorldStatic { ox::Array map; }; -oxModelBegin(WorldStatic) - oxModelField(tilesheets) - oxModelField(palettes) - oxModelField(columns) - oxModelField(rows) - oxModelField(map) -oxModelEnd() +OX_MODEL_BEGIN(WorldStatic) + OX_MODEL_FIELD(tilesheets) + OX_MODEL_FIELD(palettes) + OX_MODEL_FIELD(columns) + OX_MODEL_FIELD(rows) + OX_MODEL_FIELD(map) +OX_MODEL_END() void loadTile(ObjectCache const&objCache, TileStatic &dst, TileDoc const&src) noexcept; diff --git a/src/jasper/modules/world/src/keel/typeconv.cpp b/src/jasper/modules/world/src/keel/typeconv.cpp index 09f28ec..fc7016d 100644 --- a/src/jasper/modules/world/src/keel/typeconv.cpp +++ b/src/jasper/modules/world/src/keel/typeconv.cpp @@ -15,7 +15,7 @@ ox::Error WorldDocToWorldStaticConverter::convert( keel::Context &kctx, WorldDoc &src, WorldStatic &dst) const noexcept { - oxRequire(oc, buildObjCache(kctx, src)); + OX_REQUIRE(oc, buildObjCache(kctx, src)); return loadWorldStatic(oc, src).moveTo(dst); } diff --git a/src/jasper/modules/world/src/objectcache.cpp b/src/jasper/modules/world/src/objectcache.cpp index 17b6532..9651242 100644 --- a/src/jasper/modules/world/src/objectcache.cpp +++ b/src/jasper/modules/world/src/objectcache.cpp @@ -26,7 +26,7 @@ ox::Error ObjectCache::indexSet( .setId = setId, .objects = {}, }); - oxRequire(ts, readObj(kctx, objSet.tilesheet)); + OX_REQUIRE(ts, readObj(kctx, objSet.tilesheet)); for (auto const&obj : objSet.objects) { set.objects.emplace_back(Obj{ .id = obj.id, @@ -41,7 +41,7 @@ ox::Error ObjectCache::indexSet( addTileSheet(objSet.tilesheet, static_cast(tileCnt)); for (auto const&pal : objSet.palettes) { m_palettes.emplace_back(pal); - oxRequire(p, readObj(kctx, pal)); + OX_REQUIRE(p, readObj(kctx, pal)); m_palBank += largestPage(*p); } return {}; @@ -82,8 +82,8 @@ void ObjectCache::addTileSheet(ox::FileAddress path, int32_t tiles) noexcept { ox::Result buildObjCache(keel::Context &kctx, WorldDoc const&doc) noexcept { ObjectCache cache; for (auto &set : doc.objSets) { - oxRequire(s, readObj(kctx, set.path)); - oxReturnError(cache.indexSet(kctx, set.id, *s)); + OX_REQUIRE(s, readObj(kctx, set.path)); + OX_RETURN_ERROR(cache.indexSet(kctx, set.id, *s)); } return cache; } 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 573d98c..d9db3a0 100644 --- a/src/jasper/modules/world/src/studio/worldeditor/commands/editsize.cpp +++ b/src/jasper/modules/world/src/studio/worldeditor/commands/editsize.cpp @@ -21,14 +21,14 @@ EditWorldSizeCommand::EditWorldSizeCommand( ox::Error EditWorldSizeCommand::redo() noexcept { m_oldMap = m_doc.tiles; resize(m_doc, m_newSize); - oxReturnError(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic)); + OX_RETURN_ERROR(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic)); return {}; } ox::Error EditWorldSizeCommand::undo() noexcept { resize(m_doc, m_oldSize); m_doc.tiles = std::move(m_oldMap); - oxReturnError(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic)); + OX_RETURN_ERROR(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic)); return {}; } diff --git a/src/jasper/modules/world/src/studio/worldeditor/tileclipboard.hpp b/src/jasper/modules/world/src/studio/worldeditor/tileclipboard.hpp index 05ea9a7..730f2b2 100644 --- a/src/jasper/modules/world/src/studio/worldeditor/tileclipboard.hpp +++ b/src/jasper/modules/world/src/studio/worldeditor/tileclipboard.hpp @@ -36,7 +36,7 @@ class TileClipboard : public turbine::ClipboardObject { } }; -oxModelBegin(TileClipboard) -oxModelEnd() +OX_MODEL_BEGIN(TileClipboard) +OX_MODEL_END() } \ No newline at end of file diff --git a/src/jasper/modules/world/src/studio/worldeditor/worldeditor-imgui.cpp b/src/jasper/modules/world/src/studio/worldeditor/worldeditor-imgui.cpp index 206eaca..a125cc6 100644 --- a/src/jasper/modules/world/src/studio/worldeditor/worldeditor-imgui.cpp +++ b/src/jasper/modules/world/src/studio/worldeditor/worldeditor-imgui.cpp @@ -30,9 +30,9 @@ struct WorldEditorConfig { bool animateBg{}; }; -oxModelBegin(WorldEditorConfig) - oxModelField(animateBg); -oxModelEnd() +OX_MODEL_BEGIN(WorldEditorConfig) + OX_MODEL_FIELD(animateBg); +OX_MODEL_END() struct WorldTileDragDrop { @@ -42,10 +42,10 @@ struct WorldTileDragDrop { ObjectId objId{}; }; -oxModelBegin(WorldTileDragDrop) - oxModelField(setId) - oxModelField(objId) -oxModelEnd() +OX_MODEL_BEGIN(WorldTileDragDrop) + OX_MODEL_FIELD(setId) + OX_MODEL_FIELD(objId) +OX_MODEL_END() static WorldDoc makeValid(WorldDoc doc) noexcept { @@ -84,7 +84,7 @@ WorldEditorImGui::WorldEditorImGui(studio::StudioContext &sctx, ox::StringView p m_objCache(buildObjCache(keelCtx(m_sctx), m_doc).unwrapThrow()), m_worldStatic(loadWorldStatic(m_objCache, m_doc)), m_view(m_sctx, m_worldStatic) { - oxThrowError(loadObjectSets()); + OX_THROW_ERROR(loadObjectSets()); m_objSetPicker.filePicked.connect(this, &WorldEditorImGui::addObjSet); m_sctx.project->fileUpdated.connect(this, &WorldEditorImGui::handleDepUpdate); studio::Editor::undoStack()->changeTriggered.connect(this, &WorldEditorImGui::undoStackChanged); @@ -353,7 +353,7 @@ void WorldEditorImGui::handleMouseSelection(float fbPaneScale) noexcept { } ox::Error WorldEditorImGui::handleDrop(float fbPaneScale) noexcept { - oxRequire(objId, ig::getDragDropPayload("WorldTile")); + OX_REQUIRE(objId, ig::getDragDropPayload("WorldTile")); auto const&io = ImGui::GetIO(); auto const fbPos = world::fbPos(ox::Vec2{io.MousePos}); auto const viewSz = m_view.drawSize(); @@ -389,12 +389,12 @@ ox::Error WorldEditorImGui::handleDrop(float fbPaneScale) noexcept { m_objCache, std::move(mods)); } - oxReturnError(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic)); + OX_RETURN_ERROR(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic)); return {}; } ox::Error WorldEditorImGui::addObjSet(ox::StringView path) noexcept { - oxRequire(uuid, getUuid(keelCtx(m_sctx), path)); + OX_REQUIRE(uuid, getUuid(keelCtx(m_sctx), path)); std::ignore = pushCommand(m_doc, uuid); return {}; } @@ -415,9 +415,9 @@ ox::Error WorldEditorImGui::handleDepUpdate(ox::StringView, ox::UUID const&uuid) auto const depUpdated = ox::any_of(m_doc.objSets.begin(), m_doc.objSets.end(), objSetMatches) || ox::any_of(m_dependencies.pairs().begin(), m_dependencies.pairs().end(), depMatches); if (depUpdated) { - oxReturnError(buildObjCache(kctx, m_doc).moveTo(m_objCache)); - oxReturnError(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic)); - oxReturnError(loadObjectSets()); + OX_RETURN_ERROR(buildObjCache(kctx, m_doc).moveTo(m_objCache)); + OX_RETURN_ERROR(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic)); + OX_RETURN_ERROR(loadObjectSets()); } return {}; } @@ -427,7 +427,7 @@ ox::Error WorldEditorImGui::loadObjectSets() noexcept { m_dependencies.clear(); auto &kctx = keelCtx(m_sctx); for (auto const&set : m_doc.objSets) { - oxRequireM(os, readObj(kctx, set.path)); + OX_REQUIRE_M(os, readObj(kctx, set.path)); oxLogError(addDependency(os->tilesheet)); for (auto const&pal : os->palettes) { oxLogError(addDependency(pal)); @@ -438,7 +438,7 @@ ox::Error WorldEditorImGui::loadObjectSets() noexcept { } ox::Error WorldEditorImGui::undoStackChanged(studio::UndoCommand const*) { - oxReturnError(m_view.setupWorld()); + OX_RETURN_ERROR(m_view.setupWorld()); return {}; } @@ -460,7 +460,7 @@ ox::Result WorldEditorImGui::assetId() const noexcept { ox::Error WorldEditorImGui::addDependency(ox::FileAddress const&fileAddr) noexcept { auto &kctx = keelCtx(m_sctx); - oxRequire(uuid, getUuid(kctx, fileAddr)); + OX_REQUIRE(uuid, getUuid(kctx, fileAddr)); m_dependencies[uuid] = true; return {}; } diff --git a/src/jasper/modules/world/src/studio/worldeditor/worldeditorview.cpp b/src/jasper/modules/world/src/studio/worldeditor/worldeditorview.cpp index c2e373c..6bd0412 100644 --- a/src/jasper/modules/world/src/studio/worldeditor/worldeditorview.cpp +++ b/src/jasper/modules/world/src/studio/worldeditor/worldeditorview.cpp @@ -18,7 +18,7 @@ WorldEditorView::WorldEditorView(studio::StudioContext &sctx, WorldStatic const& ox::Error WorldEditorView::setupWorld() noexcept { glutils::resizeInitFrameBuffer(m_frameBuffer, ncore::gl::drawSize(m_scale)); if (m_columns != m_worldStatic.columns || m_rows != m_worldStatic.rows) { - oxReturnError(m_highlighter.setup({m_worldStatic.columns, m_worldStatic.rows})); + OX_RETURN_ERROR(m_highlighter.setup({m_worldStatic.columns, m_worldStatic.rows})); m_columns = m_worldStatic.columns; m_rows = m_worldStatic.rows; m_selection.reset(); diff --git a/src/jasper/modules/world/src/studio/worldobjectseteditor/collisionmapview.cpp b/src/jasper/modules/world/src/studio/worldobjectseteditor/collisionmapview.cpp index 6fed321..d427f76 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/collisionmapview.cpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/collisionmapview.cpp @@ -30,9 +30,9 @@ ox::Error CollisionView::setup( m_subsheetTilesHeight = h; m_sheetTileStart = tile; ncore::setBgStatus(*m_nctx, 0, true); - oxReturnError(ncore::loadBgTileSheet(*m_nctx, 0, tsAddr)); - oxReturnError(ncore::loadBgPalette(*m_nctx, 0, palAddr)); - oxReturnError(m_highlighter.setup({w / 2, h / 2})); + OX_RETURN_ERROR(ncore::loadBgTileSheet(*m_nctx, 0, tsAddr)); + OX_RETURN_ERROR(ncore::loadBgPalette(*m_nctx, 0, palAddr)); + OX_RETURN_ERROR(m_highlighter.setup({w / 2, h / 2})); buildGlBuffers(colMap); return {}; } 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 70c7f0f..f3d82dd 100644 --- a/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addobject.cpp +++ b/src/jasper/modules/world/src/studio/worldobjectseteditor/commands/addobject.cpp @@ -27,7 +27,7 @@ ox::Error AddObject::redo() noexcept { ox::Error AddObject::undo() noexcept { m_obj = std::move(m_doc.objects[m_insertIdx]); - oxReturnError(m_doc.objects.erase(m_insertIdx)); + OX_RETURN_ERROR(m_doc.objects.erase(m_insertIdx)); --m_doc.objIdIdx; return {}; } diff --git a/src/jasper/modules/world/src/world.cpp b/src/jasper/modules/world/src/world.cpp index 0ddc9d4..e750929 100644 --- a/src/jasper/modules/world/src/world.cpp +++ b/src/jasper/modules/world/src/world.cpp @@ -19,11 +19,11 @@ ox::Error World::setupDisplay() noexcept { return ox::Error(1, "World has no palettes"); } for (auto i = 0u; auto const&palAddr : m_worldStatic.palettes) { - oxRequire(pal, readObj(keelCtx(m_nctx), palAddr)); - oxReturnError(ncore::loadBgPalette(m_nctx, i, *pal)); + OX_REQUIRE(pal, readObj(keelCtx(m_nctx), palAddr)); + OX_RETURN_ERROR(ncore::loadBgPalette(m_nctx, i, *pal)); ++i; } - oxReturnError(ncore::loadBgTileSheet(m_nctx, 0, m_worldStatic.tilesheets)); + OX_RETURN_ERROR(ncore::loadBgTileSheet(m_nctx, 0, m_worldStatic.tilesheets)); ncore::setBgStatus(m_nctx, 0); // disable all backgrounds for (auto layerNo = 0u; auto const&layer : m_worldStatic.map) { setupLayer(layerNo, layer.cbb); diff --git a/src/jasper/player/app.cpp b/src/jasper/player/app.cpp index fe96221..55df426 100644 --- a/src/jasper/player/app.cpp +++ b/src/jasper/player/app.cpp @@ -23,14 +23,14 @@ ox::Error run( [[maybe_unused]] ox::StringView projectDataDir, ox::SpanView args) noexcept { auto const fsPath = args.size() > 1 ? args[1] : "."; - oxRequireM(tctx, turbine::init(fsPath, project)); - oxRequire(bootfile, keel::readObj(keelCtx(*tctx), "/Bootfile")); + OX_REQUIRE_M(tctx, turbine::init(fsPath, project)); + OX_REQUIRE(bootfile, keel::readObj(keelCtx(*tctx), "/Bootfile")); oxOut("Jasper Player\n"); - oxRequire(nctx, ncore::init(*tctx)); + OX_REQUIRE(nctx, ncore::init(*tctx)); auto const&worldPath = *bootfile->args.at(0).unwrap(); - oxRequire(worldStatic, readObj(keelCtx(*tctx), worldPath)); + OX_REQUIRE(worldStatic, readObj(keelCtx(*tctx), worldPath)); world::World world(*nctx, *worldStatic); - oxReturnError(world.setupDisplay()); + OX_RETURN_ERROR(world.setupDisplay()); turbine::setApplicationData(*tctx, &world); setUpdateHandler(*tctx, [](turbine::Context &tctx) -> int { auto &world = *applicationData(tctx); @@ -40,7 +40,7 @@ ox::Error run( } return 0; }); - oxReturnError(turbine::run(*tctx)); + OX_RETURN_ERROR(turbine::run(*tctx)); oxOut("Exiting...\n"); return {}; }