mirror of
https://github.com/PrimeDecomp/echoes.git
synced 2026-07-12 18:18:57 -07:00
Add CPlayerGun::Charging
This commit is contained in:
@@ -169,9 +169,9 @@ private:
|
||||
int x3d8_unk; // 0x3d8
|
||||
TUniqueId m_orbitNextTargetId; // 0x3dc
|
||||
float x3e0_unk; // 0x3e0
|
||||
rstl::vector< TUniqueId > m_nearbyOrbitObjects; // 0x3e4
|
||||
rstl::vector< TUniqueId > m_onScreenOrbitObjects; // 0x468
|
||||
rstl::vector< TUniqueId > m_offScreenOrbitObjects; // 0x4ec
|
||||
rstl::reserved_vector< TUniqueId, 64 > m_nearbyOrbitObjects; // 0x3e4
|
||||
rstl::reserved_vector< TUniqueId, 64 > m_onScreenOrbitObjects; // 0x468
|
||||
rstl::reserved_vector< TUniqueId, 64 > m_offScreenOrbitObjects; // 0x4ec
|
||||
bool m_orbitLockEstablished; // 0x570
|
||||
float m_orbitPreventionTimer; // 0x574
|
||||
bool m_sidewaysDashing; // 0x578
|
||||
@@ -233,11 +233,11 @@ private:
|
||||
short xeca_unk; // 0xeca
|
||||
CColor xecc_unk; // 0xecc
|
||||
int xed0_unk; // 0xed0
|
||||
UnkStructA* xed4_unk; // 0xed4
|
||||
UnkStructA* xed4_unk; // 0xed4
|
||||
void* xed8_unk; // 0xed8
|
||||
UnkStructB xedc_unk; // 0xedc
|
||||
int xf6c_unk; // 0xf6c
|
||||
UnkStructC* xf70_unk; // 0xf70
|
||||
UnkStructC* xf70_unk; // 0xf70
|
||||
TReservedAverage< float, 20 > m_moveSpeedAvg; // 0xf74
|
||||
float m_moveSpeed; // 0xfc8
|
||||
float m_flatMoveSpeed; // 0xfcc
|
||||
@@ -249,7 +249,9 @@ private:
|
||||
char m_pad_5[0x18]; // 0x12fc
|
||||
CPlayerState* m_playerState; // 0x1314
|
||||
CCameraManager* m_cameraManager; // 0x1318
|
||||
char m_pad_6[0x1A8]; // 0x1320
|
||||
};
|
||||
CHECK_SIZEOF(CPlayer, 0x14c8)
|
||||
// size: 0x14c8
|
||||
|
||||
#endif // _CPLAYER
|
||||
|
||||
@@ -3,13 +3,54 @@
|
||||
|
||||
#include "MetroidPrime//TGameTypes.hpp"
|
||||
|
||||
class CStateManager;
|
||||
class CPlayer;
|
||||
|
||||
enum EChargeState {
|
||||
kCS_Normal,
|
||||
kCS_Charged,
|
||||
};
|
||||
|
||||
class CPlayerGun {
|
||||
public:
|
||||
enum EChargePhase {
|
||||
kCP_NotCharging,
|
||||
kCP_Phase_1,
|
||||
kCP_Phase_2,
|
||||
kCP_Phase_3,
|
||||
kCP_AnimAndSfx,
|
||||
kCP_Phase_5,
|
||||
};
|
||||
|
||||
CPlayerGun(TUniqueId, int);
|
||||
~CPlayerGun();
|
||||
|
||||
CPlayer* GetPlayer(CStateManager& mgr) const;
|
||||
|
||||
void PlayAnim(CStateManager&, int animType, int loop);
|
||||
|
||||
bool IsOutOfAmmoToShoot(CStateManager&) const;
|
||||
void ResetCharge(CStateManager&, bool);
|
||||
void StopChargeSound(CStateManager&, bool);
|
||||
void EnableChargeFx(CStateManager&, bool);
|
||||
|
||||
|
||||
void Charging(CStateManager&, int);
|
||||
|
||||
private:
|
||||
char m_pad[0x814];
|
||||
char m_pad0[0x3a4]; // 0x000
|
||||
EChargeState m_chargeState; // 0x3a4
|
||||
char m_pad1[0x2EC]; // 0x3a8
|
||||
EChargePhase m_chargePhase; // 0x694
|
||||
char m_pad2[0xD8]; // 0x698
|
||||
int m_0x770;
|
||||
char m_pad3[0x9C]; // 0x774
|
||||
uint m_0x810_b0 : 1;
|
||||
uint m_0x810_b1 : 1;
|
||||
uint m_0x810_b2 : 1;
|
||||
uint m_0x810_b3 : 1;
|
||||
uint m_0x810_b4 : 1;
|
||||
uint m_0x810_b5 : 1;
|
||||
};
|
||||
CHECK_SIZEOF(CPlayerGun, 0x814)
|
||||
|
||||
|
||||
@@ -296,6 +296,7 @@ public:
|
||||
|
||||
void fn_80084B6C();
|
||||
void fn_80084928(const UnknownPlayerStateStruct&);
|
||||
float GetChargeBeamFactor() const { return chargeBeamFactor; }
|
||||
void IncrementChargeBeamFactor(float);
|
||||
void DecrementAmmoAndDisplayAlertIfOut(const CStateManager&, EItemType, int quantity);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user