OpenBarnyard
 
Loading...
Searching...
No Matches
TKeyframeLibrary.cpp
Go to the documentation of this file.
1#include "ToshiPCH.h"
2#include "TAnimation.h"
3
4//-----------------------------------------------------------------------------
5// Enables memory debugging.
6// Note: Should be the last include!
7//-----------------------------------------------------------------------------
9
11
12TKeyframeLibrary::TKeyframeLibrary()
13{
14 m_szName[ 0 ] = '\0';
15 m_iReferenceCount = 0;
16 m_iNumTranslations = 0;
17 m_iNumQuaternions = 0;
18 m_iNumScales = 0;
19 m_iTranslationSize = 0;
20 m_iQuaternionSize = 0;
21 m_iScaleSize = 0;
22 m_pTranslations = TNULL;
23 m_pQuaternions = TNULL;
24 m_pScales = TNULL;
25 m_pTRB = TNULL;
26}
27
29{
30 TASSERT( m_iReferenceCount == 0 );
31
32 if ( m_pTRB )
33 {
34 m_pTRB->Close();
35 delete m_pTRB;
36 m_pTRB = TNULL;
37 }
38
39 delete this;
40}
41
42// $Barnyard: FUNCTION 006ca600
43TKeyframeLibrary* TKeyframeLibrary::CreateFromTRB( TTRB* a_pTRB, const TCHAR* a_szSymbolName )
44{
45 TVALIDPTR( a_pTRB );
46 TVALIDPTR( a_szSymbolName );
47
48 TKeyframeLibrary* pLibrary = new TKeyframeLibrary;
49 TRBHeader* pTRBHeader = TSTATICCAST( TRBHeader, a_pTRB->GetSymbolAddress( a_szSymbolName ) );
50
51 TSIZE iNameLen = TStringManager::String8Length( pTRBHeader->m_szName );
52 pLibrary->m_iNameLength = TUINT8( iNameLen );
53
54 TStringManager::String8Copy( pLibrary->m_szName, pTRBHeader->m_szName, TMath::Min( iNameLen, sizeof( pLibrary->m_szName ) ) );
55 pLibrary->m_iReferenceCount = 0;
56 pLibrary->m_SomeVector = pTRBHeader->m_SomeVector;
57 pLibrary->m_iNumTranslations = pTRBHeader->m_iNumTranslations;
58 pLibrary->m_iNumQuaternions = pTRBHeader->m_iNumQuaternions;
59 pLibrary->m_iNumScales = pTRBHeader->m_iNumScales;
60 pLibrary->m_iTranslationSize = pTRBHeader->m_iTranslationSize;
61 pLibrary->m_iQuaternionSize = pTRBHeader->m_iQuaternionSize;
62 pLibrary->m_iScaleSize = pTRBHeader->m_iScaleSize;
63 pLibrary->m_pTranslations = pTRBHeader->m_pTranslations;
64 pLibrary->m_pQuaternions = pTRBHeader->m_pQuaternions;
65 pLibrary->m_pScales = pTRBHeader->m_pScales;
66
67 return pLibrary;
68}
69
#define TASSERT(X,...)
Definition Defines.h:138
#define TSTATICCAST(POINTERTYPE, VALUE)
Definition Defines.h:69
#define TOSHI_NAMESPACE_START
Definition Defines.h:47
#define TOSHI_NAMESPACE_END
Definition Defines.h:50
#define TVALIDPTR(PTR)
Definition Defines.h:139
size_t TSIZE
Definition Typedefs.h:9
char TCHAR
Definition Typedefs.h:20
uint8_t TUINT8
Definition Typedefs.h:17
#define TNULL
Definition Typedefs.h:23
TFORCEINLINE const T & Min(const T &a, const T &b)
Definition TTRB.h:253
void * GetSymbolAddress(const TCHAR *symbName)
Definition TTRB.cpp:251
static TKeyframeLibrary * CreateFromTRB(TTRB *a_pTRB, const TCHAR *a_szSymbolName)
TAnimQuaternion * m_pQuaternions
Definition TAnimation.h:111
TAnimVector * m_pTranslations
Definition TAnimation.h:110
static TSIZE String8Length(const TCHAR *str)
static TCHAR * String8Copy(TCHAR *dst, const TCHAR *src, TSIZE size=-1)