2020-01-15 12:07:48 +00:00
|
|
|
#include "Runtime/Character/CAnimationSet.hpp"
|
|
|
|
|
|
|
|
#include "Runtime/Character/CMetaTransFactory.hpp"
|
2016-04-10 21:22:59 +00:00
|
|
|
|
2021-04-10 08:42:06 +00:00
|
|
|
namespace metaforce {
|
2018-12-08 05:30:43 +00:00
|
|
|
|
|
|
|
CAnimationSet::CAnimationSet(CInputStream& in) : x0_tableCount(in.readUint16Big()) {
|
|
|
|
u32 animationCount = in.readUint32Big();
|
|
|
|
x4_animations.reserve(animationCount);
|
|
|
|
for (u32 i = 0; i < animationCount; ++i)
|
|
|
|
x4_animations.emplace_back(in);
|
|
|
|
|
|
|
|
u32 transitionCount = in.readUint32Big();
|
|
|
|
x14_transitions.reserve(transitionCount);
|
|
|
|
for (u32 i = 0; i < transitionCount; ++i)
|
|
|
|
x14_transitions.emplace_back(in);
|
|
|
|
|
|
|
|
x24_defaultTransition = CMetaTransFactory::CreateMetaTrans(in);
|
|
|
|
|
|
|
|
if (x0_tableCount > 1) {
|
|
|
|
u32 additiveAnimCount = in.readUint32Big();
|
|
|
|
x28_additiveInfo.reserve(additiveAnimCount);
|
|
|
|
for (u32 i = 0; i < additiveAnimCount; ++i) {
|
|
|
|
u32 id = in.readUint32Big();
|
|
|
|
x28_additiveInfo.emplace_back(id, in);
|
2016-04-10 21:22:59 +00:00
|
|
|
}
|
2018-12-08 05:30:43 +00:00
|
|
|
x38_defaultAdditiveInfo.read(in);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (x0_tableCount > 2) {
|
|
|
|
u32 halfTransitionCount = in.readUint32Big();
|
|
|
|
x40_halfTransitions.reserve(halfTransitionCount);
|
|
|
|
for (u32 i = 0; i < halfTransitionCount; ++i)
|
|
|
|
x40_halfTransitions.emplace_back(in);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (x0_tableCount > 3) {
|
|
|
|
u32 animResourcesCount = in.readUint32Big();
|
|
|
|
x50_animRes.reserve(animResourcesCount);
|
|
|
|
for (u32 i = 0; i < animResourcesCount; ++i) {
|
|
|
|
CAssetId anim = in.readUint32Big();
|
|
|
|
CAssetId evnt = in.readUint32Big();
|
|
|
|
x50_animRes.emplace_back(anim, evnt);
|
2016-04-10 21:22:59 +00:00
|
|
|
}
|
2018-12-08 05:30:43 +00:00
|
|
|
}
|
2016-04-10 21:22:59 +00:00
|
|
|
}
|
|
|
|
|
2021-04-10 08:42:06 +00:00
|
|
|
} // namespace metaforce
|