From 228f9ca9413745d1eee0608a26be89fc6e4488ef Mon Sep 17 00:00:00 2001 From: frosch Date: Fri, 9 May 2025 17:16:29 +0200 Subject: [PATCH] Fix #13854: 40bpp-anim blitter recolouring failed for 32bpp pixels without mask channel. (#14242) --- src/blitter/40bpp_anim.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/blitter/40bpp_anim.cpp b/src/blitter/40bpp_anim.cpp index 1af0158c61..96d8cfa15a 100644 --- a/src/blitter/40bpp_anim.cpp +++ b/src/blitter/40bpp_anim.cpp @@ -377,8 +377,11 @@ void Blitter_40bppAnim::DrawColourMappingRect(void *dst, int width, int height, const uint8_t *remap = GetNonSprite(pal, SpriteType::Recolour) + 1; do { for (int i = 0; i != width; i++) { - if (*anim == 0) *udst = MakeGrey(*udst); - *anim = remap[*anim]; + if (*anim == 0) { + *udst = MakeGrey(*udst); + } else { + *anim = remap[*anim]; + } udst++; anim++; } @@ -389,7 +392,7 @@ void Blitter_40bppAnim::DrawColourMappingRect(void *dst, int width, int height, const uint8_t *remap = GetNonSprite(pal, SpriteType::Recolour) + 1; do { for (int i = 0; i != width; i++) { - *anim = remap[*anim]; + if (*anim != 0) *anim = remap[*anim]; anim++; } anim = anim - width + _screen.pitch;