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

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

Функции

int __stdcall BrowseFolderCallback (HWND hwnd, UINT msg, LPARAM lparam, LPARAM data)
 
INT_PTR __stdcall DialogProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
 
static std::string GetExeFilename ()
 
static std::string GetExePath ()
 

Функции

◆ BrowseFolderCallback()

int __stdcall BrowseFolderCallback ( HWND  hwnd,
UINT  msg,
LPARAM  lparam,
LPARAM  data 
)

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

14  {
15  if (msg == BFFM_INITIALIZED) {
16  SendMessageA(hwnd, BFFM_SETSELECTION, true, data);
17  }
18  return 0;
19 }

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

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

◆ DialogProc()

INT_PTR __stdcall DialogProc ( HWND  hwnd,
UINT  msg,
WPARAM  wparam,
LPARAM  lparam 
)

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

21  {
22  Application *app = (Application *)GetWindowLongPtr(hwnd, GWLP_USERDATA);
23  switch (msg) {
24  case WM_INITDIALOG: {
25  app = (Application *)lparam;
26  SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)app);
27 
28  CheckRadioButton(
29  hwnd,
30  IDC_RADIO_RENDERER_DIRECTDRAW,
31  IDC_RADIO_RENDERER_OPENGL,
32  IDC_RADIO_RENDERER_DIRECTDRAW);
33  break;
34  }
35 
36  case WM_COMMAND: {
37  if (LOWORD(wparam) == IDC_BUTTON_BROWSE_INSTALL) {
38  char choice[2000];
39  choice[0] = 0;
40  strcpy(choice, app->GetMm7InstallPath().c_str());
41 
42  BROWSEINFO bi;
43  ZeroMemory(&bi, sizeof(bi));
44  bi.lParam = (LPARAM)choice;
45  bi.lpfn = BrowseFolderCallback;
46  bi.ulFlags = BIF_USENEWUI;
47  PIDLIST_ABSOLUTE list = SHBrowseForFolder(&bi);
48 
49  SHGetPathFromIDListA(list, choice);
50  app->SetMm7InstallPath(std::string(choice));
51  SendDlgItemMessageA(hwnd, IDC_EDIT_MM7_INSTALL_DIR, WM_SETTEXT,
52  0, (LPARAM)choice);
53 
54  return TRUE;
55  } else if (LOWORD(wparam) == IDC_BUTTON_LAUNCH) {
56  char mm7_install_dir[2000];
57  GetWindowTextA(GetDlgItem(hwnd, IDC_EDIT_MM7_INSTALL_DIR),
58  mm7_install_dir, 2000);
59 
60  app->SetMm7InstallPath(std::string(mm7_install_dir));
61 
62  if (IsDlgButtonChecked(hwnd, IDC_RADIO_RENDERER_DIRECTDRAW) == BST_CHECKED) {
63  app->SetRenderer(std::string("DirectDraw"));
64  } else if (IsDlgButtonChecked(hwnd, IDC_RADIO_RENDERER_OPENGL) == BST_CHECKED) {
65  app->SetRenderer(std::string("OpenGL"));
66  }
67 
68  std::string config_errors;
69  if (!app->ValidateConfig(config_errors)) {
70  MessageBoxA(hwnd, config_errors.c_str(),
71  "Configuration error", MB_OK);
72  } else {
73  PostMessage(hwnd, WM_QUIT, 0, 0);
74  }
75 
76  return TRUE;
77  }
78  break;
79  }
80  }
81  return FALSE;
82 }

Перекрестные ссылки BrowseFolderCallback(), Application::GetMm7InstallPath(), Application::SetMm7InstallPath(), Application::SetRenderer() и Application::ValidateConfig().

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

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

◆ GetExeFilename()

static std::string GetExeFilename ( )
static

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

96  {
97  char buf[2000];
98  GetModuleFileNameA(GetModuleHandle(0), buf, 2000);
99  return std::string(buf);
100 }

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

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

◆ GetExePath()

static std::string GetExePath ( )
static

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

102  {
103  auto filename = GetExeFilename();
104  return filename.substr(0, filename.find_last_of("\\/"));
105 }

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

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

+ Граф вызовов:
+ Граф вызова функции:
Application::ValidateConfig
bool ValidateConfig(std::string &out_errors)
Definition: Application.cpp:107
Application::SetRenderer
void SetRenderer(const std::string &renderer)
Definition: Application.h:15
GetExeFilename
static std::string GetExeFilename()
Definition: Application.cpp:96
buf
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: SDL_opengl_glext.h:2483
BrowseFolderCallback
int __stdcall BrowseFolderCallback(HWND hwnd, UINT msg, LPARAM lparam, LPARAM data)
Definition: Application.cpp:14
Application::SetMm7InstallPath
void SetMm7InstallPath(const std::string &path)
Definition: Application.cpp:89
Application
Definition: Configuration.h:5
data
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: SDL_opengl.h:1974
string
GLsizei const GLchar *const * string
Definition: SDL_opengl_glext.h:691
Application::GetMm7InstallPath
const std::string & GetMm7InstallPath() const
Definition: Application.cpp:92