mirror of https://github.com/AxioDL/metaforce.git
Merge branch 'master' into new-anim
This commit is contained in:
commit
6d13a4b257
|
@ -133,7 +133,7 @@ struct ANCS : BigYAML
|
||||||
String<-1> name;
|
String<-1> name;
|
||||||
DNAFourCC type;
|
DNAFourCC type;
|
||||||
UniqueID32 id;
|
UniqueID32 id;
|
||||||
String<-1> name2;
|
String<-1> locator;
|
||||||
Value<float> unk1;
|
Value<float> unk1;
|
||||||
Value<atUint32> unk2;
|
Value<atUint32> unk2;
|
||||||
Value<atUint32> unk3;
|
Value<atUint32> unk3;
|
||||||
|
|
|
@ -0,0 +1,138 @@
|
||||||
|
#ifndef CBODYSTATE_HPP
|
||||||
|
#define CBODYSTATE_HPP
|
||||||
|
#include "RetroTypes.hpp"
|
||||||
|
|
||||||
|
namespace urde
|
||||||
|
{
|
||||||
|
namespace pas
|
||||||
|
{
|
||||||
|
enum class ELocomotionType
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class ELocomotionAnim
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
class CBodyController;
|
||||||
|
class CStateManager;
|
||||||
|
class CBodyState
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual bool IsInAir(const CBodyController&) const { return false; }
|
||||||
|
virtual bool IsDead() const { return false; }
|
||||||
|
virtual bool IsMoving() const { return false; }
|
||||||
|
virtual bool ApplyGravity() const { return true; }
|
||||||
|
virtual bool ApplyHeadTracking() const { return true; }
|
||||||
|
virtual bool ApplyAnimationDeltas() const { return true; }
|
||||||
|
virtual bool CanShoot() const { return false; }
|
||||||
|
virtual void Start(CBodyController&, CStateManager&) = 0;
|
||||||
|
virtual void UpdateBody(float, CBodyController&, CStateManager&) = 0;
|
||||||
|
virtual void Shutdown(CBodyController&)=0;
|
||||||
|
};
|
||||||
|
|
||||||
|
class CBSAttack : public CBodyState
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual bool CanShoot() const { return false; }
|
||||||
|
virtual void Start(CBodyController &, CStateManager &) {}
|
||||||
|
virtual void UpdateBody(float, CBodyController &, CStateManager&);
|
||||||
|
virtual void Shutdown(CBodyController&) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class CBSDie : public CBodyState
|
||||||
|
{
|
||||||
|
bool x8_isDead = false;
|
||||||
|
public:
|
||||||
|
bool IsDead() const { return x8_isDead; }
|
||||||
|
void Start(CBodyController &, CStateManager &) {}
|
||||||
|
void UpdateBody(float, CBodyController &, CStateManager&) {}
|
||||||
|
void Shutdown(CBodyController &) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class CBSFall : public CBodyState
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
void Start(CBodyController &, CStateManager &) {}
|
||||||
|
void UpdateBody(float, CBodyController &, CStateManager&) {}
|
||||||
|
void Shutdown(CBodyController &) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class CBSGetup : public CBodyState
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
void Start(CBodyController &, CStateManager &) {}
|
||||||
|
void UpdateBody(float, CBodyController &, CStateManager&) {}
|
||||||
|
void Shutdown(CBodyController &) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class CBSKnockBack : public CBodyState
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool IsMoving() const { return true; }
|
||||||
|
void Start(CBodyController &, CStateManager &) {}
|
||||||
|
void UpdateBody(float, CBodyController &, CStateManager&) {}
|
||||||
|
void Shutdown(CBodyController &) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class CBSLieOnGround : public CBodyState
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
void Start(CBodyController &, CStateManager &) {}
|
||||||
|
void UpdateBody(float, CBodyController &, CStateManager&) {}
|
||||||
|
void Shutdown(CBodyController &) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class CBSStep : public CBodyState
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool IsMoving() const { return true; }
|
||||||
|
bool CanShoot() const { return true; }
|
||||||
|
void Start(CBodyController &, CStateManager &) {}
|
||||||
|
void UpdateBody(float, CBodyController &, CStateManager&) {}
|
||||||
|
void Shutdown(CBodyController &) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class CBSTurn : public CBodyState
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual bool CanShoot() const { return true; }
|
||||||
|
virtual void Start(CBodyController &, CStateManager &) {}
|
||||||
|
virtual void UpdateBody(float, CBodyController &, CStateManager&) {}
|
||||||
|
virtual void Shutdown(CBodyController &) {}
|
||||||
|
virtual void GetBodyStateTransition(float, CBodyController&);
|
||||||
|
};
|
||||||
|
|
||||||
|
class CBSFlyerTurn : public CBSTurn
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual void Start(CBodyController &, CStateManager &) {}
|
||||||
|
virtual void UpdateBody(float, CBodyController &, CStateManager&) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class CBSLoopAttack : public CBodyState
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual bool CanShoot() const { return true; }
|
||||||
|
virtual void Start(CBodyController &, CStateManager &) {}
|
||||||
|
virtual void UpdateBody(float, CBodyController &, CStateManager&);
|
||||||
|
virtual void Shutdown(CBodyController&) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class CBSLocomotion : public CBodyState
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual bool IsMoving() const = 0;
|
||||||
|
virtual bool CanShoot() const { return true; }
|
||||||
|
virtual void Start(CBodyController &, CStateManager &) {}
|
||||||
|
virtual void UpdateBody(float, CBodyController &, CStateManager&) {}
|
||||||
|
virtual void Shutdown() const {}
|
||||||
|
virtual bool IsPitchable() const { return true; }
|
||||||
|
virtual float GetLocomotionSpeed(pas::ELocomotionType, pas::ELocomotionAnim) = 0;
|
||||||
|
virtual void ApplyLocomotionPysics(float, CBodyController&) {}
|
||||||
|
virtual void UpdateLocomotionAnimation(float, const CBodyController& )=0;
|
||||||
|
virtual void GetBodyStateTransition(float, CBodyState&) {}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
#endif // CBODYSTATE_HPP
|
|
@ -11,4 +11,5 @@ add_library(RuntimeCommonCharacter
|
||||||
CTransitionDatabaseGame.hpp
|
CTransitionDatabaseGame.hpp
|
||||||
CHierarchyPoseBuilder.hpp CHierarchyPoseBuilder.cpp
|
CHierarchyPoseBuilder.hpp CHierarchyPoseBuilder.cpp
|
||||||
CPoseAsTransforms.hpp CPoseAsTransforms.cpp
|
CPoseAsTransforms.hpp CPoseAsTransforms.cpp
|
||||||
CVirtualBone.hpp CVirtualBone.cpp)
|
CVirtualBone.hpp CVirtualBone.cpp
|
||||||
|
CBodyState.hpp)
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
#include "CDecalManager.hpp"
|
||||||
|
#include "CDecalDescription.hpp"
|
||||||
|
|
||||||
|
namespace urde
|
||||||
|
{
|
||||||
|
bool CDecalManager::m_PoolInitialized = false;
|
||||||
|
s32 CDecalManager::m_FreeIndex = 63;
|
||||||
|
float CDecalManager::m_DeltaTimeSinceLastDecalCreation = 0.f;
|
||||||
|
s32 CDecalManager::m_LastDecalCreatedIndex = -1;
|
||||||
|
TResId CDecalManager::m_LastDecalCreatedAssetId = -1;
|
||||||
|
|
||||||
|
void CDecalManager::Initialize()
|
||||||
|
{
|
||||||
|
if (m_PoolInitialized)
|
||||||
|
return;
|
||||||
|
|
||||||
|
m_DecalPool.clear();
|
||||||
|
m_DecalPool.resize(64);
|
||||||
|
|
||||||
|
m_FreeIndex = 63;
|
||||||
|
m_PoolInitialized = true;
|
||||||
|
m_DeltaTimeSinceLastDecalCreation = 0.f;
|
||||||
|
m_LastDecalCreatedIndex = -1;
|
||||||
|
m_LastDecalCreatedAssetId = -1;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,15 +1,41 @@
|
||||||
#ifndef __PSHAG_CDECALMANAGER_HPP__
|
#ifndef __PSHAG_CDECALMANAGER_HPP__
|
||||||
#define __PSHAG_CDECALMANAGER_HPP__
|
#define __PSHAG_CDECALMANAGER_HPP__
|
||||||
|
|
||||||
|
#include "RetroTypes.hpp"
|
||||||
|
#include "rstl.hpp"
|
||||||
|
#include "optional.hpp"
|
||||||
|
#include "CToken.hpp"
|
||||||
|
|
||||||
namespace urde
|
namespace urde
|
||||||
{
|
{
|
||||||
|
|
||||||
class CDecalManager
|
class CDecal
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static void Initialize()
|
class CQuadDecal
|
||||||
{
|
{
|
||||||
}
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class CDecalManager
|
||||||
|
{
|
||||||
|
struct SDecal
|
||||||
|
{
|
||||||
|
TAreaId m_areaId;
|
||||||
|
std::experimental::optional<CDecal> x60_decal;
|
||||||
|
SDecal() = default;
|
||||||
|
SDecal(std::experimental::optional<CDecal>&&, TAreaId);
|
||||||
|
};
|
||||||
|
|
||||||
|
static bool m_PoolInitialized;
|
||||||
|
static s32 m_FreeIndex;
|
||||||
|
static float m_DeltaTimeSinceLastDecalCreation;
|
||||||
|
static s32 m_LastDecalCreatedIndex;
|
||||||
|
static TResId m_LastDecalCreatedAssetId;
|
||||||
|
static rstl::reserved_vector<SDecal, 64> m_DecalPool;
|
||||||
|
static rstl::reserved_vector<s32, 64> m_ActiveIndexList;
|
||||||
|
public:
|
||||||
|
static void Initialize();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,7 +138,6 @@ void CParticleElectric::SetLocalScale(const zeus::CVector3f& scale)
|
||||||
x438_28_x450_28 = true;
|
x438_28_x450_28 = true;
|
||||||
if (x438_26_x450_26_HaveEPSM)
|
if (x438_26_x450_26_HaveEPSM)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -71,16 +71,18 @@ private:
|
||||||
u8 dummy = 0;
|
u8 dummy = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
void RenderSwooshes();
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
||||||
CParticleElectric(const TToken<CElectricDescription>& desc);
|
CParticleElectric(const TToken<CElectricDescription>& desc);
|
||||||
|
|
||||||
void SetupLineGXMaterial();
|
void SetupLineGXMaterial();
|
||||||
void RenderLines();
|
|
||||||
void Update(double);
|
void Update(double);
|
||||||
|
void RenderLines();
|
||||||
|
void RenderSwooshes();
|
||||||
void Render();
|
void Render();
|
||||||
|
void CalculateFractal(s32, s32, float, float);
|
||||||
|
void CalculatePoints();
|
||||||
void SetOrientation(const zeus::CTransform&);
|
void SetOrientation(const zeus::CTransform&);
|
||||||
void SetTranslation(const zeus::CVector3f&);
|
void SetTranslation(const zeus::CVector3f&);
|
||||||
void SetGlobalOrientation(const zeus::CTransform&);
|
void SetGlobalOrientation(const zeus::CTransform&);
|
||||||
|
|
Loading…
Reference in New Issue