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:
45
Runtime/Character/CAnimationDatabaseGame.cpp
Normal file
45
Runtime/Character/CAnimationDatabaseGame.cpp
Normal 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
|
||||
{}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user