widescreen: draw creatures across the whole view; HUD: copy the cursor per thread

- Creatures were culled beyond 1024+200 x 768+200 screen pixels (cmp 4C8h /
  3C8h in both object passes): invisible in the right part of a wide view,
  and the player too once the centre passed 1224. The bounds follow the
  render size now.
- Centre immediates written as negatives (-200h / -180h), missed before:
  the row renderer's static object origin (0x62babb) and aiming at the
  cursor (0x4fb620).
- HUD: moved windows no longer shift the shared mouse cursor object; the
  cursor accessor (0x6550f0) hands them a per-thread shifted copy and writes
  back what they changed. World input on other threads read the shifted
  position now and then, which made hold-to-move jerky.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
khallaandClaude Opus 5.5 committed 2026-10-14 08:16:27 +02:00
1 parent ba03672c32
commit d39f12ab4b
6 files changed
+145 -33

No files matched your search

+4
View File
@@ -9,4 +9,8 @@ void OnDevice(void* device);
// the current thread (0 outside): polled mouse positions are reduced by it.
int CursorOffsetX();
// The mouse cursor object as the current thread should see it: inside a moved
// window, a private copy with x shifted by CursorOffsetX().
void* CursorFor(void* cursor);
} // namespace mods::hud