aboutsummaryrefslogtreecommitdiff
path: root/engines/sludge/winstuff.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sludge/winstuff.cpp')
-rw-r--r--engines/sludge/winstuff.cpp283
1 files changed, 141 insertions, 142 deletions
diff --git a/engines/sludge/winstuff.cpp b/engines/sludge/winstuff.cpp
index 266df699d9..a229225422 100644
--- a/engines/sludge/winstuff.cpp
+++ b/engines/sludge/winstuff.cpp
@@ -53,179 +53,178 @@
namespace Sludge {
-HINSTANCE hInst; // Handle of the main instance
-extern HWND hMainWindow;
+ HINSTANCE hInst; // Handle of the main instance
+ extern HWND hMainWindow;
-extern variableStack *noStack;
+ extern variableStack *noStack;
// The platform-specific functions - Windows edition.
-WCHAR *ConvertToUTF16(const char *input) {
- int s = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, input, -1, NULL, 0);
- WCHAR *ret = new WCHAR [s];
- checkNew(ret);
- /*int a = */MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, input, -1, ret, s);
- return ret;
-}
-
-char *ConvertFromUTF16(const WCHAR *input) {
- int s = WideCharToMultiByte(CP_UTF8, 0, input, -1, NULL, 0, NULL, NULL);
- char *ret = new char [s];
- checkNew(ret);
- /*int a = */WideCharToMultiByte(CP_UTF8, 0, input, -1, ret, s, NULL, NULL);
- return ret;
-}
-
-
-char *grabFileName() {
- OPENFILENAME ofn;
- WCHAR path[MAX_PATH];
- WCHAR file[MAX_PATH] = TEXT("");
-
- hInst = GetModuleHandle(NULL);
-
- memset(& ofn, 0, sizeof(ofn));
- ofn.lStructSize = sizeof(ofn);
- ofn.hwndOwner = NULL;
- ofn.hInstance = hInst;
- ofn.nMaxFile = MAX_PATH;
- ofn.lpstrInitialDir = path;
- ofn.Flags = OFN_HIDEREADONLY | OFN_EXPLORER;
- ofn.lpstrFilter = TEXT("SLUDGE games (*.SLG)\0*.slg\0\0");
- ofn.lpstrFile = file;
-
- if (GetOpenFileName(& ofn)) {
- return ConvertFromUTF16(file);
- } else {
- return NULL;
+ WCHAR *ConvertToUTF16(const char *input) {
+ int s = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, input, -1, NULL, 0);
+ WCHAR *ret = new WCHAR [s];
+ checkNew(ret);
+ /*int a = */MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, input, -1, ret, s);
+ return ret;
}
-}
-extern char **languageName;
-extern int *languageTable;
-
-HBITMAP hLogo = NULL;
-extern unsigned char *gameLogo;
+ char *ConvertFromUTF16(const WCHAR *input) {
+ int s = WideCharToMultiByte(CP_UTF8, 0, input, -1, NULL, 0, NULL, NULL);
+ char *ret = new char [s];
+ checkNew(ret);
+ /*int a = */WideCharToMultiByte(CP_UTF8, 0, input, -1, ret, s, NULL, NULL);
+ return ret;
+ }
-BOOL CALLBACK setupDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {
- switch (message) {
- case WM_INITDIALOG:
- if (gameLogo) {
- hLogo = CreateBitmap(310, 88, 1, 32, gameLogo);
- SendDlgItemMessage(hDlg, 1003, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hLogo);
+ char *grabFileName() {
+ OPENFILENAME ofn;
+ WCHAR path[MAX_PATH];
+ WCHAR file[MAX_PATH] = TEXT("");
+
+ hInst = GetModuleHandle(NULL);
+
+ memset(& ofn, 0, sizeof(ofn));
+ ofn.lStructSize = sizeof(ofn);
+ ofn.hwndOwner = NULL;
+ ofn.hInstance = hInst;
+ ofn.nMaxFile = MAX_PATH;
+ ofn.lpstrInitialDir = path;
+ ofn.Flags = OFN_HIDEREADONLY | OFN_EXPLORER;
+ ofn.lpstrFilter = TEXT("SLUDGE games (*.SLG)\0*.slg\0\0");
+ ofn.lpstrFile = file;
+
+ if (GetOpenFileName(& ofn)) {
+ return ConvertFromUTF16(file);
+ } else {
+ return NULL;
}
+ }
+
+ extern char **languageName;
+ extern int *languageTable;
+
+ HBITMAP hLogo = NULL;
+ extern unsigned char *gameLogo;
+
+ BOOL CALLBACK setupDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {
+ switch (message) {
+ case WM_INITDIALOG:
+ if (gameLogo) {
+ hLogo = CreateBitmap(310, 88, 1, 32, gameLogo);
+ SendDlgItemMessage(hDlg, 1003, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hLogo);
+ }
- if (gameSettings.userFullScreen)
+ if (gameSettings.userFullScreen)
CheckDlgButton(hDlg, 1000, BST_CHECKED);
- else
+ else
CheckDlgButton(hDlg, 1000, BST_UNCHECKED);
- SendDlgItemMessage(hDlg, 1002, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>((LPCTSTR)TEXT("Default (best looking)")));
- SendDlgItemMessage(hDlg, 1002, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>((LPCTSTR)TEXT("Linear (faster but blurry)")));
- SendDlgItemMessage(hDlg, 1002, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>((LPCTSTR)TEXT("Off (blocky graphics)")));
+ SendDlgItemMessage(hDlg, 1002, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>((LPCTSTR)TEXT("Default (best looking)")));
+ SendDlgItemMessage(hDlg, 1002, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>((LPCTSTR)TEXT("Linear (faster but blurry)")));
+ SendDlgItemMessage(hDlg, 1002, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>((LPCTSTR)TEXT("Off (blocky graphics)")));
- if (gameSettings.antiAlias < 0)
+ if (gameSettings.antiAlias < 0)
SendDlgItemMessage(hDlg, 1002, CB_SETCURSEL, 1, 0);
- else if (gameSettings.antiAlias)
+ else if (gameSettings.antiAlias)
SendDlgItemMessage(hDlg, 1002, CB_SETCURSEL, 0, 0);
- else
+ else
SendDlgItemMessage(hDlg, 1002, CB_SETCURSEL, 2, 0);
- if (gameSettings.numLanguages) {
- WCHAR text[20];
- for (unsigned int i = 0; i <= gameSettings.numLanguages; i++) {
- if (languageName[i]) {
- WCHAR *w_lang = ConvertToUTF16(languageName[i]);
- SendDlgItemMessage(hDlg, 1001, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>((LPCTSTR)w_lang));
- delete w_lang;
- } else {
- swprintf(text, TEXT("Language %d"), i);
- SendDlgItemMessage(hDlg, 1001, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>((LPCTSTR)text));
+ if (gameSettings.numLanguages) {
+ WCHAR text[20];
+ for (unsigned int i = 0; i <= gameSettings.numLanguages; i++) {
+ if (languageName[i]) {
+ WCHAR *w_lang = ConvertToUTF16(languageName[i]);
+ SendDlgItemMessage(hDlg, 1001, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>((LPCTSTR)w_lang));
+ delete w_lang;
+ } else {
+ swprintf(text, TEXT("Language %d"), i);
+ SendDlgItemMessage(hDlg, 1001, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>((LPCTSTR)text));
+ }
}
+ SendDlgItemMessage(hDlg, 1001, CB_SETCURSEL, getLanguageForFileB(), 0);
+ } else {
+ const WCHAR *text = TEXT("No translations available");
+ SendDlgItemMessage(hDlg, 1001, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>((LPCTSTR)text));
+ SendDlgItemMessage(hDlg, 1001, CB_SETCURSEL, 0, 0);
+ EnableWindow(GetDlgItem(hDlg, 1001), false);
}
- SendDlgItemMessage(hDlg, 1001, CB_SETCURSEL, getLanguageForFileB(), 0);
- } else {
- const WCHAR *text = TEXT("No translations available");
- SendDlgItemMessage(hDlg, 1001, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>((LPCTSTR)text));
- SendDlgItemMessage(hDlg, 1001, CB_SETCURSEL, 0, 0);
- EnableWindow(GetDlgItem(hDlg, 1001), false);
- }
- return true;
-
- case WM_COMMAND:
- if (hLogo) DeleteObject(hLogo);
- switch (LOWORD(wParam)) {
- case IDOK:
-
- gameSettings.userFullScreen = (IsDlgButtonChecked(hDlg, 1000) == BST_CHECKED);
- gameSettings.antiAlias = SendDlgItemMessage(hDlg, 1002, CB_GETCURSEL, 0, 0);
- if (gameSettings.antiAlias == 0) gameSettings.antiAlias = 1;
- else if (gameSettings.antiAlias == 1) gameSettings.antiAlias = -1;
- else if (gameSettings.antiAlias == 2) gameSettings.antiAlias = 0;
+ return true;
+
+ case WM_COMMAND:
+ if (hLogo) DeleteObject(hLogo);
+ switch (LOWORD(wParam)) {
+ case IDOK:
+
+ gameSettings.userFullScreen = (IsDlgButtonChecked(hDlg, 1000) == BST_CHECKED);
+ gameSettings.antiAlias = SendDlgItemMessage(hDlg, 1002, CB_GETCURSEL, 0, 0);
+ if (gameSettings.antiAlias == 0) gameSettings.antiAlias = 1;
+ else if (gameSettings.antiAlias == 1) gameSettings.antiAlias = -1;
+ else if (gameSettings.antiAlias == 2) gameSettings.antiAlias = 0;
+
+ if (gameSettings.numLanguages) {
+ gameSettings.languageID = SendDlgItemMessage(hDlg, 1001, CB_GETCURSEL, 0, 0);
+ if (gameSettings.languageID < 0) gameSettings.languageID = 0;
+ gameSettings.languageID = languageTable[gameSettings.languageID];
+ }
+ EndDialog(hDlg, true);
+ return TRUE;
- if (gameSettings.numLanguages) {
- gameSettings.languageID = SendDlgItemMessage(hDlg, 1001, CB_GETCURSEL, 0, 0);
- if (gameSettings.languageID < 0) gameSettings.languageID = 0;
- gameSettings.languageID = languageTable[gameSettings.languageID];
+ case IDCANCEL:
+ EndDialog(hDlg, false);
+ return TRUE;
}
- EndDialog(hDlg, true);
- return TRUE;
-
- case IDCANCEL:
- EndDialog(hDlg, false);
- return TRUE;
+ break;
}
- break;
+ return false;
}
- return false;
-}
-int showSetupWindow() {
+ int showSetupWindow() {
- hInst = GetModuleHandle(NULL);
+ hInst = GetModuleHandle(NULL);
- if (! hInst) debugOut("ERROR: No hInst!\n");
+ if (! hInst) debugOut("ERROR: No hInst!\n");
- if (DialogBox(hInst, TEXT("SETUPWINDOW"), NULL, setupDlgProc)) return true;
- return false;
+ if (DialogBox(hInst, TEXT("SETUPWINDOW"), NULL, setupDlgProc)) return true;
+ return false;
-}
+ }
-void msgBox(const char *head, const char *msg) {
- WCHAR *w_head = ConvertToUTF16(head);
- WCHAR *w_msg = ConvertToUTF16(msg);
- MessageBox(NULL, w_msg, w_head, MB_OK | MB_ICONSTOP | MB_SYSTEMMODAL | MB_SETFOREGROUND);
- delete w_head;
- delete w_msg;
-}
+ void msgBox(const char *head, const char *msg) {
+ WCHAR *w_head = ConvertToUTF16(head);
+ WCHAR *w_msg = ConvertToUTF16(msg);
+ MessageBox(NULL, w_msg, w_head, MB_OK | MB_ICONSTOP | MB_SYSTEMMODAL | MB_SETFOREGROUND);
+ delete w_head;
+ delete w_msg;
+ }
-int msgBoxQuestion(const char *head, const char *msg) {
- WCHAR *w_head = ConvertToUTF16(head);
- WCHAR *w_msg = ConvertToUTF16(msg);
- int val = MessageBox(NULL, w_msg, w_head, MB_YESNO | MB_SETFOREGROUND | MB_APPLMODAL | MB_ICONQUESTION) == IDNO;
- delete w_head;
- delete w_msg;
- if (val)
+ int msgBoxQuestion(const char *head, const char *msg) {
+ WCHAR *w_head = ConvertToUTF16(head);
+ WCHAR *w_msg = ConvertToUTF16(msg);
+ int val = MessageBox(NULL, w_msg, w_head, MB_YESNO | MB_SETFOREGROUND | MB_APPLMODAL | MB_ICONQUESTION) == IDNO;
+ delete w_head;
+ delete w_msg;
+ if (val)
return false;
- return true;
-}
-
-void changeToUserDir() {
- TCHAR szAppData[MAX_PATH];
- /*hr = */SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szAppData);
- _wchdir(szAppData);
-}
-
-uint32_t launch(char *f) {
- WCHAR *w_f = ConvertToUTF16(f);
- uint32_t r = (uint32_t) ShellExecute(hMainWindow, TEXT("open"), w_f, NULL, TEXT("C:\\"), SW_SHOWNORMAL);
- delete w_f;
- return r;
-}
-
-bool defaultUserFullScreen() {
- return true;
-}
+ return true;
+ }
+
+ void changeToUserDir() {
+ TCHAR szAppData[MAX_PATH];
+ /*hr = */SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szAppData);
+ _wchdir(szAppData);
+ }
+
+ uint32_t launch(char *f) {
+ WCHAR *w_f = ConvertToUTF16(f);
+ uint32_t r = (uint32_t) ShellExecute(hMainWindow, TEXT("open"), w_f, NULL, TEXT("C:\\"), SW_SHOWNORMAL);
+ delete w_f;
+ return r;
+ }
+
+ bool defaultUserFullScreen() {
+ return true;
+ }
} // End of namespace Sludge