World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Mouse.cpp
См. документацию.
1 #include "IO/Mouse.h"
2 
3 #include <cstdlib>
4 
5 #include "Engine/Engine.h"
7 #include "Engine/Graphics/Vis.h"
8 #include "Engine/LOD.h"
9 #include "Engine/Objects/Actor.h"
10 #include "Engine/Party.h"
12 
13 #include "GUI/GUIButton.h"
14 #include "GUI/GUIWindow.h"
15 
17 
19 
20 void Mouse::GetClickPos(unsigned int *pX, unsigned int *pY) {
21  *pX = uMouseClickX;
22  *pY = uMouseClickY;
23 }
24 
27  if (this->cursor_name != "MICON2") {
28  SetCursorImage("MICON1");
29  }
30 }
31 
32 void Mouse::SetCursorBitmapFromItemID(unsigned int uItemID) {
33  SetCursorImage(pItemsTable->pItems[uItemID].pIconName);
34 }
35 
37 
39  if (!this->bInitialized) {
40  return;
41  }
42 
43  if (this->cursor_name != name)
44  this->cursor_name = name;
45 
46  engine->SetTargetingMode(name == "MICON2");
47 
48  ClearCursor();
49  if (name == "MICON1") { // arrow
50  this->bActive = false;
51  this->field_C = 1;
52  window->SetCursor(name.c_str());
53  } else { // cursor is item or another bitmap
54  this->cursor_img = assets->GetImage_ColorKey(name, 0x7FF);
55  this->AllocCursorSystemMem();
56  this->field_C = 0;
57  this->bRedraw = true;
58  this->bActive = true;
59  }
60 }
61 
63  this->field_8 = 1;
64 
66  pt = window->TransformCursorPos(pt);
67 
68  auto v3 = pt.y;
69  auto v2 = pt.x;
70 
71  this->uMouseClickX = v2;
72  this->uMouseClickY = v3;
73 
74  if (true /*render->bWindowMode*/ &&
75  (v2 < 0 || v3 < 0 || v2 > window->GetWidth() - 1 ||
76  v3 > window->GetHeight() - 1)) {
77  this->bActive = false;
78  this->field_8 = 0;
79  }
80 
81  if (this->field_C) {
82  this->bActive = false;
83  }
84 
85  this->field_8 = 0;
86 }
87 
89  this->bActive = false;
90  free(this->pCursorBitmap_sysmem);
91  this->pCursorBitmap_sysmem = nullptr;
92  free(this->pCursorBitmap2_sysmem);
93  this->pCursorBitmap2_sysmem = nullptr;
94  free(this->ptr_90);
95  this->ptr_90 = nullptr;
96 }
97 
99  bActive = false;
104 }
105 
106 void *Mouse::DoAllocCursorMem() { return nullptr; }
107 
109  return Point(this->uMouseClickX, this->uMouseClickY);
110 }
111 
113  this->window = window;
114  this->bActive = false;
115  this->bInitialized = true;
116 
117  // this->field_8 = 0;//Ritor1: result incorrect uMouseClickX,
118  // this->uMouseClickY in _469AE4()
119  this->uCursorBitmapPitch = 0; // Ritor1: it's include
120  for (uint i = 0; i < 13; i++) this->field_5C[i] = 0;
121 
122  this->pCursorBitmapPos.x = 0;
123  this->pCursorBitmapPos.y = 0;
124  this->uMouseClickX = 0;
125  this->uMouseClickY = 0;
126  this->pCursorBitmap_sysmem = nullptr;
127  this->field_34 = 0;
128  this->pCursorBitmap2_sysmem = nullptr;
129 
130  SetCursorImage("MICON3");
131  SetCursorImage("MICON2");
132  SetCursorImage("MICON1");
133 }
134 
135 void Mouse::SetActive(bool active) { bActive = active; }
136 
138  if (bInitialized) {
139  SetActive(false);
140  }
141 }
142 
144  /*
145  if (this->bInitialized) {
146  if (!this->field_8 && this->bActive && !this->field_C) //Uninitialized
147  memory access(this->field_8) pMouse->_469AE4(); // Ritor1: странная,
148  непонятная функция this->field_F4 = 1; if (this->field_C) { this->field_F4 =
149  0; return;
150  }
151 
152  if (this->uMouseClickX < 0 || this->uMouseClickY < 0 ||
153  this->uMouseClickX > window->GetWidth() - 1 || this->uMouseClickY >
154  window->GetHeight() - 1) { this->field_F4 = 0; return;
155  }
156 
157  this->pCursorBitmapRect_x = this->uMouseClickX;
158  this->pCursorBitmapRect_w = this->uMouseClickY + this->field_5C[0];
159  //Ritor1: Maybe this->field_5C[0] - cursor width this->pCursorBitmapRect_y =
160  this->uMouseClickY; this->pCursorBitmapRect_z = this->uMouseClickX +
161  this->uCursorBitmapPitch; //Ritor1: Maybe this->uCursorBitmapPitch - cursor
162  height if (this->uMouseClickX < 0) this->pCursorBitmapRect_x = 0; if
163  (this->uMouseClickY < 0) this->pCursorBitmapRect_y = 0; if
164  (this->pCursorBitmapRect_z > window->GetWidth()) this->pCursorBitmapRect_z =
165  window->GetWidth(); if (this->pCursorBitmapRect_w > window->GetHeight())
166  this->pCursorBitmapRect_w = window->GetHeight();
167  this->bActive = false;
168  this->uCursorBitmapWidth = this->pCursorBitmapRect_z -
169  this->pCursorBitmapRect_x; this->uCursorBitmapHeight =
170  this->pCursorBitmapRect_w - this->pCursorBitmapRect_y; if (this->bRedraw) {
171  unsigned int v9 = 0;
172  if (pMouse->ptr_90) {
173  v9 = 2 * pMouse->uCursorBitmapPitch;
174  }
175 
176  Vec2_int_ point;
177  point.x = pCursorBitmapPos.x;
178  point.y = pCursorBitmapPos.y;
179 
180  Vec4_int_ rect;
181  rect.x = pCursorBitmapRect_x;
182  rect.y = pCursorBitmapRect_y;
183  rect.w = pCursorBitmapRect_w;
184  rect.z = pCursorBitmapRect_z;
185 
186  // render->_4A6DF5(pCursorBitmap_sysmem, v9, &point, &rect); //
187  срабатывает когда берём курсором вещь в инвенторе this->bRedraw = false;
188  }
189  }
190  */
191 }
192 
193 void Mouse::Activate() { bActive = true; }
194 
195 void Mouse::ClearPickedItem() { pPickedItem = nullptr; }
196 
197 void Mouse::DrawCursorToTarget() { //??? DrawCursorWithItem
198  if (pPickedItem == nullptr) {
199  return;
200  }
201  //пишем на экран курсор с вещью
202  render->DrawTextureAlphaNew(uCursorWithItemX / 640.0f,
203  uCursorWithItemY / 480.0f, pPickedItem);
204 }
205 
207  if (pParty->pPickedItem.uItemID) {
208  Image *pTexture =
210  pTexture->GetWidth();
211 
212  if ((int)uMouseClickX <= window->GetWidth() - 1 &&
213  (int)uMouseClickY <= window->GetHeight() - 1) {
214  int pTextureHeight;
215  int pTextureWidth;
216  if ((int)(pTexture->GetWidth() + uMouseClickX) <=
217  window->GetWidth())
218  pTextureWidth = pTexture->GetWidth();
219  else
220  pTextureWidth = window->GetWidth() - uMouseClickX;
221  if ((int)(pTexture->GetHeight() + uMouseClickY) <=
222  window->GetHeight())
223  pTextureHeight = pTexture->GetHeight();
224  else
225  pTextureHeight = window->GetHeight() - uMouseClickY;
226 
227  pPickedItem = pTexture;
230 
231  if (pParty->pPickedItem.IsBroken())
232  render->DrawTransparentRedShade(uMouseClickX / 640.0f,
233  uMouseClickY / 480.0f,
234  pTexture);
235  else if (!pParty->pPickedItem.IsIdentified())
236  render->DrawTransparentGreenShade(uMouseClickX / 640.0f,
237  uMouseClickY / 480.0f,
238  pTexture);
239  else
240  render->DrawTextureAlphaNew(uMouseClickX / 640.0f,
241  uMouseClickY / 480.0f,
242  pTexture);
243  }
244  } else {
245  ClearPickedItem();
246  }
247 }
248 
249 void Mouse::ChangeActivation(int a1) { this->bActive = a1; }
250 
251 void Mouse::SetMouseClick(int x, int y) {
252  uMouseClickX = x;
253  uMouseClickY = y;
254 }
255 
256 bool _507B98_ctrl_pressed = false;
257 
261  return;
262 
263  if (pGUIWindow2 && pGUIWindow2->ptr_1C == (void *)33) {
264  sub_4452BB();
265  return;
266  }
267 
268  unsigned int x = 0;
269  unsigned int y = 0;
270  GetClickPos(&x, &y);
271 
273  !OS_IfCtrlPressed() || !pViewport->Contains(x, y)) {
274  for (GUIWindow *win : lWindowList) {
275  if (win->Contains(x, y)) {
276  for (GUIButton *control : win->vButtons) {
277  if (control->uButtonType == 1) {
278  if (control->Contains(x, y)) {
279  control->field_2C_is_pushed = true;
281  pMessageQueue_50CBD0->AddGUIMessage(
282  control->msg, control->msg_param, 0);
283  return;
284  }
285  continue;
286  }
287  if (control->uButtonType ==
288  2) { // когда нажимаешь на партреты персов
289  if ((int)sqrt(
290  (double)((x - control->uX) * (x - control->uX) +
291  (y - control->uY) *
292  (y - control->uY))) <
293  (int)control->uWidth) {
294  control->field_2C_is_pushed = true;
296  pMessageQueue_50CBD0->AddGUIMessage(
297  control->msg, control->msg_param, 0);
298  return;
299  }
300  continue;
301  }
302  if (control->uButtonType ==
303  3) { // когда нажимаешь на скиллы
304  if (control->Contains(x, y)) {
305  control->field_2C_is_pushed = true;
307  pMessageQueue_50CBD0->AddGUIMessage(
308  control->msg, control->msg_param, 0);
309  return;
310  }
311  continue;
312  }
313  }
314  }
315  }
316  return;
317  }
318 
319  int picked_object = EngineIoc::ResolveVis()->get_picked_object_zbuf_val();
320 
321  ObjectType type = PID_TYPE(picked_object);
322  if (type == OBJECT_Actor && uActiveCharacter && picked_object < 0x2000000 &&
323  pPlayers[uActiveCharacter]->CanAct() &&
324  pPlayers[uActiveCharacter]->CanSteal()) {
326  PID_ID(picked_object), 0);
327 
328  if (pParty->bTurnBasedModeOn) {
331  }
332  }
333  }
334 }
335 
336 bool UI_OnVkKeyDown(unsigned int vkKey) {
337  for (GUIWindow *win : lWindowList) {
338  if (!win->receives_keyboard_input) {
339  continue;
340  }
341 
342  switch (vkKey) {
343  case VK_LEFT: {
344  int v12 = win->field_34;
345  if (win->pCurrentPosActiveItem - win->pStartingPosActiveItem - v12 >= 0) {
346  win->pCurrentPosActiveItem -= v12;
349  // v2 = pMessageQueue_50CBD0->uNumMessages;
350  }
351  }
352  if (win->field_30 != 0) {
353  break;
354  }
355  GUIButton *pButton = win->GetControl(win->pCurrentPosActiveItem);
356  pMessageQueue_50CBD0->AddGUIMessage(pButton->msg, pButton->msg_param, 0);
357  break;
358  }
359  case VK_RIGHT: {
360  int v7 = win->pCurrentPosActiveItem + win->field_34;
361  if (v7 <
362  win->pNumPresenceButton + win->pStartingPosActiveItem) {
363  win->pCurrentPosActiveItem = v7;
366  0, -1, 0, 0);
367  // v2 = pMessageQueue_50CBD0->uNumMessages;
368  }
369  }
370  if (win->field_30 != 0) {
371  break;
372  }
373  GUIButton *pButton =
374  win->GetControl(win->pCurrentPosActiveItem);
375  pMessageQueue_50CBD0->AddGUIMessage(pButton->msg,
376  pButton->msg_param, 0);
377  break;
378  }
379  case VK_DOWN: {
380  int v17 = win->pStartingPosActiveItem;
381  int v18 = win->pCurrentPosActiveItem;
382  if (v18 >= win->pNumPresenceButton + v17 - 1)
383  win->pCurrentPosActiveItem = v17;
384  else
385  win->pCurrentPosActiveItem = v18 + 1;
386  if (win->field_30 != 0) return true;
387  GUIButton *pButton =
388  win->GetControl(win->pCurrentPosActiveItem);
389  pMessageQueue_50CBD0->AddGUIMessage(pButton->msg,
390  pButton->msg_param, 0);
391  return true;
392  }
393  case VK_SELECT: {
394  unsigned int uClickX;
395  unsigned int uClickY;
396  EngineIoc::ResolveMouse()->GetClickPos(&uClickX, &uClickY);
397  int v4 = win->pStartingPosActiveItem;
398  int v28 = v4 + win->pNumPresenceButton;
399  if (v4 < v4 + win->pNumPresenceButton) {
400  while (true) {
401  GUIButton *pButton = win->GetControl(v4);
402  if (uClickX >= pButton->uX // test for StatsTab in
403  // PlayerCreation Window
404  && uClickX <= pButton->uZ &&
405  uClickY >= pButton->uY && uClickY <= pButton->uW)
406  break;
407  ++v4;
408  if (v4 >= v28) {
409  // v1 = 0;
410  // v2 = pMessageQueue_50CBD0->uNumMessages;
411  // --i;
412  // if ( i < 0 )
413  return false;
414  // continue;
415  }
416  }
417  win->pCurrentPosActiveItem = v4;
418  return true;
419  }
420  // v2 = pMessageQueue_50CBD0->uNumMessages;
421  break;
422  }
423  case VK_UP: {
424  int v22 = win->pCurrentPosActiveItem;
425  int v23 = win->pStartingPosActiveItem;
426  if (v22 <= v23)
427  win->pCurrentPosActiveItem =
428  win->pNumPresenceButton + v23 - 1;
429  else
430  win->pCurrentPosActiveItem = v22 - 1;
431  if (win->field_30 != 0) return true;
432  GUIButton *pButton =
433  win->GetControl(win->pCurrentPosActiveItem);
434  pMessageQueue_50CBD0->AddGUIMessage(pButton->msg,
435  pButton->msg_param, 0);
436  return true;
437  }
438  case VK_NEXT: {
439  if (win->field_30 != 0) { // crashed at skill draw
440  unsigned int uClickX;
441  unsigned int uClickY;
442  EngineIoc::ResolveMouse()->GetClickPos(&uClickX, &uClickY);
443  int v29 = win->pStartingPosActiveItem +
444  win->pNumPresenceButton; // num buttons more than
445  // buttons
446  for (int v4 = win->pStartingPosActiveItem; v4 < v29; ++v4) {
447  GUIButton *pButton = win->GetControl(v4);
448  if (!pButton) continue;
449  if (uClickX >= pButton->uX && uClickX <= pButton->uZ &&
450  uClickY >= pButton->uY && uClickY <= pButton->uW) {
451  win->pCurrentPosActiveItem = v4;
452  return true;
453  }
454  }
455  }
456  break;
457  }
458  default:
459  break;
460  }
461  }
462 
463  return 0;
464 }
Party::pPickedItem
ItemGen pPickedItem
Definition: Party.h:312
uint16_t
unsigned __int16 uint16_t
Definition: SDL_config.h:37
TE_MOVEMENT
@ TE_MOVEMENT
Definition: TurnEngine.h:22
UI_OnVkKeyDown
bool UI_OnVkKeyDown(unsigned int vkKey)
Definition: Mouse.cpp:336
Engine_::IocContainer
Definition: IocContainer.h:15
Viewport.h
LOD.h
Image::GetHeight
unsigned int GetHeight()
Definition: Image.cpp:230
Mouse::SetMouseClick
void SetMouseClick(int x, int y)
Definition: Mouse.cpp:251
Mouse::GetCursorPos
Point GetCursorPos()
Definition: Mouse.cpp:108
GUIWindow
Definition: GUIWindow.h:433
Mouse::field_C
int field_C
Definition: Mouse.h:318
sub_4452BB
void sub_4452BB()
Definition: Engine.cpp:2445
Mouse::AllocCursorSystemMem
void AllocCursorSystemMem()
Definition: Mouse.cpp:98
Mouse::uMouseClickY
unsigned int uMouseClickY
Definition: Mouse.h:365
Mouse::Deactivate
void Deactivate()
Definition: Mouse.cpp:137
GUIMessageQueue::Flush
void Flush()
Definition: GUIWindow.cpp:159
Mouse::bActive
unsigned int bActive
Definition: Mouse.h:316
AudioPlayer::PlaySound
void PlaySound(SoundID eSoundID, int pid, unsigned int uNumRepeats, int x, int y, int a7)
Definition: AudioPlayer.cpp:195
engine
std::shared_ptr< Engine > engine
Definition: Engine.cpp:130
Viewport::Contains
bool Contains(unsigned int x, unsigned int y)
Definition: Viewport.cpp:67
Mouse::window
OSWindow * window
Definition: Mouse.h:325
Mouse::cursor_name
String cursor_name
Definition: Mouse.h:361
Point::x
unsigned int x
Definition: Point.h:7
Mouse::cursor_img
Image * cursor_img
Definition: Mouse.h:324
Mouse::DrawCursorToTarget
void DrawCursorToTarget()
Definition: Mouse.cpp:197
ItemGen::Reset
void Reset()
Definition: Items.cpp:133
pPlayers
NZIArray< struct Player *, 5 > pPlayers
Definition: Player.cpp:46
TurnEngine.h
Vis::get_picked_object_zbuf_val
int get_picked_object_zbuf_val()
Definition: Vis.cpp:517
Mouse::bRedraw
unsigned int bRedraw
Definition: Mouse.h:320
GUIButton
Definition: GUIButton.h:11
Mouse::_469AE4
void _469AE4()
Definition: Mouse.cpp:62
Mouse::Activate
void Activate()
Definition: Mouse.cpp:193
Mouse::ptr_90
void * ptr_90
Definition: Mouse.h:336
Engine.h
current_screen_type
enum CURRENT_SCREEN current_screen_type
Definition: GUIWindow.cpp:83
Mouse::uCursorWithItemY
int uCursorWithItemY
Definition: Mouse.h:331
pTurnEngine
struct stru262_TurnBased * pTurnEngine
Definition: TurnEngine.cpp:21
Mouse::pCursorBitmapPos
Point pCursorBitmapPos
Definition: Mouse.h:349
OBJECT_Actor
@ OBJECT_Actor
Definition: Actor.h:67
Mouse::uMouseClickX
unsigned int uMouseClickX
Definition: Mouse.h:364
Actor.h
GetCurrentMenuID
MENU_STATE GetCurrentMenuID()
Definition: GUIWindow.cpp:133
OSWindow
Definition: OSWindow.h:12
pItemsTable
struct ItemsTable * pItemsTable
Definition: Items.cpp:37
TE_FLAG_8
@ TE_FLAG_8
Definition: TurnEngine.h:7
GUIButton::Contains
bool Contains(unsigned int x, unsigned int y)
Definition: GUIButton.cpp:113
Mouse::field_34
int field_34
Definition: Mouse.h:327
y
EGLSurface EGLint EGLint y
Definition: SDL_egl.h:1596
Image::GetWidth
unsigned int GetWidth()
Definition: Image.cpp:217
pGUIWindow2
GUIWindow * pGUIWindow2
Definition: GUIWindow.cpp:60
CURRENT_SCREEN::SCREEN_PARTY_CREATION
@ SCREEN_PARTY_CREATION
Mouse::ClearPickedItem
void ClearPickedItem()
Definition: Mouse.cpp:195
GUIButton.h
Mouse::Initialize
void Initialize(OSWindow *window)
Definition: Mouse.cpp:112
pParty
Party * pParty
Definition: Party.cpp:30
Engine_::IocContainer::ResolveVis
static Vis * ResolveVis()
Definition: IocContainer.cpp:110
Image
Definition: Image.h:19
x
EGLSurface EGLint x
Definition: SDL_egl.h:1596
UIMSG_STEALFROMACTOR
@ UIMSG_STEALFROMACTOR
Definition: GUIWindow.h:31
Mouse::pPickedItem
Image * pPickedItem
Definition: Mouse.h:329
GUIButton::field_2C_is_pushed
bool field_2C_is_pushed
Definition: GUIButton.h:32
ItemGen::GetIconName
char * GetIconName()
Definition: Items.cpp:1521
ItemGen::uItemID
int uItemID
Definition: Items.h:326
AssetsManager::GetImage_ColorKey
Texture * GetImage_ColorKey(const String &name, uint16_t colorkey)
Definition: AssetsManager.cpp:34
SOUND_SelectingANewCharacter
@ SOUND_SelectingANewCharacter
Definition: AudioPlayer.h:34
sub_4637E0_is_there_popup_onscreen
char sub_4637E0_is_there_popup_onscreen()
Definition: GUIWindow.cpp:1361
Mouse::pCursorBitmap2_sysmem
uint8_t * pCursorBitmap2_sysmem
Definition: Mouse.h:328
ObjectType
ObjectType
Definition: Actor.h:63
Engine_::IocContainer::ResolveMouse
static Mouse * ResolveMouse()
Definition: IocContainer.cpp:88
GUIButton::msg
UIMessageType msg
Definition: GUIButton.h:29
Mouse::ClearCursor
void ClearCursor()
Definition: Mouse.cpp:88
Party.h
window
EGLSurface EGLNativeWindowType * window
Definition: SDL_egl.h:1580
f
GLfloat f
Definition: SDL_opengl_glext.h:1873
type
EGLenum type
Definition: SDL_egl.h:850
Mouse::ChangeActivation
void ChangeActivation(int a1)
Definition: Mouse.cpp:249
Mouse::GetClickPos
void GetClickPos(unsigned int *pX, unsigned int *pY)
Definition: Mouse.cpp:20
Mouse::DrawCursor
void DrawCursor()
Definition: Mouse.cpp:143
Mouse::field_5C
int field_5C[13]
Definition: Mouse.h:335
GUIButton::uWidth
unsigned int uWidth
Definition: GUIButton.h:23
_507B98_ctrl_pressed
bool _507B98_ctrl_pressed
Definition: Mouse.cpp:256
ItemGen::IsIdentified
bool IsIdentified()
Definition: Items.h:306
GUIButton::uX
unsigned int uX
Definition: GUIButton.h:21
ItemGen::IsBroken
bool IsBroken()
Definition: Items.h:304
Mouse::SetActive
void SetActive(bool active)
Definition: Mouse.cpp:135
AudioPlayer.h
Party::bTurnBasedModeOn
bool bTurnBasedModeOn
Definition: Party.h:305
pViewport
struct Viewport * pViewport
Definition: mm7_data.cpp:21
Mouse::SetCurrentCursorBitmap
void SetCurrentCursorBitmap()
Definition: Mouse.cpp:36
CURRENT_SCREEN::SCREEN_GAME
@ SCREEN_GAME
uint8_t
unsigned __int8 uint8_t
Definition: SDL_config.h:35
OS_IfCtrlPressed
bool OS_IfCtrlPressed()
Definition: Lin.cpp:23
Point::y
unsigned int y
Definition: Point.h:8
name
EGLImageKHR EGLint * name
Definition: SDL_egl.h:1497
GUIButton::msg_param
unsigned int msg_param
Definition: GUIButton.h:30
OS_GetMouseCursorPos
Point OS_GetMouseCursorPos()
Definition: Lin.cpp:40
v2
GLfloat GLfloat GLfloat v2
Definition: SDL_opengl_glext.h:695
Mouse::uCursorBitmapPitch
int uCursorBitmapPitch
Definition: Mouse.h:334
assets
AssetsManager * assets
Definition: AssetsManager.cpp:12
uint
unsigned int uint
Definition: MM7.h:4
uActiveCharacter
unsigned int uActiveCharacter
Definition: mm7_data.cpp:555
v3
GLfloat GLfloat GLfloat GLfloat v3
Definition: SDL_opengl_glext.h:696
GUIButton::uY
unsigned int uY
Definition: GUIButton.h:22
lWindowList
std::list< GUIWindow * > lWindowList
Definition: GUIWindow.cpp:79
Mouse::DoAllocCursorMem
void * DoAllocCursorMem()
Definition: Mouse.cpp:106
Mouse::SetCursorBitmapFromItemID
void SetCursorBitmapFromItemID(unsigned int uItemID)
Definition: Mouse.cpp:32
GUIWindow::ptr_1C
void * ptr_1C
Definition: GUIWindow.h:476
Mouse::field_8
int field_8
Definition: Mouse.h:317
AssetsManager::GetImage_Alpha
Texture * GetImage_Alpha(const String &name)
Definition: AssetsManager.cpp:66
Mouse::SetCursorImage
void SetCursorImage(const String &name)
Definition: Mouse.cpp:38
pAudioPlayer
AudioPlayer * pAudioPlayer
Definition: AudioPlayer.cpp:20
GUIWindow.h
Point
Definition: Point.h:3
pMessageQueue_50CBD0
struct GUIMessageQueue * pMessageQueue_50CBD0
Definition: GUIWindow.cpp:86
Mouse::bInitialized
unsigned int bInitialized
Definition: Mouse.h:319
stru262_TurnBased::field_18
int field_18
Definition: TurnEngine.h:80
stru262_TurnBased::turn_stage
int turn_stage
Definition: TurnEngine.h:75
String
std::string String
Definition: Strings.h:10
Mouse::UI_OnMouseLeftClick
void UI_OnMouseLeftClick()
Definition: Mouse.cpp:258
Mouse::RemoveHoldingItem
void RemoveHoldingItem()
Definition: Mouse.cpp:25
Mouse::ReadCursorWithItem
void ReadCursorWithItem()
Definition: Mouse.cpp:206
ItemsTable::pItems
NZIArray< ItemDesc, 800 > pItems
Definition: Items.h:460
Mouse.h
CURRENT_SCREEN::SCREEN_VIDEO
@ SCREEN_VIDEO
Mouse::uCursorWithItemX
int uCursorWithItemX
Definition: Mouse.h:330
GUIButton::uButtonType
int uButtonType
Definition: GUIButton.h:27
Vis.h
Mouse::pCursorBitmap_sysmem
uint16_t * pCursorBitmap_sysmem
Definition: Mouse.h:326
render
std::shared_ptr< IRender > render
Definition: RenderOpenGL.cpp:52