metaforce/Runtime/Weapon/CWaveBuster.cpp

49 lines
1.8 KiB
C++
Raw Normal View History

#include "Runtime/Weapon/CWaveBuster.hpp"
#include "Runtime/CSimplePool.hpp"
#include "Runtime/GameGlobalObjects.hpp"
2017-09-10 00:36:21 +00:00
2018-12-08 05:30:43 +00:00
namespace urde {
2017-09-10 00:36:21 +00:00
CWaveBuster::CWaveBuster(const TToken<CWeaponDescription>& desc, EWeaponType type, const zeus::CTransform& xf,
2018-12-08 05:30:43 +00:00
EMaterialTypes matType, const CDamageInfo& dInfo, TUniqueId uid, TAreaId aid, TUniqueId owner,
TUniqueId homingTarget, EProjectileAttrib attrib)
2017-09-10 00:36:21 +00:00
: CGameProjectile(true, desc, "WaveBuster", type, xf, matType, dInfo, uid, aid, owner, homingTarget, attrib, false,
zeus::skOne3f, {}, -1, false)
2018-12-08 05:30:43 +00:00
, x2e8_originalXf(xf)
, x348_targetPoint(x2e8_originalXf.basis[1].normalized() * 25.f + x2e8_originalXf.origin)
, x354_busterSwoosh1(g_SimplePool->GetObj("BusterSwoosh1"))
, x360_busterSwoosh2(g_SimplePool->GetObj("BusterSwoosh2"))
, x36c_busterSparks(g_SimplePool->GetObj("BusterSparks"))
, x378_busterLight(g_SimplePool->GetObj("BusterLight")) {
x354_busterSwoosh1.GetObj();
x360_busterSwoosh2.GetObj();
x36c_busterSparks.GetObj();
x378_busterLight.GetObj();
x384_busterSwoosh1Gen = std::make_unique<CParticleSwoosh>(x354_busterSwoosh1, 0);
x388_busterSwoosh2Gen = std::make_unique<CParticleSwoosh>(x360_busterSwoosh2, 0);
x38c_busterSparksGen = std::make_unique<CElementGen>(x36c_busterSparks);
x390_busterLightGen = std::make_unique<CElementGen>(x378_busterLight);
x3d0_24_firing = true;
x3d0_25_ = true;
x3d0_26_ = false;
x3d0_27_ = false;
x3d0_28_ = true;
2017-09-10 00:36:21 +00:00
}
2018-12-08 05:30:43 +00:00
void CWaveBuster::UpdateFx(const zeus::CTransform& xf, float dt, CStateManager& mgr) {}
2017-09-10 00:36:21 +00:00
2018-12-08 05:30:43 +00:00
void CWaveBuster::ResetBeam(bool deactivate) {}
2017-09-10 00:36:21 +00:00
2018-12-08 05:30:43 +00:00
void CWaveBuster::SetNewTarget(TUniqueId id) {}
2017-09-10 00:36:21 +00:00
std::optional<zeus::CAABox> CWaveBuster::GetTouchBounds() const {
if (x3d0_28_) {
return std::nullopt;
}
return GetProjectileBounds();
}
2018-12-08 05:30:43 +00:00
} // namespace urde