mirror of https://github.com/PrimeDecomp/prime.git
48 lines
1.0 KiB
C++
48 lines
1.0 KiB
C++
|
#ifndef _CGUNCONTROLLER_HPP
|
||
|
#define _CGUNCONTROLLER_HPP
|
||
|
|
||
|
#include "types.h"
|
||
|
|
||
|
class CModelData;
|
||
|
|
||
|
enum EGunState {
|
||
|
kGS_Inactive,
|
||
|
kGS_Default,
|
||
|
kGS_FreeLook,
|
||
|
kGS_ComboFire,
|
||
|
kGS_Idle,
|
||
|
kGS_Fidget,
|
||
|
kGS_Strike,
|
||
|
kGS_BigStrike
|
||
|
};
|
||
|
|
||
|
class CStateManager;
|
||
|
|
||
|
class CGunController {
|
||
|
CModelData& x0_modelData;
|
||
|
// CGSFreeLook x4_freeLook;
|
||
|
// CGSComboFire x1c_comboFire;
|
||
|
// CGSFidget x30_fidget;
|
||
|
u8 x4_pad[0x4C];
|
||
|
EGunState x50_gunState;
|
||
|
int x54_curAnimId;
|
||
|
bool x58_24_animDone : 1;
|
||
|
bool x58_25_enteredComboFire : 1;
|
||
|
|
||
|
public:
|
||
|
explicit CGunController(CModelData& modelData);
|
||
|
|
||
|
void EnterFreeLook(CStateManager&, int, int);
|
||
|
void EnterComboFire(CStateManager&, int);
|
||
|
void EnterFidget(CStateManager&, int, int, int);
|
||
|
void EnterStruck(CStateManager&, float);
|
||
|
void LoadFidgetAnimAsync(CStateManager&, int, int, int);
|
||
|
bool Update(float, CStateManager&);
|
||
|
void EnterIdle(CStateManager&);
|
||
|
void ReturnToDefault(CStateManager&, float);
|
||
|
void Reset();
|
||
|
void ReturnToBasePosition(CStateManager&);
|
||
|
};
|
||
|
|
||
|
#endif // _CGUNCONTROLLER_HPP
|