diff --git a/src/app/crash/read_document.cpp b/src/app/crash/read_document.cpp index eff10357c..e6c712a98 100644 --- a/src/app/crash/read_document.cpp +++ b/src/app/crash/read_document.cpp @@ -523,9 +523,9 @@ private: } Tileset* readTileset(std::ifstream& s) { - uint32_t tilesetVer; + TilesetSerialFormat tilesetVer = TilesetSerialFormat::Ver0; Tileset* tileset = read_tileset(s, m_sprite, false, &tilesetVer, m_serial); - if (tileset && tilesetVer < TILESET_VER1) + if (tileset && tilesetVer < TilesetSerialFormat::Ver1) m_updateOldTilemapWithTileset.insert(tileset->id()); return tileset; } diff --git a/src/doc/tileset_io.cpp b/src/doc/tileset_io.cpp index 4e4269a8d..941f503ee 100644 --- a/src/doc/tileset_io.cpp +++ b/src/doc/tileset_io.cpp @@ -42,7 +42,7 @@ bool write_tileset(std::ostream& os, write_image(os, tileset->get(ti).get(), cancel); } - write8(os, TILESET_VER3); + write8(os, uint8_t(TilesetSerialFormat::LastVer)); write_user_data(os, tileset->userData()); write_string(os, tileset->name()); @@ -58,7 +58,7 @@ bool write_tileset(std::ostream& os, Tileset* read_tileset(std::istream& is, Sprite* sprite, const bool setId, - uint32_t* tilesetVer, + TilesetSerialFormat* tilesetVer, const SerialFormat serial) { const ObjectId id = read32(is); @@ -74,17 +74,17 @@ Tileset* read_tileset(std::istream& is, } // Read extra version byte after tiles - const uint32_t ver = read8(is); + const auto ver = TilesetSerialFormat(read8(is)); if (tilesetVer) *tilesetVer = ver; - if (ver >= TILESET_VER1) { + if (ver >= TilesetSerialFormat::Ver1) { tileset->setBaseIndex(1); - if (ver >= TILESET_VER2) { + if (ver >= TilesetSerialFormat::Ver2) { const UserData userData = read_user_data(is, serial); tileset->setUserData(userData); - if (ver >= TILESET_VER3) { + if (ver >= TilesetSerialFormat::Ver3) { tileset->setName(read_string(is)); for (tileset_index ti=0; ti -// Extra BYTE with special flags to check the tileset version. This -// field didn't exist in Aseprite v1.3-alpha3 (so read8() fails = 0) -#define TILESET_VER1 1 - -// Tileset has UserData now -#define TILESET_VER2 2 - -// Tileset name (was missing originally) + each tileset's tile has -// UserData now -#define TILESET_VER3 3 - namespace doc { + // Tileset serialization format. This field didn't exist in Aseprite + // v1.3-alpha3 (so read8() fails = 0) + enum class TilesetSerialFormat : uint8_t { + // Without version field. + Ver0 = 0, + + // Extra BYTE with special flags to check the tileset version. + Ver1 = 1, + + // Tileset has UserData now. + Ver2 = 2, + + // Tileset name (was missing originally) + each tileset's tile has + // UserData now. + Ver3 = 3, + + LastVer = Ver3 + }; + class CancelIO; class Sprite; class Tileset; @@ -37,7 +45,7 @@ namespace doc { Tileset* read_tileset(std::istream& is, Sprite* sprite, bool setId = true, - uint32_t* tilesetVer = nullptr, + TilesetSerialFormat* tilesetSerial = nullptr, SerialFormat serial = SerialFormat::LastVer); } // namespace doc