World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Файл UIGame.h

См. исходные тексты.

Классы

class  GUIWindow_GameMenu
 
class  GUIWindow_GameOptions
 
class  GUIWindow_GameKeyBindings
 
class  GUIWindow_GameVideoOptions
 
class  GUIWindow_DebugMenu
 

Функции

void GameUI_LoadPlayerPortraintsAndVoices ()
 
void GameUI_ReloadPlayerPortraits (int player_id, int face_id)
 
void GameUI_WritePointedObjectStatusString ()
 
void GameUI_OnPlayerPortraitLeftClick (unsigned int uPlayerID)
 
void buttonbox (int x, int y, char *text, int col)
 
__int16 _441A4E_overlay_on_portrait (int a1)
 

Переменные

Imagegame_ui_statusbar
 
Imagegame_ui_rightframe
 
Imagegame_ui_topframe
 
Imagegame_ui_leftframe
 
Imagegame_ui_bottomframe
 
Imagegame_ui_monster_hp_green
 
Imagegame_ui_monster_hp_yellow
 
Imagegame_ui_monster_hp_red
 
Imagegame_ui_monster_hp_background
 
Imagegame_ui_monster_hp_border_left
 
Imagegame_ui_monster_hp_border_right
 
Imagegame_ui_minimap_frame
 
Imagegame_ui_minimap_compass
 
std::array< Image *, 8 > game_ui_minimap_dirs
 
Imagegame_ui_menu_quit
 
Imagegame_ui_menu_resume
 
Imagegame_ui_menu_controls
 
Imagegame_ui_menu_save
 
Imagegame_ui_menu_load
 
Imagegame_ui_menu_new
 
Imagegame_ui_menu_options
 
Imagegame_ui_tome_storyline
 
Imagegame_ui_tome_calendar
 
Imagegame_ui_tome_maps
 
Imagegame_ui_tome_autonotes
 
Imagegame_ui_tome_quests
 
Imagegame_ui_btn_rest
 
Imagegame_ui_btn_cast
 
Imagegame_ui_btn_zoomin
 
Imagegame_ui_btn_zoomout
 
Imagegame_ui_btn_quickref
 
Imagegame_ui_btn_settings
 
Imagegame_ui_dialogue_background
 
std::array< Image *, 5 > game_ui_options_controls
 
Imagegame_ui_evtnpc
 
std::array< std::array< Image *, 56 >, 4 > game_ui_player_faces
 
Imagegame_ui_player_face_eradicated
 
Imagegame_ui_player_face_dead
 
Imagegame_ui_player_selection_frame
 
Imagegame_ui_player_alert_yellow
 
Imagegame_ui_player_alert_red
 
Imagegame_ui_player_alert_green
 
Imagegame_ui_bar_red
 
Imagegame_ui_bar_yellow
 
Imagegame_ui_bar_green
 
Imagegame_ui_bar_blue
 
Imagegame_ui_playerbuff_pain_reflection
 
Imagegame_ui_playerbuff_hammerhands
 
Imagegame_ui_playerbuff_preservation
 
Imagegame_ui_playerbuff_bless
 

Функции

◆ GameUI_LoadPlayerPortraintsAndVoices()

void GameUI_LoadPlayerPortraintsAndVoices ( )

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

170  {
171  for (uint i = 0; i < 4; ++i) {
172  for (uint j = 0; j < 56; ++j) {
174  StringPrintf(
175  "%s%02d",
176  pPlayerPortraitsNames[pParty->pPlayers[i].uCurrentFace],
177  j + 1),
178  0x7FF);
179  }
180  }
181 
183  assets->GetImage_ColorKey("ERADCATE", 0x7FF);
185  /*
186  if (SoundSetAction[24][0])
187  {
188  for (uint i = 0; i < 4; ++i)
189  {
190  pSoundList->LoadSound(2 * (SoundSetAction[24][0] + 50 *
191  pParty->pPlayers[i].uVoiceID) + 4998, 0); pSoundList->LoadSound(2 *
192  (SoundSetAction[24][0] + 50 * pParty->pPlayers[i].uVoiceID) + 4999, 0);
193  }
194  }
195  */
196 }

Перекрестные ссылки assets, game_ui_player_face_dead, game_ui_player_face_eradicated, game_ui_player_faces, AssetsManager::GetImage_ColorKey(), pParty, pPlayerPortraitsNames, Party::pPlayers и StringPrintf().

Используется в Application::Game::GameLoop().

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

◆ GameUI_ReloadPlayerPortraits()

void GameUI_ReloadPlayerPortraits ( int  player_id,
int  face_id 
)

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

201  { // the transition from the zombies to the normal state
202  for (uint i = 0; i <= 55; ++i) {
203  auto filename =
204  StringPrintf("%s%02d", pPlayerPortraitsNames[face_id], i + 1);
205  game_ui_player_faces[player_id][i] =
206  assets->GetImage_ColorKey(filename, 0x7FF);
207  }
208 }

Перекрестные ссылки assets, game_ui_player_faces, AssetsManager::GetImage_ColorKey(), pPlayerPortraitsNames и StringPrintf().

Используется в CastSpellInfoHelpers::_427E01_cast_spell(), Player::SetVariable() и TempleDialog().

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

◆ GameUI_WritePointedObjectStatusString()

void GameUI_WritePointedObjectStatusString ( )

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

