metaforce/Runtime/Weapon/CFlameThrower.hpp

35 lines
1.0 KiB
C++
Raw Normal View History

2018-10-07 03:42:33 +00:00
#pragma once
2017-05-09 13:27:07 +00:00
#include "Weapon/CGameProjectile.hpp"
2018-12-08 05:30:43 +00:00
namespace urde {
2017-05-09 13:27:07 +00:00
class CFlameInfo;
class CElementGen;
2018-12-08 05:30:43 +00:00
class CFlameThrower : public CGameProjectile {
static const zeus::CVector3f kLightOffset;
zeus::CTransform x2e8_;
zeus::CAABox x318_ = zeus::CAABox::skNullBox;
TToken<CGenDescription> x33c_flameDesc;
std::unique_ptr<CElementGen> x348_flameGen;
2018-12-08 05:30:43 +00:00
union {
struct {
bool x400_25 : 1;
};
2018-12-08 05:30:43 +00:00
u32 _dummy = 0;
};
2017-05-20 07:41:49 +00:00
2017-05-09 13:27:07 +00:00
public:
2018-12-08 05:30:43 +00:00
CFlameThrower(const TToken<CWeaponDescription>& wDesc, std::string_view name, EWeaponType wType,
const CFlameInfo& flameInfo, const zeus::CTransform& xf, EMaterialTypes matType,
const CDamageInfo& dInfo, TUniqueId uid, TAreaId aId, TUniqueId owner, EProjectileAttrib attribs,
u32 w2, s16 sId, u32 w3);
2017-05-09 13:27:07 +00:00
2018-12-08 05:30:43 +00:00
void Accept(IVisitor& visitor);
void SetTransform(const zeus::CTransform& xf);
void Reset(CStateManager&, bool);
void Fire(const zeus::CTransform&, CStateManager&, bool);
bool GetX400_25() const { return x400_25; }
2017-05-09 13:27:07 +00:00
};
2018-12-08 05:30:43 +00:00
} // namespace urde