D330 (#103): mouse no longer drives the stick inside the in-level watch

Auto-Aim / Look Ahead "wouldn't stay on": in the watch, current_menu is
still RUN_STAGE and hipDirectCompute declines on its !watch gate, so mouse
motion fell through to the legacy stick fallback (~3 counts/px/poll). A
~15 px flick crossed the watch's +/-0x2E threshold, which on a selected
option picks OFF/ON (game_option_toggle_input) and otherwise flips pages.
The mouse now contributes nothing while the watch is open or paused;
keyboard and pad drive the watch as before. Save/load round trip ruled out.

Build clean; bunker1 golden 3/3. Mouse feel-check owed (needs real motion).
This commit is contained in:
James Dansereau committed 2026-09-23 11:09:52 -04:00
1 parent f89311e9e3
commit c1b5b6e519
4 files changed
+45

No files matched your search

+15
View File
@@ -1012,6 +1012,21 @@ unsigned inputComputePad(int idx, signed char *stick_x, signed char *stick_y)
"GE_INPUTLOG menuptr abs=%d cursor=(%.1f,%.1f) stick=(%d,%d)",
haveAbs, (double)cursor_h_pos, (double)cursor_v_pos, sx, sy);
}
} else if (g_CurrentPlayer != NULL &&
(!g_CurrentPlayer->outside_watch_menu ||
g_CurrentPlayer->pause_state != 0)) {
/* D330 (#103): in-stage watch / pause -- the mouse drives
* nothing. menuMode is 0 here (current_menu is still
* RUN_STAGE) and hipDirectCompute declines on this same gate,
* so the legacy stick fallbacks below used to turn mouse
* motion into stick deflection (and an RMB hold ran the GEPD
* aim writes, which GEPD itself gates on !watch): a ~15 px flick
* crossed the watch's +/-0x2E left/right threshold, which on
* a selected option means "pick OFF/ON" (options.c
* game_option_toggle_input) and otherwise flips watch pages,
* while mouse Y scrolled the rows. Auto-aim / look-ahead
* "wouldn't stay on". Keyboard and pad still drive the watch
* exactly as before. */
} else if (aimHeld) {
/* D194 GEPD-mirror aim: direct crosshair/camera writes, no
* look stick (see aimGepdCompute). Keyboard turn (sx/sy set