World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Структура IconFrameTable

#include <IconFrameTable.h>

+ Граф связей класса IconFrameTable:

Открытые члены

 IconFrameTable ()
 
IconGetIcon (unsigned int idx)
 
IconGetIcon (const char *pIconName)
 
unsigned int FindIcon (const char *pIconName)
 
IconGetFrame (unsigned int uIconID, unsigned int frame_time)
 
void InitializeAnimation (unsigned int uIconID)
 
void ToFile ()
 
void FromFile (void *data_mm6, void *data_mm7, void *data_mm8)
 
int FromFileTxt (const char *Args)
 

Открытые атрибуты

unsigned int uNumIcons
 
IconpIcons
 

Подробное описание

См. определение в файле IconFrameTable.h строка 51

Конструктор(ы)

◆ IconFrameTable()

IconFrameTable::IconFrameTable ( )
inline

См. определение в файле IconFrameTable.h строка 52

52 : uNumIcons(0), pIcons(nullptr) {}

Методы

◆ GetIcon() [1/2]

Icon * IconFrameTable::GetIcon ( unsigned int  idx)

См. определение в файле IconFrameTable.cpp строка 17

17  {
18  if (idx < this->uNumIcons) return &this->pIcons[idx];
19  return nullptr;
20 }

Перекрестные ссылки pIcons и uNumIcons.

Используется в CastSpellInfoHelpers::_427E01_cast_spell(), UIAnimation_MM7::Deserialize(), Engine::SecondaryInitialization(), SpellFxRenderer::SetPlayerBuffAnim(), SetUserInterface() и stru262_TurnBased::Start().

+ Граф вызова функции:

◆ GetIcon() [2/2]

Icon * IconFrameTable::GetIcon ( const char *  pIconName)

См. определение в файле IconFrameTable.cpp строка 22

22  {
23  for (unsigned int i = 0; i < this->uNumIcons; i++) {
24  if (!_stricmp(pIconName, this->pIcons[i].GetAnimationName()))
25  return &this->pIcons[i];
26  }
27  return nullptr;
28 }

Перекрестные ссылки pIcons и uNumIcons.

◆ FindIcon()

unsigned int IconFrameTable::FindIcon ( const char *  pIconName)

См. определение в файле IconFrameTable.cpp строка 31

31  {
32  for (uint i = 0; i < (signed int)this->uNumIcons; i++) {
33  if (!_stricmp(pIconName, this->pIcons[i].GetAnimationName())) return i;
34  }
35  return 0;
36 }

Перекрестные ссылки pIcons и uNumIcons.

Используется в InitializeTurnBasedAnimations(), SpellFxRenderer::LoadAnimations(), LoadPartyBuffIcons(), SpellFxRenderer::SetPlayerBuffAnim() и UI_Create().

+ Граф вызова функции:

◆ GetFrame()

Icon * IconFrameTable::GetFrame ( unsigned int  uIconID,
unsigned int  frame_time 
)

См. определение в файле IconFrameTable.cpp строка 39

39  {
40  // int v6; // edx@3
41  uint i;
42 
43  if (this->pIcons[uIconID].uFlags & 1 &&
44  this->pIcons[uIconID].GetAnimLength() != 0) {
45  uint t = frame_time;
46 
47  t = (t /*/ 8*/) %
48  (unsigned __int16)this->pIcons[uIconID].GetAnimLength();
49  t /= 8;
50  for (i = uIconID; t > this->pIcons[i].GetAnimTime(); i++)
51  t -= this->pIcons[i].GetAnimTime();
52  return &this->pIcons[i];
53  } else {
54  return &this->pIcons[uIconID];
55  }
56 }

Перекрестные ссылки Icon::GetAnimLength(), Icon::GetAnimTime() и pIcons.

Используется в GUIProgressBar::Draw(), SpellFxRenderer::DrawPlayerBuffAnims(), OtherOverlayList::DrawTurnBasedIcon(), GameUI_DrawHiredNPCs(), GameUI_DrawPartySpells(), GameUI_DrawTorchlightAndWizardEye() и GUIWindow_PartyCreation::Update().

+ Граф вызовов:
+ Граф вызова функции:

◆ InitializeAnimation()

void IconFrameTable::InitializeAnimation ( unsigned int  uIconID)

См. определение в файле IconFrameTable.cpp строка 59

59  {
60  if (uIconID && (signed int)uIconID <= (signed int)this->uNumIcons) {
61  for (uint i = uIconID;; ++i) {
62  if (!(this->pIcons[i].uFlags & 1)) {
63  break;
64  }
65  }
66  }
67 }

