World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Класс GUIWindow_Dialogue

#include <UIDialogue.h>

+ Граф наследования:GUIWindow_Dialogue:
+ Граф связей класса GUIWindow_Dialogue:

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

 GUIWindow_Dialogue (unsigned int x, unsigned int y, unsigned int width, unsigned int height, int button, const String &hint=String())
 
virtual ~GUIWindow_Dialogue ()
 
virtual void Update ()
 
virtual void Release ()
 
- Открытые члены унаследованные от GUIWindow
 GUIWindow ()
 
 GUIWindow (WindowType windowType, unsigned int uX, unsigned int uY, unsigned int uWidth, unsigned int uHeight, int pButton, const String &hint=String())
 
virtual ~GUIWindow ()
 
GUIButtonCreateButton (int x, int y, int width, int height, int a6, int a7, UIMessageType msg, unsigned int msg_param, uint8_t hotkey, const String &label, const std::vector< Image * > &textures=std::vector< Image * >())
 
bool Contains (unsigned int x, unsigned int y)
 
void DrawFlashingInputCursor (int uX, int uY, GUIFont *a2)
 
int DrawTextInRect (GUIFont *font, unsigned int x, unsigned int y, unsigned int color, const char *text, int rect_width, int reverse_text)
 
int DrawTextInRect (GUIFont *font, unsigned int x, unsigned int y, unsigned int color, String &str, int rect_width, int reverse_text)
 
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)
 
void DrawText (GUIFont *font, int x, int y, unsigned short uFontColor, const String &str, bool present_time_transparency=false, int max_text_height=0, int uFontShadowColor=0)
 
void DrawTitleText (GUIFont *font, int horizontal_margin, int vertical_margin, unsigned __int16 uDefaultColor, const char *pInString, int line_spacing)
 
void DrawTitleText (GUIFont *font, int horizontal_margin, int vertical_margin, unsigned __int16 uDefaultColor, const String &str, int line_spacing)
 
void DrawShops_next_generation_time_string (GameTime time)
 
void HouseDialogManager ()
 
void DrawMessageBox (bool inside_game_viewport)
 
GUIButtonGetControl (unsigned int uID)
 
void _41D08F_set_keyboard_control_group (int num_buttons, int a3, int a4, int a5)
 
void _41D73D_draw_buff_tooltip ()
 
void DeleteButtons ()
 

Дополнительные унаследованные члены

- Открытые статические члены унаследованные от GUIWindow
static void InitializeGUI ()
 
- Открытые атрибуты унаследованные от GUIWindow
unsigned int uFrameX
 
unsigned int uFrameY
 
unsigned int uFrameWidth
 
unsigned int uFrameHeight
 
unsigned int uFrameZ
 
unsigned int uFrameW
 
WindowType eWindowType
 
union {
   void *   ptr_1C
 
   unsigned int   par1C
 
}; 
 
int field_24
 
int pNumPresenceButton
 
int pCurrentPosActiveItem
 
int field_30
 
int field_34
 
int pStartingPosActiveItem
 
int receives_keyboard_input_2
 
bool receives_keyboard_input
 
String sHint
 
std::vector< GUIButton * > vButtons
 
Mousemouse = nullptr
 
Loglog = nullptr
 

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

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

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

◆ GUIWindow_Dialogue()

GUIWindow_Dialogue::GUIWindow_Dialogue ( unsigned int  x,
unsigned int  y,
unsigned int  width,
unsigned int  height,
int  button,
const String hint = String() 
)

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

