forked from derandark/DungeonViewerAC
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Animation.h
94 lines (70 loc) · 2.15 KB
/
Animation.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 "ObjCache.h"
#include "DLListBase.h"
class CAnimation;
class AFrame;
class AnimFrame;
class AnimData : public PackObj
{
public:
AnimData();
~AnimData();
ULONG pack_size();
BOOL UnPack(BYTE **ppData, ULONG iSize);
DWORD m_AnimID; // 0x04
long m_LowFrame; // 0x08
long m_HighFrame; // 0x0C
float m_PlaySpeed; // 0x10
};
class AnimSequenceNode : public PackObj, public DLListNode
{
public:
AnimSequenceNode();
AnimSequenceNode(AnimData *pAnimData);
virtual ~AnimSequenceNode();
ULONG pack_size();
BOOL UnPack(BYTE **ppData, ULONG iSize);
float get_framerate();
void multiply_framerate(float fRate);
BOOL has_anim();
long get_low_frame();
long get_high_frame();
float get_starting_frame();
float get_ending_frame();
void set_animation_id(DWORD AnimID);
AnimFrame *get_part_frame(long index);
AFrame *get_pos_frame(long index);
AnimSequenceNode *GetNext();
AnimSequenceNode *GetPrev();
//private:
// DLListNode inherited..
// AnimSequenceNode *m_pNext; // 0x04
// AnimSequenceNode *m_pPrev; // 0x08
CAnimation *m_pAnimation; // 0x0C
float m_fFrameRate; // 0x10
long m_LowFrame; // 0x14
long m_HighFrame; // 0x18
};
class CAnimation : public DBObj
{
public:
CAnimation();
virtual ~CAnimation();
static DBObj *Allocator();
static void Destroyer(DBObj *pAnimation);
static CAnimation *Get(DWORD ID);
static void Release(CAnimation *pAnimation);
void Destroy();
BOOL UnPack(BYTE **ppData, ULONG iSize);
// Inherited from unknown class?
DWORD m_dw18;
DWORD m_dw1C;
DWORD m_dw20;
DWORD m_dw24;
// CAnimation members..
AFrame *m_pAFrames; // 0x1C / 0x28
AnimFrame *m_pAnimFrames; // 0x20 / 0x2C
BOOL m_bFlag2; // 0x24 / 0x30
DWORD m_PartCount; // 0x28 / 0x34
DWORD m_FrameCount; // 0x2C / 0x38
};