CMetaTrans suite, sans VGetTransitionTree (#30)

This commit is contained in:
First Last
2025-12-15 12:29:04 -08:00
committed by GitHub
parent 98395fdeb3
commit 8a3178c72c
13 changed files with 229 additions and 15 deletions
+7 -7
View File
@@ -17773,8 +17773,8 @@ lbl_803D6D68 = .rodata:0x803D6D68; // type:object size:0x8
lbl_803D6D70 = .rodata:0x803D6D70; // type:object size:0x8
lbl_803D6D78 = .rodata:0x803D6D78; // type:object size:0x8
@stringBase0 = .rodata:0x803D6D80; // type:object size:0x8 scope:local data:string_table
lbl_803D6D88 = .rodata:0x803D6D88; // type:object size:0x8
lbl_803D6D90 = .rodata:0x803D6D90; // type:object size:0x8
@stringBase0 = .rodata:0x803D6D88; // type:object size:0x8 scope:local data:string_table
@stringBase0 = .rodata:0x803D6D90; // type:object size:0x8 scope:local data:string_table
lbl_803D6D98 = .rodata:0x803D6D98; // type:object size:0x8
lbl_803D6DA0 = .rodata:0x803D6DA0; // type:object size:0x8
lbl_803D6DA8 = .rodata:0x803D6DA8; // type:object size:0x8
@@ -18056,7 +18056,7 @@ lbl_803D9C2C = .data:0x803D9C2C; // type:object size:0xC
lbl_803D9C38 = .data:0x803D9C38; // type:object size:0xC
__vt__10IVParamObj = .data:0x803D9C44; // type:object size:0xC scope:global
lbl_803D9C50 = .data:0x803D9C50; // type:object size:0x20
lbl_803D9C70 = .data:0x803D9C70; // type:object size:0x18
__vt__10IMetaTrans = .data:0x803D9C70; // type:object size:0x18
lbl_803D9C88 = .data:0x803D9C88; // type:object size:0x20
lbl_803D9CA8 = .data:0x803D9CA8; // type:object size:0x10
__vt__12CTweakPlayer = .data:0x803D9CB8; // type:object size:0xC scope:weak
@@ -18677,10 +18677,10 @@ lbl_803ECD10 = .data:0x803ECD10; // type:object size:0x20
__vt__13CMetaAnimPlay = .data:0x803ECD30; // type:object size:0x20
__vt__15CMetaAnimRandom = .data:0x803ECD50; // type:object size:0x20
__vt__17CMetaAnimSequence = .data:0x803ECD70; // type:object size:0x20
lbl_803ECD90 = .data:0x803ECD90; // type:object size:0x18
lbl_803ECDA8 = .data:0x803ECDA8; // type:object size:0x18
lbl_803ECDC0 = .data:0x803ECDC0; // type:object size:0x18
lbl_803ECDD8 = .data:0x803ECDD8; // type:object size:0x18
__vt__18CMetaTransMetaAnim = .data:0x803ECD90; // type:object size:0x18
__vt__20CMetaTransPhaseTrans = .data:0x803ECDA8; // type:object size:0x18
__vt__14CMetaTransSnap = .data:0x803ECDC0; // type:object size:0x18
__vt__15CMetaTransTrans = .data:0x803ECDD8; // type:object size:0x18
__vt__9IMetaAnim = .data:0x803ECDF0; // type:object size:0x20
__vt__Q211CSfxManager11CSfxWrapper = .data:0x803ECE10; // type:object size:0x64
__vt__71TObjOwnerDerivedFromIObj<Q24rstl36vector<s,Q24rstl17rmemory_allocator>> = .data:0x803ECE74; // type:object size:0xC
+6 -6
View File
@@ -17811,7 +17811,7 @@ lbl_803D6F48 = .rodata:0x803D6F48; // type:object size:0x8
lbl_803D6F50 = .rodata:0x803D6F50; // type:object size:0x8
lbl_803D6F58 = .rodata:0x803D6F58; // type:object size:0x8
lbl_803D6F60 = .rodata:0x803D6F60; // type:object size:0x8
lbl_803D6F68 = .rodata:0x803D6F68; // type:object size:0x8
@stringBase0 = .rodata:0x803D6F68; // type:object size:0x8 scope:local data:string_table
lbl_803D6F70 = .rodata:0x803D6F70; // type:object size:0x8
lbl_803D6F78 = .rodata:0x803D6F78; // type:object size:0x8
lbl_803D6F80 = .rodata:0x803D6F80; // type:object size:0x8
@@ -18094,7 +18094,7 @@ lbl_803D9E0C = .data:0x803D9E0C; // type:object size:0xC
lbl_803D9E18 = .data:0x803D9E18; // type:object size:0xC
__vt__10IVParamObj = .data:0x803D9E24; // type:object size:0xC
lbl_803D9E30 = .data:0x803D9E30; // type:object size:0x20
lbl_803D9E50 = .data:0x803D9E50; // type:object size:0x18
__vt__10IMetaTrans = .data:0x803D9E50; // type:object size:0x18
lbl_803D9E68 = .data:0x803D9E68; // type:object size:0x20
lbl_803D9E88 = .data:0x803D9E88; // type:object size:0x10
__vt__12CTweakPlayer = .data:0x803D9E98; // type:object size:0xC scope:weak
@@ -18711,10 +18711,10 @@ lbl_803ECEF0 = .data:0x803ECEF0; // type:object size:0x20
__vt__13CMetaAnimPlay = .data:0x803ECF10; // type:object size:0x20
__vt__15CMetaAnimRandom = .data:0x803ECF30; // type:object size:0x20
__vt__17CMetaAnimSequence = .data:0x803ECF50; // type:object size:0x20
lbl_803ECF70 = .data:0x803ECF70; // type:object size:0x18
lbl_803ECF88 = .data:0x803ECF88; // type:object size:0x18
lbl_803ECFA0 = .data:0x803ECFA0; // type:object size:0x18
lbl_803ECFB8 = .data:0x803ECFB8; // type:object size:0x18
__vt__18CMetaTransMetaAnim = .data:0x803ECF70; // type:object size:0x18
__vt__20CMetaTransPhaseTrans = .data:0x803ECF88; // type:object size:0x18
__vt__14CMetaTransSnap = .data:0x803ECFA0; // type:object size:0x18
__vt__15CMetaTransTrans = .data:0x803ECFB8; // type:object size:0x18
__vt__9IMetaAnim = .data:0x803ECFD0; // type:object size:0x20
lbl_803ECFF0 = .data:0x803ECFF0; // type:object size:0x64
lbl_803ED054 = .data:0x803ED054; // type:object size:0xC
+2 -2
View File
@@ -878,10 +878,10 @@ config.libs = [
Object(NonMatching, "Kyoto/Animation/CMetaAnimPlay.cpp"),
Object(NonMatching, "Kyoto/Animation/CMetaAnimRandom.cpp"),
Object(NonMatching, "Kyoto/Animation/CMetaAnimSequence.cpp"),
Object(NonMatching, "Kyoto/Animation/CMetaTransFactory.cpp"),
Object(Matching, "Kyoto/Animation/CMetaTransFactory.cpp"),
Object(NonMatching, "Kyoto/Animation/CMetaTransMetaAnim.cpp"),
Object(NonMatching, "Kyoto/Animation/CMetaTransPhaseTrans.cpp"),
Object(NonMatching, "Kyoto/Animation/CMetaTransSnap.cpp"),
Object(Matching, "Kyoto/Animation/CMetaTransSnap.cpp"),
Object(NonMatching, "Kyoto/Animation/CMetaTransTrans.cpp"),
Object(MatchingFor("GM8E01_00", "GM8E01_01"), "Kyoto/Animation/CPASAnimInfo.cpp"),
Object(MatchingFor("GM8E01_00", "GM8E01_01"), "Kyoto/Animation/CPASAnimParm.cpp"),
@@ -0,0 +1,24 @@
#ifndef _CMETATRANSMETAANIM
#define _CMETATRANSMETAANIM
#include "Kyoto/Animation/IMetaTrans.hpp"
#include "rstl/rc_ptr.hpp"
class IMetaAnim;
class CInputStream;
class COutputStream;
class CMetaTransMetaAnim : public IMetaTrans {
rstl::rc_ptr< IMetaAnim > x4_metaAnim;
public:
explicit CMetaTransMetaAnim(CInputStream& in);
EMetaTransType GetType() const override { return kMTT_MetaAnim; }
rstl::rc_ptr< CAnimTreeNode > VGetTransitionTree(const rstl::ncrc_ptr< CAnimTreeNode >& a,
const rstl::ncrc_ptr< CAnimTreeNode >& b,
const CAnimSysContext& animSys) const override;
void WriteTransData(COutputStream&) const override;
};
#endif // _CMETATRANSMETAANIM
@@ -0,0 +1,24 @@
#ifndef _CMETATRANSPHASETRANS
#define _CMETATRANSPHASETRANS
#include "Kyoto/Animation/CCharAnimTime.hpp"
#include "Kyoto/Animation/IMetaTrans.hpp"
class CMetaTransPhaseTrans : public IMetaTrans {
CCharAnimTime x4_transDur;
bool xc_;
bool xd_runA;
uint x10_flags;
public:
explicit CMetaTransPhaseTrans(CInputStream& in);
EMetaTransType GetType() const override { return kMTT_PhaseTrans; }
rstl::rc_ptr< CAnimTreeNode > VGetTransitionTree(const rstl::ncrc_ptr< CAnimTreeNode >& a,
const rstl::ncrc_ptr< CAnimTreeNode >& b,
const CAnimSysContext& animSys) const override;
void WriteTransData(COutputStream&) const override;
};
#endif // _CMETATRANSPHASETRANS
@@ -0,0 +1,17 @@
#ifndef _CMETATRANSSNAP
#define _CMETATRANSSNAP
#include "Kyoto/Animation/IMetaTrans.hpp"
class CMetaTransSnap : public IMetaTrans {
public:
EMetaTransType GetType() const override { return kMTT_Snap; }
rstl::rc_ptr< CAnimTreeNode > VGetTransitionTree(const rstl::ncrc_ptr< CAnimTreeNode >& a,
const rstl::ncrc_ptr< CAnimTreeNode >& b,
const CAnimSysContext& animSys) const override;
void WriteTransData(COutputStream&) const override;
};
#endif // _CMETATRANSSNAP
@@ -0,0 +1,28 @@
#ifndef _CMETATRANSTRANS
#define _CMETATRANSTRANS
#include "Kyoto/Animation/CCharAnimTime.hpp"
#include "Kyoto/Animation/IMetaTrans.hpp"
#include "rstl/rc_ptr.hpp"
class IMetaAnim;
class CInputStream;
class COutputStream;
class CMetaTransTrans : public IMetaTrans {
CCharAnimTime x4_transDur;
bool xc_;
bool xd_runA;
u32 x10_flags;
public:
explicit CMetaTransTrans(CInputStream& in);
EMetaTransType GetType() const override { return kMTT_Trans; }
rstl::rc_ptr< CAnimTreeNode > VGetTransitionTree(const rstl::ncrc_ptr< CAnimTreeNode >& a,
const rstl::ncrc_ptr< CAnimTreeNode >& b,
const CAnimSysContext& animSys) const override;
void WriteTransData(COutputStream&) const override;
};
#endif // _CMETATRANSTRANS
+30
View File
@@ -0,0 +1,30 @@
#ifndef _IMETATRANS
#define _IMETATRANS
#include "rstl/rc_ptr.hpp"
class CAnimTreeNode;
class CAnimSysContext;
class COutputStream;
enum EMetaTransType { kMTT_MetaAnim, kMTT_Trans, kMTT_PhaseTrans, kMTT_Snap };
class IMetaTrans {
public:
virtual ~IMetaTrans() {}
virtual rstl::rc_ptr< CAnimTreeNode >
VGetTransitionTree(const rstl::ncrc_ptr< CAnimTreeNode >& a,
const rstl::ncrc_ptr< CAnimTreeNode >& b,
const CAnimSysContext& animSys) const = 0;
virtual EMetaTransType GetType() const = 0;
virtual void WriteTransData(COutputStream&) const;
rstl::rc_ptr< CAnimTreeNode > GetTransitionTree(const rstl::ncrc_ptr< CAnimTreeNode >& a,
const rstl::ncrc_ptr< CAnimTreeNode >& b,
const CAnimSysContext& animSys) {
return VGetTransitionTree(a, b, animSys);
}
};
#endif // _IMETATRANS
+24
View File
@@ -0,0 +1,24 @@
#include "Kyoto/Animation/CMetaTransFactory.hpp"
#include "Kyoto/Alloc/CMemory.hpp"
#include "Kyoto/Animation/CMetaTransMetaAnim.hpp"
#include "Kyoto/Animation/CMetaTransPhaseTrans.hpp"
#include "Kyoto/Animation/CMetaTransSnap.hpp"
#include "Kyoto/Animation/CMetaTransTrans.hpp"
#include "Kyoto/Animation/IMetaTrans.hpp"
#include "Kyoto/Streams/CInputStream.hpp"
rstl::rc_ptr< IMetaTrans > CMetaTransFactory::CreateMetaTrans(CInputStream& in) {
EMetaTransType type = static_cast< EMetaTransType >(in.ReadLong());
switch (type) {
case kMTT_MetaAnim:
return rs_new CMetaTransMetaAnim(in);
case kMTT_Trans:
return rs_new CMetaTransTrans(in);
case kMTT_PhaseTrans:
return rs_new CMetaTransPhaseTrans(in);
case kMTT_Snap:
return rs_new CMetaTransSnap;
default:
return rstl::rc_ptr< IMetaTrans >();
}
}
@@ -0,0 +1,15 @@
#include "Kyoto/Animation/CMetaTransMetaAnim.hpp"
#include "Kyoto/Animation/CMetaAnimFactory.hpp"
#include "Kyoto/Animation/IMetaAnim.hpp"
#include "Kyoto/Streams/CInputStream.hpp"
#include "Kyoto/Streams/COutputStream.hpp"
CMetaTransMetaAnim::CMetaTransMetaAnim(CInputStream& in)
: x4_metaAnim(CMetaAnimFactory::CreateMetaAnim(in)) {}
rstl::rc_ptr< CAnimTreeNode >
CMetaTransMetaAnim::VGetTransitionTree(const rstl::ncrc_ptr< CAnimTreeNode >& a,
const rstl::ncrc_ptr< CAnimTreeNode >& b,
const CAnimSysContext& animSys) const {}
void CMetaTransMetaAnim::WriteTransData(COutputStream& out) const { x4_metaAnim->PutTo(out); }
@@ -0,0 +1,21 @@
#include "Kyoto/Animation/CMetaTransPhaseTrans.hpp"
#include "Kyoto/Streams/CInputStream.hpp"
#include "Kyoto/Streams/COutputStream.hpp"
CMetaTransPhaseTrans::CMetaTransPhaseTrans(CInputStream& in)
: x4_transDur(CCharAnimTime(in))
, xc_(in.ReadBool())
, xd_runA(in.ReadBool())
, x10_flags(in.ReadLong()) {}
rstl::rc_ptr< CAnimTreeNode >
CMetaTransPhaseTrans::VGetTransitionTree(const rstl::ncrc_ptr< CAnimTreeNode >& a,
const rstl::ncrc_ptr< CAnimTreeNode >& b,
const CAnimSysContext& animSys) const {}
void CMetaTransPhaseTrans::WriteTransData(COutputStream& out) const {
x4_transDur.PutTo(out);
out.WriteChar(bool(xc_));
out.WriteChar(bool(xd_runA));
out.WriteLong(x10_flags);
}
+10
View File
@@ -0,0 +1,10 @@
#include "Kyoto/Animation/CMetaTransSnap.hpp"
rstl::rc_ptr< CAnimTreeNode >
CMetaTransSnap::VGetTransitionTree(const rstl::ncrc_ptr< CAnimTreeNode >& a,
const rstl::ncrc_ptr< CAnimTreeNode >& b,
const CAnimSysContext& animSys) const {
return b;
}
void CMetaTransSnap::WriteTransData(COutputStream& out) const {}
+21
View File
@@ -0,0 +1,21 @@
#include "Kyoto/Animation/CMetaTransTrans.hpp"
#include "Kyoto/Streams/CInputStream.hpp"
#include "Kyoto/Streams/COutputStream.hpp"
CMetaTransTrans::CMetaTransTrans(CInputStream& in)
: x4_transDur(CCharAnimTime(in))
, xc_(in.ReadBool())
, xd_runA(in.ReadBool())
, x10_flags(in.ReadLong()) {}
rstl::rc_ptr< CAnimTreeNode >
CMetaTransTrans::VGetTransitionTree(const rstl::ncrc_ptr< CAnimTreeNode >& a,
const rstl::ncrc_ptr< CAnimTreeNode >& b,
const CAnimSysContext& animSys) const {}
void CMetaTransTrans::WriteTransData(COutputStream& out) const {
x4_transDur.PutTo(out);
out.WriteChar(bool(xc_));
out.WriteChar(bool(xd_runA));
out.WriteLong(x10_flags);
}