2022-10-09 05:13:17 +00:00
|
|
|
#ifndef _CPASANIMSTATE
|
|
|
|
#define _CPASANIMSTATE
|
2022-08-14 18:38:41 +00:00
|
|
|
|
|
|
|
#include "types.h"
|
|
|
|
|
2022-10-24 23:29:11 +00:00
|
|
|
#include "Kyoto/Animation/CharacterCommon.hpp"
|
2023-01-12 02:20:23 +00:00
|
|
|
#include "Kyoto/Animation/CPASAnimParm.hpp"
|
2022-10-24 23:29:11 +00:00
|
|
|
|
2022-10-06 21:07:41 +00:00
|
|
|
#include "rstl/reserved_vector.hpp"
|
2022-10-09 05:13:17 +00:00
|
|
|
#include "rstl/vector.hpp"
|
2022-08-14 18:38:41 +00:00
|
|
|
|
|
|
|
class CPASParmInfo {
|
|
|
|
public:
|
|
|
|
enum EWeightFunction {
|
|
|
|
kWF_ExactMatch,
|
|
|
|
kWF_PercentError,
|
|
|
|
kWF_AngularPercent,
|
|
|
|
kWF_NoWeight,
|
|
|
|
};
|
|
|
|
|
|
|
|
private:
|
|
|
|
CPASAnimParm::EParmType x0_type;
|
|
|
|
EWeightFunction x4_weightFunction;
|
|
|
|
float x8_weight;
|
|
|
|
CPASAnimParm::UParmValue xc_min;
|
|
|
|
CPASAnimParm::UParmValue x10_max;
|
|
|
|
};
|
|
|
|
|
|
|
|
class CPASAnimInfo {
|
|
|
|
private:
|
2022-09-05 04:01:13 +00:00
|
|
|
uint x0_id;
|
2022-08-14 18:38:41 +00:00
|
|
|
rstl::reserved_vector< CPASAnimParm::UParmValue, 8 > x4_parms;
|
|
|
|
};
|
|
|
|
|
|
|
|
class CPASAnimState {
|
2022-10-08 22:03:50 +00:00
|
|
|
public:
|
|
|
|
CPASAnimParm GetAnimParmData(int, unsigned int) const;
|
2022-10-28 21:42:35 +00:00
|
|
|
|
2022-10-25 15:43:42 +00:00
|
|
|
pas::EAnimationState GetStateId() const { return x0_id; }
|
2022-11-23 21:25:35 +00:00
|
|
|
bool HasAnims() const { return static_cast<uint>(x14_anims.size()) != 0; }
|
2022-10-09 05:13:17 +00:00
|
|
|
|
2022-08-14 18:38:41 +00:00
|
|
|
private:
|
|
|
|
pas::EAnimationState x0_id;
|
|
|
|
rstl::vector< CPASParmInfo > x4_parms;
|
|
|
|
rstl::vector< CPASAnimInfo > x14_anims;
|
2022-09-05 04:01:13 +00:00
|
|
|
rstl::vector< int > x24_selectionCache;
|
2022-08-14 18:38:41 +00:00
|
|
|
};
|
|
|
|
CHECK_SIZEOF(CPASAnimState, 0x34)
|
|
|
|
|
2022-10-09 05:13:17 +00:00
|
|
|
#endif // _CPASANIMSTATE
|