From 5e1960f8bd7491331220471f571f0ca79e92b026 Mon Sep 17 00:00:00 2001 From: Starkku Date: Fri, 29 Mar 2024 15:47:08 +0200 Subject: [PATCH] Fix issue causing overlay custom palette being reset on load --- src/Ext/OverlayType/Body.cpp | 7 ++++++- src/Ext/OverlayType/Body.h | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Ext/OverlayType/Body.cpp b/src/Ext/OverlayType/Body.cpp index f30da5352f..ae9ff93bc6 100644 --- a/src/Ext/OverlayType/Body.cpp +++ b/src/Ext/OverlayType/Body.cpp @@ -15,7 +15,6 @@ void OverlayTypeExt::ExtData::Serialize(T& Stm) { Stm .Process(this->PaletteFile) - .Process(this->Palette) ; } @@ -35,6 +34,11 @@ void OverlayTypeExt::ExtData::LoadFromINIFile(CCINIClass* const pINI) this->PaletteFile.Read(pArtINI, pArtSection, "Palette"); + BuildPalette(); +} + +void OverlayTypeExt::ExtData::BuildPalette() +{ if (GeneralUtils::IsValidString(this->PaletteFile)) { char pFilename[0x20]; @@ -48,6 +52,7 @@ void OverlayTypeExt::ExtData::LoadFromStream(PhobosStreamReader& Stm) { Extension::LoadFromStream(Stm); this->Serialize(Stm); + this->BuildPalette(); } void OverlayTypeExt::ExtData::SaveToStream(PhobosStreamWriter& Stm) diff --git a/src/Ext/OverlayType/Body.h b/src/Ext/OverlayType/Body.h index eb41abc9aa..c659a52beb 100644 --- a/src/Ext/OverlayType/Body.h +++ b/src/Ext/OverlayType/Body.h @@ -18,7 +18,7 @@ class OverlayTypeExt { public: PhobosFixedString<32u> PaletteFile; - DynamicVectorClass* Palette; + DynamicVectorClass* Palette; // Intentionally not serialized - rebuilt from the palette file on load. ExtData(OverlayTypeClass* OwnerObject) : Extension(OwnerObject) , PaletteFile {} @@ -37,6 +37,7 @@ class OverlayTypeExt private: template void Serialize(T& Stm); + void BuildPalette(); }; class ExtContainer final : public Container