2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-13 10:06:10 +00:00

Initial CChozoGhost stubs

This commit is contained in:
2020-03-04 05:32:41 -08:00
parent 2f9dd38bbe
commit d91e86a94a
2 changed files with 205 additions and 64 deletions

View File

@@ -21,13 +21,13 @@ class CChozoGhost : public CPatterned {
public:
class CBehaveChance {
u32 x0_propertyCount;
float x4_;
float x4_lurk;
float x8_;
float xc_;
float x10_;
float x14_;
float x18_;
u32 x1c_;
float xc_attack;
float x10_move;
float x14_lurkTime;
float x18_chargeAttack;
u32 x1c_numBolts;
public:
CBehaveChance(CInputStream&);
@@ -36,47 +36,42 @@ public:
};
private:
float x568_;
float x56c_;
float x570_;
float x574_;
float x568_hearingRadius;
float x56c_fadeOutDelay;
float x570_attackDelay;
float x574_freezeTime;
CProjectileInfo x578_;
CProjectileInfo x5a0_;
CBehaveChance x5c8_;
CBehaveChance x5e8_;
CBehaveChance x608_;
s16 x628_;
s16 x628_soundImpact;
float x62c_;
s16 x630_;
s16 x632_;
float x634_;
float x638_;
float x638_hurlRecoverTime;
u32 x63c_;
TLockedToken<CGenDescription> x640_;
s16 x650_;
s16 x650_sound_ProjectileVisor;
float x654_;
float x658_;
u32 x65c_;
u32 x660_;
union {
struct {
bool x664_24_ : 1;
bool x664_25_ : 1;
bool x664_26_ : 1;
bool x664_27_ : 1;
bool x664_28_ : 1;
bool x664_29_ : 1;
bool x664_30_ : 1;
bool x664_31_ : 1;
bool x665_24_ : 1;
bool x665_25_ : 1;
bool x665_26_ : 1;
bool x665_27_ : 1;
bool x665_28_ : 1;
bool x665_29_ : 1;
};
u32 _dummy = 0;
};
u32 x65c_nearChance;
u32 x660_midChance;
bool x664_24_onGround : 1;
bool x664_25_ : 1;
bool x664_26_ : 1;
bool x664_27_ : 1;
bool x664_28_ : 1;
bool x664_29_ : 1;
bool x664_30_ : 1;
bool x664_31_ : 1;
bool x665_24_ : 1;
bool x665_25_ : 1;
bool x665_26_ : 1;
bool x665_27_ : 1;
bool x665_28_ : 1;
bool x665_29_ : 1;
float x668_ = 0.f;
float x66c_ = 0.f;
float x670_ = 0.f;
@@ -92,6 +87,7 @@ private:
zeus::CVector3f x6cc_;
u32 x6d8_ = 1;
u32 x6dc_;
CTeamAiMgr
public:
DEFINE_PATTERNED(ChozoGhost)
@@ -101,6 +97,45 @@ public:
const CBehaveChance&, u16, float, u16, u16, u32, float, u32, float, CAssetId, s16, float, float, u32,
u32);
float GetGravityConstant() const { return 60.f; }
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override;
void Think(float dt, CStateManager&) override;
void PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) override;
void Render(const CStateManager& mgr) const override;
void Touch(CActor& act, CStateManager& mgr) override;
EWeaponCollisionResponseTypes GetCollisionResponseType(const zeus::CVector3f& pos, const zeus::CVector3f& dir,
const CWeaponMode& mode, EProjectileAttrib attrib) const override;
void DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, float dt) override;
void KnockBack(const zeus::CVector3f& dir, CStateManager& mgr, const CDamageInfo& info, EKnockBackType type,
bool inDeferred, float magnitude) override;
bool CanBeShot(const CStateManager& mgr, int w1) override;
zeus::CVector3f GetOrigin(const CStateManager& mgr, const CTeamAiRole& role,
const zeus::CVector3f& aimPos) const override {
return x34_transform.origin;
}
void Dead(CStateManager& mgr, EStateMsg msg, float arg) override;
void SelectTarget(CStateManager& mgr, EStateMsg msg, float arg) override;
void Run(CStateManager& mgr, EStateMsg msg, float arg) override;
void Generate(CStateManager& mgr, EStateMsg msg, float arg) override;
void Deactivate(CStateManager& mgr, EStateMsg msg, float arg) override;
void Attack(CStateManager& mgr, EStateMsg msg, float arg) override;
void Shuffle(CStateManager& mgr, EStateMsg msg, float arg) override;
void InActive(CStateManager& mgr, EStateMsg msg, float arg) override;
void Taunt(CStateManager& mgr, EStateMsg msg, float arg) override;
void Hurled(CStateManager& mgr, EStateMsg msg, float arg) override;
void WallDetach(CStateManager& mgr, EStateMsg msg, float arg) override;
void Growth(CStateManager& mgr, EStateMsg msg, float arg) override;
void Land(CStateManager& mgr, EStateMsg msg, float arg) override;
bool Leash(CStateManager& mgr, float arg) override;
bool InRange(CStateManager& mgr, float arg) override;
bool InPosition(CStateManager& mgr, float arg) override;
bool AggressionCheck(CStateManager& mgr, float arg) override;
bool ShouldTaunt(CStateManager& mgr, float arg) override;
bool ShouldFlinch(CStateManager& mgr, float arg) override;
bool ShouldMove(CStateManager& mgr, float arg) override;
bool AIStage(CStateManager& mgr, float arg) override;
u8 GetModelAlphau8(const CStateManager&) const override;
bool IsOnGround() const override;
float GetGravityConstant() const override { return 60.f; }
CProjectileInfo* GetProjectileInfo() override;
};
} // namespace urde::MP1