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

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

Функции

bool PartyCreationUI_LoopInternal ()
 
void PartyCreationUI_DeleteFont ()
 
bool PlayerCreation_Choose4Skills ()
 
void CreateParty_EventLoop ()
 
bool PartyCreationUI_Loop ()
 

Переменные

GUIFontui_partycreation_font
 
Imageui_partycreation_top = nullptr
 
Imageui_partycreation_sky_scroller = nullptr
 
Imageui_partycreation_left = nullptr
 
Imageui_partycreation_right = nullptr
 
Imageui_partycreation_minus = nullptr
 
Imageui_partycreation_plus = nullptr
 
Imageui_partycreation_buttmake2 = nullptr
 
Imageui_partycreation_buttmake = nullptr
 
std::array< Image *, 9 > ui_partycreation_class_icons
 
std::array< Image *, 22 > ui_partycreation_portraits
 
std::array< Image *, 20 > ui_partycreation_arrow_r
 
std::array< Image *, 20 > ui_partycreation_arrow_l
 

Функции

◆ PartyCreationUI_LoopInternal()

bool PartyCreationUI_LoopInternal ( )

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

856  {
857  // GUIButton *pControlsHead; // edx@6
858  // int pControlParam; // esi@12
859  signed int v8; // edi@30
860  int v9; // edx@31
861  // char *v10; // ebx@37
862  ItemGen item; // [sp+Ch] [bp-74h]@37
863  char v20[32]; // [sp+30h] [bp-50h]@29
864  bool party_not_creation_flag; // [sp+74h] [bp-Ch]@1
865 
866  party_not_creation_flag = false;
867 
870  while (GetCurrentMenuID() == MENU_CREATEPARTY) {
871  window->PeekMessageLoop();
872  if (dword_6BE364_game_settings_1 & GAME_SETTINGS_APP_INACTIVE) {
873  OS_WaitMessage();
874  } else {
875  // PlayerCreationUI_Draw();
876  // MainMenu_EventLoop();
878  render->BeginScene();
880  render->EndScene();
881  render->Present();
882  if (uGameState ==
883  GAME_FINISHED) { // if click Esc in PlayerCreation Window
884  party_not_creation_flag = true;
886  continue;
887  }
888  if (uGameState ==
889  GAME_STATE_STARTING_NEW_GAME) { // if click OK in PlayerCreation
890  // Window
893  continue;
894  }
895  }
896  }
897 
899  pGUIWindow_CurrentMenu = nullptr;
900 
901  memset(v20, 0, 32);
902  for (int i = 0; i < 32; i++) {
903  for (v8 = 0; v8 < 10; ++v8) {
904  v9 = rand() % 32;
905  if (!v20[v9]) break;
906  }
907  if (v8 == 10) {
908  v9 = 0;
909  if (v20[0]) {
910  do
911  ++v9;
912  while (v20[v9]);
913  }
914  }
915  pParty->field_854[i] = v9;
916  v20[v9] = 1;
917  }
918 
919  item.Reset();
920  for (uint i = 0; i < 4; ++i) {
921  if (pParty->pPlayers[i].classType == PLAYER_CLASS_KNIGHT)
922  pParty->pPlayers[i].sResMagicBase = 10;
923  pParty->pPlayers[i].pPlayerBuffs[22].expire_time.Reset();
924  for (uint j = 0; j < 9; j++) {
925  if (pParty->pPlayers[i].pActiveSkills[PLAYER_SKILL_FIRE + j]) {
926  pParty->pPlayers[i].lastOpenedSpellbookPage = j;
927  break;
928  }
929  }
930  pItemsTable->GenerateItem(2, 40, &item);
931  pParty->pPlayers[i].AddItem2(-1, &item);
932 
933  pParty->pPlayers[i].sHealth = pParty->pPlayers[i].GetMaxHealth();
934  pParty->pPlayers[i].sMana = pParty->pPlayers[i].GetMaxMana();
935  for (uint j = 0; j < 37; ++j) {
936  if (!pParty->pPlayers[i].pActiveSkills[j]) continue;
937 
938  switch (j) {
939  case PLAYER_SKILL_STAFF:
940  pParty->pPlayers[i].AddItem(-1, ITEM_STAFF_1);
941  break;
942  case PLAYER_SKILL_SWORD:
943  pParty->pPlayers[i].AddItem(-1, ITEM_LONGSWORD_1);
944  break;
945  case PLAYER_SKILL_DAGGER:
946  pParty->pPlayers[i].AddItem(-1, ITEM_DAGGER_1);
947  break;
948  case PLAYER_SKILL_AXE:
949  pParty->pPlayers[i].AddItem(-1, ITEM_AXE_1);
950  break;
951  case PLAYER_SKILL_SPEAR:
952  pParty->pPlayers[i].AddItem(-1, ITEM_SPEAR_1);
953  break;
954  case PLAYER_SKILL_BOW:
955  pParty->pPlayers[i].AddItem(-1, ITEM_CROSSBOW_1);
956  break;
957  case PLAYER_SKILL_MACE:
958  pParty->pPlayers[i].AddItem(-1, ITEM_MACE_1);
959  break;
961  Error("No blasters at startup :p");
962  case PLAYER_SKILL_SHIELD:
963  pParty->pPlayers[i].AddItem(-1, ITEM_BUCKLER_1);
964  break;
966  pParty->pPlayers[i].AddItem(-1, ITEM_LEATHER_1);
967  break;
968  case PLAYER_SKILL_CHAIN:
969  pParty->pPlayers[i].AddItem(-1, ITEM_CHAINMAIL_1);
970  break;
971  case PLAYER_SKILL_PLATE:
972  pParty->pPlayers[i].AddItem(-1, ITEM_PLATE_1);
973  break;
974  case PLAYER_SKILL_FIRE:
975  pParty->pPlayers[i].AddItem(-1, ITEM_SPELLBOOK_FIRE_STRIKE);
976  pParty->pPlayers[i]
977  .spellbook.pFireSpellbook.bIsSpellAvailable[0] = true;
978  break;
979  case PLAYER_SKILL_AIR:
980  pParty->pPlayers[i].AddItem(
982  pParty->pPlayers[i]
983  .spellbook.pAirSpellbook.bIsSpellAvailable[0] = true;
984  break;
985  case PLAYER_SKILL_WATER:
986  pParty->pPlayers[i].AddItem(
988  pParty->pPlayers[i]
989  .spellbook.pWaterSpellbook.bIsSpellAvailable[0] = true;
990  break;
991  case PLAYER_SKILL_EARTH:
992  pParty->pPlayers[i].AddItem(-1, ITEM_SPELLBOOK_EARTH_SLOW);
993  pParty->pPlayers[i]
994  .spellbook.pEarthSpellbook.bIsSpellAvailable[0] = true;
995  break;
996  case PLAYER_SKILL_SPIRIT:
997  pParty->pPlayers[i].AddItem(-1,
999  pParty->pPlayers[i]
1000  .spellbook.pSpiritSpellbook.bIsSpellAvailable[0] = true;
1001  break;
1002  case PLAYER_SKILL_MIND:
1003  pParty->pPlayers[i].AddItem(-1,
1005  pParty->pPlayers[i]
1006  .spellbook.pMindSpellbook.bIsSpellAvailable[0] = true;
1007  break;
1008  case PLAYER_SKILL_BODY:
1009  pParty->pPlayers[i].AddItem(-1,
1011  pParty->pPlayers[i]
1012  .spellbook.pBodySpellbook.bIsSpellAvailable[0] = true;
1013  break;
1014  case PLAYER_SKILL_LIGHT:
1015  case PLAYER_SKILL_DARK:
1017  Error("No dimoplacy in mm7 (yet)");
1018  break;
1019  case PLAYER_SKILL_ITEM_ID:
1020  case PLAYER_SKILL_REPAIR:
1024  case PLAYER_SKILL_LEARNING:
1025  pParty->pPlayers[i].AddItem(-1, ITEM_POTION_BOTTLE);
1026  pParty->pPlayers[i].AddItem(-1, 5 * (rand() % 3 + 40));
1027  break;
1028  case PLAYER_SKILL_DODGE:
1029  pParty->pPlayers[i].AddItem(-1, ITEM_BOOTS_1);
1030  break;
1031  case PLAYER_SKILL_UNARMED:
1032  pParty->pPlayers[i].AddItem(-1, ITEM_GAUNTLETS_1);
1033  break;
1034  default:
1035  break;
1036  }
1037 
1038  for (uint k = 0; k < 138; k++) {
1039  if (pParty->pPlayers[i].pOwnItems[k].uItemID)
1040  pParty->pPlayers[i].pOwnItems[k].SetIdentified();
1041  }
1042  }
1043  }
1044 
1045  pAudioPlayer->StopChannels(-1, -1);
1046  return party_not_creation_flag;
1047 }

Перекрестные ссылки CreateParty_EventLoop(), dword_6BE364_game_settings_1, Party::field_854, GAME_FINISHED, GAME_STATE_PLAYING, GAME_STATE_STARTING_NEW_GAME, ItemsTable::GenerateItem(), GetCurrentMenuID(), GUI_UpdateWindows(), ITEM_AXE_1, ITEM_BOOTS_1, ITEM_BUCKLER_1, ITEM_CHAINMAIL_1, ITEM_CROSSBOW_1, ITEM_DAGGER_1, ITEM_GAUNTLETS_1, ITEM_LEATHER_1, ITEM_LONGSWORD_1, ITEM_MACE_1, ITEM_PLATE_1, ITEM_POTION_BOTTLE, ITEM_SPEAR_1, ITEM_SPELLBOOK_AIR_FEATHER_FALL, ITEM_SPELLBOOK_BODY_FIRST_AID, ITEM_SPELLBOOK_EARTH_SLOW, ITEM_SPELLBOOK_FIRE_STRIKE, ITEM_SPELLBOOK_MIND_MIND_BLAST, ITEM_SPELLBOOK_SPIRIT_BLESS, ITEM_SPELLBOOK_WATER_POISON_SPRAY, ITEM_STAFF_1, MENU_CREATEPARTY, MENU_MAIN, MENU_NEWGAME, OS_WaitMessage(), pAudioPlayer, pGUIWindow_CurrentMenu, pItemsTable, PLAYER_CLASS_KNIGHT, PLAYER_SKILL_AIR, PLAYER_SKILL_AXE, PLAYER_SKILL_BLASTER, PLAYER_SKILL_BODY, PLAYER_SKILL_BOW, PLAYER_SKILL_CHAIN, PLAYER_SKILL_DAGGER, PLAYER_SKILL_DARK, PLAYER_SKILL_DIPLOMACY, PLAYER_SKILL_DODGE, PLAYER_SKILL_EARTH, PLAYER_SKILL_FIRE, PLAYER_SKILL_ITEM_ID, PLAYER_SKILL_LEARNING, PLAYER_SKILL_LEATHER, PLAYER_SKILL_LIGHT, PLAYER_SKILL_MACE, PLAYER_SKILL_MEDITATION, PLAYER_SKILL_MIND, PLAYER_SKILL_PERCEPTION, PLAYER_SKILL_PLATE, PLAYER_SKILL_REPAIR, PLAYER_SKILL_SHIELD, PLAYER_SKILL_SPEAR, PLAYER_SKILL_SPIRIT, PLAYER_SKILL_STAFF, PLAYER_SKILL_SWORD, PLAYER_SKILL_TRAP_DISARM, PLAYER_SKILL_UNARMED, PLAYER_SKILL_WATER, pParty, Party::pPlayers, GUIWindow::receives_keyboard_input_2, GUIWindow::Release(), render, ItemGen::Reset(), SetCurrentMenuID(), AudioPlayer::StopChannels() и uGameState.

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

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

◆ PartyCreationUI_DeleteFont()

void PartyCreationUI_DeleteFont ( )

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

850  {
851  free(ui_partycreation_font);
853 }

Перекрестные ссылки ui_partycreation_font.

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

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

◆ PlayerCreation_Choose4Skills()

bool PlayerCreation_Choose4Skills ( )

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

51  {
52  int skills_count;
53 
54  for (uint j = 0; j < 4; ++j) {
55  skills_count = 0;
56  for (uint i = 0; i < 37; ++i) {
57  if (pParty->pPlayers[j].pActiveSkills[i]) ++skills_count;
58  }
59  if (skills_count < 4) {
60  return false;
61  }
62  }
63  return true;
64 }

Перекрестные ссылки pParty и Party::pPlayers.

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

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

◆ CreateParty_EventLoop()

void CreateParty_EventLoop ( )

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

66  {
67  auto pPlayer = pParty->pPlayers.data();
68  while (!pMessageQueue_50CBD0->Empty()) {
69  UIMessageType msg;
70  int param, param2;
71  pMessageQueue_50CBD0->PopMessage(&msg, &param, &param2);
72 
73  switch (msg) {
75  {
79  7 +
83  break;
84  }
86  {
87  int sex = pParty->pPlayers[param].GetSexByVoice();
88  do {
89  if (pParty->pPlayers[param].uVoiceID == 0)
90  pParty->pPlayers[param].uVoiceID = 19;
91  else
92  --pParty->pPlayers[param].uVoiceID;
93  } while (pParty->pPlayers[param].GetSexByVoice() != sex);
94  auto pButton = pCreationUI_BtnPressLeft2[param];
95 
96  new OnButtonClick(pButton->uX, pButton->uY, 0, 0, (int)pButton,
97  String(), false);
99  pParty->pPlayers[param].PlaySound(SPEECH_PickMe, 0);
100  break;
101  }
103  {
104  int sex = pParty->pPlayers[param].GetSexByVoice();
105  do {
106  pParty->pPlayers[param].uVoiceID =
107  (pParty->pPlayers[param].uVoiceID + 1) % 20;
108  } while (pParty->pPlayers[param].GetSexByVoice() != sex);
109  auto pButton = pCreationUI_BtnPressRight2[param];
110  new OnButtonClick(pButton->uX, pButton->uY, 0, 0, (int)pButton,
111  String(), false);
113  pParty->pPlayers[param].PlaySound(SPEECH_PickMe, 0);
114  break;
115  }
117  // pPlayer = &pParty->pPlayers[pParam];
118  if (!pParty->pPlayers[param].uCurrentFace)
119  pParty->pPlayers[param].uCurrentFace = 19;
120  else
121  pParty->pPlayers[param].uCurrentFace -= 1;
122  pParty->pPlayers[param].uVoiceID =
123  pParty->pPlayers[param].uCurrentFace;
124  pParty->pPlayers[param].SetInitialStats();
125  pParty->pPlayers[param].SetSexByVoice();
126  pParty->pPlayers[param].RandomizeName();
130  7 +
134  pCreationUI_BtnPressLeft[param]->uY, 0, 0,
136  String(), false);
138  pParty->pPlayers[param].PlaySound(SPEECH_PickMe, 0);
139  break;
141  // pPlayer = &pParty->pPlayers[pParam];
142  int v20;
143  v20 =
144  (char)((int)pParty->pPlayers[param].uCurrentFace + 1) % 20;
145  pParty->pPlayers[param].uCurrentFace = v20;
146  pParty->pPlayers[param].uVoiceID = v20;
147  pParty->pPlayers[param].SetInitialStats();
148  pParty->pPlayers[param].SetSexByVoice();
149  pParty->pPlayers[param].RandomizeName();
153  7 +
157  pCreationUI_BtnPressRight[param]->uY, 0, 0,
159  String(), false);
161  pParty->pPlayers[param].PlaySound(SPEECH_PickMe, 0);
162  break;
164  new OnButtonClick2(613, 393, 0, 0,
166  false);
167  pPlayer[uPlayerCreationUI_SelectedCharacter].IncreaseAttribute(
170  7);
171  pAudioPlayer->PlaySound(SOUND_ClickMinus, 0, 0, -1, 0, 0);
172  break;
174  new OnButtonClick2(523, 393, 0, 0,
176  false);
177  pPlayer[uPlayerCreationUI_SelectedCharacter].DecreaseAttribute(
180  7);
181  pAudioPlayer->PlaySound(SOUND_ClickPlus, 0, 0, -1, 0, 0);
182  break;
185  .GetSkillIdxByOrder(3) == 37)
187  .pActiveSkills
189  .GetSkillIdxByOrder(param + 4)] = 1;
190  pAudioPlayer->PlaySound(SOUND_ClickSkill, 0, 0, -1, 0, 0);
191  break;
196  break;
198  new OnButtonClick2(580, 431, 0, 0,
203  OS_GetTime() + 4000;
204  else
206  break;
208  new OnButtonClick2(527, 431, 0, 0,
210  pParty->Reset();
211  break;
213  {
214  int v4;
219  7 * param;
220  if (pPlayer[param].GetSkillIdxByOrder(2) !=
221  37) { // 37 - None(Нет)
223  .pActiveSkills[pPlayer[param].GetSkillIdxByOrder(2)] =
224  0;
225  }
226  break;
227  }
229  {
230  int v4;
235  7 * param;
236  if (pPlayer[param].GetSkillIdxByOrder(3) !=
237  37) // 37 - None(Нет)
239  .pActiveSkills[pPlayer[param].GetSkillIdxByOrder(3)] =
240  0;
241  } break;
243  pAudioPlayer->PlaySound(SOUND_ClickSkill, 0, 0, -1, 0, 0);
247  break;
248  case UIMSG_Escape:
249  if (pModalWindow) {
251  pModalWindow = nullptr;
252  break;
253  }
254  if (!(dword_6BE364_game_settings_1 & GAME_SETTINGS_4000)) break;
255  viewparams->bRedrawGameUI = true;
256  viewparams->field_48 = 1;
257  if (GetCurrentMenuID() == MENU_MAIN ||
261  // if ( current_screen_type == SCREEN_VIDEO )
262  // pVideoPlayer->FastForwardToFrame(pVideoPlayer->pResetflag);
264  0, 0);
265  }
266  break;
269  break;
270  }
271  }
272 }

Перекрестные ссылки ViewingParams::bRedrawGameUI, dword_6BE364_game_settings_1, GUIMessageQueue::Empty(), KeyboardActionMapping::EnterText(), ViewingParams::field_48, GAME_FINISHED, GAME_STATE_STARTING_NEW_GAME, game_ui_status_bar_event_string_time_left, GetCurrentMenuID(), MENU_CREATEPARTY, MENU_MAIN, MENU_MMT_MAIN_MENU, MENU_NAMEPANELESC, OS_GetTime(), pAudioPlayer, pCreationUI_BtnPressLeft, pCreationUI_BtnPressLeft2, pCreationUI_BtnPressRight, pCreationUI_BtnPressRight2, GUIWindow::pCurrentPosActiveItem, pGUIWindow_CurrentMenu, pKeyActionMap, PlayerCreation_Choose4Skills(), PlayerCreation_GetUnspentAttributePointCount(), AudioPlayer::PlaySound(), pMessageQueue_50CBD0, pModalWindow, GUIMessageQueue::PopMessage(), pParty, pPlayerCreationUI_BtnMinus, pPlayerCreationUI_BtnOK, pPlayerCreationUI_BtnPlus, pPlayerCreationUI_BtnReset, Party::pPlayers, GUIWindow::pStartingPosActiveItem, GUIWindow::ptr_1C, GUIWindow::Release(), Party::Reset(), SOUND_ClickMinus, SOUND_ClickPlus, SOUND_ClickSkill, SOUND_SelectingANewCharacter, SPEECH_PickMe, uGameState, UIMSG_ChangeGameState, UIMSG_Escape, UIMSG_PlayerCreation_FaceNext, UIMSG_PlayerCreation_FacePrev, UIMSG_PlayerCreation_SelectAttribute, UIMSG_PlayerCreation_VoiceNext, UIMSG_PlayerCreation_VoicePrev, UIMSG_PlayerCreationChangeName, UIMSG_PlayerCreationClickMinus, UIMSG_PlayerCreationClickOK, UIMSG_PlayerCreationClickPlus, UIMSG_PlayerCreationClickReset, UIMSG_PlayerCreationRemoveDownSkill, UIMSG_PlayerCreationRemoveUpSkill, UIMSG_PlayerCreationSelectActiveSkill, UIMSG_PlayerCreationSelectClass, uPlayerCreationUI_SelectedCharacter и viewparams.

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

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

◆ PartyCreationUI_Loop()

bool PartyCreationUI_Loop ( )

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

Перекрестные ссылки _449B7E_toggle_bit(), Party::_quest_bits, Party::CreateDefaultParty(), AudioPlayer::MusicStop(), PARTY_QUEST_EMERALD_HAT_ACTIVE, PARTY_QUEST_EMERALD_LONGBOW_ACTIVE, PARTY_QUEST_EMERALD_LUTE_ACTIVE, PARTY_QUEST_EMERALD_PLATE_ACTIVE, PARTY_QUEST_EMERALD_RED_POTION_ACTIVE, PARTY_QUEST_EMERALD_SEASHELL_ACTIVE, PartyCreationUI_DeleteFont(), PartyCreationUI_LoopInternal(), pAudioPlayer, pGUIWindow_CurrentMenu, pParty и Party::Reset().

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

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

Переменные

◆ ui_partycreation_font

GUIFont* ui_partycreation_font

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

Используется в GUIWindow_PartyCreation::GUIWindow_PartyCreation(), PartyCreationUI_DeleteFont() и GUIWindow_PartyCreation::Update().

◆ ui_partycreation_top

Image* ui_partycreation_top = nullptr

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

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

◆ ui_partycreation_sky_scroller

Image* ui_partycreation_sky_scroller = nullptr

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

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

◆ ui_partycreation_left

Image* ui_partycreation_left = nullptr

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

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

◆ ui_partycreation_right

Image* ui_partycreation_right = nullptr

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

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

◆ ui_partycreation_minus

Image* ui_partycreation_minus = nullptr

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

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

◆ ui_partycreation_plus

Image* ui_partycreation_plus = nullptr

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

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

◆ ui_partycreation_buttmake2

Image* ui_partycreation_buttmake2 = nullptr

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

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

◆ ui_partycreation_buttmake

Image* ui_partycreation_buttmake = nullptr

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

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

◆ ui_partycreation_class_icons

std::array<Image *, 9> ui_partycreation_class_icons

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

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

◆ ui_partycreation_portraits

std::array<Image *, 22> ui_partycreation_portraits

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

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

◆ ui_partycreation_arrow_r

std::array<Image *, 20> ui_partycreation_arrow_r

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

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

◆ ui_partycreation_arrow_l

std::array<Image *, 20> ui_partycreation_arrow_l

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

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

ITEM_SPELLBOOK_BODY_FIRST_AID
@ ITEM_SPELLBOOK_BODY_FIRST_AID
Definition: Items.h:147
UIMSG_PlayerCreationClickPlus
@ UIMSG_PlayerCreationClickPlus
Definition: GUIWindow.h:48
SOUND_ClickPlus
@ SOUND_ClickPlus
Definition: AudioPlayer.h:17
OnButtonClick2
Definition: GUIWindow.h:523
UIMSG_PlayerCreationRemoveDownSkill
@ UIMSG_PlayerCreationRemoveDownSkill
Definition: GUIWindow.h:61
PLAYER_SKILL_BLASTER
@ PLAYER_SKILL_BLASTER
Definition: Player.h:178
Party::Reset
void Reset()
Definition: Party.cpp:507
ViewingParams::field_48
int field_48
Definition: Viewport.h:75
pCreationUI_BtnPressLeft2
std::array< GUIButton *, 4 > pCreationUI_BtnPressLeft2
Definition: GUIButton.cpp:91
PLAYER_SKILL_DAGGER
@ PLAYER_SKILL_DAGGER
Definition: Player.h:173
KeyboardActionMapping::EnterText
void EnterText(int a2, int max_string_len, GUIWindow *pWindow)
Definition: Keyboard.cpp:181
UIMessageType
UIMessageType
Definition: GUIWindow.h:13
GUIMessageQueue::Empty
bool Empty()
Definition: GUIWindow.h:659
UIMSG_Escape
@ UIMSG_Escape
Definition: GUIWindow.h:96
PartyCreationUI_DeleteFont
void PartyCreationUI_DeleteFont()
Definition: UIPartyCreation.cpp:850
MENU_NAMEPANELESC
@ MENU_NAMEPANELESC
Definition: GUIWindow.h:258
PLAYER_SKILL_STAFF
@ PLAYER_SKILL_STAFF
Definition: Player.h:171
PARTY_QUEST_EMERALD_PLATE_ACTIVE
@ PARTY_QUEST_EMERALD_PLATE_ACTIVE
Definition: Party.h:17
ITEM_PLATE_1
@ ITEM_PLATE_1
Definition: Items.h:86
PartyCreationUI_LoopInternal
bool PartyCreationUI_LoopInternal()
Definition: UIPartyCreation.cpp:856
pPlayerCreationUI_BtnMinus
GUIButton * pPlayerCreationUI_BtnMinus
Definition: GUIButton.cpp:31
uGameState
unsigned int uGameState
Definition: mm7_data.cpp:695
Party::field_854
std::array< char, 32 > field_854
Definition: Party.h:302
pGUIWindow_CurrentMenu
GUIWindow * pGUIWindow_CurrentMenu
Definition: GUIWindow.cpp:54
PARTY_QUEST_EMERALD_HAT_ACTIVE
@ PARTY_QUEST_EMERALD_HAT_ACTIVE
Definition: Party.h:19
PLAYER_SKILL_AXE
@ PLAYER_SKILL_AXE
Definition: Player.h:174
SetCurrentMenuID
void SetCurrentMenuID(MENU_STATE uMenu)
Definition: GUIWindow.cpp:128
OnButtonClick
Definition: GUIWindow.h:510
uPlayerCreationUI_SelectedCharacter
unsigned int uPlayerCreationUI_SelectedCharacter
Definition: mm7_data.cpp:761
GAME_FINISHED
@ GAME_FINISHED
Definition: Engine.h:33
AudioPlayer::PlaySound
void PlaySound(SoundID eSoundID, int pid, unsigned int uNumRepeats, int x, int y, int a7)
Definition: AudioPlayer.cpp:195
UIMSG_PlayerCreation_VoiceNext
@ UIMSG_PlayerCreation_VoiceNext
Definition: GUIWindow.h:125
PLAYER_SKILL_EARTH
@ PLAYER_SKILL_EARTH
Definition: Player.h:186
UIMSG_PlayerCreationClickOK
@ UIMSG_PlayerCreationClickOK
Definition: GUIWindow.h:52
UIMSG_PlayerCreationClickMinus
@ UIMSG_PlayerCreationClickMinus
Definition: GUIWindow.h:49
PLAYER_SKILL_MIND
@ PLAYER_SKILL_MIND
Definition: Player.h:188
Party::_quest_bits
unsigned __int8 _quest_bits[64]
Definition: Party.h:291
MENU_MAIN
@ MENU_MAIN
Definition: GUIWindow.h:251
PLAYER_SKILL_LEARNING
@ PLAYER_SKILL_LEARNING
Definition: Player.h:207
PLAYER_SKILL_BOW
@ PLAYER_SKILL_BOW
Definition: Player.h:176
Party::pPlayers
std::array< Player, 4 > pPlayers
Definition: Party.h:310
GUIWindow::Release
virtual void Release()
Definition: GUIWindow.cpp:292
pCreationUI_BtnPressRight
std::array< GUIButton *, 4 > pCreationUI_BtnPressRight
Definition: GUIButton.cpp:93
ITEM_GAUNTLETS_1
@ ITEM_GAUNTLETS_1
Definition: Items.h:89
ITEM_LONGSWORD_1
@ ITEM_LONGSWORD_1
Definition: Items.h:75
SPEECH_PickMe
@ SPEECH_PickMe
Definition: Player.h:148
ItemGen::Reset
void Reset()
Definition: Items.cpp:133
ITEM_LEATHER_1
@ ITEM_LEATHER_1
Definition: Items.h:84
pCreationUI_BtnPressLeft
std::array< GUIButton *, 4 > pCreationUI_BtnPressLeft
Definition: GUIButton.cpp:92
ITEM_SPELLBOOK_FIRE_STRIKE
@ ITEM_SPELLBOOK_FIRE_STRIKE
Definition: Items.h:140
PLAYER_SKILL_ITEM_ID
@ PLAYER_SKILL_ITEM_ID
Definition: Player.h:192
PLAYER_SKILL_FIRE
@ PLAYER_SKILL_FIRE
Definition: Player.h:183
GUIWindow::receives_keyboard_input_2
int receives_keyboard_input_2
Definition: GUIWindow.h:486
PLAYER_SKILL_UNARMED
@ PLAYER_SKILL_UNARMED
Definition: Player.h:202
ITEM_SPELLBOOK_AIR_FEATHER_FALL
@ ITEM_SPELLBOOK_AIR_FEATHER_FALL
Definition: Items.h:141
GUIWindow::pStartingPosActiveItem
int pStartingPosActiveItem
Definition: GUIWindow.h:485
PLAYER_SKILL_LIGHT
@ PLAYER_SKILL_LIGHT
Definition: Player.h:190
GetCurrentMenuID
MENU_STATE GetCurrentMenuID()
Definition: GUIWindow.cpp:133
pItemsTable
struct ItemsTable * pItemsTable
Definition: Items.cpp:37
pCreationUI_BtnPressRight2
std::array< GUIButton *, 4 > pCreationUI_BtnPressRight2
Definition: GUIButton.cpp:90
MENU_NEWGAME
@ MENU_NEWGAME
Definition: GUIWindow.h:252
PLAYER_SKILL_PERCEPTION
@ PLAYER_SKILL_PERCEPTION
Definition: Player.h:197
AudioPlayer::MusicStop
void MusicStop()
Definition: AudioPlayer.cpp:140
ITEM_BOOTS_1
@ ITEM_BOOTS_1
Definition: Items.h:90
PLAYER_SKILL_DIPLOMACY
@ PLAYER_SKILL_DIPLOMACY
Definition: Player.h:198
pParty
Party * pParty
Definition: Party.cpp:30
GUIWindow::pCurrentPosActiveItem
int pCurrentPosActiveItem
Definition: GUIWindow.h:482
PLAYER_SKILL_SPIRIT
@ PLAYER_SKILL_SPIRIT
Definition: Player.h:187
GUIWindow_PartyCreation
Definition: UIPartyCreation.h:9
PLAYER_SKILL_DODGE
@ PLAYER_SKILL_DODGE
Definition: Player.h:201
ITEM_CROSSBOW_1
@ ITEM_CROSSBOW_1
Definition: Items.h:79
UIMSG_PlayerCreationChangeName
@ UIMSG_PlayerCreationChangeName
Definition: GUIWindow.h:46
param
GLfloat param
Definition: SDL_opengl_glext.h:373
MENU_MMT_MAIN_MENU
@ MENU_MMT_MAIN_MENU
Definition: GUIWindow.h:263
viewparams
struct ViewingParams * viewparams
Definition: mm7_data.cpp:22
ItemsTable::GenerateItem
void GenerateItem(int treasure_level, unsigned int uTreasureType, ItemGen *pItem)
Definition: Items.cpp:680
OS_GetTime
unsigned int OS_GetTime()
Definition: Lin.cpp:12
SOUND_ClickSkill
@ SOUND_ClickSkill
Definition: AudioPlayer.h:18
PARTY_QUEST_EMERALD_LUTE_ACTIVE
@ PARTY_QUEST_EMERALD_LUTE_ACTIVE
Definition: Party.h:18
PLAYER_SKILL_MEDITATION
@ PLAYER_SKILL_MEDITATION
Definition: Player.h:196
CreateParty_EventLoop
void CreateParty_EventLoop()
Definition: UIPartyCreation.cpp:66
SOUND_SelectingANewCharacter
@ SOUND_SelectingANewCharacter
Definition: AudioPlayer.h:34
GAME_STATE_STARTING_NEW_GAME
@ GAME_STATE_STARTING_NEW_GAME
Definition: Engine.h:38
ITEM_MACE_1
@ ITEM_MACE_1
Definition: Items.h:80
PLAYER_SKILL_AIR
@ PLAYER_SKILL_AIR
Definition: Player.h:184
ITEM_SPELLBOOK_WATER_POISON_SPRAY
@ ITEM_SPELLBOOK_WATER_POISON_SPRAY
Definition: Items.h:142
ITEM_SPELLBOOK_EARTH_SLOW
@ ITEM_SPELLBOOK_EARTH_SLOW
Definition: Items.h:143
AudioPlayer::StopChannels
void StopChannels(int uStartChannel, int uEndChannel)
Definition: AudioPlayer.cpp:331
PLAYER_SKILL_LEATHER
@ PLAYER_SKILL_LEATHER
Definition: Player.h:180
UIMSG_PlayerCreationRemoveUpSkill
@ UIMSG_PlayerCreationRemoveUpSkill
Definition: GUIWindow.h:60
PLAYER_SKILL_MACE
@ PLAYER_SKILL_MACE
Definition: Player.h:177
UIMSG_PlayerCreation_FaceNext
@ UIMSG_PlayerCreation_FaceNext
Definition: GUIWindow.h:139
PLAYER_SKILL_TRAP_DISARM
@ PLAYER_SKILL_TRAP_DISARM
Definition: Player.h:200
UIMSG_PlayerCreation_SelectAttribute
@ UIMSG_PlayerCreation_SelectAttribute
Definition: GUIWindow.h:101
window
EGLSurface EGLNativeWindowType * window
Definition: SDL_egl.h:1580
PLAYER_SKILL_WATER
@ PLAYER_SKILL_WATER
Definition: Player.h:185
GUI_UpdateWindows
void GUI_UpdateWindows()
Definition: GUIWindow.cpp:956
PLAYER_CLASS_TYPE
PLAYER_CLASS_TYPE
Definition: Player.h:215
ITEM_STAFF_1
@ ITEM_STAFF_1
Definition: Items.h:81
PARTY_QUEST_EMERALD_RED_POTION_ACTIVE
@ PARTY_QUEST_EMERALD_RED_POTION_ACTIVE
Definition: Party.h:14
GUIMessageQueue::PopMessage
void PopMessage(UIMessageType *pMsg, int *pParam, int *a4)
Definition: GUIWindow.cpp:174
PLAYER_SKILL_SPEAR
@ PLAYER_SKILL_SPEAR
Definition: Player.h:175
PARTY_QUEST_EMERALD_LONGBOW_ACTIVE
@ PARTY_QUEST_EMERALD_LONGBOW_ACTIVE
Definition: Party.h:16
ui_partycreation_font
GUIFont * ui_partycreation_font
Definition: UIPartyCreation.cpp:30
Party::CreateDefaultParty
void CreateDefaultParty(bool bDebugGiveItems=false)
Definition: Party.cpp:311
SOUND_ClickMinus
@ SOUND_ClickMinus
Definition: AudioPlayer.h:15
GAME_STATE_PLAYING
@ GAME_STATE_PLAYING
Definition: Engine.h:32
PLAYER_SKILL_SHIELD
@ PLAYER_SKILL_SHIELD
Definition: Player.h:179
ITEM_DAGGER_1
@ ITEM_DAGGER_1
Definition: Items.h:76
UIMSG_PlayerCreationSelectClass
@ UIMSG_PlayerCreationSelectClass
Definition: GUIWindow.h:51
game_ui_status_bar_event_string_time_left
unsigned int game_ui_status_bar_event_string_time_left
Definition: mm7_data.cpp:639
ITEM_SPELLBOOK_MIND_MIND_BLAST
@ ITEM_SPELLBOOK_MIND_MIND_BLAST
Definition: Items.h:146
PlayerCreation_Choose4Skills
bool PlayerCreation_Choose4Skills()
Definition: UIPartyCreation.cpp:51
UIMSG_PlayerCreationClickReset
@ UIMSG_PlayerCreationClickReset
Definition: GUIWindow.h:53
PLAYER_SKILL_CHAIN
@ PLAYER_SKILL_CHAIN
Definition: Player.h:181
pPlayerCreationUI_BtnOK
GUIButton * pPlayerCreationUI_BtnOK
Definition: GUIButton.cpp:27
UIMSG_PlayerCreationSelectActiveSkill
@ UIMSG_PlayerCreationSelectActiveSkill
Definition: GUIWindow.h:50
pPlayerCreationUI_BtnReset
GUIButton * pPlayerCreationUI_BtnReset
Definition: GUIButton.cpp:26
pKeyActionMap
struct KeyboardActionMapping * pKeyActionMap
Definition: Keyboard.cpp:35
PLAYER_SKILL_SWORD
@ PLAYER_SKILL_SWORD
Definition: Player.h:172
UIMSG_PlayerCreation_FacePrev
@ UIMSG_PlayerCreation_FacePrev
Definition: GUIWindow.h:138
uint
unsigned int uint
Definition: MM7.h:4
UIMSG_ChangeGameState
@ UIMSG_ChangeGameState
Definition: GUIWindow.h:16
_449B7E_toggle_bit
void _449B7E_toggle_bit(unsigned char *pArray, __int16 a2, unsigned __int16 bToggle)
Definition: Party.cpp:1190
ITEM_POTION_BOTTLE
@ ITEM_POTION_BOTTLE
Definition: Items.h:120
PLAYER_SKILL_REPAIR
@ PLAYER_SKILL_REPAIR
Definition: Player.h:194
ITEM_SPEAR_1
@ ITEM_SPEAR_1
Definition: Items.h:78
PARTY_QUEST_EMERALD_SEASHELL_ACTIVE
@ PARTY_QUEST_EMERALD_SEASHELL_ACTIVE
Definition: Party.h:15
GUIWindow::ptr_1C
void * ptr_1C
Definition: GUIWindow.h:476
ViewingParams::bRedrawGameUI
int bRedrawGameUI
Definition: Viewport.h:74
dword_6BE364_game_settings_1
int dword_6BE364_game_settings_1
Definition: mm7_data.cpp:714
PlayerCreation_GetUnspentAttributePointCount
int PlayerCreation_GetUnspentAttributePointCount()
Definition: Player.cpp:223
PLAYER_SKILL_DARK
@ PLAYER_SKILL_DARK
Definition: Player.h:191
PLAYER_SKILL_BODY
@ PLAYER_SKILL_BODY
Definition: Player.h:189
pAudioPlayer
AudioPlayer * pAudioPlayer
Definition: AudioPlayer.cpp:20
pModalWindow
GUIWindow * pModalWindow
Definition: GUIWindow.cpp:57
ItemGen
Definition: Items.h:263
pMessageQueue_50CBD0
struct GUIMessageQueue * pMessageQueue_50CBD0
Definition: GUIWindow.cpp:86
PLAYER_CLASS_KNIGHT
@ PLAYER_CLASS_KNIGHT
Definition: Player.h:216
ITEM_CHAINMAIL_1
@ ITEM_CHAINMAIL_1
Definition: Items.h:85
ITEM_SPELLBOOK_SPIRIT_BLESS
@ ITEM_SPELLBOOK_SPIRIT_BLESS
Definition: Items.h:144
pPlayerCreationUI_BtnPlus
GUIButton * pPlayerCreationUI_BtnPlus
Definition: GUIButton.cpp:30
String
std::string String
Definition: Strings.h:10
UIMSG_PlayerCreation_VoicePrev
@ UIMSG_PlayerCreation_VoicePrev
Definition: GUIWindow.h:124
OS_WaitMessage
void OS_WaitMessage()
Definition: Lin.cpp:32
ITEM_BUCKLER_1
@ ITEM_BUCKLER_1
Definition: Items.h:87
ITEM_AXE_1
@ ITEM_AXE_1
Definition: Items.h:77
MENU_CREATEPARTY
@ MENU_CREATEPARTY
Definition: GUIWindow.h:257
PLAYER_SKILL_PLATE
@ PLAYER_SKILL_PLATE
Definition: Player.h:182
render
std::shared_ptr< IRender > render
Definition: RenderOpenGL.cpp:52