feat(vfx): port retail effect scheduling and delivery
This commit is contained in:
parent
363e046112
commit
96ddfdf175
28 changed files with 2473 additions and 691 deletions
|
|
@ -24,11 +24,33 @@ public sealed class PhysicsScriptTableResolver
|
|||
/// type, an unordered/above-range intensity, or an invalid script DID.
|
||||
/// </summary>
|
||||
public uint? Resolve(uint tableDid, uint rawScriptType, float intensity)
|
||||
=> Resolve(tableDid, rawScriptType, intensity, out _);
|
||||
|
||||
/// <summary>
|
||||
/// Resolves a typed play while preserving a corrupt-DAT exception for the
|
||||
/// App owner to diagnose with entity context. A load failure remains a
|
||||
/// retail no-play and never corrupts the caller's script FIFO.
|
||||
/// </summary>
|
||||
public uint? Resolve(
|
||||
uint tableDid,
|
||||
uint rawScriptType,
|
||||
float intensity,
|
||||
out Exception? loadFailure)
|
||||
{
|
||||
loadFailure = null;
|
||||
if (!IsPhysicsScriptTableDid(tableDid))
|
||||
return null;
|
||||
|
||||
PhysicsScriptTable? table = _loadTable(tableDid);
|
||||
PhysicsScriptTable? table;
|
||||
try
|
||||
{
|
||||
table = _loadTable(tableDid);
|
||||
}
|
||||
catch (Exception error)
|
||||
{
|
||||
loadFailure = error;
|
||||
return null;
|
||||
}
|
||||
if (table is null
|
||||
|| table.Id != tableDid
|
||||
|| !table.ScriptTable.TryGetValue(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue