mirror of
https://github.com/PrimeDecomp/prime.git
synced 2026-07-12 18:18:56 -07:00
CMetaTrans suite, sans VGetTransitionTree (#30)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
@@ -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
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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 {}
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user