129  : GUIWindow(WINDOW_Dialogue, x, y, width, height, button, hint) {
133  CreateButton(0x1D7u, 0x1BDu, 0xA9u, 0x23u, 1, 0, UIMSG_Escape, 0, 0,
134  localization->GetString(79), // "Exit"
135  {{ui_exit_cancel_button_background}});
136  if (par1C != 1) {
137  int num_menu_buttons = 0;
138  int v11 = pFontArrus->GetHeight() - 3;
141  1) { // QuestsNPC_greet
142  if (speakingNPC->joins) {
143  CreateButton(480, 130, 140, v11, 1, 0,
144  UIMSG_SelectNPCDialogueOption, 0xDu, 0, "");
145  num_menu_buttons = 1;
146  }
147  if (speakingNPC->evt_A) {
148  if (num_menu_buttons < 4) {
149  int v14 = NPC_EventProcessor(speakingNPC->evt_A);
150  if (v14 == 1 || v14 == 2)
151  CreateButton(
152  0x1E0u, num_menu_buttons++ * v11 + 130, 0x8Cu, v11,
153  1, 0, UIMSG_SelectNPCDialogueOption, 0x13u, 0, "");
154  }
155  }
156  if (speakingNPC->evt_B) {
157  if (num_menu_buttons < 4) {
158  int v16 = NPC_EventProcessor(speakingNPC->evt_B);
159  if (v16 == 1 || v16 == 2)
160  CreateButton(
161  0x1E0u, num_menu_buttons++ * v11 + 130, 0x8Cu, v11,
162  1, 0, UIMSG_SelectNPCDialogueOption, 0x14u, 0, "");
163  }
164  }
165  if (speakingNPC->evt_C) {
166  if (num_menu_buttons < 4) {
167  int v18 = NPC_EventProcessor(speakingNPC->evt_C);
168  if (v18 == 1 || v18 == 2)
169  CreateButton(
170  0x1E0u, num_menu_buttons++ * v11 + 130, 0x8Cu, v11,
171  1, 0, UIMSG_SelectNPCDialogueOption, 0x15u, 0, "");
172  }
173  }
174  if (speakingNPC->evt_D) {
175  if (num_menu_buttons < 4) {
176  int v20 = NPC_EventProcessor(speakingNPC->evt_D);
177  if (v20 == 1 || v20 == 2)
178  CreateButton(
179  0x1E0u, num_menu_buttons++ * v11 + 130, 0x8Cu, v11,
180  1, 0, UIMSG_SelectNPCDialogueOption, 0x16u, 0, "");
181  }
182  }
183  if (speakingNPC->evt_E) {
184  if (num_menu_buttons < 4) {
185  int v22 = NPC_EventProcessor(speakingNPC->evt_E);
186  if (v22 == 1 || v22 == 2)
187  CreateButton(
188  0x1E0u, num_menu_buttons++ * v11 + 130, 0x8Cu, v11,
189  1, 0, UIMSG_SelectNPCDialogueOption, 0x17u, 0, "");
190  }
191  }
192  if (speakingNPC->evt_F) {
193  if (num_menu_buttons < 4) {
194  int v24 = NPC_EventProcessor(speakingNPC->evt_F);
195  if (v24 == 1 || v24 == 2)
196  CreateButton(
197  0x1E0u, num_menu_buttons++ * v11 + 130, 0x8Cu, v11,
198  1, 0, UIMSG_SelectNPCDialogueOption, 0x18u, 0, "");
199  }
200  }
201  } else {
202  if (speakingNPC->joins) {
203  CreateButton(0x1E0u, 0x82u, 0x8Cu, v11, 1, 0,
205  localization->GetString(407)); // Подробнее
206  if (speakingNPC->Hired()) {
207  CreateButton(
208  0x1E0u, v11 + 130, 0x8Cu, v11, 1, 0,
211  408,
212  speakingNPC->pName)); // Release %s Отпустить %s
213  } else {
214  CreateButton(0x1E0u, v11 + 130, 0x8Cu, v11, 1, 0,
216  localization->GetString(406)); // Hire Нанять
217  }
218  num_menu_buttons = 2;
219  }
220  }
221  _41D08F_set_keyboard_control_group(num_menu_buttons, 1, 0, 1);
222  }
223 }

Перекрестные ссылки GUIWindow::CreateButton(), current_screen_type, Localization::GetString(), localization, pBtn_ExitCancel, prev_screen_type, SCREEN_NPC_DIALOGUE и UIMSG_Escape.

+ Граф вызовов:

◆ ~GUIWindow_Dialogue()

virtual GUIWindow_Dialogue::~GUIWindow_Dialogue ( )
inlinevirtual

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

8 {}

Методы

◆ Update()

void GUIWindow_Dialogue::Update ( )
virtual

