2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 21:07:42 +00:00

Massive template-based DNA refactor

This commit is contained in:
Jack Andersen
2018-02-21 21:24:51 -10:00
parent b405f33ded
commit e4ff23c279
265 changed files with 3993 additions and 5773 deletions

View File

@@ -6,7 +6,8 @@
namespace DataSpec::DNAMP1
{
void PAK::read(athena::io::IStreamReader& reader)
template <>
void PAK::Enumerate<BigDNA::Read>(typename Read::StreamT& reader)
{
atUint32 version = reader.readUint32Big();
if (version != 0x00030005)
@@ -48,7 +49,8 @@ void PAK::read(athena::io::IStreamReader& reader)
m_nameMap[entry.name] = entry.id;
}
void PAK::write(athena::io::IStreamWriter& writer) const
template <>
void PAK::Enumerate<BigDNA::Write>(typename Write::StreamT& writer)
{
writer.writeUint32Big(0x00030005);
writer.writeUint32Big(0);
@@ -71,16 +73,15 @@ void PAK::write(athena::io::IStreamWriter& writer) const
}
}
size_t PAK::binarySize(size_t __isz) const
template <>
void PAK::Enumerate<BigDNA::BinarySize>(typename BinarySize::StreamT& s)
{
__isz += 12;
s += 12;
for (const NameEntry& entry : m_nameEntries)
__isz += 12 + entry.name.size();
s += 12 + entry.name.size();
__isz += m_entries.size() * 20 + 4;
return __isz;
s += m_entries.size() * 20 + 4;
}
std::unique_ptr<atUint8[]>