mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-10 15:47:43 +00:00
Work on CParasite
This commit is contained in:
@@ -18,36 +18,46 @@ public:
|
||||
Seedling = 4
|
||||
};
|
||||
protected:
|
||||
CCollisionSurface x568_ = CCollisionSurface(zeus::CVector3f(),
|
||||
CCollisionSurface x568_alignNormal = CCollisionSurface(zeus::CVector3f(),
|
||||
zeus::CVector3f::skForward,
|
||||
zeus::CVector3f::skRight, -1);
|
||||
CCollidableSphere x590_colSphere;
|
||||
float x5b0_collisionCloseMargin;
|
||||
float x5b4_;
|
||||
float x5b8_ = 0.f;
|
||||
float x5bc_ = 0.f;
|
||||
float x5b4_alignAngVel;
|
||||
float x5b8_tumbleAngle = 0.f;
|
||||
float x5bc_patrolPauseRemTime = 0.f;
|
||||
float x5c0_advanceWpRadius;
|
||||
float x5c4_;
|
||||
float x5c4_playerObstructionMinDist;
|
||||
float x5c8_bendingHackWeight = 0.f;
|
||||
s32 x5cc_bendingHackAnim;
|
||||
EWalkerType x5d0_walkerType;
|
||||
s16 x5d4_ = 0;
|
||||
bool x5d6_24_ : 1;
|
||||
bool x5d6_25_ : 1;
|
||||
bool x5d6_26_ : 1;
|
||||
bool x5d6_27_ : 1;
|
||||
s16 x5d4_thinkCounter = 0;
|
||||
bool x5d6_24_alignToFloor : 1;
|
||||
bool x5d6_25_hasAlignSurface : 1;
|
||||
bool x5d6_26_playerObstructed : 1;
|
||||
bool x5d6_27_disableMove : 1;
|
||||
bool x5d6_28_addBendingWeight : 1;
|
||||
bool x5d6_29_applyBendingHack : 1;
|
||||
static zeus::CVector3f ProjectVectorToPlane(const zeus::CVector3f& v0, const zeus::CVector3f& v1)
|
||||
static zeus::CVector3f ProjectVectorToPlane(const zeus::CVector3f& pt, const zeus::CVector3f& plane)
|
||||
{
|
||||
return v0 - v1 * v0.dot(v1);
|
||||
return pt - plane * pt.dot(plane);
|
||||
}
|
||||
static zeus::CVector3f ProjectPointToPlane(const zeus::CVector3f& p0, const zeus::CVector3f& p1,
|
||||
const zeus::CVector3f& plane)
|
||||
{
|
||||
return p0 - (p0 - p1).dot(plane) * plane;
|
||||
}
|
||||
void OrientToSurfaceNormal(const zeus::CVector3f& normal, float clampAngle);
|
||||
static bool PointOnSurface(const CCollisionSurface& surf, const zeus::CVector3f& point);
|
||||
void AlignToFloor(CStateManager&, float, const zeus::CVector3f&, float);
|
||||
void GotoNextWaypoint(CStateManager& mgr);
|
||||
public:
|
||||
CWallWalker(ECharacter, TUniqueId, std::string_view, EFlavorType, const CEntityInfo&, const zeus::CTransform&,
|
||||
CModelData&&, const CPatternedInfo&, EMovementType, EColliderType, EBodyType,
|
||||
const CActorParameters&, float, float, EKnockBackVariant, float, EWalkerType wType, float, bool);
|
||||
CWallWalker(ECharacter chr, TUniqueId uid, std::string_view name, EFlavorType flavType,
|
||||
const CEntityInfo& eInfo, const zeus::CTransform& xf,
|
||||
CModelData&& mData, const CPatternedInfo& pInfo, EMovementType mType,
|
||||
EColliderType colType, EBodyType bType, const CActorParameters& aParms,
|
||||
float collisionCloseMargin, float alignAngVel, EKnockBackVariant kbVariant,
|
||||
float advanceWpRadius, EWalkerType wType, float playerObstructionMinDist, bool disableMove);
|
||||
|
||||
void PreThink(float, CStateManager&);
|
||||
void Think(float, CStateManager&);
|
||||
|
||||
Reference in New Issue
Block a user