mirror of
https://github.com/PrimeDecomp/prime.git
synced 2025-12-16 16:57:00 +00:00
Add CAmbientAI, just needs Think implmented
This commit is contained in:
@@ -100,7 +100,7 @@ public:
|
||||
// CalcPlaybackAlignmentParms__9CAnimDataFRC18CAnimPlaybackParmsRCQ24rstl25ncrc_ptr<13CAnimTreeNode>
|
||||
// SetRandomPlaybackRate__9CAnimDataFR9CRandom16
|
||||
void SetPlaybackRate(float set);
|
||||
// MultiplyPlaybackRate__9CAnimDataFf
|
||||
void MultiplyPlaybackRate(float scale);
|
||||
// GetTimeOfUserEvent__9CAnimDataCF14EUserEventTypeRC13CCharAnimTime
|
||||
// GetAdvancementDeltas__9CAnimDataCFRC13CCharAnimTimeRC13CCharAnimTime
|
||||
// Touch__9CAnimDataCFRC13CSkinnedModeli
|
||||
|
||||
@@ -95,6 +95,8 @@ public:
|
||||
const CVector3f& GetScale() const { return x0_scale; }
|
||||
void SetScale(const CVector3f& scale) { x0_scale = scale; }
|
||||
|
||||
bool GetIsLoop() const;
|
||||
void EnableLooping(bool enable);
|
||||
static CModelData CModelDataNull();
|
||||
static EWhichModel GetRenderingModel(const CStateManager& mgr);
|
||||
|
||||
|
||||
@@ -23,8 +23,10 @@ struct SMoverData {
|
||||
CAxisAngle x24_;
|
||||
float x30_mass;
|
||||
|
||||
SMoverData(float mass, const CVector3f& velocity, const CAxisAngle& angularVelocity,
|
||||
const CVector3f& momentum, const CAxisAngle& unk)
|
||||
SMoverData(float mass, const CVector3f& velocity = CVector3f::Zero(),
|
||||
const CAxisAngle& angularVelocity = CAxisAngle::Identity(),
|
||||
const CVector3f& momentum = CVector3f::Zero(),
|
||||
const CAxisAngle& unk = CAxisAngle::Identity())
|
||||
: x0_velocity(velocity)
|
||||
, xc_angularVelocity(angularVelocity)
|
||||
, x18_momentum(momentum)
|
||||
|
||||
51
include/MetroidPrime/Enemies/CAmbientAI.hpp
Normal file
51
include/MetroidPrime/Enemies/CAmbientAI.hpp
Normal file
@@ -0,0 +1,51 @@
|
||||
#ifndef _CAMBIENTAI
|
||||
#define _CAMBIENTAI
|
||||
|
||||
#include "MetroidPrime/CPhysicsActor.hpp"
|
||||
|
||||
#include "MetroidPrime/CHealthInfo.hpp"
|
||||
#include "MetroidPrime/CDamageVulnerability.hpp"
|
||||
|
||||
class CAmbientAI : public CPhysicsActor {
|
||||
public:
|
||||
CAmbientAI(TUniqueId uid, const rstl::string& name, const CEntityInfo& info,
|
||||
const CTransform4f& xf, const CModelData& mData, const CAABox& aabox,
|
||||
const CMaterialList& materialList, float mass, const CHealthInfo& hInfo,
|
||||
const CDamageVulnerability& dVuln, const CActorParameters& aParms, float alertRange,
|
||||
float impactRange, int alertAnim, int impactAnim, bool Active);
|
||||
|
||||
/* CEntity */
|
||||
void Accept(IVisitor& visitor);
|
||||
void Think(float dt, CStateManager& mgr);
|
||||
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr);
|
||||
/* CActor */
|
||||
CHealthInfo* HealthInfo(CStateManager& mgr);
|
||||
const CDamageVulnerability* GetDamageVulnerability() const;
|
||||
|
||||
/* CPhysicsActor */
|
||||
void Touch(CActor& actor, CStateManager& mgr);
|
||||
rstl::optional_object<CAABox> GetTouchBounds() const;
|
||||
|
||||
void RandomizePlaybackRate(CStateManager& mgr);
|
||||
|
||||
private:
|
||||
enum EAnimationState {
|
||||
kAS_Ready,
|
||||
kAS_Alert,
|
||||
kAS_Impact,
|
||||
};
|
||||
|
||||
CHealthInfo x258_initialHealthInfo;
|
||||
CHealthInfo x260_healthInfo;
|
||||
CDamageVulnerability x268_dVuln;
|
||||
EAnimationState x2d0_animState;
|
||||
float x2d4_alertRange;
|
||||
float x2d8_impactRange;
|
||||
s32 x2dc_defaultAnim;
|
||||
s32 x2e0_alertAnim;
|
||||
s32 x2e4_impactAnim;
|
||||
bool x2e8_24_dead : 1;
|
||||
bool x2e8_25_animating : 1;
|
||||
};
|
||||
|
||||
#endif // _CAMBIENTAI
|
||||
Reference in New Issue
Block a user