1266  {
1267  // GUIWindow *pWindow; // edi@7
1268  // GUIButton *pButton; // ecx@11
1269  int requiredSkillpoints; // ecx@19
1270  enum UIMessageType pMessageType1; // esi@24
1271  int invmatrixindex; // eax@41
1272  ItemGen *pItemGen; // ecx@44
1273  int v16; // ecx@46
1274  signed int pickedObjectPID; // eax@55
1275  signed int v18b;
1276  signed int pickedObjectID = 0; // ecx@63
1277  BLVFace *pFace; // eax@69
1278  const char *pText; // ecx@79
1279  enum UIMessageType pMessageType2; // esi@110
1280  enum UIMessageType pMessageType3; // edx@117
1281  unsigned int pX; // [sp+D4h] [bp-Ch]@1
1282  unsigned int pY; // [sp+D8h] [bp-8h]@1
1283 
1284  // int testing;
1285 
1287  pMouse->GetClickPos(&pX, &pY);
1288  if (pX < 0 || pX > window->GetWidth() - 1 || pY < 0 ||
1289  pY > window->GetHeight() - 1)
1290  return;
1291 
1293  if (pX <= (window->GetWidth() - 1) * 0.73125 &&
1294  pY <= (window->GetHeight() - 1) * 0.73125) {
1295  if (!pViewport->Contains(pX, pY)) {
1296  if (uLastPointedObjectID != 0) {
1297  game_ui_status_bar_string.clear();
1298  bForceDrawFooter = 1;
1299  }
1301  return;
1302  }
1303 
1304  auto vis = EngineIoc::ResolveVis();
1305  pickedObjectPID = vis->get_picked_object_zbuf_val();
1306  pMouse->uPointingObjectID = (unsigned __int16)pickedObjectPID;
1307  pickedObjectID = (signed)PID_ID(pickedObjectPID);
1308  if (PID_TYPE(pickedObjectPID) == OBJECT_Item) {
1309  if (pObjectList
1310  ->pObjects[pSpriteObjects[pickedObjectID].uObjectDescID]
1311  .uFlags &
1312  0x10) {
1314  game_ui_status_bar_string.clear();
1315  bForceDrawFooter = 1;
1317  return;
1318  }
1319  if (pickedObjectPID >= 0x2000000u ||
1321  GameUI_StatusBar_Set(pSpriteObjects[pickedObjectID]
1322  .containing_item.GetDisplayName());
1323  } else {
1325  470, pSpriteObjects[pickedObjectID]
1326  .containing_item.GetDisplayName()
1327  .c_str())); // Get %s
1328  } // intentional fallthrough
1329  } else if (PID_TYPE(pickedObjectPID) == OBJECT_Decoration) {
1330  if (!pLevelDecorations[pickedObjectID].uEventID) {
1331  if (pLevelDecorations[pickedObjectID].IsInteractive())
1333  [pLevelDecorations[pickedObjectID]._idx_in_stru123 -
1334  75] + 380].pTopic; // неверно для костра
1335  else
1336  pText = pDecorationList->GetDecoration(pLevelDecorations[pickedObjectID].uDecorationDescID)->field_20;
1337  GameUI_StatusBar_Set(pText);
1338  } else {
1339  char *hintString = GetEventHintString(pLevelDecorations[pickedObjectID].uEventID);
1340  if (hintString[0] != '\0') {
1341  GameUI_StatusBar_Set(hintString);
1342  }
1343  } // intentional fallthrough
1344  } else if (PID_TYPE(pickedObjectPID) == OBJECT_BModel) {
1345  if (pickedObjectPID < 0x2000000u) {
1346  char *newString = nullptr;
1348  v18b = PID_ID(pickedObjectPID) >> 6;
1349  short triggeredId = pOutdoor->pBModels[v18b].pFaces[pickedObjectID & 0x3F].sCogTriggeredID;
1350  if (triggeredId != 0) {
1351  newString = GetEventHintString(
1352  pOutdoor->pBModels[v18b]
1353  .pFaces[pickedObjectID & 0x3F]
1354  .sCogTriggeredID);
1355  }
1356  } else {
1357  pFace = &pIndoor->pFaces[pickedObjectID];
1358  if (pFace->uAttributes & FACE_INDICATE) {
1359  unsigned short eventId =
1361  .uEventID;
1362  if (eventId != 0) {
1363  newString = GetEventHintString(
1365  .uEventID);
1366  }
1367  }
1368  }
1369  if (newString) {
1370  GameUI_StatusBar_Set(newString);
1371  if (pMouse->uPointingObjectID == 0 &&
1372  uLastPointedObjectID != 0) {
1373  game_ui_status_bar_string.clear();
1374  bForceDrawFooter = 1;
1375  }
1377  return;
1378  }
1379  }
1381  game_ui_status_bar_string.clear();
1382  bForceDrawFooter = 1;
1384  return;
1385  } else if (PID_TYPE(pickedObjectPID) == OBJECT_Actor) {
1386  if (pickedObjectPID >= 0x2000000) {
1388  if (uLastPointedObjectID != 0) {
1389  game_ui_status_bar_string.clear();
1390  bForceDrawFooter = 1;
1391  }
1393  return;
1394  }
1395  if (pActors[pickedObjectID].dword_000334_unique_name)
1396  pText = pMonsterStats
1397  ->pPlaceStrings[pActors[pickedObjectID]
1398  .dword_000334_unique_name];
1399  else
1400  pText =
1402  ->pInfos[pActors[pickedObjectID].pMonsterInfo.uID]
1403  .pName;
1404  GameUI_StatusBar_Set(pText); // intentional fallthrough
1405  }
1406  if (pMouse->uPointingObjectID == 0 && uLastPointedObjectID != 0) {
1407  game_ui_status_bar_string.clear();
1408  bForceDrawFooter = 1;
1409  }
1411  return;
1412  }
1414  if (pX <= (window->GetWidth() - 1) * 0.73125 &&
1415  pY <= (window->GetHeight() - 1) * 0.73125) { // if in chest area
1417  return;
1418  } else if (uLastPointedObjectID != 0) { // not found so reset
1419  game_ui_status_bar_string.clear();
1420  bForceDrawFooter = 1;
1421  }
1423  return;
1424  }
1425  } else {
1426  // if (pX <= (window->GetWidth() - 1) * 0.73125 && pY <=
1427  // (window->GetHeight() - 1) * 0.73125) {
1431  if (pY > 0 && pY < 350 && pX >= 13 &&
1432  pX <= 462) { // inventory poitned
1433  // inventoryYCoord = (pY - 17) / 32;
1434  // inventoryXCoord = (pX - 14) / 32;
1435  // invMatrixIndex = inventoryXCoord + (INVETORYSLOTSWIDTH *
1436  // inventoryYCoord);
1437  invmatrixindex = ((pX - 14) / 32) + 14 * ((pY - 17) / 32);
1438  // if (mouse.x <= 13 || mouse.x >= 462)
1439  // return;
1440  // testing =
1441  // pPlayers[uActiveCharacter]->GetItemIDAtInventoryIndex(invmatrixindex);
1442  pItemGen =
1443  pPlayers[uActiveCharacter]->GetItemAtInventoryIndex(
1444  invmatrixindex); // (ItemGen
1445  // *)&pPlayers[uActiveCharacter]->pInventoryItemList[testing
1446  // - 1];
1447 
1448  if (!pItemGen == NULL) pickedObjectID = pItemGen->uItemID;
1449  // if (!pItemID)
1450  // return;
1451  // item =
1452  // &pPlayers[uActiveCharacter]->pInventoryItemList[pItemID -
1453  // 1];
1454 
1455  // v14 = render->pActiveZBuffer[pX +
1456  // pSRZBufferLineOffsets[pY]];
1457  if (pickedObjectID == 0 || pickedObjectID == -65536 ||
1458  pickedObjectID >= 5000) {
1459  // if (pMouse->uPointingObjectID == 0) {
1460  if (uLastPointedObjectID != 0) {
1461  game_ui_status_bar_string.clear();
1462  bForceDrawFooter = 1;
1463  }
1464  //}
1466  // return;
1467  } else {
1468  GameUI_StatusBar_Set(pItemGen->GetDisplayName());
1470  return;
1471  }
1472  }
1473  }
1474  }
1475 
1476  // else if inventory
1477 
1478  for (GUIWindow *pWindow : lWindowList) {
1479  if (pWindow->Contains(pX, pY)) {
1480  for (GUIButton *pButton : pWindow->vButtons) {
1481  switch (pButton->uButtonType) {
1482  case 1: // for dialogue window
1483  if (pButton->Contains(pX, pY)) {
1484  pMessageType1 =
1485  (UIMessageType)pButton->field_1C;
1486  if (pMessageType1)
1487  pMessageQueue_50CBD0->AddGUIMessage(
1488  pMessageType1, pButton->msg_param, 0);
1489  GameUI_StatusBar_Set(pButton->sLabel);
1491  return;
1492  }
1493  break;
1494  case 2: // hovering over portraits
1495  if (pButton->uWidth != 0 && pButton->uHeight != 0) {
1496  uint distW = pX - pButton->uX;
1497  uint distY = pY - pButton->uY;
1498 
1499  double ratioX =
1500  1.0 * (distW * distW) /
1501  (pButton->uWidth * pButton->uWidth);
1502  double ratioY =
1503  1.0 * (distY * distY) /
1504  (pButton->uHeight * pButton->uHeight);
1505 
1506  if (ratioX + ratioY < 1.0) {
1507  pMessageType2 =
1508  (UIMessageType)pButton->field_1C;
1509  if (pMessageType2 != 0)
1510  pMessageQueue_50CBD0->AddGUIMessage(
1511  pMessageType2, pButton->msg_param,
1512  0);
1514  pButton->sLabel); // for character name
1516  return;
1517  }
1518  }
1519  break;
1520  case 3: // click on skill
1521  if (pButton->Contains(pX, pY)) {
1522  requiredSkillpoints =
1524  ->pActiveSkills[pButton->msg_param] &
1525  0x3F) +
1526  1;
1527 
1528  String str;
1529  if (pPlayers[uActiveCharacter]->uSkillPoints <
1530  requiredSkillpoints)
1531  str = localization->FormatString(
1532  469,
1533  requiredSkillpoints -
1535  ->uSkillPoints); // "You need
1536  // %d more
1537  // Skill
1538  // Points to
1539  // advance
1540  // here"
1541  else
1542  str = localization->FormatString(
1543  468,
1544  requiredSkillpoints); // "Clicking here
1545  // will spend %d
1546  // Skill Points"
1547 
1548  GameUI_StatusBar_Set(str);
1550  return;
1551  }
1552  break;
1553  }
1554  }
1555  }
1556 
1557  // ?? if we get here nothing is curos over??
1558  if (uLastPointedObjectID != 0) { // not found so reset
1559  game_ui_status_bar_string.clear();
1560  bForceDrawFooter = 1;
1561  }
1563 
1564  if (pWindow->uFrameHeight == 480) {
1565  // DebugBreak(); //Why is this condition here (in the original
1566  // too)? Might check fullscreen windows. Let Silvo know if you
1567  // find out
1568  // this is to stop the no windows active code below runnning
1569  return;
1570  }
1571  }
1572  // The game never gets to this point even in the original. It's also
1573  // bugged(neither branch displays anything).
1574  // TODO(_) fix these and move them up before the window check loop.
1575 
1576  // gets here when glitched
1577 
1578  /* if (current_screen_type == SCREEN_HOUSE) // this is required
1579  when displaying inventory in a house/shop??
1580  {
1581  if (dialog_menu_id != HOUSE_DIALOGUE_SHOP_BUY_STANDARD
1582  || (v16 = render->pActiveZBuffer[pX + pSRZBufferLineOffsets[pY]], v16 ==
1583  0)
1584  || v16 == -65536)
1585  {
1586  if (uLastPointedObjectID != 0)
1587  {
1588  game_ui_status_bar_string.clear();
1589  bForceDrawFooter = 1;
1590  }
1591  uLastPointedObjectID = 0;
1592  return;
1593  }
1594  pItemGen = (ItemGen *)((char *)&pParty->pPickedItem + 36 * (v16 + 12 *
1595  (unsigned int)window_SpeakInHouse->ptr_1C) + 4);
1596  GameUI_StatusBar_Set(pItemGen->GetDisplayName());
1597  game_ui_status_bar_string.clear();
1598  bForceDrawFooter = 1;
1599  uLastPointedObjectID = 0;
1600  return;
1601  }
1602  */
1603 
1604  //}
1605  }
1606 
1607  // no windows active -outside of game screen area only
1608  if (!lWindowList.empty()) {
1609  GUIWindow *win = lWindowList.back();
1610  if (win->Contains(pX, pY)) {
1611  for (GUIButton *pButton : win->vButtons) {
1612  switch (pButton->uButtonType) {
1613  case 1:
1614  if (pX >= pButton->uX && pX <= pButton->uZ &&
1615  pY >= pButton->uY && pY <= pButton->uW) {
1616  pMessageType3 = (UIMessageType)pButton->field_1C;
1617  if (pMessageType3 == 0) { // For books
1618  GameUI_StatusBar_Set(pButton->sLabel);
1619  } else {
1620  pMessageQueue_50CBD0->AddGUIMessage(
1621  pMessageType3, pButton->msg_param, 0);
1622  }
1624  return;
1625  }
1626  break;
1627  case 2: // hovering over portraits
1628  if (pButton->uWidth != 0 && pButton->uHeight != 0) {
1629  uint distW = pX - pButton->uX;
1630  uint distY = pY - pButton->uY;
1631 
1632  double ratioX = 1.0 * (distW * distW) /
1633  (pButton->uWidth * pButton->uWidth);
1634  double ratioY =
1635  1.0 * (distY * distY) /
1636  (pButton->uHeight * pButton->uHeight);
1637 
1638  if (ratioX + ratioY < 1.0) {
1639  pMessageType2 =
1640  (UIMessageType)pButton->field_1C;
1641  if (pMessageType2 != 0)
1642  pMessageQueue_50CBD0->AddGUIMessage(
1643  pMessageType2, pButton->msg_param, 0);
1645  pButton->sLabel); // for character name
1647  return;
1648  }
1649  }
1650  break;
1651  case 3: // is this one needed?
1652  /* if (pX >= pButton->uX && pX <=
1653  pButton->uZ
1654  && pY >= pButton->uY && pY <= pButton->uW)
1655  {
1656  requiredSkillpoints =
1657  (pPlayers[uActiveCharacter]->pActiveSkills[pButton->msg_param]
1658  & 0x3F) + 1;
1659 
1660  String str;
1661  if (pPlayers[uActiveCharacter]->uSkillPoints <
1662  requiredSkillpoints) str =
1663  localization->FormatString(469, requiredSkillpoints -
1664  pPlayers[uActiveCharacter]->uSkillPoints);// "You need
1665  %d more Skill Points to advance here" else str =
1666  localization->FormatString(468, requiredSkillpoints);//
1667  "Clicking here will spend %d Skill Points"
1668  GameUI_StatusBar_Set(str);
1669  uLastPointedObjectID = 1;
1670  return;
1671  }*/
1672  break;
1673  }
1674  }
1675  }
1676  }
1677 
1678  // pMouse->uPointingObjectID = sub_46A99B(); //for software
1679  if (uLastPointedObjectID != 0) {
1680  game_ui_status_bar_string.clear();
1681  bForceDrawFooter = 1;
1682  }
1684  return;
1685 }

