2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 09:07:43 +00:00

Work on CGameProjectile

This commit is contained in:
Jack Andersen
2018-02-08 21:12:26 -10:00
parent ae6797f24b
commit 083571e693
22 changed files with 446 additions and 43 deletions

View File

@@ -19,8 +19,8 @@ class CProjectileWeapon
static u16 g_GlobalSeed;
TLockedToken<CWeaponDescription> x4_weaponDesc;
CRandom16 x10_random;
zeus::CTransform x14_;
zeus::CTransform x44_;
zeus::CTransform x14_localToWorldXf;
zeus::CTransform x44_localXf;
zeus::CVector3f x74_ = zeus::CVector3f::skZero;
zeus::CVector3f x80_ = zeus::CVector3f::skZero;
zeus::CVector3f x8c_ = zeus::CVector3f::skZero;
@@ -31,7 +31,7 @@ class CProjectileWeapon
zeus::CColor xc8_ = zeus::CColor::skWhite;
double xd0_ = 0.0;
double xd8_ = 0.0;
float xe0_;
float xe0_maxTurnRate;
u32 xe4_;
u32 xe8_lifetime = 0x7FFFFF;
u32 xec_ = 0;
@@ -50,7 +50,7 @@ class CProjectileWeapon
{
struct
{
bool x124_24_ : 1;
bool x124_24_active : 1;
bool x124_25_ : 1;
bool x124_26_ap11 : 1;
bool x124_27_ap21 : 1;
@@ -62,12 +62,20 @@ class CProjectileWeapon
};
public:
CProjectileWeapon(const TToken<CWeaponDescription>& wDesc, const zeus::CVector3f&, const zeus::CTransform&,
const zeus::CVector3f&, s32);
void GetTransform();
void Update(float);
CProjectileWeapon(const TToken<CWeaponDescription>& wDesc, const zeus::CVector3f& pos,
const zeus::CTransform& orient, const zeus::CVector3f& scale, s32);
virtual ~CProjectileWeapon() = default;
bool IsProjectileActive() const { return x124_24_active; }
virtual zeus::CTransform GetTransform() const;
virtual zeus::CVector3f GetTranslation() const;
float GetMaxTurnRate() const { return xe0_maxTurnRate; }
TLockedToken<CWeaponDescription> GetWeaponDescription() const { return x4_weaponDesc; }
virtual void RenderParticles() const;
virtual void Update(float);
void UpdateParticleFx();
void UpdateChildParticleSystems(float);
void SetWorldSpaceOrientation(const zeus::CTransform& xf);
void SetRelativeOrientation(const zeus::CTransform& xf) { x44_localXf = xf; }
static void SetGlobalSeed(u16 seed) { g_GlobalSeed = seed; }
};
}