Things for CGunMotion

Former-commit-id: b4e3361020
This commit is contained in:
Henrique Gemignani Passos Lima
2022-10-07 00:07:41 +03:00
parent 6bfb08fd07
commit 01c1b77b2e
8 changed files with 98 additions and 4 deletions

View File

@@ -122,7 +122,7 @@ public:
// SetPoseValid__9CAnimDataFb
s16 GetDefaultAnimation() const { return x208_defaultAnim; }
// GetCharacterInfo__9CAnimDataCFv
const CCharacterInfo& GetCharacterInfo() const { return xc_charInfo; }
// GetCharLayoutInfo__9CAnimDataCFv
// GetDeltaRotation__9CAnimDataCFv
// GetDeltaOffset__9CAnimDataCFv

View File

@@ -22,6 +22,8 @@ public:
rstl::vector< CAssetId > x20_elsc;
rstl::vector< CAssetId > x30_elsc;
};
const CPASDatabase& GetPASDatabase() const { return x30_pasDatabase; }
private:
u16 x0_tableCount;

View File

@@ -4,6 +4,7 @@
#include "types.h"
#include "rstl/vector.hpp"
#include "rstl/reserved_vector.hpp"
namespace pas {
enum EAnimationState {

View File

@@ -6,11 +6,18 @@
#include "MetroidPrime/CPASAnimState.hpp"
#include "rstl/vector.hpp"
#include "rstl/pair.hpp"
class CPASAnimParmData;
class CRandom16;
class CPASDatabase {
private:
rstl::vector< CPASAnimState > x0_states;
int x10_defaultState;
public:
rstl::pair<float, int> FindBestAnimation(const CPASAnimParmData&, CRandom16&, int) const;
};
CHECK_SIZEOF(CPASDatabase, 0x14)

View File

@@ -31,6 +31,7 @@ class CGunController {
public:
explicit CGunController(CModelData& modelData);
~CGunController();
void EnterFreeLook(CStateManager&, int, int);
void EnterComboFire(CStateManager&, int);
@@ -43,5 +44,6 @@ public:
void Reset();
void ReturnToBasePosition(CStateManager&);
};
CHECK_SIZEOF(CGunController, 0x5C)
#endif // _CGUNCONTROLLER_HPP

View File

@@ -2,6 +2,7 @@
#define _CGUNMOTION_HPP
#include "MetroidPrime/CModelData.hpp"
#include "MetroidPrime/Weapons/GunController/CGunController.hpp"
#include "Kyoto/CToken.hpp"
#include "Kyoto/CObjectReference.hpp"
@@ -34,8 +35,13 @@ public:
~CGunMotion();
bool PlayPasAnim(SamusGun::EAnimationState state, CStateManager& mgr, float angle, bool bigStrike);
void Update(float, CStateManager&);
void Draw(const CStateManager&, const CTransform4f&) const;
void ReturnToDefault(CStateManager& mgr);
void GetFreeLookSetId() const;
void BasePosition(bool bigStrikeReset);
void ReturnToDefault(CStateManager& mgr, bool setState);
void EnterFidget(CStateManager&, SamusGun::EFidgetType, int);
void LoadAnimations();
CModelData& GetModelData() { return x0_modelData; }
const CModelData& GetModelData() const { return x0_modelData; }
@@ -43,7 +49,7 @@ public:
private:
CModelData x0_modelData;
u8 x4c_pad[0x5C];
CGunController x4c_gunController;
rstl::vector<CToken> xa8_anims;
bool xb8_24_animPlaying : 1;
};