metaforce/Runtime/Character/CAnimTreeDoubleChild.cpp

118 lines
3.6 KiB
C++
Raw Normal View History

2016-09-04 02:27:35 +00:00
#include "CAnimTreeDoubleChild.hpp"
namespace urde
{
2016-09-10 04:50:00 +00:00
CAnimTreeDoubleChild::CAnimTreeDoubleChild(const std::weak_ptr<CAnimTreeNode>& a,
const std::weak_ptr<CAnimTreeNode>& b,
2017-11-13 06:19:18 +00:00
std::string_view name)
2016-09-10 04:50:00 +00:00
: CAnimTreeNode(name), x14_a(a.lock()), x18_b(b.lock())
2016-09-04 02:27:35 +00:00
{
}
SAdvancementResults CAnimTreeDoubleChild::VAdvanceView(const CCharAnimTime& a)
{
2016-09-11 01:25:59 +00:00
return {};
2016-09-04 02:27:35 +00:00
}
u32 CAnimTreeDoubleChild::VGetBoolPOIList(const CCharAnimTime& time, CBoolPOINode* listOut,
2016-09-11 18:40:33 +00:00
u32 capacity, u32 iterator, u32 unk) const
2016-09-04 02:27:35 +00:00
{
2016-09-11 18:40:33 +00:00
u32 newCapacity = x14_a->GetBoolPOIList(time, listOut, capacity, iterator, unk);
newCapacity += x18_b->GetBoolPOIList(time, listOut, capacity, newCapacity + iterator, unk);
if (newCapacity > capacity)
newCapacity = capacity;
std::sort(listOut, listOut + newCapacity, CPOINode::compare);
return newCapacity;
2016-09-04 02:27:35 +00:00
}
u32 CAnimTreeDoubleChild::VGetInt32POIList(const CCharAnimTime& time, CInt32POINode* listOut,
2016-09-11 18:40:33 +00:00
u32 capacity, u32 iterator, u32 unk) const
2016-09-04 02:27:35 +00:00
{
2016-09-11 18:40:33 +00:00
u32 newCapacity = x14_a->GetInt32POIList(time, listOut, capacity, iterator, unk);
newCapacity += x18_b->GetInt32POIList(time, listOut, capacity, newCapacity + iterator, unk);
if (newCapacity > capacity)
newCapacity = capacity;
std::sort(listOut, listOut + newCapacity, CPOINode::compare);
return newCapacity;
2016-09-04 02:27:35 +00:00
}
u32 CAnimTreeDoubleChild::VGetParticlePOIList(const CCharAnimTime& time, CParticlePOINode* listOut,
2016-09-11 18:40:33 +00:00
u32 capacity, u32 iterator, u32 unk) const
2016-09-04 02:27:35 +00:00
{
2016-09-11 18:40:33 +00:00
u32 newCapacity = x14_a->GetParticlePOIList(time, listOut, capacity, iterator, unk);
newCapacity += x18_b->GetParticlePOIList(time, listOut, capacity, newCapacity + iterator, unk);
if (newCapacity > capacity)
newCapacity = capacity;
std::sort(listOut, listOut + newCapacity, CPOINode::compare);
return newCapacity;
2016-09-04 02:27:35 +00:00
}
u32 CAnimTreeDoubleChild::VGetSoundPOIList(const CCharAnimTime& time, CSoundPOINode* listOut,
2016-09-11 18:40:33 +00:00
u32 capacity, u32 iterator, u32 unk) const
2016-09-04 02:27:35 +00:00
{
2016-09-11 18:40:33 +00:00
u32 newCapacity = x14_a->GetSoundPOIList(time, listOut, capacity, iterator, unk);
newCapacity += x18_b->GetSoundPOIList(time, listOut, capacity, newCapacity + iterator, unk);
if (newCapacity > capacity)
newCapacity = capacity;
std::sort(listOut, listOut + newCapacity, CPOINode::compare);
return newCapacity;
2016-09-04 02:27:35 +00:00
}
bool CAnimTreeDoubleChild::VGetBoolPOIState(const char* name) const
{
2016-09-11 18:40:33 +00:00
return x18_b->VGetBoolPOIState(name);
2016-09-04 02:27:35 +00:00
}
s32 CAnimTreeDoubleChild::VGetInt32POIState(const char* name) const
{
2016-09-11 18:40:33 +00:00
return x18_b->VGetBoolPOIState(name);
2016-09-04 02:27:35 +00:00
}
CParticleData::EParentedMode CAnimTreeDoubleChild::VGetParticlePOIState(const char* name) const
{
2016-09-11 18:40:33 +00:00
return x18_b->VGetParticlePOIState(name);
2016-09-04 02:27:35 +00:00
}
void CAnimTreeDoubleChild::VSetPhase(float)
{
}
SAdvancementResults CAnimTreeDoubleChild::VGetAdvancementResults(const CCharAnimTime& a, const CCharAnimTime& b) const
{
2016-09-11 01:25:59 +00:00
return {};
2016-09-04 02:27:35 +00:00
}
u32 CAnimTreeDoubleChild::Depth() const
{
2016-09-11 01:25:59 +00:00
return 0;
2016-09-04 02:27:35 +00:00
}
CAnimTreeEffectiveContribution CAnimTreeDoubleChild::VGetContributionOfHighestInfluence() const
{
2016-09-11 01:25:59 +00:00
return {0.f, "", CSteadyStateAnimInfo(), CCharAnimTime(), 0};
2016-09-04 02:27:35 +00:00
}
u32 CAnimTreeDoubleChild::VGetNumChildren() const
{
2016-09-11 01:25:59 +00:00
return 0;
2016-09-04 02:27:35 +00:00
}
std::shared_ptr<IAnimReader> CAnimTreeDoubleChild::VGetBestUnblendedChild() const
{
2016-09-11 01:25:59 +00:00
return {};
2016-09-04 02:27:35 +00:00
}
void CAnimTreeDoubleChild::VGetWeightedReaders(std::vector<std::pair<float, std::weak_ptr<IAnimReader>>>& out, float w) const
{
}
}