Fix menu cursor auto-move

This commit is contained in:
gamer147
2026-08-16 11:07:09 -04:00
parent d4d9def8f4
commit eef1225b56
11 changed files with 75 additions and 10 deletions

View File

@@ -32,6 +32,7 @@ public interface IInputHost
void SetCursorResource(long resourceId) { }
void ClearCursorResource() { }
void WarpCursor(int virtualX, int virtualY) { }
// Native 0x1c7/0x1cc query two distinct ADV skip channels. Headless and non-interactive
// hosts default to normal playback; the Godot host supplies the live interactive values.

View File

@@ -159,8 +159,14 @@ public sealed partial class VirtualMachine
return pc + 1;
}
case "u0041E540":
case "set-cursor-virtual": // 0x10a; retain the virtual position even without OS warping
UpdatePointer((int)Read(a[0]), (int)Read(a[1])); return pc + 1;
case "set-cursor-virtual": // 0x10a: update AGE state immediately, then request the native warp
{
int x = (int)Read(a[0]);
int y = (int)Read(a[1]);
UpdatePointer(x, y);
_host.WarpCursor(x, y);
return pc + 1;
}
case "u0041E5A0":
case "map-mouse-button": // 0x10b: physical button -> slot, polled action is slot+4
InputBindings.MapMouseButton(unchecked((int)Read(a[0])), unchecked((int)Read(a[1])));