Перекрестные ссылки pIcons и uNumIcons.

Используется в InitializeTurnBasedAnimations(), SpellFxRenderer::LoadAnimations(), Engine::SecondaryInitialization(), SetUserInterface() и UI_Create().

+ Граф вызова функции:

◆ ToFile()

void IconFrameTable::ToFile ( )

См. определение в файле IconFrameTable.cpp строка 70

70  {
71  // IconFrameTable *v1; // esi@1
72  FILE *v2; // eax@1
73  // FILE *v3; // edi@1
74 
75  // IconFrameTable* Str = this;
76 
77  // v1 = Str;
78  v2 = fopen("data\\dift.bin", "wb");
79  // v3 = v2;
80  if (!v2) Error("Unable to save dift.bin!");
81  fwrite(this, 4, 1, v2);
82  fwrite(this->pIcons, 0x20u, this->uNumIcons, v2);
83  fclose(v2);
84 }

Перекрестные ссылки pIcons и uNumIcons.

◆ FromFile()

void IconFrameTable::FromFile ( void data_mm6,
void data_mm7,
void data_mm8 
)

См. определение в файле IconFrameTable.cpp строка 87

87  {
88  uint num_mm6_frames = data_mm6 ? *(int *)data_mm6 : 0,
89  num_mm7_frames = data_mm7 ? *(int *)data_mm7 : 0,
90  num_mm8_frames = data_mm8 ? *(int *)data_mm8 : 0;
91 
92  uNumIcons = num_mm6_frames + num_mm7_frames + num_mm8_frames;
93  Assert(uNumIcons);
94  Assert(!num_mm6_frames);
95  Assert(!num_mm8_frames);
96 
98  (IconFrame_MM7 *)malloc(uNumIcons * sizeof(IconFrame_MM7));
99  if (pIcons == nullptr) {
100  logger->Warning(L"Malloc error");
101  Error("Malloc"); // is this recoverable
102  }
103 
104  memcpy(pIcons, (char *)data_mm7 + 4,
105  num_mm7_frames * sizeof(IconFrame_MM7));
106  // memcpy(pIcons + num_mm7_frames, (char *)data_mm6 + 4,
107  // num_mm6_frames * sizeof(IconFrame_MM7)); memcpy(pIcons + num_mm6_frames +
108  // num_mm7_frames, (char *)data_mm8 + 4, num_mm8_frames *
109  // sizeof(IconFrame_MM7));
110 
111  this->pIcons = new Icon[uNumIcons];
112  for (unsigned int i = 0; i < uNumIcons; ++i) {
113  pIcons[i].Deserialize(&this->pIcons[i]);
114 
115  this->pIcons[i].id = i;
116  }
117 }

Перекрестные ссылки logger, pIcons, uNumIcons и Log::Warning().

Используется в Engine::MM7_Initialize().

+ Граф вызовов:
+ Граф вызова функции:

◆ FromFileTxt()

int IconFrameTable::FromFileTxt ( const char *  Args)

Данные класса

◆ uNumIcons

unsigned int IconFrameTable::uNumIcons

См. определение в файле IconFrameTable.h строка 64

Используется в FindIcon(), FromFile(), GameUI_DrawHiredNPCs(), GetIcon(), InitializeAnimation() и ToFile().

◆ pIcons

Icon* IconFrameTable::pIcons

См. определение в файле IconFrameTable.h строка 65

Используется в FindIcon(), FromFile(), GameUI_DrawHiredNPCs(), GetFrame(), GetIcon(), InitializeAnimation() и ToFile().


Объявления и описания членов структур находятся в файлах:
Icon::GetAnimLength
unsigned int GetAnimLength() const
Definition: IconFrameTable.h:20
IconFrameTable::uNumIcons
unsigned int uNumIcons
Definition: IconFrameTable.h:64
Log::Warning
void Warning(const wchar_t *pFormat,...)
Definition: Log.cpp:28
IconFrameTable::pIcons
Icon * pIcons
Definition: IconFrameTable.h:65
IconFrame_MM7
Definition: LegacyImages.h:562
t
GLdouble GLdouble t
Definition: SDL_opengl.h:2071
Icon
Definition: IconFrameTable.h:8
v2
GLfloat GLfloat GLfloat v2
Definition: SDL_opengl_glext.h:695
uint
unsigned int uint
Definition: MM7.h:4
Icon::GetAnimTime
unsigned int GetAnimTime() const
Definition: IconFrameTable.h:25
logger
Log * logger
Definition: IocContainer.cpp:47