metaforce/Runtime/MP1/World/CSpacePirate.hpp

83 lines
1.7 KiB
C++

#pragma once
#include "World/CPatterned.hpp"
#include "Weapon/CProjectileInfo.hpp"
namespace urde::MP1
{
class CSpacePirate : public CPatterned
{
public:
DEFINE_PATTERNED(SpacePirate)
private:
class CSpacePirateData
{
float x0_;
float x4_;
float x8_;
float xc_;
float x10_;
float x14_;
u32 x18_;
bool x1c_;
CProjectileInfo x20_;
u16 x48_;
CDamageInfo x4c_;
float x68_;
CProjectileInfo x6c_;
float x94_;
u16 x98_;
float x9c_;
float xa0_;
u16 xa4_;
float xa8_;
u32 xac_;
float xb0_;
float xb4_;
float xb8_;
float xbc_;
u16 xc0_;
u16 xc2_;
float xc4_;
float xc8_;
public:
CSpacePirateData(CInputStream&, u32);
};
CSpacePirateData x568_;
union
{
struct
{
bool x634_24_ : 1;
bool x634_25_ : 1;
bool x634_26_ : 1;
bool x634_27_ : 1;
bool x634_28_ : 1;
bool x634_29_ : 1;
bool x634_30_ : 1;
bool x634_31_ : 1;
bool x635_24_ : 1;
bool x635_25_ : 1;
bool x635_26_ : 1;
bool x635_27_ : 1;
bool x635_28_ : 1;
bool x635_29_ : 1;
bool x635_30_ : 1;
bool x635_31_ : 1;
};
u32 _dummy = 0;
};
public:
CSpacePirate(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&, CModelData&&,
const CActorParameters&, const CPatternedInfo&, CInputStream&, u32);
void Accept(IVisitor &visitor);
void Think(float dt, CStateManager&);
};
}