Issue #42: doubled MFD joystick -- restore the dropped MoveToAbsolute(0,0)
The binary's ConfigMapGauge dirty-redraw (@004c6f1c) is SetColor(0xFF) -> MoveToAbsolute(0,0) -> DrawBitMapOpaque; the transcription dropped the reposition. The FIRST draw worked by accident (fresh view cursor at the origin); every forced redraw -- the weapon panel's DISPLAY round-trip (main -> ENG DATA -> main, BecameActive sets dirty) -- blitted btjoy.pcc at the state-lamp loop's leftover cursor (0xc, 0x55), painting an offset ghost joystick over the original on every MFD. Repro pinned live by the operator (initial draw correct; doubles on the DISPLAY round-trip, every MFD). LIVE-VERIFIED fixed by the operator: round-trips redraw cleanly. NOT a regression -- present since the joystick went live (89b4f53; bisect-confirmed). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
f7daf03507
commit
a35cef4c01
@@ -657,6 +657,13 @@ void
|
||||
if (base != NULL)
|
||||
{
|
||||
localView.SetColor(0xFF); // vtbl+0x18
|
||||
// issue #42 (doubled joystick): the binary repositions to the view
|
||||
// ORIGIN before the blit -- @004c6f1c vtbl+0x24 (0,0) between
|
||||
// SetColor and DrawBitMapOpaque. The transcription had dropped it,
|
||||
// so the FIRST draw worked (fresh cursor) and every forced redraw
|
||||
// (the DISPLAY page round-trip's BecameActive) blitted at the state
|
||||
// loop's last cursor (0xc, 0x55) -- the offset ghost joystick.
|
||||
localView.MoveToAbsolute(0, 0); // vtbl+0x24
|
||||
localView.DrawBitMapOpaque(0 /*background*/, 0 /*rotation*/, base); // vtbl+0x54
|
||||
}
|
||||
warehouse->bitMapBin.Release(joystickImage);
|
||||
|
||||
Reference in New Issue
Block a user