Переопределяет метод предка GUIWindow.

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

238  {
239  if (!pDialogueWindow) {
240  return;
241  }
242 
243  // Window title(Заголовок окна)----
247  window.uFrameWidth -= 10;
248  window.uFrameZ -= 10;
249  render->DrawTextureNew(477 / 640.0f, 0, game_ui_dialogue_background);
250  render->DrawTextureAlphaNew(468 / 640.0f, 0, game_ui_right_panel_frame);
251  render->DrawTextureAlphaNew((pNPCPortraits_x[0][0] - 4) / 640.0f,
252  (pNPCPortraits_y[0][0] - 4) / 480.0f,
254  render->DrawTextureAlphaNew(pNPCPortraits_x[0][0] / 640.0f,
255  pNPCPortraits_y[0][0] / 480.0f,
257 
258  String title;
259  if (pNPC->uProfession) {
260  assert(pNPC->uProfession <
261  59); // sometimes buffer overflows; errors emerge both here and
262  // in dialogue text
263  title =
264  localization->FormatString(429, pNPC->pName,
266  pNPC->uProfession)); // ^Pi[%s] %s
267  } else if (pNPC->pName) {
268  title = pNPC->pName;
269  }
270 
271  window.DrawTitleText(pFontArrus, 483, 112, ui_game_dialogue_npc_name_color,
272  title, 3);
273 
274  pParty->GetPartyFame();
275 
276  String dialogue_string;
277  switch (uDialogueType) {
278  case DIALOGUE_13:
279  dialogue_string = BuildDialogueString(
281  uActiveCharacter - 1, 0, 0, 0);
282  break;
283 
285  // auto prof = pNPCStats->pProfessions[pNPC->uProfession];
286 
288  dialogue_string = BuildDialogueString(
290  uActiveCharacter - 1, 0, 0, 0);
291  else if (pNPC->Hired())
292  dialogue_string = BuildDialogueString(
294  uActiveCharacter - 1, 0, 0, 0);
295  else
296  dialogue_string = BuildDialogueString(
298  uActiveCharacter - 1, 0, 0, 0);
299  break;
300  }
301 
303  dialogue_string = localization->GetString(
304  574); // "Welcome to the Arena of Life and Death. Remember,
305  // you are only allowed one arena combat per visit. To
306  // fight an arena battle, select the option that best
307  // describes your abilities and return to me- if you
308  // survive:"
309  break;
310 
312  dialogue_string =
313  localization->GetString(577); // "Get back in there you wimps:"
314  break;
315 
317  dialogue_string = localization->FormatString(
318  576, gold_transaction_amount); // "Congratulations on your win:
319  // here's your stuff: %u gold."
320  break;
321 
323  dialogue_string = localization->GetString(
324  582); // "You already won this trip to the Arena:"
325  break;
326 
327  default:
329  branchless_dialogue_str.empty()) {
330  dialogue_string = current_npc_text;
331  } else if (pGreetType == 1) { // QuestNPC_greet
332  if (pNPC->greet) {
333  if ((pNPC->uFlags & 3) == 2)
334  dialogue_string =
336  else
337  dialogue_string =
339  }
340  } else if (pGreetType == 2) { // HiredNPC_greet
341  NPCProfession *prof =
343 
344  if (pNPC->Hired())
345  dialogue_string = BuildDialogueString(
346  prof->pDismissText, uActiveCharacter - 1, 0, 0, 0);
347  else
348  dialogue_string = BuildDialogueString(
349  prof->pJoinText, uActiveCharacter - 1, 0, 0, 0);
350  }
351  break;
352  }
353 
354  int pTextHeight = 0;
355 
356  // Message window(Окно сообщения)----
357  if (!dialogue_string.empty()) {
358  window.uFrameWidth = game_viewport_width;
359  window.uFrameZ = 452;
360  GUIFont *font = pFontArrus;
361  pTextHeight = pFontArrus->CalcTextHeight(dialogue_string,
362  window.uFrameWidth, 13) +
363  7;
364  if (352 - pTextHeight < 8) {
365  font = pFontCreate;
366  pTextHeight = pFontCreate->CalcTextHeight(dialogue_string,
367  window.uFrameWidth, 13) +
368  7;
369  }
370 
371  if (ui_leather_mm7)
372  render->DrawTextureCustomHeight(8 / 640.0f,
373  (352 - pTextHeight) / 480.0f,
374  ui_leather_mm7, pTextHeight);
375 
376  render->DrawTextureAlphaNew(8 / 640.0f, (347 - pTextHeight) / 480.0f,
379  font, 13, 354 - pTextHeight, 0,
380  font->FitTextInAWindow(dialogue_string, window.uFrameWidth, 13), 0,
381  0, 0);
382  }
383 
384  // Right panel(Правая панель)-------
386  window.uFrameX = 483;
387  window.uFrameWidth = 148;
388  window.uFrameZ = 334;
389  for (int i = window.pStartingPosActiveItem;
390  i < window.pStartingPosActiveItem + window.pNumPresenceButton; ++i) {
391  GUIButton *pButton = window.GetControl(i);
392  if (!pButton) break;
393 
394  if (pButton->msg_param > 88) {
395  pButton->sLabel.clear();
396  } else if (pButton->msg_param == 88) {
397  pButton->sLabel = localization->GetString(581); // Lord
398  } else if (pButton->msg_param == 87) {
399  pButton->sLabel = localization->GetString(580); // Knight
400  } else if (pButton->msg_param == 86) {
401  pButton->sLabel = localization->GetString(579); // Squire
402  } else if (pButton->msg_param == 85) {
403  pButton->sLabel = localization->GetString(578); // Page
404  } else if (pButton->msg_param == 77) {
405  pButton->sLabel = localization->GetString(407); // Details
406  } else if (pButton->msg_param == 76) {
407  if (pNPC->Hired()) {
408  pButton->sLabel = StringPrintf(localization->GetString(408),
409  pNPC->pName); // Release %s
410  } else {
411  pButton->sLabel = localization->GetString(406); // Hire
412  }
413  } else if (pButton->msg_param == 24) {
414  __debugbreak(); // learn conditions of this event
415  if (!pNPC->evt_F) {
416  pButton->sLabel.clear();
417  pButton->msg_param = 0;
418  } else {
419  pButton->sLabel = pNPCTopics[pNPC->evt_F].pTopic;
420  }
421  } else if (pButton->msg_param == 9) {
422  pButton->sLabel = GetProfessionActionText(pNPC->uProfession);
423  } else if (pButton->msg_param == 19) { // Scavenger Hunt
424  if (!pNPC->evt_A) {
425  pButton->sLabel.clear();
426  pButton->msg_param = 0;
427  } else {
428  pButton->sLabel = pNPCTopics[pNPC->evt_A].pTopic;
429  }
430  } else if (pButton->msg_param == 20) { // Scavenger Hunt
431  if (!pNPC->evt_B) {
432  pButton->sLabel.clear();
433  pButton->msg_param = 0;
434  } else {
435  pButton->sLabel = pNPCTopics[pNPC->evt_B].pTopic;
436  }
437  } else if (pButton->msg_param == 21) {
438  // __debugbreak(); // learn conditions of this event
439  if (!pNPC->evt_C) {
440  pButton->sLabel.clear();
441  pButton->msg_param = 0;
442  } else {
443  pButton->sLabel = pNPCTopics[pNPC->evt_C].pTopic;
444  }
445  } else if (pButton->msg_param == 22) {
446  // __debugbreak(); // learn conditions of this event
447  if (!pNPC->evt_D) {
448  pButton->sLabel.clear();
449  pButton->msg_param = 0;
450  } else {
451  pButton->sLabel = pNPCTopics[pNPC->evt_D].pTopic;
452  }
453  } else if (pButton->msg_param == 23) {
454  // __debugbreak(); // learn conditions of this event
455  if (!pNPC->evt_E) {
456  pButton->sLabel.clear();
457  pButton->msg_param = 0;
458  } else {
459  pButton->sLabel = pNPCTopics[pNPC->evt_E].pTopic;
460  }
461  } else if (pButton->msg_param == 13) {
462  if (pNPC->Hired()) {
463  pButton->sLabel = StringPrintf(localization->GetString(408),
464  pNPC->pName); // Release %s
465  } else {
466  pButton->sLabel = localization->GetString(122); // Join
467  }
468  } else {
469  pButton->sLabel.clear();
470  }
471 
474  int num_dead_actors = 0;
475  for (uint i = 0; i < uNumActors; ++i) {
476  if (pActors[i].uAIState == Dead ||
477  pActors[i].uAIState == Removed ||
478  pActors[i].uAIState == Disabled) {
479  ++num_dead_actors;
480  } else {
481  int sumonner_type = PID_TYPE(pActors[i].uSummonerID);
482  if (sumonner_type == OBJECT_Player) ++num_dead_actors;
483  }
484  }
485  if (num_dead_actors == uNumActors) {
486  pButton->sLabel =
487  localization->GetString(658); // Collect Prize
488  }
489  }
490  }
491 
492  // Install Buttons(Установка кнопок)--------
493  int index = 0;
494  int all_text_height = 0;
496  i < pDialogueWindow->pStartingPosActiveItem +
498  ++i) {
499  GUIButton *pButton = pDialogueWindow->GetControl(i);
500  if (!pButton) break;
501  all_text_height +=
502  pFontArrus->CalcTextHeight(pButton->sLabel, window.uFrameWidth, 0);
503  index++;
504  }
505 
506  if (index) {
507  int v45 = (174 - all_text_height) / index;
508  if (v45 > 32) v45 = 32;
509  int v42 = (174 - v45 * index - all_text_height) / 2 - v45 / 2 + 138;
511  i < pDialogueWindow->pNumPresenceButton +
513  ++i) {
514  GUIButton *pButton = pDialogueWindow->GetControl(i);
515  if (!pButton) break;
516  pButton->uY = (unsigned int)(v45 + v42);
517  pTextHeight = pFontArrus->CalcTextHeight(pButton->sLabel,
518  window.uFrameWidth, 0);
519  pButton->uHeight = pTextHeight;
520  v42 = pButton->uY + pTextHeight - 1;
521  pButton->uW = v42;
525  window.DrawTitleText(pFontArrus, 0, pButton->uY, pTextColor,
526  pButton->sLabel, 3);
527  }
528  }
529  render->DrawTextureAlphaNew(471 / 640.0f, 445 / 480.0f,
531 }

