From 184d9be6b1d00e772a53fdc98d0e63d9d136fdf5 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 10 Apr 2021 21:42:53 +0200 Subject: [PATCH] - fixed palette setup for duplicate base palettes. Due to some old code it could happen that these weren't fully set up and missed their translations. Fixes #301 - Blood's invulnerability palette is identical to the base. --- source/core/palette.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/source/core/palette.cpp b/source/core/palette.cpp index a5c256f41..2625746b3 100644 --- a/source/core/palette.cpp +++ b/source/core/palette.cpp @@ -268,16 +268,13 @@ void LookupTableInfo::postLoadLookups() { const uint8_t* lookup = (uint8_t*)tables[l].Shades.GetChars(); FRemapTable remap; - if (i == 0 || (palette != basepalette && !palette->TwodOnly)) + memcpy(remap.Remap, lookup, 256); + for (int j = 0; j < 256; j++) { - memcpy(remap.Remap, lookup, 256); - for (int j = 0; j < 256; j++) - { - remap.Palette[j] = palette->Palette[remap.Remap[j]]; - } - remap.NumEntries = 256; - GPalette.UpdateTranslation(TRANSLATION(i + Translation_Remap, l), &remap); + remap.Palette[j] = palette->Palette[remap.Remap[j]]; } + remap.NumEntries = 256; + GPalette.UpdateTranslation(TRANSLATION(i + Translation_Remap, l), &remap); } } }