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

Initial CFlameThrower imps

This commit is contained in:
2019-04-16 01:00:46 -07:00
parent 1f10769af3
commit 28071851ad
9 changed files with 87 additions and 15 deletions

View File

@@ -1,6 +1,7 @@
#pragma once
#include "Weapon/CGameProjectile.hpp"
#include "Particle/CFlameWarp.hpp"
namespace urde {
class CFlameInfo;
@@ -9,16 +10,29 @@ class CFlameThrower : public CGameProjectile {
static const zeus::CVector3f kLightOffset;
zeus::CTransform x2e8_;
zeus::CAABox x318_ = zeus::skNullBox;
float x32c_ = 0.f;
float x330_ = 0.f;
float x334_ = 0.f;
float x338_;
TToken<CGenDescription> x33c_flameDesc;
std::unique_ptr<CElementGen> x348_flameGen;
CFlameWarp x34c_;
u32 x3f0_;
CAssetId x3f4_;
s16 x3f8_;
CAssetId x3fc_;
union {
struct {
bool x400_25 : 1;
bool x400_24_ : 1;
bool x400_25_ : 1;
bool x400_26_ : 1;
bool x400_27_ : 1;
};
u32 _dummy = 0;
};
void CreateFlameParticles(CStateManager&);
public:
CFlameThrower(const TToken<CWeaponDescription>& wDesc, std::string_view name, EWeaponType wType,
const CFlameInfo& flameInfo, const zeus::CTransform& xf, EMaterialTypes matType,
@@ -26,9 +40,10 @@ public:
CAssetId w2, s16 sId, CAssetId w3);
void Accept(IVisitor& visitor);
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const;
void SetTransform(const zeus::CTransform& xf, float);
void Reset(CStateManager&, bool);
void Fire(const zeus::CTransform&, CStateManager&, bool);
bool GetX400_25() const { return x400_25; }
bool GetX400_25() const { return x400_25_; }
};
} // namespace urde