2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 13:47:43 +00:00

Ensure *all* EVNT resources are extracted

This commit is contained in:
Jack Andersen
2018-05-27 15:54:55 -10:00
parent 7e45600bed
commit 2c151a0f3b
8 changed files with 84 additions and 41 deletions

View File

@@ -1053,6 +1053,28 @@ void ANCS::AnimationSet::Enumerate<BigDNA::WriteYaml>(athena::io::YAMLDocWriter&
}
}
void ANCS::AnimationSet::MetaAnimPrimitive::
gatherPrimitives(PAKRouter<PAKBridge>* pakRouter,
std::map<atUint32, DNAANCS::AnimationResInfo<UniqueID32>>& out)
{
if (!pakRouter)
{
out[animIdx] = {animName, animId, UniqueID32(), false};
return;
}
const nod::Node* node;
const PAK::Entry* entry = pakRouter->lookupEntry(animId, &node, true);
if (!entry)
{
out[animIdx] = {animName, animId, UniqueID32(), false};
return;
}
PAKEntryReadStream rs = entry->beginReadStream(*node);
out[animIdx] = {animName, animId, ANIM::GetEVNTId(rs), false};
}
const char* ANCS::AnimationSet::DNAType()
{
return "urde::DNAMP1::ANCS::AnimationSet";
@@ -1095,7 +1117,7 @@ bool ANCS::Extract(const SpecBase& dataSpec,
/* Extract EVNTs */
std::map<atUint32, DNAANCS::AnimationResInfo<UniqueID32>> animRes;
ancs.getAnimationResInfo(animRes);
ancs.getAnimationResInfo(&pakRouter, animRes);
for (const auto& res : animRes)
{
if (res.second.evntId)