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

#include <GUIWindow.h>

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

 GUIMessageQueue ()
 
void Flush ()
 
void Clear ()
 
bool Empty ()
 
void PopMessage (UIMessageType *pMsg, int *pParam, int *a4)
 
void AddMessageImpl (UIMessageType msg, int param, unsigned int a4, const char *file=nullptr, int line=0)
 

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

std::queue< GUIMessageqMessages
 

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

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

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

◆ GUIMessageQueue()

GUIMessageQueue::GUIMessageQueue ( )
inline

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

655 {}

Методы

◆ Flush()

void GUIMessageQueue::Flush ( )

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

159  {
160  if (qMessages.size()) {
161  GUIMessage message = qMessages.front();
162  Clear();
163  if (message.field_8 != 0) {
164  qMessages.push(message);
165  }
166  }
167 }

Перекрестные ссылки Clear() и qMessages.

Используется в EnterHouse(), Application::Menu::EventLoop(), Application::Game::EventLoop(), EventProcessor(), GUICredits::ExecuteCredits(), Game_OpenLoadGameDialog(), Game_QuitGameWhilePlaying(), Game_StartDialogue(), Game_StartHirelingDialogue(), Game_StartNewGameWhilePlaying(), Application::Game::GameLoop(), GUIWindow_PartyCreation::GUIWindow_PartyCreation(), HouseDialogPressCloseBtn(), Player::OnInventoryLeftClick(), OnPaperdollLeftClick() и Mouse::UI_OnMouseLeftClick().

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

◆ Clear()

void GUIMessageQueue::Clear ( )

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

169  {
170  std::queue<GUIMessage> empty;
171  std::swap(qMessages, empty);
172 }

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

Используется в Application::Game::EventLoop(), Flush() и Keyboard::ProcessInputActions().

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

◆ Empty()

bool GUIMessageQueue::Empty ( )
inline

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

659 { return qMessages.empty(); }

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

Используется в CreateParty_EventLoop(), GUIWindow_MainMenu::EventLoop(), GUICredits::EventLoop(), Application::Menu::EventLoop(), Application::Game::EventLoop() и MainMenuLoad_EventLoop().

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

◆ PopMessage()

void GUIMessageQueue::PopMessage ( UIMessageType pMsg,
int *  pParam,
int *  a4 
)

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

175  {
176  *pType = (UIMessageType)-1;
177  *pParam = 0;
178  *a4 = 0;
179 
180  if (qMessages.empty()) {
181  return;
182  }
183 
184  GUIMessage message = qMessages.front();
185  qMessages.pop();
186 
187  *pType = message.eType;
188  *pParam = message.param;
189  *a4 = message.field_8;
190 }

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

Используется в CreateParty_EventLoop(), GUIWindow_MainMenu::EventLoop(), GUICredits::EventLoop(), Application::Menu::EventLoop(), Application::Game::EventLoop() и MainMenuLoad_EventLoop().

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

◆ AddMessageImpl()

void GUIMessageQueue::AddMessageImpl ( UIMessageType  msg,
int  param,
unsigned int  a4,
const char *  file = nullptr,
int  line = 0 
)

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

1350  {
1351  // logger->Warning(L"%s @ (%S %u)", UIMessage2String(msg), file, line);
1353  message.eType = msg;
1354  message.param = param;
1355  message.field_8 = a4;
1356  message.file = file;
1357  message.line = line;
1358  qMessages.push(message);
1359 }

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

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

◆ qMessages

std::queue<GUIMessage> GUIMessageQueue::qMessages

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

Используется в AddMessageImpl(), Clear(), Empty(), Flush() и PopMessage().


Объявления и описания членов структур находятся в файлах:
UIMessageType
UIMessageType
Definition: GUIWindow.h:13
message
GLuint GLsizei const GLchar * message
Definition: SDL_opengl_glext.h:2486
GUIMessage
Definition: GUIWindow.h:643
param
GLfloat param
Definition: SDL_opengl_glext.h:373
GUIMessageQueue::qMessages
std::queue< GUIMessage > qMessages
Definition: GUIWindow.h:664
GUIMessageQueue::Clear
void Clear()
Definition: GUIWindow.cpp:169