From 01e6ff4f5de0282962ee43d754af5661764d9224 Mon Sep 17 00:00:00 2001 From: elasota Date: Sun, 7 Jun 2020 17:44:37 -0400 Subject: [PATCH] Fix >16bpp images emitting color table data, causing image corruption, especially in 24bpp images --- gpr2gpa/gpr2gpa.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gpr2gpa/gpr2gpa.cpp b/gpr2gpa/gpr2gpa.cpp index c2e91c1..0a2072a 100644 --- a/gpr2gpa/gpr2gpa.cpp +++ b/gpr2gpa/gpr2gpa.cpp @@ -642,7 +642,8 @@ bool BMPDumperContext::Export(std::vector &outData) const VectorAppend(outData, reinterpret_cast(&infoHeader), sizeof(infoHeader)); - VectorAppend(outData, reinterpret_cast(colorTable), sizeof(PortabilityLayer::BitmapColorTableEntry) * numColors); + if (bpp < 16) + VectorAppend(outData, reinterpret_cast(colorTable), sizeof(PortabilityLayer::BitmapColorTableEntry) * numColors); for (size_t i = 0; i < postCTabPaddingSize; i++) outData.push_back(0); @@ -1326,7 +1327,6 @@ bool ApplyPatch(const std::vector &patchFileContents, std::vector