From 71f70cb2e679db9321adba6513f8b20926df4d9c Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Sun, 13 Feb 2022 13:39:10 -0600 Subject: [PATCH] [nostalgia/world] Update models --- src/nostalgia/world/world.hpp | 69 +++++++++-------------------------- 1 file changed, 18 insertions(+), 51 deletions(-) diff --git a/src/nostalgia/world/world.hpp b/src/nostalgia/world/world.hpp index 88192289..cb642569 100644 --- a/src/nostalgia/world/world.hpp +++ b/src/nostalgia/world/world.hpp @@ -13,32 +13,26 @@ namespace nostalgia::world { struct Tile { - static constexpr auto Fields = 2; + static constexpr auto TypeName = "net.drinkingtea.nostalgia.world.Tile"; + static constexpr auto TypeVersion = 1; uint8_t bgTile = 0; uint8_t type = 0; }; -template -ox::Error modelRead(T *io, Tile *obj) { - auto err = OxError(0); - io->setTypeInfo("nostalgia::world::Tile", Tile::Fields); - err |= io->field("bgTile", &obj->bgTile); - err |= io->field("type", &obj->type); - return err; -} +oxModelBegin(Tile) + oxModelField(bgTile) + oxModelField(type) +oxModelEnd() struct Zone { + static constexpr auto TypeName = "net.drinkingtea.nostalgia.world.Zone"; + static constexpr auto TypeVersion = 2; - template - friend ox::Error modelRead(T*, Zone*); - - template - friend ox::Error modelWrite(T*, Zone*); + oxModelFriend(Zone); protected: - static constexpr auto Fields = 2; geo::Bounds m_bounds; Tile *m_tiles = nullptr; @@ -59,51 +53,24 @@ struct Zone { }; -template -ox::Error modelRead(T *io, Zone *obj) { - auto err = OxError(0); - io->setTypeInfo("net.drinkingtea.nostalgia.world.Zone", Zone::Fields); - err |= io->field("bounds", &obj->m_bounds); - return err; -} - -template -ox::Error modelWrite(T *io, Zone *obj) { - auto err = OxError(0); - io->setTypeInfo("net.drinkingtea.nostalgia.world.Zone", Zone::Fields); - err |= io->field("bounds", &obj->m_bounds); - return err; -} - +oxModelBegin(Zone) + oxModelFieldRename(bounds, m_bounds) +oxModelEnd() struct Region { + static constexpr auto TypeName = "net.drinkingtea.nostalgia.world.Region"; + static constexpr auto TypeVersion = 1; - template - friend ox::Error modelRead(T*, Region*); - - template - friend ox::Error modelWrite(T*, Region*); + oxModelFriend(Region); protected: - static constexpr auto Fields = 1; ox::Vector m_zones; - public: - }; -template -ox::Error modelRead(T *io, Region*) { - auto err = OxError(0); - io->setTypeInfo("net.drinkingtea.nostalgia.world.Region", Region::Fields); - return err; -} +oxModelBegin(Region) + oxModelFieldRename(zones, m_zones) +oxModelEnd() -template -ox::Error modelWrite(T *io, Region*) { - auto err = OxError(0); - io->setTypeInfo("net.drinkingtea.nostalgia.world.Region", Region::Fields); - return err; -} }