World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
IconFrameTable.h
См. документацию.
1 #pragma once
2 
3 #include <array>
4 #include <cstring>
5 
6 class Texture;
7 
8 class Icon {
9  public:
10  inline Icon() : img(nullptr) {}
11 
12  inline void SetAnimationName(const char *name) {
13  strcpy(this->anim_name, name);
14  }
15  inline const char *GetAnimationName() const { return anim_name; }
16 
17  inline void SetAnimLength(unsigned int anim_length) {
18  this->anim_length = anim_length;
19  }
20  inline unsigned int GetAnimLength() const { return this->anim_length; }
21 
22  inline void SetAnimTime(unsigned int anim_time) {
23  this->anim_time = anim_time;
24  }
25  inline unsigned int GetAnimTime() const { return this->anim_time; }
26 
28 
30  /* 00C */ char pTextureName[12];
33  /* 01C */ int16_t uFlags;
35  int id;
36 
37  protected:
38  char anim_name[64];
39  // char texture_name[64];
40  // unsigned int anim_time;
41  unsigned int anim_length;
42  unsigned int anim_time;
43  // unsigned int flags;
44  // unsigned int texture_id;
45 
47 };
48 
49 /* 45 */
50 #pragma pack(push, 1)
52  inline IconFrameTable() : uNumIcons(0), pIcons(nullptr) {}
53 
54  Icon *GetIcon(unsigned int idx);
55  Icon *GetIcon(const char *pIconName);
56  unsigned int FindIcon(const char *pIconName);
57  Icon *GetFrame(unsigned int uIconID, unsigned int frame_time);
58  void InitializeAnimation(unsigned int uIconID);
59  void ToFile();
60  void FromFile(void *data_mm6, void *data_mm7, void *data_mm8);
61  int FromFileTxt(const char *Args);
62  // int GetIconAnimLength(unsigned int uIconID);
63 
64  unsigned int uNumIcons;
66 };
67 #pragma pack(pop)
68 
69 class UIAnimation {
70  public:
71  class Icon *icon;
72 
73  /* 002 */ int16_t field_2;
74  /* 004 */ int16_t uAnimTime;
75  /* 006 */ int16_t uAnimLength;
76  /* 008 */ int16_t x;
77  /* 00A */ int16_t y;
78  /* 00C */ char field_C;
79 };
80 
81 extern struct IconFrameTable *pIconsFrameTable;
82 
87 
88 extern std::array<UIAnimation *, 4> pUIAnims;
Icon::SetAnimationName
void SetAnimationName(const char *name)
Definition: IconFrameTable.h:12
int16_t
signed __int16 int16_t
Definition: SDL_config.h:36
IconFrameTable::InitializeAnimation
void InitializeAnimation(unsigned int uIconID)
Definition: IconFrameTable.cpp:59
Icon::GetAnimationName
const char * GetAnimationName() const
Definition: IconFrameTable.h:15
IconFrameTable::FromFile
void FromFile(void *data_mm6, void *data_mm7, void *data_mm8)
Definition: IconFrameTable.cpp:87
Icon::GetAnimLength
unsigned int GetAnimLength() const
Definition: IconFrameTable.h:20
Texture
Definition: Texture.h:4
pUIAnum_Torchlight
UIAnimation * pUIAnum_Torchlight
Definition: Party.cpp:48
Icon::id
int id
Definition: IconFrameTable.h:35
Icon::SetAnimLength
void SetAnimLength(unsigned int anim_length)
Definition: IconFrameTable.h:17
IconFrameTable
Definition: IconFrameTable.h:51
pUIAnim_Gold
UIAnimation * pUIAnim_Gold
Definition: Party.cpp:47
Icon::GetTexture
Texture * GetTexture()
Definition: IconFrameTable.cpp:9
Icon::uFlags
int16_t uFlags
Definition: IconFrameTable.h:33
pUIAnim_Food
UIAnimation * pUIAnim_Food
Definition: Party.cpp:46
IconFrameTable::uNumIcons
unsigned int uNumIcons
Definition: IconFrameTable.h:64
pIconsFrameTable
struct IconFrameTable * pIconsFrameTable
Definition: mm7_data.cpp:168
IconFrameTable::ToFile
void ToFile()
Definition: IconFrameTable.cpp:70
UIAnimation::field_C
char field_C
Definition: IconFrameTable.h:78
UIAnimation::field_2
int16_t field_2
Definition: IconFrameTable.h:73
IconFrameTable::GetIcon
Icon * GetIcon(unsigned int idx)
Definition: IconFrameTable.cpp:17
Icon::anim_length
unsigned int anim_length
Definition: IconFrameTable.h:41
UIAnimation::uAnimLength
int16_t uAnimLength
Definition: IconFrameTable.h:75
Icon::anim_time
unsigned int anim_time
Definition: IconFrameTable.h:42
UIAnimation::icon
class Icon * icon
Definition: IconFrameTable.h:71
IconFrameTable::pIcons
Icon * pIcons
Definition: IconFrameTable.h:65
Icon::pTextureName
char pTextureName[12]
Definition: IconFrameTable.h:30
Icon::SetAnimTime
void SetAnimTime(unsigned int anim_time)
Definition: IconFrameTable.h:22
IconFrameTable::FindIcon
unsigned int FindIcon(const char *pIconName)
Definition: IconFrameTable.cpp:31
UIAnimation::uAnimTime
int16_t uAnimTime
Definition: IconFrameTable.h:74
UIAnimation::x
int16_t x
Definition: IconFrameTable.h:76
IconFrameTable::GetFrame
Icon * GetFrame(unsigned int uIconID, unsigned int frame_time)
Definition: IconFrameTable.cpp:39
Icon::Icon
Icon()
Definition: IconFrameTable.h:10
UIAnimation
Definition: IconFrameTable.h:69
name
EGLImageKHR EGLint * name
Definition: SDL_egl.h:1497
Icon
Definition: IconFrameTable.h:8
UIAnimation::y
int16_t y
Definition: IconFrameTable.h:77
Icon::anim_name
char anim_name[64]
Definition: IconFrameTable.h:38
Icon::GetAnimTime
unsigned int GetAnimTime() const
Definition: IconFrameTable.h:25
IconFrameTable::IconFrameTable
IconFrameTable()
Definition: IconFrameTable.h:52
IconFrameTable::FromFileTxt
int FromFileTxt(const char *Args)
Icon::img
Texture * img
Definition: IconFrameTable.h:46
pUIAnims
std::array< UIAnimation *, 4 > pUIAnims
Definition: Party.cpp:52
img
GLint GLvoid * img
Definition: SDL_opengl.h:1980
pUIAnim_WizardEye
UIAnimation * pUIAnim_WizardEye
Definition: Party.cpp:49