-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathTurbineAnimationSet.h
91 lines (71 loc) · 1.83 KB
/
TurbineAnimationSet.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#pragma once
#include "TurbineObject.h"
struct CombatStance
{
CombatStance()
{
}
CombatStance(WORD wIndex, WORD wSeq, DWORD dwType = 0x41000003)
{
m_wIndex = wIndex;
m_wSeq = wSeq;
m_dwType = dwType;
}
WORD m_wIndex;
WORD m_wSeq;
DWORD m_dwType;
};
struct AnimationEntry
{
AnimationEntry()
{
}
AnimationEntry(DWORD dwID, DWORD dwSF, DWORD dwEF, float fSpeed, Vector vTranslation = Vector(0, 0, 0), Vector vRotation = Vector(0, 0, 0))
{
m_dwAnimID = dwID;
m_dwStartFrame = dwSF;
m_dwEndFrame = dwEF;
m_fSpeed = fSpeed;
m_vTranslation = vTranslation;
m_vRotation = vRotation;
};
DWORD m_dwAnimID;
DWORD m_dwStartFrame;
DWORD m_dwEndFrame;
float m_fSpeed;
Vector m_vTranslation;
Vector m_vRotation;
};
typedef std::list<AnimationEntry> AnimationSequence;
struct PivotMotionEntry
{
PivotMotionEntry(Vector vTranslate = Vector(0, 0, 0), Vector vRotate = Vector(0, 0, 0))
{
m_vTranslation = vTranslate;
m_vRotation = vRotate;
};
Vector m_vTranslation;
Vector m_vRotation;
};
typedef std::map<WORD, CombatStance> StanceMap;
typedef std::map<WORD, std::map<WORD, AnimationEntry>>AnimationMap;
typedef std::map<WORD, std::map<WORD, PivotMotionEntry>>PivotMotionMap;
typedef std::map<WORD, std::map<WORD, std::map<DWORD, AnimationSequence>>> SequenceMap;
class TurbineAnimationSet : public TurbineObject
{
public:
TurbineAnimationSet(DWORD dwID);
~TurbineAnimationSet();
void Initialize(BYTE *pbData, DWORD dwLength);
BYTE *InitializeCombatStances(BYTE *pbData);
BYTE *InitializeAnimations(BYTE *pbData);
BYTE *InitializeSequences(BYTE *pbData);
AnimationEntry *LookupAnimation(WORD wStance, WORD wIndex);
private:
CombatStance m_csDefault;
StanceMap m_mCombatStances;
AnimationMap m_mAnimations;
PivotMotionMap m_mPivotMotions;
SequenceMap m_mSequences;
};
typedef TurbineAnimationSet ANIMATIONSET;