diff --git a/toonz/sources/image/tzl/tiio_tzl.cpp b/toonz/sources/image/tzl/tiio_tzl.cpp index bd69682..c94d9eb 100644 --- a/toonz/sources/image/tzl/tiio_tzl.cpp +++ b/toonz/sources/image/tzl/tiio_tzl.cpp @@ -1409,8 +1409,15 @@ void TLevelReaderTzl::readPalette() { TPalette *palette = 0; if (is && fs.doesExist()) { - is >> p; - palette = dynamic_cast<TPalette *>(p); + std::string tagName; + if (is.matchTag(tagName) && tagName == "palette") { + std::string gname; + is.getTagParam("name", gname); + palette = new TPalette(); + palette->loadData(is); + palette->setGlobalName(::to_wstring(gname)); + is.matchEndTag(); + } } if (!palette) { diff --git a/toonz/sources/toonzlib/txshpalettelevel.cpp b/toonz/sources/toonzlib/txshpalettelevel.cpp index 942720c..e24db02 100644 --- a/toonz/sources/toonzlib/txshpalettelevel.cpp +++ b/toonz/sources/toonzlib/txshpalettelevel.cpp @@ -77,12 +77,20 @@ void TXshPaletteLevel::load() { TFileStatus fs(path); TPersist *p = 0; TIStream is(path); + TPalette *palette = nullptr; if (is && fs.doesExist()) { - is >> p; - TPalette *palette = dynamic_cast<TPalette *>(p); - palette->setPaletteName(path.getWideName()); - setPalette(palette); + std::string tagName; + if (is.matchTag(tagName) && tagName == "palette") { + std::string gname; + is.getTagParam("name", gname); + palette = new TPalette(); + palette->loadData(is); + palette->setGlobalName(::to_wstring(gname)); + is.matchEndTag(); + palette->setPaletteName(path.getWideName()); + setPalette(palette); + } } assert(m_palette); }