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

Character factory support classes

This commit is contained in:
Jack Andersen
2016-04-12 20:07:23 -10:00
parent 1d2c2bf31f
commit 5de5c3d85f
186 changed files with 898 additions and 553 deletions

View File

@@ -0,0 +1,45 @@
#include "CAnimationDatabaseGame.hpp"
#include "IMetaAnim.hpp"
#include "CPrimitive.hpp"
#include "CAnimation.hpp"
namespace urde
{
CAnimationDatabaseGame::CAnimationDatabaseGame(const std::vector<CAnimation>& anims)
{
x10_anims.reserve(anims.size());
for (const CAnimation& anim : anims)
x10_anims.emplace_back(anim.GetMetaAnim());
}
const std::shared_ptr<IMetaAnim>& CAnimationDatabaseGame::GetMetaAnim(u32 idx) const
{
return x10_anims[idx];
}
u32 CAnimationDatabaseGame::GetNumMetaAnims() const
{
return x10_anims.size();
}
const char* CAnimationDatabaseGame::GetMetaAnimName(u32 idx) const
{
return "Meta-animation name unavailable in Release mode.";
}
void CAnimationDatabaseGame::GetAllUniquePrimitives(std::vector<CPrimitive>& primsOut) const
{
std::set<CPrimitive> primitives;
for (const std::shared_ptr<IMetaAnim>& anim : x10_anims)
anim->GetUniquePrimitives(primitives);
primsOut.reserve(primitives.size());
for (const CPrimitive& prim : primitives)
primsOut.push_back(prim);
}
void CAnimationDatabaseGame::GetUniquePrimitivesFromMetaAnim(std::set<CPrimitive>& primsOut,
const std::string& name) const
{}
}