Перекрестные ссылки stru123::_decor_events, bForceDrawFooter, Chest::ChestUI_WritePointedObjectStatusString(), Viewport::Contains(), GUIButton::Contains(), GUIWindow::Contains(), current_character_screen_window, current_screen_type, GUIButton::field_1C, DecorationDesc_mm6::field_20, Localization::FormatString(), game_ui_status_bar_string, GameUI_StatusBar_Set(), Mouse::GetClickPos(), DecorationList::GetDecoration(), ItemGen::GetDisplayName(), GetEventHintString(), LEVEL_Indoor, localization, lWindowList, GUIButton::msg_param, OBJECT_Actor, OBJECT_BModel, OBJECT_Decoration, OBJECT_Item, pActors, OutdoorLocation::pBModels, pDecorationList, IndoorLocation::pFaceExtras, IndoorLocation::pFaces, pIndoor, MonsterStats::pInfos, pLevelDecorations, pMessageQueue_50CBD0, pMonsterStats, pMouse, MonsterInfo::pName, pNPCTopics, pObjectList, pOutdoor, pParty, Party::pPickedItem, MonsterStats::pPlaceStrings, pPlayers, pSpriteObjects, pViewport, Engine_::IocContainer::ResolveVis(), SCREEN_CHARACTERS, SCREEN_CHEST, SCREEN_GAME, GUIButton::sLabel, stru_5E4C90_MapPersistVars, uActiveCharacter, BLVFace::uAttributes, GUIButton::uButtonType, uCurrentlyLoadedLevelType, BLVFaceExtra::uEventID, BLVFace::uFaceExtraID, GUIButton::uHeight, ItemGen::uItemID, uLastPointedObjectID, Mouse::uPointingObjectID, GUIButton::uWidth, GUIButton::uX, GUIButton::uY, GUIWindow::vButtons и WINDOW_CharacterWindow_Inventory.

