Process animation completion at the retail process_hooks boundary, then run targeting, movement, PartArray completion, and PositionManager in the named UpdateObjectInternal order for local, remote, hidden, and position-less animated objects. Retire TS-42 with deterministic conformance coverage.\n\nCo-authored-by: OpenAI Codex <codex@openai.com>
28 lines
916 B
C#
28 lines
916 B
C#
namespace AcDream.Core.Physics;
|
|
|
|
/// <summary>
|
|
/// Executes the manager tail of retail
|
|
/// <c>CPhysicsObj::UpdateObjectInternal</c> (<c>0x005156B0</c>).
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// The order is observable. In particular, animation completion hooks have
|
|
/// already run when this tail begins, so MoveTo may react to a completion in
|
|
/// the same object quantum. A null callback represents an absent retail
|
|
/// manager; it is not a separate execution path.
|
|
/// </remarks>
|
|
public static class RetailObjectManagerTail
|
|
{
|
|
public static void Run(
|
|
Action? checkDetection,
|
|
Action? handleTargeting,
|
|
Action? movementUseTime,
|
|
Action? partArrayHandleMovement,
|
|
Action? positionUseTime)
|
|
{
|
|
checkDetection?.Invoke();
|
|
handleTargeting?.Invoke();
|
|
movementUseTime?.Invoke();
|
|
partArrayHandleMovement?.Invoke();
|
|
positionUseTime?.Invoke();
|
|
}
|
|
}
|