fix(physics): enforce retail step-down support radius (#273)
This commit is contained in:
parent
4dd40ad8fe
commit
c24bc571cf
9 changed files with 2117 additions and 24 deletions
|
|
@ -45,6 +45,26 @@ if (!dats.TryGet<Setup>(setupId, out var setup) || setup is null)
|
|||
|
||||
Console.WriteLine($"=== Setup 0x{setupId:X8} ===");
|
||||
Console.WriteLine($"Flags = 0x{(uint)setup.Flags:X8}");
|
||||
Console.WriteLine($"Radius/Height = {setup.Radius:F3} / {setup.Height:F3}");
|
||||
Console.WriteLine($"StepUp/StepDown = {setup.StepUpHeight:F3} / {setup.StepDownHeight:F3}");
|
||||
Console.WriteLine($"Spheres = {setup.Spheres.Count}");
|
||||
for (int i = 0; i < setup.Spheres.Count; i++)
|
||||
{
|
||||
Sphere sphere = setup.Spheres[i];
|
||||
Console.WriteLine(
|
||||
$" sphere[{i}] origin=({sphere.Origin.X:R},{sphere.Origin.Y:R},{sphere.Origin.Z:R}) "
|
||||
+ $"radius={sphere.Radius:R} "
|
||||
+ $"radiusBits=0x{BitConverter.SingleToUInt32Bits(sphere.Radius):X8}");
|
||||
}
|
||||
Console.WriteLine($"CylSpheres = {setup.CylSpheres.Count}");
|
||||
for (int i = 0; i < setup.CylSpheres.Count; i++)
|
||||
{
|
||||
CylSphere cylinder = setup.CylSpheres[i];
|
||||
Console.WriteLine(
|
||||
$" cyl[{i}] origin=({cylinder.Origin.X:R},{cylinder.Origin.Y:R},{cylinder.Origin.Z:R}) "
|
||||
+ $"radius={cylinder.Radius:R} height={cylinder.Height:R} "
|
||||
+ $"radiusBits=0x{BitConverter.SingleToUInt32Bits(cylinder.Radius):X8}");
|
||||
}
|
||||
Console.WriteLine($"Parts = {setup.Parts.Count}");
|
||||
for (int i = 0; i < setup.Parts.Count; i++)
|
||||
{
|
||||
|
|
@ -78,7 +98,10 @@ foreach (uint gfxId in setup.Parts.Select(p => (uint)p).Distinct())
|
|||
Console.WriteLine(
|
||||
$" gfx=0x{gfxId:X8} verts={count} "
|
||||
+ $"x[{minX:F2},{maxX:F2}] y[{minY:F2},{maxY:F2}] z[{minZ:F2},{maxZ:F2}] "
|
||||
+ $"sortCenter=({gfx.SortCenter.X:F2},{gfx.SortCenter.Y:F2},{gfx.SortCenter.Z:F2})");
|
||||
+ $"sortCenter=({gfx.SortCenter.X:F2},{gfx.SortCenter.Y:F2},{gfx.SortCenter.Z:F2}) "
|
||||
+ $"flags=0x{(uint)gfx.Flags:X8} "
|
||||
+ $"physicsBsp={(gfx.PhysicsBSP?.Root is null ? "none" : "present")} "
|
||||
+ $"physicsPolygons={gfx.PhysicsPolygons.Count}");
|
||||
}
|
||||
|
||||
Console.WriteLine($"DefaultAnimation = 0x{(uint)setup.DefaultAnimation:X8}");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue