From 6d7c240f13b236a2836f54c0f935f4ce849a9ee0 Mon Sep 17 00:00:00 2001 From: Zero Fanker Date: Wed, 29 May 2024 00:43:35 -0400 Subject: [PATCH] resolved custom palette remap issue . --- MissionEditor/Loading.cpp | 6 +++--- MissionEditor/Palettes.cpp | 4 ++-- MissionEditor/Palettes.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/MissionEditor/Loading.cpp b/MissionEditor/Loading.cpp index 3953359..b33de42 100644 --- a/MissionEditor/Loading.cpp +++ b/MissionEditor/Loading.cpp @@ -1547,14 +1547,14 @@ void CLoading::LoadBuilding(const CString& ID) if (bibImageName.GetLength()) { LoadSingleFrameShape(art.GetStringOr(bibImageName, "Image", bibImageName)); } - + bool paletteRemappable = true; CString PaletteName = art.GetStringOr(ArtID, "Palette", "unit"); if (art.GetBool(ArtID, "TerrainPalette")) { PaletteName = "iso"; + paletteRemappable = false; } GetFullPaletteName(PaletteName, cur_theat); - CString DictName; unsigned char* pBuffer; int width, height; @@ -1564,7 +1564,7 @@ void CLoading::LoadBuilding(const CString& ID) if (!rules.GetBool(ID, "Turret")) { CString DictName; DictName.Format("%s%d", ID.operator LPCSTR(), 0); - SetImageData(pBuffer, DictName, width, height, m_palettes.LoadPalette(PaletteName)); + SetImageData(pBuffer, DictName, width, height, m_palettes.LoadPalette(PaletteName, paletteRemappable)); return; } // Has turret diff --git a/MissionEditor/Palettes.cpp b/MissionEditor/Palettes.cpp index 4584ea7..fc877d1 100644 --- a/MissionEditor/Palettes.cpp +++ b/MissionEditor/Palettes.cpp @@ -294,7 +294,7 @@ void Palettes::CreateConvTable(RGBTRIPLE* pal, int* iPal) } -Palette* Palettes::LoadPalette(const CString& palName) +Palette* Palettes::LoadPalette(const CString& palName, bool remappable) { if (LoadedPalettes.size() == 0) { Palettes::Init(); @@ -309,7 +309,7 @@ Palette* Palettes::LoadPalette(const CString& palName) HMIXFILE mixIdx = loading.FindFileInMix(palName); if (FSunPackLib::LoadTSPalette(reinterpret_cast(buffer.Data), palName, mixIdx)) { - auto pal = new Palette(buffer); + auto pal = new Palette(buffer, remappable); LoadedPalettes[palName] = pal; return pal; } diff --git a/MissionEditor/Palettes.h b/MissionEditor/Palettes.h index 0d929fc..323155e 100644 --- a/MissionEditor/Palettes.h +++ b/MissionEditor/Palettes.h @@ -63,7 +63,7 @@ public: void FetchPalettes(); void CreateConvTable(RGBTRIPLE* pal, int* iPal); - Palette* LoadPalette(const CString& palName); + Palette* LoadPalette(const CString& palName, bool remappable = false); void Clear(); HTSPALETTE m_hPalIsoTemp;