more fixes
This commit is contained in:
@@ -22,7 +22,6 @@ namespace SplashEdit.RuntimeCode
|
||||
public TextureAtlas[] atlases;
|
||||
public PSXInteractable[] interactables;
|
||||
public AudioClipExport[] audioClips;
|
||||
public PSXCollisionExporter collisionExporter;
|
||||
public PSXNavRegionBuilder navRegionBuilder;
|
||||
public PSXRoomBuilder roomBuilder;
|
||||
public BVH bvh;
|
||||
@@ -169,8 +168,8 @@ namespace SplashEdit.RuntimeCode
|
||||
writer.Write((ushort)scene.sceneType);
|
||||
writer.Write((ushort)triggerBoxCount); // was pad0
|
||||
|
||||
writer.Write((ushort)scene.collisionExporter.MeshCount);
|
||||
writer.Write((ushort)scene.collisionExporter.TriangleCount);
|
||||
writer.Write((ushort)0); // collisionMeshCount (removed, kept for binary compat)
|
||||
writer.Write((ushort)0); // collisionTriCount (removed, kept for binary compat)
|
||||
writer.Write((ushort)scene.navRegionBuilder.RegionCount);
|
||||
writer.Write((ushort)scene.navRegionBuilder.PortalCount);
|
||||
|
||||
@@ -342,7 +341,7 @@ namespace SplashEdit.RuntimeCode
|
||||
scene.bvh.WriteToBinary(writer, gte);
|
||||
|
||||
// ──────────────────────────────────────────────────────
|
||||
// Interactable components (24 bytes each)
|
||||
// Interactable components (28 bytes each)
|
||||
// ──────────────────────────────────────────────────────
|
||||
AlignToFourBytes(writer);
|
||||
foreach (PSXInteractable interactable in scene.interactables)
|
||||
@@ -353,11 +352,6 @@ namespace SplashEdit.RuntimeCode
|
||||
float radiusSq = interactable.InteractionRadius * interactable.InteractionRadius;
|
||||
writer.Write(PSXTrig.ConvertWorldToFixed12(radiusSq / (gte * gte)));
|
||||
|
||||
Vector3 offset = interactable.InteractionOffset;
|
||||
writer.Write(PSXTrig.ConvertWorldToFixed12(offset.x / gte));
|
||||
writer.Write(PSXTrig.ConvertWorldToFixed12(-offset.y / gte));
|
||||
writer.Write(PSXTrig.ConvertWorldToFixed12(offset.z / gte));
|
||||
|
||||
writer.Write((byte)interactable.InteractButton);
|
||||
byte flags = 0;
|
||||
if (interactable.IsRepeatable) flags |= 0x01;
|
||||
@@ -368,15 +362,14 @@ namespace SplashEdit.RuntimeCode
|
||||
|
||||
writer.Write((ushort)0); // currentCooldown (runtime)
|
||||
writer.Write((ushort)goIndex);
|
||||
}
|
||||
|
||||
// ──────────────────────────────────────────────────────
|
||||
// World collision soup (version 7+)
|
||||
// ──────────────────────────────────────────────────────
|
||||
if (scene.collisionExporter.MeshCount > 0)
|
||||
{
|
||||
AlignToFourBytes(writer);
|
||||
scene.collisionExporter.WriteToBinary(writer, gte);
|
||||
// Prompt canvas name (16 bytes, null-terminated, zero-padded)
|
||||
string canvasName = interactable.PromptCanvasName ?? "";
|
||||
byte[] nameBytes = new byte[16];
|
||||
int len = System.Math.Min(canvasName.Length, 15);
|
||||
for (int ci = 0; ci < len; ci++)
|
||||
nameBytes[ci] = (byte)canvasName[ci];
|
||||
writer.Write(nameBytes);
|
||||
}
|
||||
|
||||
// ──────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user