Перекрестные ссылки _591428_endcap, __debugbreak(), branchless_dialogue_str, BuildDialogueString(), GUIFont::CalcTextHeight(), current_npc_text, Dead, DIALOGUE_13, DIALOGUE_18, DIALOGUE_ARENA_ALREADY_WON, DIALOGUE_ARENA_FIGHT_NOT_OVER_YET, DIALOGUE_ARENA_REWARD, DIALOGUE_ARENA_WELCOME, DIALOGUE_EVT_E, DIALOGUE_PROFESSION_DETAILS, dialogue_show_profession_details, Disabled, GUIWindow::DrawText(), NPCData::evt_A, NPCData::evt_B, NPCData::evt_C, NPCData::evt_D, NPCData::evt_E, NPCData::evt_F, Party::field_7B5_in_arena_quest, GUIFont::FitTextInAWindow(), Localization::FormatString(), game_ui_dialogue_background, game_ui_evtnpc, game_ui_right_panel_frame, game_viewport_width, GUIWindow::GetControl(), GetGreetType(), GetNPCData(), Localization::GetNpcProfessionName(), Party::GetPartyFame(), GetProfessionActionText(), Localization::GetString(), gold_transaction_amount, NPCData::greet, NPCData::Hired(), localization, GUIButton::msg_param, OBJECT_Player, pActors, NPCProfession::pBenefits, GUIWindow::pCurrentPosActiveItem, pDialogueNPCPortraits, pDialogueWindow, NPCProfession::pDismissText, pFontArrus, pFontCreate, NPCGreeting::pGreeting1, NPCGreeting::pGreeting2, NPCProfession::pJoinText, NPCData::pName, NPCStats::pNPCGreetings, pNPCPortraits_x, pNPCPortraits_y, pNPCStats, pNPCTopics, GUIWindow::pNumPresenceButton, pParty, NPCStats::pProfessions, GUIWindow::pStartingPosActiveItem, Removed, render, sDialogue_SpeakingActorNPC_ID, GUIButton::sLabel, StringPrintf(), uActiveCharacter, uDialogueType, NPCData::uFlags, GUIWindow::uFrameX, GUIButton::uHeight, ui_exit_cancel_button_background, ui_game_dialogue_npc_name_color, ui_game_dialogue_option_highlight_color, ui_game_dialogue_option_normal_color, ui_leather_mm7, uNumActors, NPCData::uProfession, GUIButton::uW и GUIButton::uY.

