From 877d1b8cfad65a797c86042a0ee60c989befdf23 Mon Sep 17 00:00:00 2001 From: RT Date: Sun, 9 Aug 2026 20:28:23 -0500 Subject: [PATCH] Install the updated Battlemaster score-sheet and radar art Two files supplied. One was a direct drop-in, the other was not. battlemaster_print.bmp -> hsh/Mechs/battlemaster.bmp, copied byte for byte. recscore.cpp:2959 builds hsh\mechs\.bmp and loads it with Win32 LoadImage, then StretchBlts it onto the printed score sheet, so GDI resolves the palette and any palette layout works. The existing portrait was itself a 254-entry non-identity palette, confirming this path does not care. battlemaster_radar.bmp -> hsh/radar/hud/battlemaster.bmp, CONVERTED first. This one could not be dropped in as supplied. render.cpp:1653 LoadRadarDamageTexture -> CreateATextureFromFile -> CreateATextureFromBitmap reads the raw palette INDEX and uses it directly as both intensity and alpha: wA = data[x]; WORD wBit = (WORD)((wA<<8)&0xF000|0x0FFF); *bits++ = (WORD)((wA>0)?wBit:0); The palette is never looked up, so these dolls must carry an identity greyscale palette where index == grey level. Every existing doll in hsh/hud and hsh/radar/hud is mode L, which satisfies that. The supplied file had an optimised 131-entry palette that is close to inverted against index order: index 1 is pure white, but the engine would have read it as level 1 -- near black with alpha nibble 0, i.e. invisible. Peak brightness would have rendered at 129/255 with alpha capped at 8 of 15. It would have looked broken, not subtly wrong. Converted to mode L, which resolves each index through the palette. Verified the converted pixels are identical to the supplied artwork, the palette is now identity, and the header matches the other dolls (512x512, 8bpp, 1078). Co-authored-by: Claude Opus 5 (Anthropic) Co-authored-by: GitHub Copilot --- Gameleap/mw4/hsh/Mechs/battlemaster.bmp | 4 ++-- Gameleap/mw4/hsh/radar/hud/battlemaster.bmp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gameleap/mw4/hsh/Mechs/battlemaster.bmp b/Gameleap/mw4/hsh/Mechs/battlemaster.bmp index f6f257b5..2d0f469f 100644 --- a/Gameleap/mw4/hsh/Mechs/battlemaster.bmp +++ b/Gameleap/mw4/hsh/Mechs/battlemaster.bmp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b55804588824c021c9bdf75c0634bb8460b24fe8c6624ec4a50bf4d8ca34c940 -size 201072 +oid sha256:8d2171c7d1a377ec72405f7dd214aebf8d1c98f932509a35924caa7a1803cfb2 +size 200580 diff --git a/Gameleap/mw4/hsh/radar/hud/battlemaster.bmp b/Gameleap/mw4/hsh/radar/hud/battlemaster.bmp index 13c772fa..93a6dd3f 100644 --- a/Gameleap/mw4/hsh/radar/hud/battlemaster.bmp +++ b/Gameleap/mw4/hsh/radar/hud/battlemaster.bmp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:410174b26a947e13ddc12003fce3d8a17b8387ff4b2c702e48ab6308493025d9 -size 263224 +oid sha256:7105d9cccb81fa28eeabea264f042df5b70aff664c1c85a88486d22183f056d3 +size 263222