Fix incremental menu animation presentation

This commit is contained in:
gamer147
2026-07-30 11:04:29 -04:00
parent 56d60c0625
commit 2ba0870967
10 changed files with 171 additions and 39 deletions

View File

@@ -111,6 +111,9 @@ public interface IHost
void SetCursorResource(long resourceId) { }
void ClearCursorResource() { }
void Sleep(long duration);
// Native op-0xd5 pacing sleeps inside run-state 0x40 without publishing retained gfx state.
// Interactive hosts must keep this distinct from presentation-capable script op-0xc8 sleep.
void WaitForTimedCallbackDeadline(long duration) => Sleep(duration);
void FrameYield();
// Native op 0x9 resets scene-owned host services before reloading root script resource 0.
// Global banks, engine configuration, decoded-asset caches, and persistent profile state survive.

View File

@@ -2260,7 +2260,7 @@ public sealed class VirtualMachine
long elapsedMs = _host.InputClockMilliseconds - _cur.TimedCallbackStartedAtMs.Value;
if (elapsedMs < callback.DeadlineMs)
{
_host.Sleep(callback.DeadlineMs - elapsedMs);
_host.WaitForTimedCallbackDeadline(callback.DeadlineMs - elapsedMs);
elapsedMs = _host.InputClockMilliseconds - _cur.TimedCallbackStartedAtMs.Value;
}