Используется в Application::Game::GameLoop() и Application::Menu::MenuLoop().

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

◆ GameUI_OnPlayerPortraitLeftClick()

void GameUI_OnPlayerPortraitLeftClick ( unsigned int  uPlayerID)

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

796  {
797  Player *player = &pParty->pPlayers[uPlayerID - 1];
798  if (pParty->pPickedItem.uItemID) {
799  if (int slot = player->AddItem(-1, pParty->pPickedItem.uItemID)) {
800  memcpy(&player->pInventoryItemList[slot - 1], &pParty->pPickedItem,
801  0x24u);
802  viewparams->bRedrawGameUI = true;
804  return;
805  }
806 
807  if (!player->CanAct()) {
808  player = pPlayers[uActiveCharacter];
809  }
810  if (player->CanAct() || !pPlayers[uActiveCharacter]->CanAct()) {
811  player->PlaySound(SPEECH_NoRoom, 0);
812  }
813  }
814 
816  viewparams->bRedrawGameUI = true;
817  if (uActiveCharacter != uPlayerID) {
818  if (pPlayers[uPlayerID]->uTimeToRecovery || !pPlayers[uPlayerID]->CanAct()) {
819  return;
820  }
821 
822  uActiveCharacter = uPlayerID;
823  return;
824  }
827  CURRENT_SCREEN::SCREEN_CHARACTERS); // CharacterUI_Initialize(SCREEN_CHARACTERS);
828  return;
829  }
832  viewparams->bRedrawGameUI = true;
833  if (uActiveCharacter == uPlayerID) {
836  uActiveCharacter = uPlayerID;
837  return;
838  }
839  if (pPlayers[uPlayerID]->uTimeToRecovery) {
840  return;
841  }
842  uActiveCharacter = uPlayerID;
843  return;
844  }
847  uActiveCharacter = uPlayerID;
848  return;
849  }
851  viewparams->bRedrawGameUI = true;
852  uActiveCharacter = uPlayerID;
855  FillAwardsData();
856  }
857  return;
858  }
859  viewparams->bRedrawGameUI = true;
860  if (uActiveCharacter == uPlayerID) {
863  uActiveCharacter = uPlayerID;
864  return;
865  }
866  if (pPlayers[uPlayerID]->uTimeToRecovery) {
867  return;
868  }
869  uActiveCharacter = uPlayerID;
870  return;
871  }
873  WINDOW_INPUT_IN_PROGRESS) {
874  return;
875  }
876  viewparams->bRedrawGameUI = true;
877  if (uActiveCharacter != uPlayerID) {
878  uActiveCharacter = uPlayerID;
879  return;
880  }
883  __debugbreak(); // fix indexing
886  uActiveCharacter, CURRENT_SCREEN::SCREEN_E); // CharacterUI_Initialize(SCREEN_E);
887  return;
888  }
889 }

Перекрестные ссылки __debugbreak(), Player::AddItem(), ViewingParams::bRedrawGameUI, Player::CanAct(), current_character_screen_window, current_screen_type, dialog_menu_id, FillAwardsData(), HOUSE_DIALOGUE_SHOP_6, HOUSE_DIALOGUE_SHOP_BUY_STANDARD, pGUIWindow_CurrentMenu, Player::pInventoryItemList, Player::PlaySound(), pMouse, pParty, Party::pPickedItem, pPlayers, Party::pPlayers, GUIWindow::receives_keyboard_input_2, Mouse::RemoveHoldingItem(), SCREEN_CHARACTERS, SCREEN_CHEST, SCREEN_CHEST_INVENTORY, SCREEN_E, SCREEN_GAME, SCREEN_HOUSE, SCREEN_SPELL_BOOK, SPEECH_NoRoom, uActiveCharacter, ItemGen::uItemID, viewparams, WINDOW_CharacterWindow_Awards, WINDOW_CharacterWindow_Inventory и window_SpeakInHouse.

Используется в Application::Game::EventLoop().

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

◆ buttonbox()

void buttonbox ( int  x,
int  y,
char *  text,
int  col 
)

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

2545  {
2546  int width = 108;
2547  int height = 20;
2548  render->FillRectFast(x, y, width+1, height+1, Color16(50, 50, 50));
2549 
2550  render->RasterLine2D(x-1, y-1, x+width+1, y-1, Color16(0xE1u, 255, 0x9Bu));
2551  render->RasterLine2D(x-1, y-1, x-1, y+height+1, Color16(0xE1u, 255, 0x9Bu));
2552  render->RasterLine2D(x-1, y+height+1, x+width+1, y+height+1, Color16(0xE1u, 255, 0x9Bu));
2553  render->RasterLine2D(x+width+1, y-1, x+width+1, y+height+1, Color16(0xE1u, 255, 0x9Bu));
2554 
2556  if (col == 2) {
2557  colour = 0;
2558  }
2559  if (col == 1) {
2561  }
2562  pGUIWindow_CurrentMenu->DrawText(pFontArrus, x+1, y+2, colour, text, 0, 0, 0);
2563 }

