Files

57 lines
1.7 KiB
C++
Raw Permalink Normal View History

2026-01-20 14:48:34 -08:00
#ifndef _CSCRIPTCONTRAPTION
#define _CSCRIPTCONTRAPTION
2026-03-19 20:55:56 -06:00
#include "types.h"
2026-01-20 14:48:34 -08:00
#include "MetroidPrime/CDamageInfo.hpp"
#include "MetroidPrime/ScriptObjects/CScriptActor.hpp"
2026-03-19 20:55:56 -06:00
#include "MetroidPrime/TGameTypes.hpp"
#include "Kyoto/TToken.hpp"
#include "rstl/list.hpp"
#include "rstl/string.hpp"
2026-01-20 14:48:34 -08:00
class CFlameThrower;
class CWeaponDescription;
2026-03-19 20:55:56 -06:00
2026-01-20 14:48:34 -08:00
class CScriptContraption : public CScriptActor {
public:
2026-01-20 15:23:33 -08:00
struct SFlameThrower {
TUniqueId id;
rstl::string name;
bool unk;
2026-03-19 20:55:56 -06:00
2026-01-20 15:23:33 -08:00
SFlameThrower();
2026-03-19 20:55:56 -06:00
SFlameThrower(TUniqueId uid, const rstl::string& locatorName)
: id(uid), name(locatorName), unk(false) {}
2026-01-20 15:23:33 -08:00
};
2026-03-19 20:55:56 -06:00
2026-01-20 14:48:34 -08:00
CScriptContraption(TUniqueId uid, const rstl::string& name, const CEntityInfo& info,
const CTransform4f& xf, const CModelData& mData, const CAABox& aabox,
const CMaterialList& matList, const float mass, const float zMomentum,
const CHealthInfo& hInfo, const CDamageVulnerability& dVuln,
2026-03-19 20:55:56 -06:00
const CActorParameters& aParams, const CAssetId part, CDamageInfo dInfo,
bool active);
2026-01-20 14:48:34 -08:00
2026-03-19 20:55:56 -06:00
// CEntity
void Accept(IVisitor& visitor) override;
2026-01-20 14:48:34 -08:00
void Think(float dt, CStateManager& mgr) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override;
2026-03-19 20:55:56 -06:00
// CActor
2026-01-20 14:48:34 -08:00
void DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type,
float dt) override;
CFlameThrower* CreateFlameThrower(const rstl::string& name, CStateManager& mgr);
2026-03-19 20:55:56 -06:00
private:
2026-01-20 15:23:33 -08:00
rstl::list< SFlameThrower > x2e8_children;
2026-01-20 14:48:34 -08:00
TToken< CWeaponDescription > x300_flameThrowerGenDesc;
CAssetId x308_flameFxId;
CDamageInfo x30c_dInfo;
};
2026-03-19 20:55:56 -06:00
CHECK_SIZEOF(CScriptContraption, 0x328)
#endif // _CSCRIPTCONTRAPTION