mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 05:07:43 +00:00
ANIM fixes and explicit-endian refactor
This commit is contained in:
@@ -43,9 +43,9 @@ struct ANIM : BigDNA
|
||||
Value<atUint32> unk0;
|
||||
Value<float> interval;
|
||||
Value<atUint32> unk1;
|
||||
Value<atUint32> boneSlotCount;
|
||||
Value<atUint32> unk2;
|
||||
Value<atUint32> keyCount;
|
||||
Value<atUint32> unk2;
|
||||
Value<atUint32> boneSlotCount;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -92,43 +92,43 @@ struct ANIM : BigDNA
|
||||
|
||||
void read(Athena::io::IStreamReader& reader)
|
||||
{
|
||||
id = reader.readUint32();
|
||||
keyCount1 = reader.readUint16();
|
||||
initRX = reader.readUint16();
|
||||
id = reader.readUint32Big();
|
||||
keyCount1 = reader.readUint16Big();
|
||||
initRX = reader.readUint16Big();
|
||||
qRX = reader.readUByte();
|
||||
initRY = reader.readUint16();
|
||||
initRY = reader.readUint16Big();
|
||||
qRY = reader.readUByte();
|
||||
initRZ = reader.readUint16();
|
||||
initRZ = reader.readUint16Big();
|
||||
qRZ = reader.readUByte();
|
||||
keyCount2 = reader.readUint16();
|
||||
keyCount2 = reader.readUint16Big();
|
||||
if (keyCount2)
|
||||
{
|
||||
initTX = reader.readUint16();
|
||||
initTX = reader.readUint16Big();
|
||||
qTX = reader.readUByte();
|
||||
initTY = reader.readUint16();
|
||||
initTY = reader.readUint16Big();
|
||||
qTY = reader.readUByte();
|
||||
initTZ = reader.readUint16();
|
||||
initTZ = reader.readUint16Big();
|
||||
qTZ = reader.readUByte();
|
||||
}
|
||||
}
|
||||
void write(Athena::io::IStreamWriter& writer) const
|
||||
{
|
||||
writer.writeUint32(id);
|
||||
writer.writeUint16(keyCount1);
|
||||
writer.writeUint16(initRX);
|
||||
writer.writeUint32Big(id);
|
||||
writer.writeUint16Big(keyCount1);
|
||||
writer.writeUint16Big(initRX);
|
||||
writer.writeUByte(qRX);
|
||||
writer.writeUint16(initRY);
|
||||
writer.writeUint16Big(initRY);
|
||||
writer.writeUByte(qRY);
|
||||
writer.writeUint16(initRZ);
|
||||
writer.writeUint16Big(initRZ);
|
||||
writer.writeUByte(qRZ);
|
||||
writer.writeUint16(keyCount2);
|
||||
writer.writeUint16Big(keyCount2);
|
||||
if (keyCount2)
|
||||
{
|
||||
writer.writeUint16(initTX);
|
||||
writer.writeUint16Big(initTX);
|
||||
writer.writeUByte(qTX);
|
||||
writer.writeUint16(initTY);
|
||||
writer.writeUint16Big(initTY);
|
||||
writer.writeUByte(qTY);
|
||||
writer.writeUint16(initTZ);
|
||||
writer.writeUint16Big(initTZ);
|
||||
writer.writeUByte(qTZ);
|
||||
}
|
||||
}
|
||||
@@ -138,8 +138,7 @@ struct ANIM : BigDNA
|
||||
std::unique_ptr<IANIM> m_anim;
|
||||
void read(Athena::io::IStreamReader& reader)
|
||||
{
|
||||
reader.setEndian(Athena::BigEndian);
|
||||
atUint32 version = reader.readUint32();
|
||||
atUint32 version = reader.readUint32Big();
|
||||
switch (version)
|
||||
{
|
||||
case 0:
|
||||
@@ -158,8 +157,7 @@ struct ANIM : BigDNA
|
||||
|
||||
void write(Athena::io::IStreamWriter& writer) const
|
||||
{
|
||||
writer.setEndian(Athena::BigEndian);
|
||||
writer.writeUint32(m_anim->m_version);
|
||||
writer.writeUint32Big(m_anim->m_version);
|
||||
m_anim->write(writer);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user