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;
|
2017-05-10 10:03:29 +00:00
|
|
|
class CElementGen;
|
2018-12-08 05:30:43 +00:00
|
|
|
class CFlameThrower : public CGameProjectile {
|
|
|
|
static const zeus::CVector3f kLightOffset;
|
|
|
|
zeus::CTransform x2e8_;
|
2019-02-24 07:15:54 +00:00
|
|
|
zeus::CAABox x318_ = zeus::skNullBox;
|
2018-12-08 05:30:43 +00:00
|
|
|
TToken<CGenDescription> x33c_flameDesc;
|
|
|
|
std::unique_ptr<CElementGen> x348_flameGen;
|
2017-05-18 10:58:15 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
union {
|
|
|
|
struct {
|
|
|
|
bool x400_25 : 1;
|
2017-05-18 10:58:15 +00:00
|
|
|
};
|
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,
|
2018-12-31 08:37:52 +00:00
|
|
|
CAssetId w2, s16 sId, CAssetId w3);
|
2017-05-09 13:27:07 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
void Accept(IVisitor& visitor);
|
2018-12-31 08:37:52 +00:00
|
|
|
void SetTransform(const zeus::CTransform& xf, float);
|
2018-12-08 05:30:43 +00:00
|
|
|
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
|