mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-15 07:26:10 +00:00
CPhazonPool: Implementation
This commit is contained in:
@@ -7,36 +7,51 @@
|
||||
namespace urde::MP1 {
|
||||
class CPhazonPool : public CScriptTrigger {
|
||||
private:
|
||||
u32 x164_;
|
||||
std::unique_ptr<CModelData> x168_;
|
||||
std::unique_ptr<CModelData> x16c_;
|
||||
std::unique_ptr<CElementGen> x170_;
|
||||
std::unique_ptr<CElementGen> x174_;
|
||||
zeus::CAABox x178_;
|
||||
zeus::CVector3f x190_;
|
||||
std::list<std::pair<TUniqueId, bool>> x150_inhabitants;
|
||||
std::unique_ptr<CModelData> x168_modelData1;
|
||||
std::unique_ptr<CModelData> x16c_modelData2;
|
||||
std::unique_ptr<CElementGen> x170_elementGen1;
|
||||
std::unique_ptr<CElementGen> x174_elementGen2;
|
||||
zeus::CAABox x178_bounds = zeus::skNullBox;
|
||||
zeus::CVector3f x190_scale;
|
||||
float x19c_;
|
||||
float x1a0_;
|
||||
float x1a4_;
|
||||
float x1a8_;
|
||||
float x1ac_;
|
||||
float x1b0_;
|
||||
float x1b4_;
|
||||
float x1b8_;
|
||||
float x1a4_ = 0.001f;
|
||||
float x1a8_rotY = 0.f;
|
||||
float x1ac_rotZ = 0.f;
|
||||
float x1b0_ = 0.f;
|
||||
float x1b4_ = 0.f;
|
||||
float x1b8_ = 0.f;
|
||||
float x1bc_;
|
||||
float x1c0_;
|
||||
float x1c4_;
|
||||
float x1c4_ = 0.f;
|
||||
float x1c8_;
|
||||
float x1cc_;
|
||||
float x1d0_;
|
||||
float x1d4_;
|
||||
float x1cc_ = 0.f;
|
||||
float x1d0_ = 0.f;
|
||||
float x1d4_ = 0.f;
|
||||
u32 x1d8_;
|
||||
u32 x1dc_;
|
||||
u32 x1dc_ = 0;
|
||||
bool x1e0_24_ : 1;
|
||||
bool x1e0_25_ : 1;
|
||||
|
||||
public:
|
||||
CPhazonPool(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf,
|
||||
const zeus::CVector3f& scale, bool active, CAssetId w1, CAssetId w2, CAssetId w3, CAssetId w4, u32 p11,
|
||||
const CDamageInfo& dInfo, const zeus::CVector3f& orientedForce, ETriggerFlags triggerFlags, bool p15,
|
||||
float p16, float p17, float p18, float p19);
|
||||
|
||||
void Accept(IVisitor& visitor) override;
|
||||
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override;
|
||||
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override;
|
||||
[[nodiscard]] std::optional<zeus::CAABox> GetTouchBounds() const override;
|
||||
void Render(const CStateManager& mgr) const override;
|
||||
void Think(float dt, CStateManager& mgr) override;
|
||||
void Touch(CActor& actor, CStateManager& mgr) override;
|
||||
|
||||
private:
|
||||
void UpdateInhabitants(CStateManager& mgr);
|
||||
void UpdateParticleGens(CStateManager& mgr);
|
||||
void RemoveInhabitants(CStateManager& mgr);
|
||||
void SetEmitParticles(bool val);
|
||||
};
|
||||
} // namespace urde::MP1
|
||||
|
||||
Reference in New Issue
Block a user