2020-01-15 12:07:48 +00:00
|
|
|
#include "Runtime/Character/CAnimationDatabaseGame.hpp"
|
|
|
|
|
|
|
|
#include "Runtime/Character/CAnimation.hpp"
|
|
|
|
#include "Runtime/Character/CPrimitive.hpp"
|
|
|
|
#include "Runtime/Character/IMetaAnim.hpp"
|
2016-04-13 06:07:23 +00:00
|
|
|
|
2021-04-10 08:42:06 +00:00
|
|
|
namespace metaforce {
|
2016-04-13 06:07:23 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
CAnimationDatabaseGame::CAnimationDatabaseGame(const std::vector<CAnimation>& anims) {
|
|
|
|
x10_anims.reserve(anims.size());
|
|
|
|
for (const CAnimation& anim : anims)
|
|
|
|
x10_anims.emplace_back(anim.GetMetaAnim());
|
2016-04-13 06:07:23 +00:00
|
|
|
}
|
|
|
|
|
2018-12-15 06:29:41 +00:00
|
|
|
const std::shared_ptr<IMetaAnim>& CAnimationDatabaseGame::GetMetaAnim(s32 idx) const { return x10_anims[idx]; }
|
2016-04-13 06:07:23 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
u32 CAnimationDatabaseGame::GetNumMetaAnims() const { return x10_anims.size(); }
|
|
|
|
|
2018-12-15 06:29:41 +00:00
|
|
|
const char* CAnimationDatabaseGame::GetMetaAnimName(s32 idx) const {
|
2018-12-08 05:30:43 +00:00
|
|
|
return "Meta-animation name unavailable in Release mode.";
|
2016-04-13 06:07:23 +00:00
|
|
|
}
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
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);
|
2016-04-13 06:07:23 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void CAnimationDatabaseGame::GetUniquePrimitivesFromMetaAnim(std::set<CPrimitive>& primsOut,
|
2018-12-08 05:30:43 +00:00
|
|
|
std::string_view name) const {
|
|
|
|
// Empty
|
2018-01-30 01:04:01 +00:00
|
|
|
}
|
2016-04-13 06:07:23 +00:00
|
|
|
|
2021-04-10 08:42:06 +00:00
|
|
|
} // namespace metaforce
|