Fix skip completion for visual transitions

This commit is contained in:
gamer147
2026-07-29 17:09:37 -04:00
parent 3378abdeca
commit 09d765d89d
12 changed files with 271 additions and 50 deletions

View File

@@ -92,4 +92,26 @@ public class CoreScalarAndScreenTransitionOpsTests
Assert.Equal(480, LegacyScreenTransitionTiming.DurationMilliseconds(30));
Assert.Equal(1024, LegacyScreenTransitionTiming.DurationMilliseconds(65));
}
[Fact]
public void ActiveAdvSkip_ForcesLegacyScreenTransitionEndpointsAtDispatch()
{
var table = OpcodeTableJson.Load(Paths.OpcodesJson);
var script = ScriptAssembler.Assemble(table, "SKIPPED_SCREEN_TRANSITIONS",
new List<(int, Operand[])>
{
(0x21, new[] { new Operand(Imm, 1), new Operand(Imm, 30) }),
(0x25, new[]
{
new Operand(Imm, 1), new Operand(Imm, 2), new Operand(Imm, 10),
}),
(0x2, Array.Empty<Operand>()),
}, Array.Empty<string>());
var host = new RecordingHost { MessageSkip = true };
new VirtualMachine(script, table, host).Run();
Assert.Equal(new[] { true }, host.SurfaceBlackFadeForceEndpoints);
Assert.Equal(new[] { true }, host.SurfaceCrossfadeForceEndpoints);
}
}