mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-05-14 22:31:20 +00:00
53 lines
1.1 KiB
C++
53 lines
1.1 KiB
C++
#ifndef __URDE_CFIDGET_HPP__
|
|
#define __URDE_CFIDGET_HPP__
|
|
|
|
#include "RetroTypes.hpp"
|
|
#include "CGunMotion.hpp"
|
|
|
|
namespace urde
|
|
{
|
|
class CStateManager;
|
|
|
|
class CFidget
|
|
{
|
|
public:
|
|
enum class EState
|
|
{
|
|
Zero,
|
|
One,
|
|
Two,
|
|
Three,
|
|
Four,
|
|
Five,
|
|
Six,
|
|
Seven
|
|
};
|
|
private:
|
|
EState x0_state = EState::Zero;
|
|
SamusGun::EFidgetType x4_type = SamusGun::EFidgetType::Invalid;
|
|
u32 x8_ = 0;
|
|
s32 xc_parm2 = -1;
|
|
u32 x10_ = 3;
|
|
float x14_ = 0.f;
|
|
float x18_ = 0.f;
|
|
float x1c_ = 0.f;
|
|
float x20_ = 0.f;
|
|
float x24_ = 0.f;
|
|
float x28_ = 0.f;
|
|
float x2c_ = 0.f;
|
|
float x30_ = 105.f;
|
|
bool x34_24_loading = false;
|
|
public:
|
|
EState GetState() const { return x0_state; }
|
|
SamusGun::EFidgetType GetType() const { return x4_type; }
|
|
s32 GetParm2() const { return xc_parm2; }
|
|
EState Update(int fire, bool bobbing, bool b1, float dt, CStateManager& mgr);
|
|
void ResetMinor();
|
|
void ResetAll();
|
|
void DoneLoading() { x34_24_loading = false; }
|
|
};
|
|
|
|
}
|
|
|
|
#endif // __URDE_CFIDGET_HPP__
|