Add almost matched CScriptActorKeyframe

This commit is contained in:
Henrique Gemignani Passos Lima
2022-11-11 01:23:57 +02:00
parent 3c5e962c6a
commit 887fe2102d
44 changed files with 1283 additions and 1110 deletions

View File

@@ -393,6 +393,8 @@ public:
void DeliverCmd(const CBCLocomotionCmd& cmd);
void DeliverCmd(EBodyStateCmd cmd);
void DeliverCmd(const CBodyStateCmd& cmd);
void DeliverCmd(const CBCGenerateCmd& cmd) {
DeliverCmd(kBSC_Generate);
x18c_generate = cmd;
@@ -401,6 +403,10 @@ public:
DeliverCmd(kBSC_KnockDown);
xdc_knockDown = cmd;
}
void DeliverCmd(const CBCScriptedCmd& cmd) {
DeliverCmd(kBSC_Scripted);
x21c_scripted = cmd;
}
void DeliverTargetVector(const CVector3f& t) { x18_target = t; }

View File

@@ -106,7 +106,7 @@ public:
void SetPhase(float ph);
void AddAdditiveAnimation(uint idx, float weight, bool active, bool fadeOut);
void DelAdditiveAnimation(uint idx);
// IsAdditiveAnimationActive__9CAnimDataCFUi
bool IsAdditiveAnimation(uint idx) const;
const rstl::rc_ptr<CAnimTreeNode>& GetAdditiveAnimationTree(uint idx) const;
// GetAnimationTree__9CAnimDataCFv
// AnimationTree__9CAnimDataFv

View File

@@ -0,0 +1,33 @@
#ifndef _CSCRIPTACTORKEYFRAME
#define _CSCRIPTACTORKEYFRAME
#include "MetroidPrime/CEntity.hpp"
class CScriptActorKeyframe : public CEntity {
public:
CScriptActorKeyframe(TUniqueId uid, const rstl::string& name, const CEntityInfo& info, int animId,
bool looping, float lifetime, bool isPassive, int fadeOut, bool active,
float totalPlayback);
void Accept(IVisitor& visitor) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr) override;
void Think(float, CStateManager&) override;
void UpdateEntity(TUniqueId, CStateManager&);
bool IsPassive() const { return x44_25_isPassive; }
void SetIsPassive(bool b) { x44_25_isPassive = b; }
private:
int x34_animationId;
float x38_initialLifetime;
float x3c_playbackRate;
float x40_lifetime;
bool x44_24_looping : 1;
bool x44_25_isPassive : 1;
bool x44_26_fadeOut : 1;
bool x44_27_timedLoop : 1;
bool x44_28_playing : 1; // false;
bool x44_29_ : 1; // false;
};
#endif // _CSCRIPTACTORKEYFRAME