Skip to content

Commit 2930764

Browse files
committed
Fix Debug sln
Add HavokPhysicsData logging
1 parent 6fda3c0 commit 2930764

4 files changed

Lines changed: 82 additions & 225 deletions

File tree

RimeLib.Havok.Frostbite2_0/HavokPhysicsData.cs

Lines changed: 8 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -291,20 +291,26 @@ public void Deserialize(RimeReader p_Reader)
291291
for (var s_EntryIndex = 0; s_EntryIndex < s_ExtendedMeshHeader.IndexCount; s_EntryIndex++)
292292
{
293293
var s_ExtendedMeshEntry = new hkExtendedMeshEntry(p_Reader);
294+
295+
Console.WriteLine(
296+
$"Transform: {s_ExtendedMeshEntry.Transform.X}, {s_ExtendedMeshEntry.Transform.Y}, {s_ExtendedMeshEntry.Transform.Z}");
297+
294298
}
295299
}
296300
else
297301
{
302+
var s_Root = new hkxRoot(p_Reader);
303+
298304
// What do we even do with this information????
299-
var s_Vec4 = new Vec4
305+
/*var s_Vec4 = new Vec4
300306
{
301307
x = p_Reader.ReadSingle(),
302308
y = p_Reader.ReadSingle(),
303309
z = p_Reader.ReadSingle(),
304310
w = p_Reader.ReadSingle()
305311
};
306312
307-
s_Vecs.Add(s_Vec4);
313+
s_Vecs.Add(s_Vec4);*/
308314
}
309315

310316
p_Reader.Seek(s_Offset, SeekOrigin.Begin);
@@ -332,112 +338,6 @@ public HavokPhysicsData()
332338
LoadedDatas = new LoadedData();
333339
}
334340

335-
/*public HavokPhysicsData(
336-
RimeReader p_Reader,
337-
int p_ResourceHeaderSize,
338-
int p_HavokDataSize32,
339-
int p_HavokDataSize64,
340-
int p_FixupTableSize
341-
)
342-
{
343-
var s_StartPos = p_Reader.Position;
344-
PartCount = p_Reader.ReadUInt32();
345-
346-
// Manually parse this out until we can fix the hack
347-
var s_PartTranslationsCount = p_Reader.ReadUInt32();
348-
var s_PartTranslationsOffset = p_Reader.ReadInt64();
349-
350-
var s_Position = p_Reader.Position;
351-
p_Reader.Seek(s_PartTranslationsOffset, SeekOrigin.Begin);
352-
for (var i = 0; i < s_PartTranslationsCount; i++)
353-
{
354-
PartTranslations.Add(new Vec3
355-
{
356-
x = p_Reader.ReadSingle(),
357-
y = p_Reader.ReadSingle(),
358-
z = p_Reader.ReadSingle(),
359-
});
360-
// Vec3 has padding
361-
p_Reader.ReadSingle();
362-
}
363-
p_Reader.Seek(s_Position, SeekOrigin.Begin);
364-
365-
// PartTranslations = new RelocArray<Vec3>(p_Reader);
366-
367-
var s_LocalAabbsCount = p_Reader.ReadUInt32();
368-
var s_LocalAabbsOffset = p_Reader.ReadInt64();
369-
370-
s_Position = p_Reader.Position;
371-
p_Reader.Seek(s_LocalAabbsOffset, SeekOrigin.Begin);
372-
for (var i = 0; i < s_LocalAabbsCount; i++)
373-
{
374-
var s_Min = new Vec3
375-
{
376-
x = p_Reader.ReadSingle(),
377-
y = p_Reader.ReadSingle(),
378-
z = p_Reader.ReadSingle()
379-
};
380-
p_Reader.ReadSingle();
381-
382-
var s_Max = new Vec3
383-
{
384-
x = p_Reader.ReadSingle(),
385-
y = p_Reader.ReadSingle(),
386-
z = p_Reader.ReadSingle()
387-
};
388-
p_Reader.ReadSingle();
389-
390-
LocalAabbs.Add(new AxisAlignedBox
391-
{
392-
min = s_Min,
393-
max = s_Max,
394-
});
395-
}
396-
p_Reader.Seek(s_Position,SeekOrigin.Begin);
397-
398-
// LocalAabbs = new RelocArray<AxisAlignedBox>(p_Reader);
399-
400-
var s_MaterialIndicesCount = p_Reader.ReadUInt32();
401-
var s_MaterialIndicesOffset = p_Reader.ReadInt64();
402-
403-
s_Position = p_Reader.Position;
404-
p_Reader.Seek(s_MaterialIndicesOffset, SeekOrigin.Begin);
405-
for (var i = 0; i < s_MaterialIndicesCount; i++)
406-
MaterialIndices.Add(p_Reader.ReadUByte());
407-
408-
p_Reader.Seek(s_Position, SeekOrigin.Begin);
409-
410-
// MaterialIndices = new RelocArray<byte>(p_Reader);
411-
412-
var s_MaterialFlagAndIndicesCount = p_Reader.ReadUInt32();
413-
var s_MateiralFlagAndIndciesOffset = p_Reader.ReadInt64();
414-
s_Position = p_Reader.Position;
415-
p_Reader.Seek(s_MateiralFlagAndIndciesOffset, SeekOrigin.Begin);
416-
for (var i = 0; i < s_MaterialFlagAndIndicesCount; ++i)
417-
MaterialFlagsAndIndices.Add(p_Reader.ReadUInt32());
418-
419-
p_Reader.Seek(s_Position, SeekOrigin.Begin);
420-
421-
// MaterialFlagsAndIndices = new RelocArray<uint>(p_Reader);
422-
423-
Scale = p_Reader.ReadSingle();
424-
MaterialCountUsed = p_Reader.ReadUByte();
425-
HighestMaterialIndex = p_Reader.ReadUByte();
426-
Padding = p_Reader.ReadUInt16();
427-
428-
p_Reader.Seek(
429-
s_StartPos + p_ResourceHeaderSize + p_HavokDataSize32 + p_HavokDataSize64,
430-
SeekOrigin.Begin
431-
);
432-
433-
var s_FixupTable = p_Reader.ReadBytes(p_FixupTableSize);
434-
using var s_FixupTableReader = new RimeReader(new MemoryStream(s_FixupTable));
435-
436-
p_Reader.Seek(s_StartPos + p_ResourceHeaderSize, SeekOrigin.Begin);
437-
using var s_Havok32Reader = new LimitedRimeReader(p_Reader, p_HavokDataSize32, false);
438-
439-
HkPackfile = new HkPackfileHeader(s_Havok32Reader, s_FixupTableReader);
440-
}*/
441341
public bool Serialize(RimeWriter p_Writer)
442342
{
443343
throw new NotImplementedException();

RimeLib.Toolkit.Frostbite2_0/LevelMeshConverter.cs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using System.Numerics;
22
using fb;
33
using RimeLib.Content.Mounting;
4+
using RimeLib.Havok.Frostbite2_0;
5+
using RimeLib.IO;
46
using RimeLib.Math;
57
using RimeLib.Mesh;
68
using RimeLib.Serialization;
@@ -360,14 +362,6 @@ private void HandleSubWorld(SubWorldReferenceObjectData p_Data, TextWriter p_Wri
360362

361363
private void HandleStaticModelGroupEntity(StaticModelGroupEntityData p_Data, TextWriter p_Writer)
362364
{
363-
/*(Vector4 rotation, Vector3 position)[] s_List = SubwayTransforms.mp_subway_transforms;
364-
365-
for (var s_Index = 0; s_Index < p_Data.MemberDatas.Count; s_Index++)
366-
{
367-
var s_MemberData = p_Data.MemberDatas[s_Index];
368-
}*/
369-
370-
/*
371365
// Get the physics data
372366
var s_PhysicsData = p_Data.PhysicsData.Get();
373367
if (s_PhysicsData is null)
@@ -401,8 +395,6 @@ private void HandleStaticModelGroupEntity(StaticModelGroupEntityData p_Data, Tex
401395

402396
//File.WriteAllBytes("physics.bin", s_ResourceReader.ReadBytes((int)s_ResourceReader.Length));
403397

404-
throw new NotImplementedException();
405-
406398
foreach (var s_MemberData in p_Data.MemberDatas)
407399
{
408400
var s_MeshEntityType = s_MemberData.MeshEntityType.Get();
@@ -421,7 +413,7 @@ private void HandleStaticModelGroupEntity(StaticModelGroupEntityData p_Data, Tex
421413
case RigidMeshEntityData s_RigidMeshEntityData:
422414
break;
423415
}
424-
}*/
416+
}
425417
}
426418

427419
internal bool ExportLevelMesh(string p_LevelPartitionName, out SceneBuilder? p_OutSceneBuilder, FileInfo? p_HavokTransforms = null)

RimeLib.Toolkit.Frostbite2_0/RimeLib.Toolkit.Frostbite2_0.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13+
<ProjectReference Include="..\RimeLib.Havok.Frostbite2_0\RimeLib.Havok.Frostbite2_0.csproj" />
1314
<ProjectReference Include="..\RimeLib.Mesh\RimeLib.Mesh.csproj" />
1415
<ProjectReference Include="..\RimeLib.Serialization.Frostbite2_0\RimeLib.Serialization.Frostbite2_0.csproj" />
1516
<ProjectReference Include="..\RimeLib.Toolkit\RimeLib.Toolkit.csproj" />

0 commit comments

Comments
 (0)