Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions Hack.io.BCK/BCK.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ namespace Hack.io.BCK;
public class BCK : J3DAnimationBase<Animation>, ILoadSaveFile
{
/// <inheritdoc cref="Interface.DocGen.DOC_MAGIC"/>
public const string MAGIC = "J3D1bck1";
public const uint MAGIC = 0x62636B31; // bck1
/// <inheritdoc cref="J3D.DocGen.COMMON_CHUNKMAGIC"/>
public const string CHUNKMAGIC = "ANK1";
public const uint CHUNKMAGIC = 0x414E4B31;

/// <summary>
/// Rotational Multiplier.<para/>
Expand All @@ -28,7 +28,7 @@ public class BCK : J3DAnimationBase<Animation>, ILoadSaveFile
public void Load(Stream Strm)
{
uint StartPosition = (uint)Strm.Position;
FileUtil.ExceptionOnBadMagic(Strm, MAGIC);
FileUtil.ExceptionOnBadJ3DMagic(Strm, MAGIC);
uint FileSize = Strm.ReadUInt32(),
ChunkCount = Strm.ReadUInt32();
Strm.Position += 0x0C; //Strm.ReadJ3DSubVersion(); //This is not used the same way the other formats are
Expand Down Expand Up @@ -102,13 +102,14 @@ public void Save(Stream Strm)
float rotationScale = (float)(POW) * (180.0f / 32768.0f);

long Start = Strm.Position;
Strm.WriteString(MAGIC, Encoding.ASCII, null);
Strm.WriteUInt32(0x4A334431); // J3D1
Strm.WriteUInt32(MAGIC); // bck1
Strm.WritePlaceholder(4); //FileSize
Strm.Write(new byte[4] { 0x00, 0x00, 0x00, 0x01 }, 0, 4); //Chunk Count
Strm.WriteUInt32(1); // ChunkCount
Strm.Write(CollectionUtil.InitilizeArray((byte)0xFF, 0x10));

long ChunkStart = Strm.Position;
Strm.WriteString(CHUNKMAGIC, Encoding.ASCII, null);
Strm.WriteUInt32(CHUNKMAGIC); // ANK1
Strm.WritePlaceholder(4); //ChunkSize
Strm.WriteByte((byte)Loop);
Strm.WriteByte((byte)RotationMultiplier);
Expand Down
13 changes: 7 additions & 6 deletions Hack.io.BPK/BPK.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ namespace Hack.io.BPK;
public class BPK : J3DAnimationBase<Animation>, ILoadSaveFile
{
/// <inheritdoc cref="Interface.DocGen.DOC_MAGIC"/>
public const string MAGIC = "J3D1bpk1";
public const uint MAGIC = 0x62706B31;
/// <inheritdoc cref="J3D.DocGen.COMMON_CHUNKMAGIC"/>
public const string CHUNKMAGIC = "PAK1";
public const uint CHUNKMAGIC = 0x50414B31;

/// <inheritdoc/>
public void Load(Stream Strm)
{
FileUtil.ExceptionOnBadMagic(Strm, MAGIC);
FileUtil.ExceptionOnBadJ3DMagic(Strm, MAGIC);
uint FileSize = Strm.ReadUInt32(),
ChunkCount = Strm.ReadUInt32();
Strm.ReadJ3DSubVersion();
Expand Down Expand Up @@ -79,13 +79,14 @@ public void Load(Stream Strm)
public void Save(Stream Strm)
{
long Start = Strm.Position;
Strm.WriteString(MAGIC, Encoding.ASCII, null);
Strm.WriteUInt32(0x4A334431); // J3D1
Strm.WriteUInt32(MAGIC);
Strm.WritePlaceholder(4); //FileSize
Strm.Write(new byte[4] { 0x00, 0x00, 0x00, 0x01 }, 0, 4); //Chunk Count
Strm.WriteUInt32(1); // ChunkCount
Strm.WriteJ3DSubVersion();

long ChunkStart = Strm.Position;
Strm.WriteString(CHUNKMAGIC, Encoding.ASCII, null);
Strm.WriteUInt32(CHUNKMAGIC);
Strm.WritePlaceholder(4); //ChunkSize
Strm.WriteByte((byte)Loop);
Strm.PadTo(0x04, 0xFF); //Padding
Expand Down
15 changes: 8 additions & 7 deletions Hack.io.BRK/BRK.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ namespace Hack.io.BRK;
public class BRK : J3DAnimationBase<Animation>, ILoadSaveFile
{
/// <inheritdoc cref="Interface.DocGen.DOC_MAGIC"/>
public const string MAGIC = "J3D1brk1";
public const uint MAGIC = 0x62726B31;
/// <inheritdoc cref="J3D.DocGen.COMMON_CHUNKMAGIC"/>
public const string CHUNKMAGIC = "TRK1";
public const uint CHUNKMAGIC = 0x54524B31;

/// <inheritdoc/>
public void Load(Stream Strm)
{
FileUtil.ExceptionOnBadMagic(Strm, MAGIC);
FileUtil.ExceptionOnBadJ3DMagic(Strm, MAGIC);
uint FileSize = Strm.ReadUInt32(),
ChunkCount = Strm.ReadUInt32();
Strm.ReadJ3DSubVersion();
Expand Down Expand Up @@ -150,13 +150,14 @@ public void Save(Stream Strm)
List<Animation> Constants = new(this.Where(x => x.RegisterType == AnimationType.CONSTANT));

long Start = Strm.Position;
Strm.WriteString(MAGIC, Encoding.ASCII, null);
Strm.WriteUInt32(0x4A334431); // J3D1
Strm.WriteUInt32(MAGIC);
Strm.WritePlaceholder(4); //FileSize
Strm.Write([0x00, 0x00, 0x00, 0x01], 0, 4); //Chunk Count
Strm.WriteUInt32(1);
Strm.WriteJ3DSubVersion();

long ChunkStart = Strm.Position;
Strm.WriteString(CHUNKMAGIC, Encoding.ASCII, null);
Strm.WriteUInt32(CHUNKMAGIC);
Strm.WritePlaceholder(4); //ChunkSize
Strm.WriteByte((byte)Loop);
Strm.WriteByte(0xFF); //Padding
Expand Down Expand Up @@ -268,7 +269,7 @@ public void Save(Stream Strm)
Strm.WriteUInt32((uint)(FileLength - Start));

Strm.Position = ChunkStart + 0x04;
Strm.WriteUInt32((uint)(FileLength - (ChunkStart - Start)));
Strm.WriteUInt32((uint)StreamUtil.ApplyEndian(FileLength - (ChunkStart - Start)));

Strm.Position = ChunkStart + 0x10;
Strm.WriteUInt16((ushort)RegisterRedTable.Count);
Expand Down
13 changes: 7 additions & 6 deletions Hack.io.BTK/BTK.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ namespace Hack.io.BTK;
public class BTK : J3DAnimationBase<Animation>, ILoadSaveFile
{
/// <inheritdoc cref="Interface.DocGen.DOC_MAGIC"/>
public const string MAGIC = "J3D1btk1";
public const uint MAGIC = 0x62746B31;
/// <inheritdoc cref="J3D.DocGen.COMMON_CHUNKMAGIC"/>
public const string CHUNKMAGIC = "TTK1";
public const uint CHUNKMAGIC = 0x54544B31;

/// <summary>
/// If true, uses Maya math instead of normal J3D Math
Expand All @@ -30,7 +30,7 @@ public class BTK : J3DAnimationBase<Animation>, ILoadSaveFile
/// <inheritdoc/>
public void Load(Stream Strm)
{
FileUtil.ExceptionOnBadMagic(Strm, MAGIC);
FileUtil.ExceptionOnBadJ3DMagic(Strm, MAGIC);
uint FileSize = Strm.ReadUInt32(),
ChunkCount = Strm.ReadUInt32();
Strm.ReadJ3DSubVersion();
Expand Down Expand Up @@ -107,13 +107,14 @@ public void Save(Stream Strm)
float rotationScale = (float)(Math.Pow(2, RotationMultiplier) / 0x7FFF);

long Start = Strm.Position;
Strm.WriteString(MAGIC, Encoding.ASCII, null);
Strm.WriteUInt32(0x4A334431); // J3D1
Strm.WriteUInt32(MAGIC);
Strm.WritePlaceholder(4); //FileSize
Strm.Write(new byte[4] { 0x00, 0x00, 0x00, 0x01 }, 0, 4); //Chunk Count
Strm.WriteUInt32(1); // ChunkCount
Strm.WriteJ3DSubVersion();

long ChunkStart = Strm.Position;
Strm.WriteString(CHUNKMAGIC, Encoding.ASCII, null);
Strm.WriteUInt32(CHUNKMAGIC);
Strm.WritePlaceholder(4); //ChunkSize
Strm.WriteByte((byte)Loop);
Strm.WriteByte((byte)RotationMultiplier);
Expand Down
13 changes: 7 additions & 6 deletions Hack.io.BTP/BTP.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ namespace Hack.io.BTP;
public class BTP : J3DAnimationBase<Animation>, ILoadSaveFile
{
/// <inheritdoc cref="Interface.DocGen.DOC_MAGIC"/>
public const string MAGIC = "J3D1btp1";
public const uint MAGIC = 0x62747031;
/// <inheritdoc cref="J3D.DocGen.COMMON_CHUNKMAGIC"/>
public const string CHUNKMAGIC = "TPT1";
public const uint CHUNKMAGIC = 0x54505431;

public void Load(Stream Strm)
{
FileUtil.ExceptionOnBadMagic(Strm, MAGIC);
FileUtil.ExceptionOnBadJ3DMagic(Strm, MAGIC);
uint FileSize = Strm.ReadUInt32(),
ChunkCount = Strm.ReadUInt32();
Strm.Position += 0x10; //Strm.ReadJ3DSubVersion();
Expand Down Expand Up @@ -62,13 +62,14 @@ public void Load(Stream Strm)
public void Save(Stream Strm)
{
long Start = Strm.Position;
Strm.WriteString(MAGIC, Encoding.ASCII, null);
Strm.WriteUInt32(0x4A334431); // J3D1
Strm.WriteUInt32(MAGIC);
Strm.WritePlaceholder(4); //FileSize
Strm.Write(new byte[4] { 0x00, 0x00, 0x00, 0x01 }, 0, 4); //Chunk Count
Strm.WriteUInt32(1); // ChunkCount
Strm.Write(CollectionUtil.InitilizeArray((byte)0xFF, 0x10));

long ChunkStart = Strm.Position;
Strm.WriteString(CHUNKMAGIC, Encoding.ASCII, null);
Strm.WriteUInt32(CHUNKMAGIC);
Strm.WritePlaceholder(4); //ChunkSize
Strm.WriteByte((byte)Loop);
Strm.WriteByte(0xFF);
Expand Down
13 changes: 7 additions & 6 deletions Hack.io.BVA/BVA.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ namespace Hack.io.BVA;
public class BVA : J3DAnimationBase<Animation>, ILoadSaveFile
{
/// <inheritdoc cref="Interface.DocGen.DOC_MAGIC"/>
public const string MAGIC = "J3D1bva1";
public const uint MAGIC = 0x62766131;
/// <inheritdoc cref="J3D.DocGen.COMMON_CHUNKMAGIC"/>
public const string CHUNKMAGIC = "VAF1";
public const uint CHUNKMAGIC = 0x56414631;

public void Load(Stream Strm)
{
FileUtil.ExceptionOnBadMagic(Strm, MAGIC);
FileUtil.ExceptionOnBadJ3DMagic(Strm, MAGIC);
uint FileSize = Strm.ReadUInt32(),
ChunkCount = Strm.ReadUInt32();
Strm.Position += 0x10; //Strm.ReadJ3DSubVersion();
Expand Down Expand Up @@ -62,13 +62,14 @@ public void Load(Stream Strm)
public void Save(Stream Strm)
{
long Start = Strm.Position;
Strm.WriteString(MAGIC, Encoding.ASCII, null);
Strm.WriteUInt32(0x4A334431); // J3D1
Strm.WriteUInt32(MAGIC);
Strm.WritePlaceholder(4); //FileSize
Strm.Write(new byte[4] { 0x00, 0x00, 0x00, 0x01 }, 0, 4); //Chunk Count
Strm.WriteUInt32(1); //ChunkCount
Strm.Write(CollectionUtil.InitilizeArray((byte)0xFF, 0x10));

long ChunkStart = Strm.Position;
Strm.WriteString(CHUNKMAGIC, Encoding.ASCII, null);
Strm.WriteUInt32(CHUNKMAGIC);
Strm.WritePlaceholder(4); //ChunkSize
Strm.WriteByte((byte)Loop);
Strm.WriteByte(0xFF);
Expand Down
8 changes: 4 additions & 4 deletions Hack.io.CANM/CANM.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,10 @@ public void Save(Stream Strm)
//long Start = Strm.Position;
Strm.WriteString(MAGIC, Encoding.ASCII, null);
Strm.WriteString(IsFullFrames ? FRAMETYPE_CANM : FRAMETYPE_CKAN, Encoding.ASCII, null);
Strm.WriteInt32(Unknown1);
Strm.WriteInt32(Unknown2);
Strm.WriteInt32(Unknown3);
Strm.WriteInt32(Unknown4);
Strm.WriteInt32((int)StreamUtil.ApplyEndian(Unknown1));
Strm.WriteInt32((int)StreamUtil.ApplyEndian(Unknown2));
Strm.WriteInt32((int)StreamUtil.ApplyEndian(Unknown3));
Strm.WriteInt32((int)StreamUtil.ApplyEndian(Unknown4));
Strm.WriteInt32(Length);
Strm.WriteInt32(IsFullFrames ? 0x40 : 0x60);

Expand Down
23 changes: 23 additions & 0 deletions Hack.io.KCL/Hack.io.KCL.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Title>Hack.io.KCL</Title>
<Version>2.0.0.0</Version>
<Authors>SuperHackio</Authors>
<Company>Super Hackio Incorporated</Company>
<Description>IO Library for KCollision (.kcl)</Description>
<Copyright>©Super Hackio Incorporated 2023-2025</Copyright>
<PackageProjectUrl>https://github.com/SuperHackio/Hack.io</PackageProjectUrl>
<RepositoryUrl>https://github.com/SuperHackio/Hack.io</RepositoryUrl>
<PackageReleaseNotes>First Release</PackageReleaseNotes>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\Hack.io\Hack.io.csproj" />
<ProjectReference Include="..\Hack.io.BCSV\Hack.io.BCSV.csproj" />
</ItemGroup>

</Project>
Loading