Перекрестные ссылки Color16(), GUIWindow::DrawText(), pFontArrus, pGUIWindow_CurrentMenu, render, ui_character_bonus_text_color и ui_character_condition_severe_color.

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

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

◆ _441A4E_overlay_on_portrait()

__int16 _441A4E_overlay_on_portrait ( int  a1)

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

2373  { // for blessing
2374  __int16 result; // ax@1
2375  int v2; // ebx@1
2376  bool v5; // ecx@4
2377  SpriteFrame *pFrame; // eax@6
2378  int v8; // eax@6
2379  SoftwareBillboard v10; // [sp+Ch] [bp-5Ch]@1
2380  int v11; // [sp+5Ch] [bp-Ch]@6
2381  int v12; // [sp+60h] [bp-8h]@1
2382 
2383  v10.sParentBillboardID = -1;
2384  v10.pTargetZ = render->pActiveZBuffer;
2385  v10.uTargetPitch = render->GetRenderWidth();
2386  result = 0;
2387  v2 = a1;
2388  v10.uViewportX = 0;
2389  v10.uViewportY = 0;
2390  v10.uViewportZ = window->GetWidth() - 1;
2391  v10.uViewportW = window->GetHeight() - 1;
2392  v12 = 0;
2393  // v3 = (char *)&pOtherOverlayList->pOverlays[0].field_C;
2394  // do
2395  for (uint i = 0; i < 50; ++i) {
2396  if (pOtherOverlayList->pOverlays[i].field_6 > 0) {
2398  if (pOtherOverlayList->pOverlays[i].field_0 >= 300) {
2399  // v4 = result;
2400  v5 = pOtherOverlayList->pOverlays[i].field_0 == v2 + 320 ||
2401  pOtherOverlayList->pOverlays[i].field_0 == v2 + 330 ||
2402  pOtherOverlayList->pOverlays[i].field_0 == v2 + 340 ||
2403  pOtherOverlayList->pOverlays[i].field_0 == v2 + 350;
2404  pOtherOverlayList->pOverlays[i].field_0 = v2 + 310;
2405  if (pOtherOverlayList->pOverlays[i].field_0 == v2 + 310 || v5) {
2406  if (!pOtherOverlayList->pOverlays[i].field_0) {
2407  pFrame = pSpriteFrameTable->GetFrame(
2408  pOverlayList
2409  ->pOverlays[pOtherOverlayList->pOverlays[i]
2410  .field_2]
2411  .uSpriteFramesetID,
2413  // v7 = v6;
2415  // v13 = pFrame->scale;
2416  // v13 = fixpoint_mul(v11, pFrame->scale);
2417  v10.screen_space_x =
2419  v10.screen_space_y =
2421  v10.screenspace_projection_factor_x = v11 * pFrame->scale.GetFloat();
2422  v10.screenspace_projection_factor_y = v11 * pFrame->scale.GetFloat();
2424  pFrame->uPaletteIndex, 0, 1);
2426  v10.screen_space_z = 0;
2427  v10.object_pid = 0;
2428  v10.uFlags = 0;
2429  // v9 = pOverlayList->pOverlays[v8].uOverlayType;
2430  if (!pOverlayList->pOverlays[v8].uOverlayType ||
2432  v10.screen_space_y +=
2433  pFrame->hw_sprites[0]->sprite_header->uHeight /
2434  2;
2435  result = pFrame->hw_sprites[0]->sprite_header->_4AD2D1_overlays(&v10, 0);
2436  ++v12;
2437  if (v12 == 5) break;
2438  }
2439  }
2440  }
2441  }
2442  // v3 += 20;
2443  }
2444  // while ( (signed int)v3 < (signed int)&pOverlayList->pOverlays );
2445  return result;
2446 }

Перекрестные ссылки LODSprite::_4AD2D1_overlays(), OtherOverlay::field_0, OtherOverlay::field_2, OtherOverlay::field_6, OtherOverlay::field_E, PaletteManager::Get_Dark_or_Red_LUT(), fixed::GetFloat(), SpriteFrameTable::GetFrame(), SpriteFrame::hw_sprites, SoftwareBillboard::object_pid, pOtherOverlayList, pOverlayList, OtherOverlayList::pOverlays, OverlayList::pOverlays, SoftwareBillboard::pPalette, pSpriteFrameTable, SoftwareBillboard::pTargetZ, render, SpriteFrame::scale, OtherOverlay::screen_space_x, SoftwareBillboard::screen_space_x, OtherOverlay::screen_space_y, SoftwareBillboard::screen_space_y, SoftwareBillboard::screen_space_z, SoftwareBillboard::screenspace_projection_factor_x, SoftwareBillboard::screenspace_projection_factor_y, SoftwareBillboard::sParentBillboardID, OtherOverlay::sprite_frame_time, Sprite::sprite_header, SoftwareBillboard::uFlags, LODSpriteHeader::uHeight, OverlayDesc::uOverlayType, SpriteFrame::uPaletteIndex, SoftwareBillboard::uTargetPitch, SoftwareBillboard::uViewportW, SoftwareBillboard::uViewportX, SoftwareBillboard::uViewportY и SoftwareBillboard::uViewportZ.

Используется в GameUI_DrawPortraits().

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

Переменные

◆ game_ui_statusbar

Image* game_ui_statusbar

◆ game_ui_rightframe

Image* game_ui_rightframe

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

Используется в GameUI_DrawRightPanelFrames() и SetUserInterface().

◆ game_ui_topframe

Image* game_ui_topframe

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

Используется в GameUI_DrawRightPanelFrames() и SetUserInterface().

◆ game_ui_leftframe

Image* game_ui_leftframe

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

Используется в GameUI_DrawRightPanelFrames() и SetUserInterface().

◆ game_ui_bottomframe

Image* game_ui_bottomframe

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

Используется в GameUI_DrawRightPanelFrames() и SetUserInterface().

◆ game_ui_monster_hp_green

Image* game_ui_monster_hp_green

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

Используется в Actor::DrawHealthBar() и UI_Create().

◆ game_ui_monster_hp_yellow

Image* game_ui_monster_hp_yellow

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

Используется в Actor::DrawHealthBar() и UI_Create().

◆ game_ui_monster_hp_red

Image* game_ui_monster_hp_red

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

Используется в Actor::DrawHealthBar() и UI_Create().

◆ game_ui_monster_hp_background

Image* game_ui_monster_hp_background

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

Используется в Actor::DrawHealthBar() и UI_Create().

◆ game_ui_monster_hp_border_left

Image* game_ui_monster_hp_border_left

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

Используется в Actor::DrawHealthBar() и UI_Create().

◆ game_ui_monster_hp_border_right

Image* game_ui_monster_hp_border_right

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

Используется в Actor::DrawHealthBar() и UI_Create().

◆ game_ui_minimap_frame

Image* game_ui_minimap_frame

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

Используется в GameUI_DrawMinimap() и SetUserInterface().

◆ game_ui_minimap_compass

Image* game_ui_minimap_compass

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

Используется в GameUI_DrawMinimap() и SetUserInterface().

◆ game_ui_minimap_dirs

std::array<Image *, 8> game_ui_minimap_dirs

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

Используется в DrawBook_Map_sub(), GameUI_DrawMinimap() и UI_Create().

◆ game_ui_menu_quit

Image* game_ui_menu_quit

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

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

◆ game_ui_menu_resume

Image* game_ui_menu_resume

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

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

◆ game_ui_menu_controls

Image* game_ui_menu_controls

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

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

◆ game_ui_menu_save

Image* game_ui_menu_save

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

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

◆ game_ui_menu_load

Image* game_ui_menu_load

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

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

◆ game_ui_menu_new

Image* game_ui_menu_new

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

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

◆ game_ui_menu_options

◆ game_ui_tome_storyline

Image* game_ui_tome_storyline

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

Используется в GameUI_DrawRightPanelItems().

◆ game_ui_tome_calendar

Image* game_ui_tome_calendar

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

◆ game_ui_tome_maps

Image* game_ui_tome_maps

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

◆ game_ui_tome_autonotes

Image* game_ui_tome_autonotes

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

Используется в GameUI_DrawRightPanelItems().

◆ game_ui_tome_quests

Image* game_ui_tome_quests

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

Используется в GameUI_DrawRightPanelItems() и UI_Create().

◆ game_ui_btn_rest

Image* game_ui_btn_rest

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

Используется в SetUserInterface().

◆ game_ui_btn_cast

Image* game_ui_btn_cast

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

Используется в SetUserInterface().

◆ game_ui_btn_zoomin

Image* game_ui_btn_zoomin

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

Используется в SetUserInterface().

◆ game_ui_btn_zoomout

Image* game_ui_btn_zoomout

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

Используется в SetUserInterface().

◆ game_ui_btn_quickref

Image* game_ui_btn_quickref

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

Используется в SetUserInterface().

◆ game_ui_btn_settings

Image* game_ui_btn_settings

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

Используется в SetUserInterface().

◆ game_ui_dialogue_background

◆ game_ui_options_controls

std::array<Image *, 5> game_ui_options_controls

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

Используется в Application::Menu::EventLoop(), GUIWindow_GameKeyBindings::GUIWindow_GameKeyBindings() и GUIWindow_GameKeyBindings::Update().

◆ game_ui_evtnpc

Image* game_ui_evtnpc

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

Используется в GUIWindow::HouseDialogManager(), SetUserInterface(), GUIWindow_Dialogue::Update() и GUIWindow_Transition::Update().

◆ game_ui_player_faces

std::array<std::array<Image *, 56>, 4> game_ui_player_faces

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

Используется в GameUI_CharacterQuickRecord_Draw(), GameUI_DrawPortraits(), GameUI_LoadPlayerPortraintsAndVoices() и GameUI_ReloadPlayerPortraits().

◆ game_ui_player_face_eradicated

Image* game_ui_player_face_eradicated

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

Используется в GameUI_CharacterQuickRecord_Draw(), GameUI_DrawPortraits() и GameUI_LoadPlayerPortraintsAndVoices().

◆ game_ui_player_face_dead

Image* game_ui_player_face_dead

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

Используется в GameUI_CharacterQuickRecord_Draw(), GameUI_DrawPortraits() и GameUI_LoadPlayerPortraintsAndVoices().

◆ game_ui_player_selection_frame

Image* game_ui_player_selection_frame

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

Используется в GameUI_DrawCharacterSelectionFrame() и SetUserInterface().

◆ game_ui_player_alert_yellow

Image* game_ui_player_alert_yellow

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

Используется в GameUI_DrawPortraits() и SetUserInterface().

◆ game_ui_player_alert_red

Image* game_ui_player_alert_red

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

Используется в GameUI_DrawPortraits() и SetUserInterface().

◆ game_ui_player_alert_green

Image* game_ui_player_alert_green

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

Используется в GameUI_DrawPortraits() и SetUserInterface().

◆ game_ui_bar_red

Image* game_ui_bar_red

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

Используется в GameUI_DrawLifeManaBars() и UI_Create().

◆ game_ui_bar_yellow

Image* game_ui_bar_yellow

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

Используется в GameUI_DrawLifeManaBars() и UI_Create().

◆ game_ui_bar_green

Image* game_ui_bar_green

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

Используется в GameUI_DrawLifeManaBars() и UI_Create().

◆ game_ui_bar_blue

Image* game_ui_bar_blue

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

Используется в GameUI_DrawLifeManaBars() и UI_Create().

◆ game_ui_playerbuff_pain_reflection

Image* game_ui_playerbuff_pain_reflection

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

Используется в GameUI_DrawPartySpells() и SetUserInterface().

◆ game_ui_playerbuff_hammerhands

Image* game_ui_playerbuff_hammerhands

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

Используется в GameUI_DrawPartySpells() и SetUserInterface().

◆ game_ui_playerbuff_preservation

Image* game_ui_playerbuff_preservation

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

Используется в GameUI_DrawPartySpells() и SetUserInterface().

◆ game_ui_playerbuff_bless

Image* game_ui_playerbuff_bless

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

Используется в GameUI_DrawPartySpells() и SetUserInterface().

Party::pPickedItem
ItemGen pPickedItem
Definition: Party.h:312
SoftwareBillboard::pPalette
uint16_t * pPalette
Definition: IRender.h:179
Player
Definition: Player.h:401
GUIWindow::DrawText
void DrawText(GUIFont *font, int x, int y, unsigned short uFontColor, const char *str, bool present_time_transparency=false, int max_text_height=0, int uFontShadowColor=0)
Definition: GUIWindow.cpp:694
UIMessageType
UIMessageType
Definition: GUIWindow.h:13
SpriteFrame::hw_sprites
Sprite * hw_sprites[8]
Definition: Sprites.h:46
pLevelDecorations
std::array< LevelDecoration, 3000 > pLevelDecorations
Definition: Decoration.cpp:8
GUIWindow_CharacterRecord
Definition: UICharacter.h:4
DecorationList::GetDecoration
DecorationDesc * GetDecoration(unsigned int index)
Definition: DecorationList.h:65
GUIWindow
Definition: GUIWindow.h:433
pSpriteFrameTable
struct SpriteFrameTable * pSpriteFrameTable
Definition: Sprites.cpp:22
OutdoorLocation::pBModels
BSPModelList pBModels
Definition: Outdoor.h:119
pSpriteObjects
std::array< SpriteObject, MAX_SPRITE_OBJECTS > pSpriteObjects
Definition: SpriteObject.cpp:34
OBJECT_Item
@ OBJECT_Item
Definition: Actor.h:66
pMonsterStats
struct MonsterStats * pMonsterStats
Definition: Monsters.cpp:8
pGUIWindow_CurrentMenu
GUIWindow * pGUIWindow_CurrentMenu
Definition: GUIWindow.cpp:54
dialog_menu_id
HOUSE_DIALOGUE_MENU dialog_menu_id
Definition: UIHouses.cpp:50
height
EGLSurface EGLint EGLint EGLint EGLint height
Definition: SDL_egl.h:1596
CURRENT_SCREEN::SCREEN_CHEST
@ SCREEN_CHEST
CURRENT_SCREEN::SCREEN_SPELL_BOOK
@ SCREEN_SPELL_BOOK
pNPCTopics
std::array< NPCTopic, 789 > pNPCTopics
Definition: mm7_data.cpp:740
OtherOverlay::sprite_frame_time
int16_t sprite_frame_time
Definition: Overlays.h:13
PaletteManager::Get_Dark_or_Red_LUT
static uint16_t * Get_Dark_or_Red_LUT(int paletteIdx, int a2, char a3)
Definition: PaletteManager.cpp:809
Player::CanAct
bool CanAct()
Definition: Player.cpp:549
IndoorLocation::pFaceExtras
struct BLVFaceExtra * pFaceExtras
Definition: Indoor.h:632
SpriteFrame::scale
fixed scale
Definition: Sprites.h:47
Viewport::Contains
bool Contains(unsigned int x, unsigned int y)
Definition: Viewport.cpp:67
SoftwareBillboard::screenspace_projection_factor_y
float screenspace_projection_factor_y
Definition: IRender.h:177
BLVFaceExtra::uEventID
uint16_t uEventID
Definition: Indoor.h:512
localization
Localization * localization
Definition: Localization.cpp:11
GameUI_StatusBar_Set
void GameUI_StatusBar_Set(const String &str)
Definition: UIStatusBar.cpp:15
SoftwareBillboard::screenspace_projection_factor_x
float screenspace_projection_factor_x
Definition: IRender.h:176
Party::pPlayers
std::array< Player, 4 > pPlayers
Definition: Party.h:310
DecorationDesc_mm6::field_20
char field_20[32]
Definition: DecorationList.h:38
SpriteFrame::uPaletteIndex
int uPaletteIndex
Definition: Sprites.h:51
OtherOverlay::field_0
int16_t field_0
Definition: Overlays.h:11
OBJECT_Decoration
@ OBJECT_Decoration
Definition: Actor.h:69
ui_character_bonus_text_color
unsigned int ui_character_bonus_text_color
Definition: UICharacter.cpp:46
pPlayers
NZIArray< struct Player *, 5 > pPlayers
Definition: Player.cpp:46
GUIButton
Definition: GUIButton.h:11
GUIWindow::receives_keyboard_input_2
int receives_keyboard_input_2
Definition: GUIWindow.h:486
pIndoor
IndoorLocation * pIndoor
Definition: Indoor.cpp:49
current_screen_type
enum CURRENT_SCREEN current_screen_type
Definition: GUIWindow.cpp:83
result
GLuint64EXT * result
Definition: SDL_opengl_glext.h:9435
GUIWindow::vButtons
std::vector< GUIButton * > vButtons
Definition: GUIWindow.h:489
OBJECT_Actor
@ OBJECT_Actor
Definition: Actor.h:67
CURRENT_SCREEN::SCREEN_E
@ SCREEN_E
current_character_screen_window
enum WindowType current_character_screen_window
Definition: GUIWindow.cpp:78
GUIButton::Contains
bool Contains(unsigned int x, unsigned int y)
Definition: GUIButton.cpp:113
FillAwardsData
void FillAwardsData()
Definition: UICharacter.cpp:2598
OtherOverlayList::pOverlays
OtherOverlay pOverlays[50]
Definition: Overlays.h:36
y
EGLSurface EGLint EGLint y
Definition: SDL_egl.h:1596
game_ui_player_face_eradicated
Image * game_ui_player_face_eradicated
Definition: UIGame.cpp:105
window_SpeakInHouse
GUIWindow * window_SpeakInHouse
Definition: GUIWindow.cpp:51
pParty
Party * pParty
Definition: Party.cpp:30
Engine_::IocContainer::ResolveVis
static Vis * ResolveVis()
Definition: IocContainer.cpp:110
pFontArrus
GUIFont * pFontArrus
Definition: GUIFont.cpp:18
SoftwareBillboard
Definition: IRender.h:170
ItemGen::GetDisplayName
String GetDisplayName()
Definition: Items.cpp:610
OBJECT_BModel
@ OBJECT_BModel
Definition: Actor.h:70
x
EGLSurface EGLint x
Definition: SDL_egl.h:1596
WINDOW_CharacterWindow_Inventory
@ WINDOW_CharacterWindow_Inventory
Definition: GUIWindow.h:330
SpriteFrameTable::GetFrame
SpriteFrame * GetFrame(unsigned int uSpriteID, unsigned int uTime)
Definition: Sprites.cpp:277
viewparams
struct ViewingParams * viewparams
Definition: mm7_data.cpp:22
OverlayDesc::uOverlayType
uint16_t uOverlayType
Definition: Overlays.h:46
pMouse
static Mouse * pMouse
Definition: UIGame.cpp:53
SoftwareBillboard::screen_space_z
short screen_space_z
Definition: IRender.h:175
CURRENT_SCREEN::SCREEN_HOUSE
@ SCREEN_HOUSE
GetEventHintString
char * GetEventHintString(unsigned int uEventID)
Definition: Events.cpp:1159
MonsterStats::pPlaceStrings
char * pPlaceStrings[31]
Definition: Monsters.h:195
OtherOverlay::screen_space_y
int16_t screen_space_y
Definition: Overlays.h:16
BLVFace
Definition: Indoor.h:424
ItemGen::uItemID
int uItemID
Definition: Items.h:326
AssetsManager::GetImage_ColorKey
Texture * GetImage_ColorKey(const String &name, uint16_t colorkey)
Definition: AssetsManager.cpp:34
stru123::_decor_events
std::array< unsigned char, 125 > _decor_events
Definition: stru123.h:8
width
EGLSurface EGLint EGLint EGLint width
Definition: SDL_egl.h:1596
CURRENT_SCREEN::SCREEN_CHARACTERS
@ SCREEN_CHARACTERS
pActors
std::array< Actor, 500 > pActors
Definition: Actor.cpp:38
Mouse::uPointingObjectID
unsigned int uPointingObjectID
Definition: Mouse.h:315
HOUSE_DIALOGUE_SHOP_6
@ HOUSE_DIALOGUE_SHOP_6
Definition: UIHouses.h:13
ui_character_condition_severe_color
unsigned int ui_character_condition_severe_color
Definition: UICharacter.cpp:59
window
EGLSurface EGLNativeWindowType * window
Definition: SDL_egl.h:1580
MonsterStats::pInfos
MonsterInfo pInfos[265]
Definition: Monsters.h:194
GUIWindow::Contains
bool Contains(unsigned int x, unsigned int y)
Definition: GUIWindow.cpp:750
Mouse::GetClickPos
void GetClickPos(unsigned int *pX, unsigned int *pY)
Definition: Mouse.cpp:20
LODSprite::_4AD2D1_overlays
int _4AD2D1_overlays(struct SoftwareBillboard *a2, int a3)
Definition: LOD.cpp:206
LODSpriteHeader::uHeight
uint16_t uHeight
Definition: LOD.h:187
game_ui_status_bar_string
String game_ui_status_bar_string
Definition: mm7_data.cpp:638
game_ui_player_face_dead
Image * game_ui_player_face_dead
Definition: UIGame.cpp:106
OtherOverlay::field_6
int16_t field_6
Definition: Overlays.h:14
GUIButton::uWidth
unsigned int uWidth
Definition: GUIButton.h:23
GUIButton::field_1C
int field_1C
Definition: GUIButton.h:28
SoftwareBillboard::screen_space_x
int screen_space_x
Definition: IRender.h:173
Player::pInventoryItemList
ItemGen pInventoryItemList[126]
Definition: Player.h:727
GUIButton::uX
unsigned int uX
Definition: GUIButton.h:21
SoftwareBillboard::uViewportY
unsigned int uViewportY
Definition: IRender.h:184
SoftwareBillboard::uViewportX
unsigned int uViewportX
Definition: IRender.h:183
LEVEL_Indoor
@ LEVEL_Indoor
Definition: Indoor.h:286
SoftwareBillboard::screen_space_y
int screen_space_y
Definition: IRender.h:174
pViewport
struct Viewport * pViewport
Definition: mm7_data.cpp:21
CURRENT_SCREEN::SCREEN_GAME
@ SCREEN_GAME
Sprite::sprite_header
struct LODSprite * sprite_header
Definition: Sprites.h:36
OtherOverlay::field_E
int16_t field_E
Definition: Overlays.h:18
uLastPointedObjectID
int uLastPointedObjectID
Definition: mm7_data.cpp:534
pOtherOverlayList
struct OtherOverlayList * pOtherOverlayList
Definition: Overlays.cpp:19
OtherOverlay::screen_space_x
int16_t screen_space_x
Definition: Overlays.h:15
Player::AddItem
bool AddItem(struct ItemGen *pItem)
GUIButton::msg_param
unsigned int msg_param
Definition: GUIButton.h:30
SoftwareBillboard::uViewportW
unsigned int uViewportW
Definition: IRender.h:186
bForceDrawFooter
int bForceDrawFooter
Definition: mm7_data.cpp:640
v2
GLfloat GLfloat GLfloat v2
Definition: SDL_opengl_glext.h:695
SpriteFrame
Definition: Sprites.h:39
Chest::ChestUI_WritePointedObjectStatusString
static bool ChestUI_WritePointedObjectStatusString()
Definition: Chest.cpp:175
assets
AssetsManager * assets
Definition: AssetsManager.cpp:12
uint
unsigned int uint
Definition: MM7.h:4
uActiveCharacter
unsigned int uActiveCharacter
Definition: mm7_data.cpp:555
Localization::FormatString
String FormatString(unsigned int index,...) const
Definition: Localization.cpp:17
SoftwareBillboard::uViewportZ
unsigned int uViewportZ
Definition: IRender.h:185
SoftwareBillboard::uFlags
unsigned int uFlags
Definition: IRender.h:181
GUIButton::uY
unsigned int uY
Definition: GUIButton.h:22
SoftwareBillboard::sParentBillboardID
int sParentBillboardID
Definition: IRender.h:188
__debugbreak
void __cdecl __debugbreak(void)
GUIButton::uHeight
unsigned int uHeight
Definition: GUIButton.h:24
fixed::GetFloat
float GetFloat() const
Definition: OurMath.h:37
lWindowList
std::list< GUIWindow * > lWindowList
Definition: GUIWindow.cpp:79
pOverlayList
struct OverlayList * pOverlayList
Definition: Overlays.cpp:20
game_ui_player_faces
std::array< std::array< Image *, 56 >, 4 > game_ui_player_faces
Definition: UIGame.cpp:104
Player::PlaySound
void PlaySound(PlayerSpeech speech, int a3)
Definition: Player.cpp:7874
ViewingParams::bRedrawGameUI
int bRedrawGameUI
Definition: Viewport.h:74
uCurrentlyLoadedLevelType
LEVEL_TYPE uCurrentlyLoadedLevelType
Definition: Indoor.cpp:52
MonsterInfo::pName
char * pName
Definition: Monsters.h:120
IndoorLocation::pFaces
struct BLVFace * pFaces
Definition: Indoor.h:630
WINDOW_CharacterWindow_Awards
@ WINDOW_CharacterWindow_Awards
Definition: GUIWindow.h:329
HOUSE_DIALOGUE_SHOP_BUY_STANDARD
@ HOUSE_DIALOGUE_SHOP_BUY_STANDARD
Definition: UIHouses.h:9
OverlayList::pOverlays
struct OverlayDesc * pOverlays
Definition: Overlays.h:65
ItemGen
Definition: Items.h:263
pMessageQueue_50CBD0
struct GUIMessageQueue * pMessageQueue_50CBD0
Definition: GUIWindow.cpp:86
stru_5E4C90_MapPersistVars
stru123 stru_5E4C90_MapPersistVars
Definition: mm7_data.cpp:23
Color16
uint16_t Color16(uint32_t r, uint32_t g, uint32_t b)
Definition: Engine.cpp:148
pOutdoor
OutdoorLocation * pOutdoor
Definition: Outdoor.cpp:48
OtherOverlay::field_2
int16_t field_2
Definition: Overlays.h:12
SoftwareBillboard::pTargetZ
int * pTargetZ
Definition: IRender.h:172
SoftwareBillboard::uTargetPitch
unsigned int uTargetPitch
Definition: IRender.h:182
StringPrintf
String StringPrintf(const char *fmt,...)
Definition: Strings.cpp:9
GUIButton::sLabel
String sLabel
Definition: GUIButton.h:36
String
std::string String
Definition: Strings.h:10
BLVFace::uAttributes
unsigned int uAttributes
Definition: Indoor.h:475
Mouse::RemoveHoldingItem
void RemoveHoldingItem()
Definition: Mouse.cpp:25
pObjectList
struct ObjectList * pObjectList
Definition: ObjectList.cpp:5
SoftwareBillboard::object_pid
unsigned short object_pid
Definition: IRender.h:190
pDecorationList
struct DecorationList * pDecorationList
Definition: DecorationList.cpp:11
pPlayerPortraitsNames
std::array< const char *, 25 > pPlayerPortraitsNames
Definition: mm7_data.cpp:310
SPEECH_NoRoom
@ SPEECH_NoRoom
Definition: Player.h:61
GUIButton::uButtonType
int uButtonType
Definition: GUIButton.h:27
BLVFace::uFaceExtraID
uint16_t uFaceExtraID
Definition: Indoor.h:482
CURRENT_SCREEN::SCREEN_CHEST_INVENTORY
@ SCREEN_CHEST_INVENTORY
render
std::shared_ptr< IRender > render
Definition: RenderOpenGL.cpp:52