fix(portal): synchronize destination presentation state
This commit is contained in:
parent
4b1bceefbb
commit
e95f55f25b
42 changed files with 2815 additions and 288 deletions
|
|
@ -566,9 +566,7 @@ public sealed class AnimationSequencer
|
|||
if (_core.CurrAnim == null && rootMotionFrame is null)
|
||||
return BuildIdentityFrame(partCount);
|
||||
if (dt <= 0f)
|
||||
return _core.CurrAnim == null
|
||||
? BuildIdentityFrame(partCount)
|
||||
: BuildBlendedFrame();
|
||||
return SampleCurrentPose();
|
||||
|
||||
_core.Update(dt, rootMotionFrame);
|
||||
|
||||
|
|
@ -577,6 +575,19 @@ public sealed class AnimationSequencer
|
|||
: BuildBlendedFrame();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Samples the current sequence frame without advancing animation time or
|
||||
/// dispatching hooks. This is retail's hidden-object
|
||||
/// <c>CPhysicsObj::set_frame -> CPartArray::SetFrame -> UpdateParts</c>
|
||||
/// path: <c>HandleEnterWorld</c> may move the sequence cursor from a completed
|
||||
/// link to the cyclic tail, and the hidden object must recompose that new pose
|
||||
/// while PartArray time remains frozen.
|
||||
/// </summary>
|
||||
public IReadOnlyList<PartTransform> SampleCurrentPose()
|
||||
=> _core.CurrAnim == null
|
||||
? BuildIdentityFrame(_setup.Parts.Count)
|
||||
: BuildBlendedFrame();
|
||||
|
||||
/// <summary>
|
||||
/// Retrieve and clear the list of hooks that fired since the last call.
|
||||
/// Empty when no frame boundary was crossed. Safe to call multiple
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue