mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 05:47:42 +00:00
PASDatabase imps
Add SpecialFunction loader
This commit is contained in:
@@ -7,14 +7,44 @@
|
||||
namespace urde
|
||||
{
|
||||
|
||||
class CRandom16;
|
||||
class CPASAnimParmData;
|
||||
class CPASDatabase
|
||||
{
|
||||
std::vector<CPASAnimState> x0_states;
|
||||
u32 x10_defaultState;
|
||||
s32 x10_defaultState;
|
||||
void AddAnimState(CPASAnimState&& state);
|
||||
void SetDefaultState(u32 state) {x10_defaultState = state;}
|
||||
void SetDefaultState(s32 state) {x10_defaultState = state;}
|
||||
public:
|
||||
CPASDatabase(CInputStream& in);
|
||||
|
||||
void FindBestAnimation(const CPASAnimParmData&, int) const;
|
||||
void FindBestAnimation(const CPASAnimParmData&, CRandom16&, int) const;
|
||||
s32 GetDefaultState() const { return x10_defaultState; }
|
||||
s32 GetNumAnimStates() const { return x0_states.size(); }
|
||||
const CPASAnimState* GetAnimState(s32 id) const
|
||||
{
|
||||
for (const CPASAnimState& state : x0_states)
|
||||
if (id == state.GetStateId())
|
||||
return &state;
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
const CPASAnimState* GetAnimStateByIndex(s32 index) const
|
||||
{
|
||||
if (index < 0 || index >= x0_states.size())
|
||||
return nullptr;
|
||||
|
||||
return &x0_states.at(index);
|
||||
}
|
||||
|
||||
bool HasState(s32 id) const
|
||||
{
|
||||
for (const CPASAnimState& state : x0_states)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user