mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-14 14:06:09 +00:00
Fix IA4 encoding/decoding
This commit is contained in:
54
Runtime/MP1/World/CJellyZap.hpp
Normal file
54
Runtime/MP1/World/CJellyZap.hpp
Normal file
@@ -0,0 +1,54 @@
|
||||
#pragma once
|
||||
|
||||
#include "World/CPatterned.hpp"
|
||||
|
||||
namespace urde::MP1 {
|
||||
class CJellyZap : public CPatterned {
|
||||
static const CMaterialFilter kPlayerFilter;
|
||||
u32 x568_ = 0;
|
||||
CDamageInfo x56c_attackDamage;
|
||||
float x588_attackRadius;
|
||||
float x58c_;
|
||||
float x590_;
|
||||
float x594_;
|
||||
float x598_;
|
||||
float x59c_;
|
||||
float x5a0_;
|
||||
float x5a4_;
|
||||
float x5a8_attackDelay;
|
||||
float x5ac_;
|
||||
float x5b0_;
|
||||
float x5b4_;
|
||||
bool x5b8_24_ : 1;
|
||||
bool x5b8_25_ : 1;
|
||||
bool x5b8_26_ : 1;
|
||||
|
||||
void AddSelfToFishCloud(CStateManager, float, bool);
|
||||
void AddRepulsor(CStateManager&);
|
||||
void AddAttractor(CStateManager&);
|
||||
void RemoveSelfFromFishCloud(CStateManager&);
|
||||
void RemoveAllAttractors(CStateManager&);
|
||||
bool ClosestToPlayer(CStateManager&);
|
||||
|
||||
public:
|
||||
DEFINE_PATTERNED(JellyZap)
|
||||
|
||||
CJellyZap(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&, CModelData&&, const CDamageInfo&,
|
||||
bool, float, float, float, float, float, float, float, float, float, float, float, float,
|
||||
const CPatternedInfo&, const CActorParameters&);
|
||||
|
||||
void Accept(IVisitor&);
|
||||
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&);
|
||||
void Think(float, CStateManager&);
|
||||
void DoUserAnimEvent(CStateManager&, const CInt32POINode&, EUserEventType, float dt);
|
||||
void Attack(CStateManager&, EStateMsg, float);
|
||||
void Suck(CStateManager&, EStateMsg, float);
|
||||
void Active(CStateManager&, EStateMsg, float);
|
||||
void InActive(CStateManager&, EStateMsg, float);
|
||||
void Flinch(CStateManager&, EStateMsg, float);
|
||||
bool ShouldAttack(CStateManager&, float) { return x330_stateMachineState.GetTime() > x5a8_attackDelay; }
|
||||
bool ShouldSpecialAttack(CStateManager& mgr, float) { return ClosestToPlayer(mgr); }
|
||||
bool InAttackPosition(CStateManager&, float);
|
||||
bool InDetectionRange(CStateManager&, float);
|
||||
};
|
||||
} // namespace urde::MP1
|
||||
Reference in New Issue
Block a user