2018-10-07 03:42:33 +00:00
|
|
|
#pragma once
|
2017-03-29 02:51:12 +00:00
|
|
|
|
2019-09-23 19:00:23 +00:00
|
|
|
#include "Runtime/Collision/CCollisionSurface.hpp"
|
2020-02-21 04:27:12 +00:00
|
|
|
#include "Runtime/Particle/CElementGen.hpp"
|
2019-09-23 19:00:23 +00:00
|
|
|
#include "Runtime/World/CActor.hpp"
|
2020-02-21 04:27:12 +00:00
|
|
|
#include "Runtime/World/CDamageInfo.hpp"
|
2017-03-29 02:51:12 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
namespace urde {
|
2018-06-23 23:08:16 +00:00
|
|
|
class CAnimationParameters;
|
2019-09-23 19:00:23 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
class CSnakeWeedSwarm : public CActor {
|
2020-02-21 04:27:12 +00:00
|
|
|
zeus::CVector3f xe8_scale;
|
|
|
|
float xf4_;
|
|
|
|
float xf8_;
|
|
|
|
float xfc_;
|
|
|
|
float x100_;
|
|
|
|
float x104_;
|
|
|
|
float x108_;
|
|
|
|
float x10c_;
|
|
|
|
float x110_;
|
|
|
|
float x114_;
|
|
|
|
float x118_;
|
|
|
|
float x11c_;
|
|
|
|
float x120_;
|
|
|
|
float x124_;
|
|
|
|
float x128_;
|
|
|
|
u32 x12c_ = 0;
|
|
|
|
// x130_
|
|
|
|
u32 x134_ = 0;
|
|
|
|
u32 x138_ = 0;
|
|
|
|
u32 x13c_ = 0;
|
|
|
|
bool x13c_xbf_modelAssetDirty : 1;
|
|
|
|
zeus::CAABox x144_ = zeus::skInvertedBox;
|
|
|
|
CDamageInfo x15c_dInfo;
|
|
|
|
// x178_ = 0
|
|
|
|
// x19c_ = 0
|
|
|
|
rstl::reserved_vector<std::shared_ptr<CModelData>, 4> x1b4_modelData;
|
|
|
|
// x1c8_ = ptr to 0x10 sz?
|
|
|
|
// x1cc_ = ptr to 0x10 sz?
|
|
|
|
u16 x1d0_sfx1;
|
|
|
|
u16 x1d2_sfx2;
|
|
|
|
u16 x1d4_sfx3;
|
|
|
|
u32 x1d8_ = 0;
|
|
|
|
TLockedToken<CGenDescription> x1dc_;
|
|
|
|
// TLockedToken<CGenDescription> x1e4_; both assign to x1dc_?
|
|
|
|
std::unique_ptr<CElementGen> x1ec_;
|
|
|
|
std::unique_ptr<CElementGen> x1f4_;
|
|
|
|
u32 x1fc_;
|
|
|
|
float x200_;
|
|
|
|
float x204_ = 0.f;
|
|
|
|
|
2017-03-29 02:51:12 +00:00
|
|
|
public:
|
2018-12-08 05:30:43 +00:00
|
|
|
CSnakeWeedSwarm(TUniqueId, bool, std::string_view, const CEntityInfo&, const zeus::CVector3f&, const zeus::CVector3f&,
|
2020-02-21 04:27:12 +00:00
|
|
|
const CAnimRes&, const CActorParameters&, float, float, float, float, float, float, float, float,
|
|
|
|
float, float, float, float, float, float, const CDamageInfo&, float, u32, u32, u32, CAssetId, u32,
|
|
|
|
CAssetId, float);
|
2018-06-23 23:08:16 +00:00
|
|
|
|
2019-08-09 12:45:18 +00:00
|
|
|
void Accept(IVisitor&) override;
|
2018-12-08 05:30:43 +00:00
|
|
|
void ApplyRadiusDamage(const zeus::CVector3f& pos, const CDamageInfo& info, CStateManager& stateMgr) {}
|
2020-02-21 04:27:12 +00:00
|
|
|
std::optional<zeus::CAABox> GetTouchBounds() const override { /* FIXME check flags */ return x144_; }
|
2017-03-29 02:51:12 +00:00
|
|
|
};
|
2018-12-08 05:30:43 +00:00
|
|
|
} // namespace urde
|