+ Граф вызовов:

◆ Release()

void GUIWindow_Dialogue::Release ( )
virtual

Переопределяет метод предка GUIWindow.

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

225  {
227 
230  game_ui_dialogue_background = nullptr;
231  }
232 
234 
236 }

Перекрестные ссылки current_screen_type, game_ui_dialogue_background, prev_screen_type, Image::Release(), GUIWindow::Release() и uNumDialogueNPCPortraits.

+ Граф вызовов:

Объявления и описания членов классов находятся в файлах:
uNumDialogueNPCPortraits
int uNumDialogueNPCPortraits
Definition: NPC.cpp:28
uint16_t
unsigned __int16 uint16_t
Definition: SDL_config.h:37
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
uNumActors
size_t uNumActors
Definition: Actor.cpp:39
NPCGreeting::pGreeting1
char * pGreeting1
Definition: NPC.h:136
GetNPCData
NPCData * GetNPCData(signed int npcid)
Definition: NPC.cpp:43
ui_leather_mm7
Image * ui_leather_mm7
Definition: GUIWindow.cpp:106
Localization::GetString
const char * GetString(unsigned int index) const
Definition: Localization.cpp:13
NPCData::uProfession
unsigned int uProfession
Definition: NPC.h:89
UIMSG_Escape
@ UIMSG_Escape
Definition: GUIWindow.h:96
GUIFont
Definition: GUIFont.h:8
GUIWindow
Definition: GUIWindow.h:433
ui_exit_cancel_button_background
Image * ui_exit_cancel_button_background
Definition: GUIWindow.cpp:89
NPCData::uFlags
unsigned int uFlags
Definition: NPC.h:84
NPCData::Hired
bool Hired()
Definition: NPC.h:80
DIALOGUE_PROFESSION_DETAILS
@ DIALOGUE_PROFESSION_DETAILS
Definition: GUIWindow.h:277
GUIWindow::CreateButton
GUIButton * CreateButton(int x, int y, int width, int height, int a6, int a7, UIMessageType msg, unsigned int msg_param, uint8_t hotkey, const String &label, const std::vector< Image * > &textures=std::vector< Image * >())
Definition: GUIWindow.cpp:717
gold_transaction_amount
int gold_transaction_amount
Definition: mm7_data.cpp:775
height
EGLSurface EGLint EGLint EGLint EGLint height
Definition: SDL_egl.h:1596
GetGreetType
int GetGreetType(signed int SpeakingNPC_ID)
Definition: NPC.cpp:1322
pNPCTopics
std::array< NPCTopic, 789 > pNPCTopics
Definition: mm7_data.cpp:740
Party::field_7B5_in_arena_quest
char field_7B5_in_arena_quest
Definition: Party.h:293
game_viewport_width
unsigned int game_viewport_width
Definition: mm7_data.cpp:194
NPCData::evt_B
unsigned int evt_B
Definition: NPC.h:94
GUIWindow::GUIWindow
GUIWindow()
Definition: GUIWindow.cpp:765
localization
Localization * localization
Definition: Localization.cpp:11
ui_game_dialogue_option_normal_color
unsigned int ui_game_dialogue_option_normal_color
Definition: UICharacter.cpp:98
pNPCPortraits_y
std::array< std::array< int, 6 >, 6 > pNPCPortraits_y
Definition: mm7_data.cpp:290
pNPCPortraits_x
std::array< std::array< int, 6 >, 6 > pNPCPortraits_x
Definition: mm7_data.cpp:282
GUIWindow::Release
virtual void Release()
Definition: GUIWindow.cpp:292
GUIFont::GetHeight
unsigned int GetHeight() const
Definition: GUIFont.cpp:84
NPCData::evt_E
unsigned int evt_E
Definition: NPC.h:97
DIALOGUE_18
@ DIALOGUE_18
Definition: GUIWindow.h:269
NPCData::evt_C
unsigned int evt_C
Definition: NPC.h:95
index
GLuint index
Definition: SDL_opengl_glext.h:663
pFontCreate
GUIFont * pFontCreate
Definition: GUIFont.cpp:22
GUIButton
Definition: GUIButton.h:11
GetProfessionActionText
const char * GetProfessionActionText(int a1)
Definition: NPC.cpp:1369
current_screen_type
enum CURRENT_SCREEN current_screen_type
Definition: GUIWindow.cpp:83
Party::GetPartyFame
unsigned int GetPartyFame()
Definition: Party.cpp:302
Dead
@ Dead
Definition: Actor.h:80
GUIWindow::pStartingPosActiveItem
int pStartingPosActiveItem
Definition: GUIWindow.h:485
GUIWindow::_41D08F_set_keyboard_control_group
void _41D08F_set_keyboard_control_group(int num_buttons, int a3, int a4, int a5)
Definition: GUIWindow.cpp:273
DIALOGUE_ARENA_FIGHT_NOT_OVER_YET
@ DIALOGUE_ARENA_FIGHT_NOT_OVER_YET
Definition: GUIWindow.h:285
NPCData::evt_A
unsigned int evt_A
Definition: NPC.h:93
DIALOGUE_13
@ DIALOGUE_13
Definition: GUIWindow.h:268
NPCGreeting::pGreeting2
char * pGreeting2
Definition: NPC.h:137
y
EGLSurface EGLint EGLint y
Definition: SDL_egl.h:1596
NPCData::evt_D
unsigned int evt_D
Definition: NPC.h:96
NPC_EventProcessor
int NPC_EventProcessor(int npc_event_id, int entry_line)
Definition: NPC.cpp:1227
pBtn_ExitCancel
GUIButton * pBtn_ExitCancel
Definition: GUIButton.cpp:28
pParty
Party * pParty
Definition: Party.cpp:30
pFontArrus
GUIFont * pFontArrus
Definition: GUIFont.cpp:18
GUIWindow::pCurrentPosActiveItem
int pCurrentPosActiveItem
Definition: GUIWindow.h:482
NPCData::pName
char * pName
Definition: NPC.h:82
current_npc_text
String current_npc_text
Definition: mm7_data.cpp:780
prev_screen_type
enum CURRENT_SCREEN prev_screen_type
Definition: GUIWindow.cpp:84
GUIWindow::pNumPresenceButton
int pNumPresenceButton
Definition: GUIWindow.h:481
x
EGLSurface EGLint x
Definition: SDL_egl.h:1596
NPCStats::pProfessions
NPCProfession pProfessions[59]
Definition: NPC.h:167
NPCStats::pNPCGreetings
NPCGreeting pNPCGreetings[205]
Definition: NPC.h:175
Disabled
@ Disabled
Definition: Actor.h:94
WINDOW_Dialogue
@ WINDOW_Dialogue
Definition: GUIWindow.h:298
game_ui_right_panel_frame
Image * game_ui_right_panel_frame
Definition: GUIWindow.cpp:90
width
EGLSurface EGLint EGLint EGLint width
Definition: SDL_egl.h:1596
ui_game_dialogue_option_highlight_color
unsigned int ui_game_dialogue_option_highlight_color
Definition: UICharacter.cpp:97
dialogue_show_profession_details
char dialogue_show_profession_details
Definition: mm7_data.cpp:781
game_ui_evtnpc
Image * game_ui_evtnpc
Definition: UIGame.cpp:102
GUIFont::CalcTextHeight
unsigned int CalcTextHeight(const String &str, unsigned int width, int x_offset, bool return_on_carriage=false)
Definition: GUIFont.cpp:246
pActors
std::array< Actor, 500 > pActors
Definition: Actor.cpp:38
window
EGLSurface EGLNativeWindowType * window
Definition: SDL_egl.h:1580
branchless_dialogue_str
String branchless_dialogue_str
Definition: mm7_data.cpp:619
f
GLfloat f
Definition: SDL_opengl_glext.h:1873
NPCData
Definition: NPC.h:79
Removed
@ Removed
Definition: Actor.h:86
DIALOGUE_ARENA_ALREADY_WON
@ DIALOGUE_ARENA_ALREADY_WON
Definition: GUIWindow.h:287
GUIButton::uW
unsigned int uW
Definition: GUIButton.h:26
BuildDialogueString
String BuildDialogueString(const char *lpsz, unsigned __int8 uPlayerID, ItemGen *a3, char *a4, int a5, GameTime *a6)
Definition: GUIWindow.cpp:2189
OBJECT_Player
@ OBJECT_Player
Definition: Actor.h:68
pDialogueNPCPortraits
std::array< class Image *, 6 > pDialogueNPCPortraits
Definition: NPC.cpp:27
NPCProfession::pDismissText
char * pDismissText
Definition: NPC.h:119
NPCProfession::pJoinText
char * pJoinText
Definition: NPC.h:118
uDialogueType
unsigned int uDialogueType
Definition: mm7_data.cpp:604
CURRENT_SCREEN::SCREEN_NPC_DIALOGUE
@ SCREEN_NPC_DIALOGUE
DIALOGUE_ARENA_REWARD
@ DIALOGUE_ARENA_REWARD
Definition: GUIWindow.h:286
NPCData::greet
int greet
Definition: NPC.h:90
GUIButton::msg_param
unsigned int msg_param
Definition: GUIButton.h:30
DIALOGUE_EVT_E
@ DIALOGUE_EVT_E
Definition: GUIWindow.h:274
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
GUIButton::uY
unsigned int uY
Definition: GUIButton.h:22
NPCData::evt_F
unsigned int evt_F
Definition: NPC.h:98
__debugbreak
void __cdecl __debugbreak(void)
DIALOGUE_ARENA_WELCOME
@ DIALOGUE_ARENA_WELCOME
Definition: GUIWindow.h:284
GUIFont::FitTextInAWindow
String FitTextInAWindow(const String &inString, unsigned int width, int uX, bool return_on_carriage=false)
Definition: GUIFont.cpp:311
GUIButton::uHeight
unsigned int uHeight
Definition: GUIButton.h:24
pNPCStats
struct NPCStats * pNPCStats
Definition: NPC.cpp:29
NPCData::joins
int joins
Definition: NPC.h:91
GUIWindow::par1C
unsigned int par1C
Definition: GUIWindow.h:477
Localization::GetNpcProfessionName
const char * GetNpcProfessionName(unsigned int index) const
Definition: Localization.h:83
ui_game_dialogue_npc_name_color
unsigned int ui_game_dialogue_npc_name_color
Definition: UICharacter.cpp:96
NPCProfession
Definition: NPC.h:107
NPCProfession::pBenefits
char * pBenefits
Definition: NPC.h:116
game_ui_dialogue_background
Image * game_ui_dialogue_background
Definition: UIGame.cpp:93
GUIWindow::GetControl
GUIButton * GetControl(unsigned int uID)
Definition: GUIWindow.cpp:311
GUIWindow::uFrameX
unsigned int uFrameX
Definition: GUIWindow.h:468
pDialogueWindow
GUIWindow * pDialogueWindow
Definition: GUIWindow.cpp:50
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
UIMSG_SelectNPCDialogueOption
@ UIMSG_SelectNPCDialogueOption
Definition: GUIWindow.h:118
_591428_endcap
Image * _591428_endcap
Definition: UIHouses.cpp:52
Image::Release
bool Release()
Definition: Image.cpp:335
sDialogue_SpeakingActorNPC_ID
int sDialogue_SpeakingActorNPC_ID
Definition: mm7_data.cpp:605
render
std::shared_ptr< IRender > render
Definition: RenderOpenGL.cpp:52