mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 01:07:43 +00:00
Several initial character classes
This commit is contained in:
86
Runtime/Character/CPASAnimParm.hpp
Normal file
86
Runtime/Character/CPASAnimParm.hpp
Normal file
@@ -0,0 +1,86 @@
|
||||
#ifndef __PSHAG_CPASANIMPARM_HPP__
|
||||
#define __PSHAG_CPASANIMPARM_HPP__
|
||||
|
||||
#include "RetroTypes.hpp"
|
||||
|
||||
namespace urde
|
||||
{
|
||||
|
||||
class CPASAnimParm
|
||||
{
|
||||
public:
|
||||
enum class EParmType
|
||||
{
|
||||
None = -1,
|
||||
Int32 = 0,
|
||||
UInt32 = 1,
|
||||
Float = 2,
|
||||
Bool = 3,
|
||||
Enum = 4
|
||||
};
|
||||
union UParmValue
|
||||
{
|
||||
s32 m_int;
|
||||
u32 m_uint;
|
||||
float m_float;
|
||||
bool m_bool;
|
||||
};
|
||||
|
||||
private:
|
||||
UParmValue x0_value;
|
||||
EParmType x4_type;
|
||||
public:
|
||||
CPASAnimParm(UParmValue val, EParmType tp) : x4_type(tp), x0_value(val) {}
|
||||
|
||||
s32 GetEnumValue() const {return x0_value.m_int;}
|
||||
bool GetBoolValue() const {return x0_value.m_bool;}
|
||||
float GetReal32Value() const {return x0_value.m_float;}
|
||||
u32 GetUint32Value() const {return x0_value.m_uint;}
|
||||
s32 GetInt32Value() const {return x0_value.m_int;}
|
||||
|
||||
static CPASAnimParm FromEnum(s32 val)
|
||||
{
|
||||
UParmValue valin;
|
||||
valin.m_int = val;
|
||||
return CPASAnimParm(valin, EParmType::Enum);
|
||||
}
|
||||
|
||||
static CPASAnimParm FromBool(bool val)
|
||||
{
|
||||
UParmValue valin;
|
||||
valin.m_bool = val;
|
||||
return CPASAnimParm(valin, EParmType::Bool);
|
||||
}
|
||||
|
||||
static CPASAnimParm FromReal32(float val)
|
||||
{
|
||||
UParmValue valin;
|
||||
valin.m_float = val;
|
||||
return CPASAnimParm(valin, EParmType::Float);
|
||||
}
|
||||
|
||||
static CPASAnimParm FromUint32(u32 val)
|
||||
{
|
||||
UParmValue valin;
|
||||
valin.m_uint = val;
|
||||
return CPASAnimParm(valin, EParmType::UInt32);
|
||||
}
|
||||
|
||||
static CPASAnimParm FromInt32(s32 val)
|
||||
{
|
||||
UParmValue valin;
|
||||
valin.m_int = val;
|
||||
return CPASAnimParm(valin, EParmType::Int32);
|
||||
}
|
||||
|
||||
static CPASAnimParm NoParameter()
|
||||
{
|
||||
UParmValue valin;
|
||||
valin.m_int = -1;
|
||||
return CPASAnimParm(valin, EParmType::None);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // __PSHAG_CPASANIMPARM_HPP__
|
||||
Reference in New Issue
Block a user