From b56a634cec5ab02bc3c9112c6ec323728b80a543 Mon Sep 17 00:00:00 2001 From: Colin Finck Date: Fri, 21 Dec 2007 21:29:57 +0000 Subject: [PATCH] Changes by Carlo Bramini (carlo.bramix@libero.it): - Convert the app from ANSI to TCHAR and enable Unicode compilation in the .rbuild file - Dialog procedures now return INT_PTR instead of BOOL - IDS_NOBODY has been added to the resource files - Fixed a bug in SetDifficulty(): If custom selection, then no changes are done if the user presses the CANCEL button. - Show mines in the end board in all mine boxes, which you previously marked with the QUESTION state, when you lost the game - Added an accelerator table - Define the WineMine root registry key in just one place as a constant rather than a #define, point it to the Software\Microsoft\WinMine key - Code simplifications Changes by me: - Make our registry settings compatible with the MS WinMine settings, since we write into the WinMine registry key now - Remove the WINE_STRICT check, which was needed to avoid an ancient WINE bug, but doesn't affect our tree. I also replaced all NULL_HANDLE's by NULL. - Remove the IDS_APPNAME string, we use "WineMine" as a static constant for the application name now - Remove the unused "mb" variable from the BOARD structure - Load all resources by ID, not by name - Add a manifest for enabling Common Controls 6.0 - Use ShellAbout instead of a custom About dialog - Use a consistent indentation and consistent variable namings and types See issue #2815 for more details. svn path=/trunk/; revision=31378 --- .../base/applications/games/winemine/dialog.c | 244 ++- .../base/applications/games/winemine/dialog.h | 4 - .../applications/games/winemine/lang/bg-BG.rc | 25 +- .../applications/games/winemine/lang/ca-ES.rc | 25 +- .../applications/games/winemine/lang/de-DE.rc | 27 +- .../applications/games/winemine/lang/el-GR.rc | 25 +- .../applications/games/winemine/lang/en-US.rc | 25 +- .../applications/games/winemine/lang/es-ES.rc | 25 +- .../applications/games/winemine/lang/fr-FR.rc | 25 +- .../applications/games/winemine/lang/id-ID.rc | 25 +- .../applications/games/winemine/lang/it-IT.rc | 25 +- .../applications/games/winemine/lang/lt-LT.rc | 25 +- .../applications/games/winemine/lang/nb-NO.rc | 27 +- .../applications/games/winemine/lang/nl-NL.rc | 25 +- .../applications/games/winemine/lang/pl-PL.rc | 25 +- .../applications/games/winemine/lang/ru-RU.rc | 25 +- .../applications/games/winemine/lang/sk-SK.rc | 26 +- .../applications/games/winemine/lang/th-TH.rc | 25 +- .../applications/games/winemine/lang/uk-UA.rc | 25 +- .../applications/games/winemine/lang/zh-CN.rc | 27 +- .../base/applications/games/winemine/main.c | 1462 +++++++++-------- .../base/applications/games/winemine/main.h | 178 +- .../applications/games/winemine/manifest.xml | 23 + .../applications/games/winemine/resource.h | 13 +- .../base/applications/games/winemine/rsrc.rc | 16 +- .../games/winemine/winemine.rbuild | 3 +- 26 files changed, 1118 insertions(+), 1282 deletions(-) create mode 100644 reactos/base/applications/games/winemine/manifest.xml diff --git a/reactos/base/applications/games/winemine/dialog.c b/reactos/base/applications/games/winemine/dialog.c index 4f9e062252b..c50399384a4 100644 --- a/reactos/base/applications/games/winemine/dialog.c +++ b/reactos/base/applications/games/winemine/dialog.c @@ -19,159 +19,149 @@ */ #include +#include #include "main.h" #include "dialog.h" #include "resource.h" -BOOL CALLBACK CustomDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) +INT_PTR CALLBACK CustomDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) { - BOOL IsRet; - static BOARD *p_board; + static BOARD *pBoard; - switch( uMsg ) { - case WM_INITDIALOG: - p_board = (BOARD*) lParam; - SetDlgItemInt( hDlg, IDC_EDITROWS, p_board->rows, FALSE ); - SetDlgItemInt( hDlg, IDC_EDITCOLS, p_board->cols, FALSE ); - SetDlgItemInt( hDlg, IDC_EDITMINES, p_board->mines, FALSE ); - return TRUE; - - case WM_COMMAND: - switch( LOWORD( wParam ) ) { - case IDOK: - p_board->rows = GetDlgItemInt( hDlg, IDC_EDITROWS, &IsRet, FALSE ); - p_board->cols = GetDlgItemInt( hDlg, IDC_EDITCOLS, &IsRet, FALSE ); - p_board->mines = GetDlgItemInt( hDlg, IDC_EDITMINES, &IsRet, FALSE ); - CheckLevel( p_board ); - EndDialog( hDlg, 0 ); + switch(uMsg) + { + case WM_INITDIALOG: + pBoard = (BOARD*) lParam; + SetDlgItemInt( hDlg, IDC_EDITROWS, pBoard->uRows, FALSE ); + SetDlgItemInt( hDlg, IDC_EDITCOLS, pBoard->uCols, FALSE ); + SetDlgItemInt( hDlg, IDC_EDITMINES, pBoard->uMines, FALSE ); return TRUE; - case IDCANCEL: - EndDialog( hDlg, 0 ); - return TRUE; - } - break; + case WM_COMMAND: + switch( LOWORD( wParam ) ) + { + case IDOK: + pBoard->uRows = GetDlgItemInt( hDlg, IDC_EDITROWS, NULL, FALSE ); + pBoard->uCols = GetDlgItemInt( hDlg, IDC_EDITCOLS, NULL, FALSE ); + pBoard->uMines = GetDlgItemInt( hDlg, IDC_EDITMINES, NULL, FALSE ); + CheckLevel( pBoard ); + /* Fall through */ + case IDCANCEL: + EndDialog( hDlg, LOWORD(wParam) ); + return TRUE; + } + break; } + return FALSE; } -BOOL CALLBACK CongratsDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) +INT_PTR CALLBACK CongratsDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) { - static BOARD *p_board; + static BOARD *pBoard; - switch( uMsg ) { - case WM_INITDIALOG: - p_board = (BOARD*) lParam; - SetDlgItemText( hDlg, IDC_EDITNAME, - p_board->best_name[p_board->difficulty] ); - return TRUE; - - case WM_COMMAND: - switch( LOWORD( wParam ) ) { - case IDOK: - GetDlgItemText( hDlg, IDC_EDITNAME, - p_board->best_name[p_board->difficulty], - sizeof( p_board->best_name[p_board->difficulty] ) ); - EndDialog( hDlg, 0 ); + switch(uMsg) + { + case WM_INITDIALOG: + pBoard = (BOARD*) lParam; + SetDlgItemText( hDlg, IDC_EDITNAME, pBoard->szBestName[pBoard->Difficulty] ); return TRUE; - case IDCANCEL: - EndDialog( hDlg, 0 ); - return TRUE; - } - break; - } - return FALSE; -} - -BOOL CALLBACK TimesDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) -{ - static BOARD *p_board; - HKEY hkey; - unsigned i; - char data[16]; - char key_name[8]; - char times[35]; - char szSeconds[23]; - - switch( uMsg ) { - case WM_INITDIALOG: - p_board = (BOARD*) lParam; - - /* set best names */ - for( i = 0; i < 3; i++ ) - SetDlgItemText( hDlg, (IDC_NAME1) + i, p_board->best_name[i] ); - - /* set best times */ - LoadString( p_board->hInst, IDS_SECONDS, szSeconds, sizeof(szSeconds) ); - - for( i = 0; i < 3; i++ ) - { - wsprintf(times, "%d %s", p_board->best_time[i], szSeconds); - SetDlgItemText( hDlg, (IDC_TIME1) + i, times ); - } - - return TRUE; - - case WM_COMMAND: - switch( LOWORD( wParam ) ) - { - case IDOK: - case IDCANCEL: - EndDialog( hDlg, 0 ); - return TRUE; - - case IDRESET: - if( RegCreateKeyEx( HKEY_CURRENT_USER, WINEMINE_REGKEY, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkey, NULL ) != ERROR_SUCCESS) + case WM_COMMAND: + switch( LOWORD(wParam) ) + { + case IDOK: + GetDlgItemText( hDlg, IDC_EDITNAME, + pBoard->szBestName[pBoard->Difficulty], + sizeof( pBoard->szBestName[pBoard->Difficulty] ) ); + EndDialog( hDlg, 0 ); return TRUE; - LoadString( p_board->hInst, IDS_SECONDS, szSeconds, sizeof(szSeconds) ); - - for (i = 0; i < 3; i++) - { - p_board->best_time[i] = 999; - wsprintf(p_board->best_name[i], "Nobody"); - wsprintf(times, "%d %s", p_board->best_time[i], szSeconds); - - SetDlgItemText( hDlg, (IDC_NAME1) + i, p_board->best_name[i] ); - SetDlgItemText( hDlg, (IDC_TIME1) + i, times ); - } - - /* write changes to registry */ - for( i = 0; i < 3; i++ ) - { - wsprintf( key_name, "Name%u", i ); - strncpy( data, p_board->best_name[i], sizeof( data ) ); - RegSetValueEx( hkey, key_name, 0, REG_SZ, (LPBYTE) data, strlen(data)+1 ); - } - - for( i = 0; i < 3; i++ ) - { - wsprintf( key_name, "Time%u", i ); - RegSetValueEx( hkey, key_name, 0, REG_DWORD, (LPBYTE) &p_board->best_time[i], sizeof(DWORD) ); - } - RegCloseKey( hkey ); - return TRUE; - } + case IDCANCEL: + EndDialog( hDlg, 0 ); + return TRUE; + } + break; } return FALSE; } -BOOL CALLBACK AboutDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) +INT_PTR CALLBACK TimesDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) { - switch( uMsg ) { - case WM_INITDIALOG: - return TRUE; + static BOARD *pBoard; + HKEY hKey; + UCHAR i; + TCHAR szData[16]; + TCHAR szKeyName[8]; + TCHAR szTimes[35]; + TCHAR szSeconds[23]; + TCHAR szNobody[15]; + + switch(uMsg) + { + case WM_INITDIALOG: + pBoard = (BOARD*) lParam; + + /* set best names */ + for( i = 0; i < 3; i++ ) + SetDlgItemText( hDlg, (IDC_NAME1) + i, pBoard->szBestName[i] ); + + /* set best times */ + LoadString( pBoard->hInst, IDS_SECONDS, szSeconds, sizeof(szSeconds) / sizeof(TCHAR) ); + + for( i = 0; i < 3; i++ ) + { + wsprintf(szTimes, TEXT("%d %s"), pBoard->uBestTime[i], szSeconds); + SetDlgItemText( hDlg, (IDC_TIME1) + i, szTimes ); + } - case WM_COMMAND: - switch( LOWORD( wParam ) ) { - case IDOK: - case IDCANCEL: - EndDialog( hDlg, 0 ); return TRUE; - } - break; + + case WM_COMMAND: + switch( LOWORD( wParam ) ) + { + case IDOK: + case IDCANCEL: + EndDialog( hDlg, 0 ); + return TRUE; + + case IDRESET: + if( RegCreateKeyEx( HKEY_CURRENT_USER, szWineMineRegKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL ) != ERROR_SUCCESS) + return TRUE; + + LoadString( pBoard->hInst, IDS_NOBODY, szNobody, sizeof(szNobody) / sizeof(TCHAR) ); + LoadString( pBoard->hInst, IDS_SECONDS, szSeconds, sizeof(szSeconds) / sizeof(TCHAR) ); + + for (i = 0; i < 3; i++) + { + pBoard->uBestTime[i] = 999; + _tcscpy(pBoard->szBestName[i], szNobody); + wsprintf(szTimes, TEXT("%d %s"), pBoard->uBestTime[i], szSeconds); + + SetDlgItemText( hDlg, (IDC_NAME1) + i, pBoard->szBestName[i] ); + SetDlgItemText( hDlg, (IDC_TIME1) + i, szTimes ); + } + + /* Write the changes to the registry + As we write to the same registry key as MS WinMine does, we have to start at 1 for the registry keys */ + for( i = 0; i < 3; i++ ) + { + wsprintf( szKeyName, TEXT("Name%u"), i + 1 ); + _tcsncpy( szData, pBoard->szBestName[i], sizeof(szData) / sizeof(TCHAR) ); + RegSetValueEx( hKey, szKeyName, 0, REG_SZ, (LPBYTE)szData, (_tcslen(szData) + 1) * sizeof(TCHAR) ); + } + + for( i = 0; i < 3; i++ ) + { + wsprintf( szKeyName, TEXT("Time%u"), i + 1 ); + RegSetValueEx( hKey, szKeyName, 0, REG_DWORD, (LPBYTE)&pBoard->uBestTime[i], sizeof(DWORD) ); + } + + RegCloseKey(hKey); + return TRUE; + } } + return FALSE; } diff --git a/reactos/base/applications/games/winemine/dialog.h b/reactos/base/applications/games/winemine/dialog.h index b4e0fc4a457..9f5471f8a16 100644 --- a/reactos/base/applications/games/winemine/dialog.h +++ b/reactos/base/applications/games/winemine/dialog.h @@ -20,10 +20,6 @@ BOOL CALLBACK CustomDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); - BOOL CALLBACK CongratsDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); - BOOL CALLBACK TimesDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); - BOOL CALLBACK AboutDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); - diff --git a/reactos/base/applications/games/winemine/lang/bg-BG.rc b/reactos/base/applications/games/winemine/lang/bg-BG.rc index e6712d7dd2d..7a980ecd87e 100644 --- a/reactos/base/applications/games/winemine/lang/bg-BG.rc +++ b/reactos/base/applications/games/winemine/lang/bg-BG.rc @@ -3,14 +3,15 @@ LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT STRINGTABLE { - IDS_APPNAME, "" IDS_SECONDS, "seconds" + IDS_NOBODY, "Nobody" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&", IDM_NEW + MENUITEM "&\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM " & (?)", IDM_MARKQ MENUITEM SEPARATOR @@ -28,7 +29,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "- " FONT 8, "MS Shell Dlg" @@ -47,7 +48,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "!" FONT 8, "MS Shell Dlg" @@ -57,7 +58,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION " " FONT 8, "MS Shell Dlg" @@ -71,15 +72,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "", IDOK, 86, 32, 45, 15 PUSHBUTTON "", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "" -FONT 8, "MS Shell Dlg" -{ - LTEXT "WineMine", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 100, 10 - LTEXT "under the Wine license", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/ca-ES.rc b/reactos/base/applications/games/winemine/lang/ca-ES.rc index 0a6dc671207..759adff4b21 100644 --- a/reactos/base/applications/games/winemine/lang/ca-ES.rc +++ b/reactos/base/applications/games/winemine/lang/ca-ES.rc @@ -3,14 +3,15 @@ LANGUAGE LANG_CATALAN, SUBLANG_DEFAULT STRINGTABLE { - IDS_APPNAME, "Cercamines" IDS_SECONDS, "seconds" + IDS_NOBODY, "Nobody" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&Nou", IDM_NEW + MENUITEM "&Nou\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "In&terrogant (?)", IDM_MARKQ MENUITEM SEPARATOR @@ -28,7 +29,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Millors Temps" FONT 8, "MS Shell Dlg" @@ -47,7 +48,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Felicitats!" FONT 8, "MS Shell Dlg" @@ -57,7 +58,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "Acceptar", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Joc Personalitzat" FONT 8, "MS Shell Dlg" @@ -71,15 +72,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "Acceptar", IDOK, 86, 32, 45, 15 PUSHBUTTON "Cancellar", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "En quant a" -FONT 8, "MS Shell Dlg" -{ - LTEXT "Cercamines", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "sota llicncia Wine", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "Acceptar", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/de-DE.rc b/reactos/base/applications/games/winemine/lang/de-DE.rc index 91426a6bb2d..7497610fc66 100644 --- a/reactos/base/applications/games/winemine/lang/de-DE.rc +++ b/reactos/base/applications/games/winemine/lang/de-DE.rc @@ -3,14 +3,15 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL STRINGTABLE { - IDS_APPNAME, "WineMine" IDS_SECONDS, "Sekunden" + IDS_NOBODY, "Niemand" + IDS_ABOUT, "von Joshua Thielen und ReactOS-Entwicklern" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Spiel" { - MENUITEM "&Neu", IDM_NEW + MENUITEM "&Neu\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "&Merker (?)", IDM_MARKQ MENUITEM SEPARATOR @@ -28,7 +29,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Bestzeiten" FONT 8, "MS Shell Dlg" @@ -47,7 +48,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "Bestzeiten &lschen", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Glckwunsch!" FONT 8, "MS Shell Dlg" @@ -57,9 +58,9 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "Custom Game" +CAPTION "Benutzerdefiniertes Spiel" FONT 8, "MS Shell Dlg" { LTEXT "Hhe:", IDNONE, 5, 15, 43, 10 @@ -71,15 +72,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 86, 32, 45, 15 PUSHBUTTON "Abbrechen", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "ber" -FONT 8, "MS Shell Dlg" -{ - LTEXT "WineMine", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "Unter der Wine Lizenz", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/el-GR.rc b/reactos/base/applications/games/winemine/lang/el-GR.rc index 259553ff25d..13c47c0ce6a 100644 --- a/reactos/base/applications/games/winemine/lang/el-GR.rc +++ b/reactos/base/applications/games/winemine/lang/el-GR.rc @@ -3,14 +3,15 @@ LANGUAGE LANG_GREEK, SUBLANG_DEFAULT STRINGTABLE { - IDS_APPNAME, "" IDS_SECONDS, "seconds" + IDS_NOBODY, "Nobody" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&", IDM_NEW + MENUITEM "&\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "& ", IDM_MARKQ MENUITEM SEPARATOR @@ -28,7 +29,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION " " FONT 8, "MS Shell Dlg" @@ -47,7 +48,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "!" FONT 8, "MS Shell Dlg" @@ -57,7 +58,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "O", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION " " FONT 8, "MS Shell Dlg" @@ -71,15 +72,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "O", IDOK, 86, 32, 45, 15 PUSHBUTTON "", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "..." -FONT 8, "MS Shell Dlg" -{ - LTEXT "WineMine", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "under the Wine license", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "O", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/en-US.rc b/reactos/base/applications/games/winemine/lang/en-US.rc index eacfcb2d059..d8315f71cbf 100644 --- a/reactos/base/applications/games/winemine/lang/en-US.rc +++ b/reactos/base/applications/games/winemine/lang/en-US.rc @@ -3,14 +3,15 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US STRINGTABLE { - IDS_APPNAME, "WineMine" IDS_SECONDS, "seconds" + IDS_NOBODY, "Nobody" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&New", IDM_NEW + MENUITEM "&New\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "&Marks (?)", IDM_MARKQ MENUITEM SEPARATOR @@ -28,7 +29,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Fastest Times" FONT 8, "MS Shell Dlg" @@ -47,7 +48,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Congratulations!" FONT 8, "MS Shell Dlg" @@ -57,7 +58,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Custom Game" FONT 8, "MS Shell Dlg" @@ -71,15 +72,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 86, 32, 45, 15 PUSHBUTTON "Cancel", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "About" -FONT 8, "MS Shell Dlg" -{ - LTEXT "WineMine", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "under the Wine license", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/es-ES.rc b/reactos/base/applications/games/winemine/lang/es-ES.rc index 2c5226b156f..3112fba1cc1 100644 --- a/reactos/base/applications/games/winemine/lang/es-ES.rc +++ b/reactos/base/applications/games/winemine/lang/es-ES.rc @@ -3,14 +3,15 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL STRINGTABLE { - IDS_APPNAME, "WineMine" IDS_SECONDS, "seconds" + IDS_NOBODY, "Nobody" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&Nuevo", IDM_NEW + MENUITEM "&Nuevo\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "&Marcar Interrogantes", IDM_MARKQ MENUITEM SEPARATOR @@ -28,7 +29,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Mejores Tiempos" FONT 8, "MS Shell Dlg" @@ -47,7 +48,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Felicidades!" FONT 8, "MS Shell Dlg" @@ -57,7 +58,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "Aceptar", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Juego Personalizado" FONT 8, "MS Shell Dlg" @@ -71,15 +72,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "Aceptar", IDOK, 86, 32, 45, 15 PUSHBUTTON "Cancelar", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "Acerca de" -FONT 8, "MS Shell Dlg" -{ - LTEXT "WineMine", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "under the Wine license", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "Aceptar", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/fr-FR.rc b/reactos/base/applications/games/winemine/lang/fr-FR.rc index aa9bbcb2bf7..72944d993a3 100644 --- a/reactos/base/applications/games/winemine/lang/fr-FR.rc +++ b/reactos/base/applications/games/winemine/lang/fr-FR.rc @@ -9,14 +9,15 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL STRINGTABLE { - IDS_APPNAME, "WineMine" IDS_SECONDS, "secondes" + IDS_NOBODY, "Anonyme" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Jeu" { - MENUITEM "&Nouveau", IDM_NEW + MENUITEM "&Nouveau\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "&Marqueur ?", IDM_MARKQ MENUITEM SEPARATOR @@ -35,7 +36,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Temps acclr" FONT 8, "MS Shell Dlg" @@ -54,7 +55,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Rinitialiser les scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Flicitations !" FONT 8, "MS Shell Dlg" @@ -64,7 +65,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "Ok", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Sur mesure" FONT 8, "MS Shell Dlg" @@ -78,15 +79,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 86, 32, 45, 15 PUSHBUTTON "Annuler", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION " propos" -FONT 8, "MS Shell Dlg" -{ - LTEXT "WineMine", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "Sous licence Wine", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/id-ID.rc b/reactos/base/applications/games/winemine/lang/id-ID.rc index 60edf66d975..48b96294905 100644 --- a/reactos/base/applications/games/winemine/lang/id-ID.rc +++ b/reactos/base/applications/games/winemine/lang/id-ID.rc @@ -3,14 +3,15 @@ LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT STRINGTABLE { - IDS_APPNAME, "WineMine" IDS_SECONDS, "seconds" + IDS_NOBODY, "Nobody" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&Baru", IDM_NEW + MENUITEM "&Baru\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "&Tandai Pertanyaan", IDM_MARKQ MENUITEM SEPARATOR @@ -28,7 +29,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Waktu Tercepat" FONT 8, "MS Shell Dlg" @@ -47,7 +48,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Selamat!" FONT 8, "MS Shell Dlg" @@ -57,7 +58,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Game Kustom" FONT 8, "MS Shell Dlg" @@ -71,15 +72,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 86, 32, 45, 15 PUSHBUTTON "Batal", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "Tentang" -FONT 8, "MS Shell Dlg" -{ - LTEXT "WineMine", IDNONE, 10, 10, 35, 10 - LTEXT "Hak Cipta 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "di bawah lisensi Wine", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/it-IT.rc b/reactos/base/applications/games/winemine/lang/it-IT.rc index 44ca4f9472d..75ebddbc418 100644 --- a/reactos/base/applications/games/winemine/lang/it-IT.rc +++ b/reactos/base/applications/games/winemine/lang/it-IT.rc @@ -3,14 +3,15 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL STRINGTABLE { - IDS_APPNAME, "Campo minato" IDS_SECONDS, "seconds" + IDS_NOBODY, "Anonimo" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&Nuova", IDM_NEW + MENUITEM "&Nuova\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "&Segno (?)", IDM_MARKQ MENUITEM SEPARATOR @@ -28,7 +29,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Tempi migliori" FONT 8, "MS Shell Dlg" @@ -47,7 +48,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Complimenti!" FONT 8, "MS Shell Dlg" @@ -57,7 +58,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "Ok", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Campo personalizzato" FONT 8, "MS Shell Dlg" @@ -71,15 +72,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 86, 32, 45, 15 PUSHBUTTON "Annulla", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "Informazioni su Campo minato" -FONT 8, "MS Shell Dlg" -{ - LTEXT "Campo minato", IDNONE, 10, 10, 55, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "Sotto licenza Wine", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "Ok", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/lt-LT.rc b/reactos/base/applications/games/winemine/lang/lt-LT.rc index 9d8152fd3aa..0f3ac469b59 100644 --- a/reactos/base/applications/games/winemine/lang/lt-LT.rc +++ b/reactos/base/applications/games/winemine/lang/lt-LT.rc @@ -5,14 +5,15 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_DEFAULT STRINGTABLE { - IDS_APPNAME, "WineMine" IDS_SECONDS, "seconds" + IDS_NOBODY, "Nobody" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&Naujas aidimas", IDM_NEW + MENUITEM "&Naujas aidimas\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "ymti &spjamus (?)", IDM_MARKQ MENUITEM SEPARATOR @@ -31,7 +32,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Greiiausi laikai" FONT 8, "MS Shell Dlg" @@ -50,7 +51,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Sveikiname!" FONT 8, "MS Shell Dlg" @@ -60,7 +61,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Pasirinktas aidimas" FONT 8, "MS Shell Dlg" @@ -74,15 +75,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 86, 32, 45, 15 PUSHBUTTON "Ataukti", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "Apie" -FONT 8, "MS Shell Dlg" -{ - LTEXT "WineMine", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "under the Wine license", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/nb-NO.rc b/reactos/base/applications/games/winemine/lang/nb-NO.rc index 468b414f7b8..708b41db9da 100644 --- a/reactos/base/applications/games/winemine/lang/nb-NO.rc +++ b/reactos/base/applications/games/winemine/lang/nb-NO.rc @@ -3,14 +3,15 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL STRINGTABLE { - IDS_APPNAME, "Minesveiper" IDS_SECONDS, "seconds" + IDS_NOBODY, "Ingen" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&Nytt", IDM_NEW + MENUITEM "&Nytt\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "&Merk sprsml", IDM_MARKQ MENUITEM SEPARATOR @@ -28,7 +29,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Beste tider" FONT 8, "MS Shell Dlg" @@ -47,17 +48,17 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "gratulerer!" FONT 8, "MS Shell Dlg" { LTEXT "Skriv inn navnet ditt", IDIGNORE, 10, 10, 150, 10 EDITTEXT IDC_EDITNAME, 25, 20, 110, 12 - DEFPUSHBUTTON "Ok", IDOK, 60, 40, 40, 15 + DEFPUSHBUTTON "OK", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Custom Game" FONT 8, "MS Shell Dlg" @@ -71,15 +72,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 86, 32, 45, 15 PUSHBUTTON "Avbryt", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "Om" -FONT 8, "MS Shell Dlg" -{ - LTEXT "Minesveiper", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "under Wine lisensen", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/nl-NL.rc b/reactos/base/applications/games/winemine/lang/nl-NL.rc index a640d7e7eeb..74f89ffd804 100644 --- a/reactos/base/applications/games/winemine/lang/nl-NL.rc +++ b/reactos/base/applications/games/winemine/lang/nl-NL.rc @@ -3,14 +3,15 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL STRINGTABLE { - IDS_APPNAME, "WineMine" IDS_SECONDS, "seconds" + IDS_NOBODY, "Nobody" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&Nieuw", IDM_NEW + MENUITEM "&Nieuw\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "Vraagteken a&ctiveren", IDM_MARKQ MENUITEM SEPARATOR @@ -28,7 +29,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Beste tijd" FONT 8, "MS Shell Dlg" @@ -47,7 +48,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Gefeleciteerd!" FONT 8, "MS Shell Dlg" @@ -57,7 +58,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "Ok", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Aangepast spel" FONT 8, "MS Shell Dlg" @@ -71,15 +72,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 86, 32, 45, 15 PUSHBUTTON "Annuleren", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "Over" -FONT 8, "MS Shell Dlg" -{ - LTEXT "WineMine", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "onder de Wine licentie", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/pl-PL.rc b/reactos/base/applications/games/winemine/lang/pl-PL.rc index 8c00eb1356f..d58eadebfbc 100644 --- a/reactos/base/applications/games/winemine/lang/pl-PL.rc +++ b/reactos/base/applications/games/winemine/lang/pl-PL.rc @@ -10,14 +10,15 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT STRINGTABLE { - IDS_APPNAME, "Saper" IDS_SECONDS, "seconds" + IDS_NOBODY, "Anonim" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&Nowa gra", IDM_NEW + MENUITEM "&Nowa gra\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "Poz&iom", IDM_MARKQ MENUITEM SEPARATOR @@ -36,7 +37,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Najlepsze czasy" FONT 8, "MS Shell Dlg" @@ -55,7 +56,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Gratulacje!" FONT 8, "MS Shell Dlg" @@ -65,7 +66,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Ustawienia gry" FONT 8, "MS Shell Dlg" @@ -79,15 +80,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 86, 32, 45, 15 PUSHBUTTON "Anuluj", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "Winemine - informacje" -FONT 8, "MS Shell Dlg" -{ - LTEXT "WineMine", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "Na licencji Wine", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/ru-RU.rc b/reactos/base/applications/games/winemine/lang/ru-RU.rc index 47ed9a16866..89346a1c8dc 100644 --- a/reactos/base/applications/games/winemine/lang/ru-RU.rc +++ b/reactos/base/applications/games/winemine/lang/ru-RU.rc @@ -6,14 +6,15 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE { - IDS_APPNAME, "" IDS_SECONDS, "" + IDS_NOBODY, "Nobody" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&" { - MENUITEM "& ", IDM_NEW + MENUITEM "& \tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "&", IDM_MARKQ MENUITEM SEPARATOR @@ -31,7 +32,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION " " FONT 8, "MS Shell Dlg" @@ -50,7 +51,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "!" FONT 8, "MS Shell Dlg" @@ -60,7 +61,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION " " FONT 8, "MS Shell Dlg" @@ -74,15 +75,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 86, 32, 45, 15 PUSHBUTTON "", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION " " -FONT 8, "MS Shell Dlg" -{ - LTEXT "", IDNONE, 10, 10, 35, 10 - LTEXT " () 2000,\n .", IDNONE, 35, 25, 110, 17 - LTEXT " Wine", IDNONE, 35, 42, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/sk-SK.rc b/reactos/base/applications/games/winemine/lang/sk-SK.rc index 80714def5cb..2cfb38c097d 100644 --- a/reactos/base/applications/games/winemine/lang/sk-SK.rc +++ b/reactos/base/applications/games/winemine/lang/sk-SK.rc @@ -7,14 +7,15 @@ LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT STRINGTABLE { - IDS_APPNAME, "Mny" IDS_SECONDS, "seconds" + IDS_NOBODY, "Nobody" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&Nov hra", IDM_NEW + MENUITEM "&Nov hra\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "Zn&aky (?)", IDM_MARKQ MENUITEM SEPARATOR @@ -32,7 +33,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Najrchlej hadai mn" FONT 8, "MS Shell Dlg" @@ -51,7 +52,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Blahoelm!" FONT 8, "MS Shell Dlg" @@ -61,7 +62,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "Ok", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Custom Game" FONT 8, "MS Shell Dlg" @@ -75,16 +76,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 86, 32, 45, 15 PUSHBUTTON "Zrui", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "o je hra Mny (WineMine)" -FONT 8, "MS Shell Dlg" -{ - LTEXT "WineMine", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "pod licenciou Wine", IDNONE, 35, 35, 100, 10 - LTEXT "Preloil Kario", IDNONE, 35, 45, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "Ok", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/th-TH.rc b/reactos/base/applications/games/winemine/lang/th-TH.rc index 5e20e340958..a4a7f18af45 100644 --- a/reactos/base/applications/games/winemine/lang/th-TH.rc +++ b/reactos/base/applications/games/winemine/lang/th-TH.rc @@ -3,14 +3,15 @@ LANGUAGE LANG_THAI, SUBLANG_DEFAULT STRINGTABLE { - IDS_APPNAME, "WineMine" IDS_SECONDS, "seconds" + IDS_NOBODY, "Nobody" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&", IDM_NEW + MENUITEM "&\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "&ͧ¤Ӷ", IDM_MARKQ MENUITEM SEPARATOR @@ -28,7 +29,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "ҷǷش" FONT 8, "MS Shell Dlg" @@ -47,7 +48,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "ʴԹմ!" FONT 8, "MS Shell Dlg" @@ -57,7 +58,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "ŧ", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "дѺ" FONT 8, "MS Shell Dlg" @@ -71,15 +72,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "ŧ", IDOK, 86, 32, 45, 15 PUSHBUTTON "¡ԡ", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "ǡѺ" -FONT 8, "MS Shell Dlg" -{ - LTEXT "WineMine", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "ԢԷͧ WINE", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "ŧ", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/uk-UA.rc b/reactos/base/applications/games/winemine/lang/uk-UA.rc index 65fcb9f3d18..72755671361 100644 --- a/reactos/base/applications/games/winemine/lang/uk-UA.rc +++ b/reactos/base/applications/games/winemine/lang/uk-UA.rc @@ -11,14 +11,15 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT STRINGTABLE { - IDS_APPNAME, "" IDS_SECONDS, "" + IDS_NOBODY, "Nobody" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "&", IDM_NEW + MENUITEM "&\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "&̳ (?)", IDM_MARKQ MENUITEM SEPARATOR @@ -36,7 +37,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION " " FONT 8, "MS Shell Dlg" @@ -55,7 +56,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "& ", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "³!" FONT 8, "MS Shell Dlg" @@ -65,7 +66,7 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION " " FONT 8, "MS Shell Dlg" @@ -79,15 +80,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "OK", IDOK, 86, 32, 45, 15 PUSHBUTTON "", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -CAPTION "About" -FONT 8, "MS Shell Dlg" -{ - LTEXT "", IDNONE, 10, 10, 35, 10 - LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT " 糿 Wine", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/lang/zh-CN.rc b/reactos/base/applications/games/winemine/lang/zh-CN.rc index 15b9ba354a2..f01eb78ad79 100644 --- a/reactos/base/applications/games/winemine/lang/zh-CN.rc +++ b/reactos/base/applications/games/winemine/lang/zh-CN.rc @@ -22,16 +22,17 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED -STRINGTABLE DISCARDABLE +STRINGTABLE DISCARDABLE { - IDS_APPNAME, "ɨ" IDS_SECONDS, "seconds" + IDS_NOBODY, "Nobody" + IDS_ABOUT, "by Joshua Thielen and ReactOS developers" } -MENU_WINEMINE MENU DISCARDABLE +IDM_WINEMINE MENU DISCARDABLE { POPUP "&Game" { - MENUITEM "(&N)", IDM_NEW + MENUITEM "(&N)\tF2", IDM_NEW MENUITEM SEPARATOR MENUITEM "(?)(&M)", IDM_MARKQ MENUITEM SEPARATOR @@ -48,7 +49,7 @@ MENU_WINEMINE MENU DISCARDABLE } } -DLG_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 +IDD_TIMES DIALOGEX DISCARDABLE 0, 0, 200, 75 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "ɨӢ۰" FONT 8, "MS Shell Dlg" @@ -67,7 +68,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Reset Scores", IDRESET, 18, 57, 67, 15 } -DLG_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 +IDD_CONGRATS DIALOGEX DISCARDABLE 0, 0, 160, 60 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT FONT 8, "MS Shell Dlg" CAPTION "ˢ¼¼!" @@ -77,7 +78,7 @@ CAPTION "ˢ DEFPUSHBUTTON "ȷ", IDOK, 60, 40, 40, 15 } -DLG_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 +IDD_CUSTOM DIALOGEX DISCARDABLE 0, 0, 139, 80 STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT CAPTION "Զ" FONT 8, "MS Shell Dlg" @@ -91,15 +92,3 @@ FONT 8, "MS Shell Dlg" DEFPUSHBUTTON "ȷ", IDOK, 86, 32, 45, 15 PUSHBUTTON "ȡ", IDCANCEL, 86, 52, 45, 15 } - -DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 145, 80 -STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT -FONT 8, "MS Shell Dlg" -CAPTION "ɨ" -{ - LTEXT "Winemine", IDNONE, 10, 10, 35, 10 - LTEXT "Ȩ 2000, Joshua Thielen", IDNONE, 35, 25, 110, 10 - LTEXT "under the Wine license", IDNONE, 35, 35, 100, 10 - ICON IDI_WINEMINE, IDNONE, 10, 25, 20, 20 - DEFPUSHBUTTON "ȷ", IDOK, 50, 60, 55, 15 -} diff --git a/reactos/base/applications/games/winemine/main.c b/reactos/base/applications/games/winemine/main.c index 14781d00fa4..0f200866c5c 100644 --- a/reactos/base/applications/games/winemine/main.c +++ b/reactos/base/applications/games/winemine/main.c @@ -22,17 +22,11 @@ #include #include #include +#include #include "main.h" #include "dialog.h" #include "resource.h" -/* Work around a Wine bug which defines handles as UINT rather than LPVOID */ -#ifdef WINE_STRICT -#define NULL_HANDLE NULL -#else -#define NULL_HANDLE 0 -#endif - #ifdef DUMB_DEBUG #include #define DEBUG(x) fprintf(stderr,x) @@ -40,16 +34,15 @@ #define DEBUG(x) #endif +static const TCHAR szAppName[] = TEXT("WineMine"); -int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdline, int cmdshow ) + +int WINAPI _tWinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPTSTR cmdline, int cmdshow ) { MSG msg; WNDCLASS wc; HWND hWnd; HACCEL haccel; - char appname[9]; - - LoadString( hInst, IDS_APPNAME, appname, sizeof(appname)); wc.style = 0; wc.lpfnWndProc = MainProc; @@ -57,515 +50,517 @@ int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdline, int cmd wc.cbWndExtra = 0; wc.hInstance = hInst; wc.hIcon = LoadIcon( hInst, MAKEINTRESOURCE(IDI_WINEMINE) ); - wc.hCursor = LoadCursor( NULL_HANDLE, (LPCTSTR)IDI_APPLICATION ); - wc.hbrBackground = (HBRUSH) GetStockObject( LTGRAY_BRUSH ); - wc.lpszMenuName = "MENU_WINEMINE"; - wc.lpszClassName = appname; + wc.hCursor = LoadCursor( NULL, (LPCTSTR)IDI_APPLICATION ); + wc.hbrBackground = (HBRUSH) GetStockObject( LTGRAY_BRUSH ); + wc.lpszMenuName = MAKEINTRESOURCE(IDM_WINEMINE); + wc.lpszClassName = szAppName; - if (!RegisterClass(&wc)) exit(1); - hWnd = CreateWindow( appname, appname, + if ( !RegisterClass(&wc) ) + return 1; + + hWnd = CreateWindow( szAppName, szAppName, WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, - NULL_HANDLE, NULL_HANDLE, hInst, NULL ); + NULL, NULL, hInst, NULL ); - if (!hWnd) exit(1); + if (!hWnd) + return 1; ShowWindow( hWnd, cmdshow ); UpdateWindow( hWnd ); - haccel = LoadAccelerators( hInst, appname ); + haccel = LoadAccelerators( hInst, MAKEINTRESOURCE(IDA_WINEMINE) ); SetTimer( hWnd, ID_TIMER, 1000, NULL ); - while( GetMessage(&msg, NULL_HANDLE, 0, 0) ) { - if (!TranslateAccelerator( hWnd, haccel, &msg )) - TranslateMessage( &msg ); + while( GetMessage(&msg, NULL, 0, 0) ) + { + if ( !TranslateAccelerator(hWnd, haccel, &msg) ) + TranslateMessage(&msg); - DispatchMessage( &msg ); + DispatchMessage(&msg); } + return msg.wParam; } - LRESULT WINAPI MainProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { - HDC hdc; - PAINTSTRUCT ps; - HMENU hMenu; static BOARD board; - switch( msg ) { - case WM_CREATE: - board.hInst = ((LPCREATESTRUCT) lParam)->hInstance; - board.hWnd = hWnd; - InitBoard( &board ); - CreateBoard( &board ); - return 0; - - case WM_PAINT: - { - HDC hMemDC; - - DEBUG("WM_PAINT\n"); - hdc = BeginPaint( hWnd, &ps ); - hMemDC = CreateCompatibleDC( hdc ); - - DrawBoard( hdc, hMemDC, &ps, &board ); - - DeleteDC( hMemDC ); - EndPaint( hWnd, &ps ); - - return 0; - } - - case WM_MOVE: - DEBUG("WM_MOVE\n"); - board.pos.x = (unsigned) LOWORD(lParam); - board.pos.y = (unsigned) HIWORD(lParam); - return 0; - - case WM_DESTROY: - SaveBoard( &board ); - DestroyBoard( &board ); - PostQuitMessage( 0 ); - return 0; - - case WM_TIMER: - if( board.status == PLAYING ) { - board.time++; - RedrawWindow( hWnd, &board.timer_rect, NULL_HANDLE, - RDW_INVALIDATE | RDW_UPDATENOW ); - } - return 0; - - case WM_LBUTTONDOWN: - DEBUG("WM_LBUTTONDOWN\n"); - if( wParam & MK_RBUTTON ) - msg = WM_MBUTTONDOWN; - TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); - SetCapture( hWnd ); - return 0; - - case WM_LBUTTONUP: - DEBUG("WM_LBUTTONUP\n"); - if( wParam & MK_RBUTTON ) - msg = WM_MBUTTONUP; - TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); - ReleaseCapture(); - return 0; - - case WM_RBUTTONDOWN: - DEBUG("WM_RBUTTONDOWN\n"); - if( wParam & MK_LBUTTON ) { - board.press.x = 0; - board.press.y = 0; - msg = WM_MBUTTONDOWN; - } - TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); - return 0; - - case WM_RBUTTONUP: - DEBUG("WM_RBUTTONUP\n"); - if( wParam & MK_LBUTTON ) - msg = WM_MBUTTONUP; - TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); - return 0; - - case WM_MBUTTONDOWN: - DEBUG("WM_MBUTTONDOWN\n"); - TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); - return 0; - - case WM_MBUTTONUP: - DEBUG("WM_MBUTTONUP\n"); - TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); - return 0; - - case WM_MOUSEMOVE: + switch(msg) { - if( (wParam & MK_LBUTTON) && (wParam & MK_RBUTTON) ) { - msg = WM_MBUTTONDOWN; - } - else if( wParam & MK_LBUTTON ) { - msg = WM_LBUTTONDOWN; - } - else { - return 0; - } - - TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); - - return 0; - } - - case WM_COMMAND: - switch(LOWORD(wParam)) { - case IDM_NEW: + case WM_CREATE: + board.hInst = ((LPCREATESTRUCT) lParam)->hInstance; + board.hWnd = hWnd; + InitBoard( &board ); CreateBoard( &board ); return 0; - case IDM_MARKQ: - hMenu = GetMenu( hWnd ); - board.IsMarkQ = !board.IsMarkQ; - if( board.IsMarkQ ) - CheckMenuItem( hMenu, IDM_MARKQ, MF_CHECKED ); + case WM_PAINT: + { + HDC hDC; + HDC hMemDC; + PAINTSTRUCT ps; + + DEBUG("WM_PAINT\n"); + hDC = BeginPaint( hWnd, &ps ); + hMemDC = CreateCompatibleDC(hDC); + + DrawBoard( hDC, hMemDC, &ps, &board ); + + DeleteDC( hMemDC ); + EndPaint( hWnd, &ps ); + + return 0; + } + + case WM_MOVE: + DEBUG("WM_MOVE\n"); + board.Pos.x = (LONG) LOWORD(lParam); + board.Pos.y = (LONG) HIWORD(lParam); + return 0; + + case WM_DESTROY: + SaveBoard( &board ); + DestroyBoard( &board ); + PostQuitMessage( 0 ); + return 0; + + case WM_TIMER: + if( board.Status == PLAYING ) + { + board.uTime++; + RedrawWindow( hWnd, &board.TimerRect, NULL, RDW_INVALIDATE | RDW_UPDATENOW ); + } + return 0; + + case WM_LBUTTONDOWN: + DEBUG("WM_LBUTTONDOWN\n"); + + if( wParam & MK_RBUTTON ) + msg = WM_MBUTTONDOWN; + + TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); + SetCapture( hWnd ); + return 0; + + case WM_LBUTTONUP: + DEBUG("WM_LBUTTONUP\n"); + + if( wParam & MK_RBUTTON ) + msg = WM_MBUTTONUP; + + TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); + ReleaseCapture(); + return 0; + + case WM_RBUTTONDOWN: + DEBUG("WM_RBUTTONDOWN\n"); + + if( wParam & MK_LBUTTON ) + { + board.Press.x = 0; + board.Press.y = 0; + msg = WM_MBUTTONDOWN; + } + + TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); + return 0; + + case WM_RBUTTONUP: + DEBUG("WM_RBUTTONUP\n"); + if( wParam & MK_LBUTTON ) + msg = WM_MBUTTONUP; + TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); + return 0; + + case WM_MBUTTONDOWN: + DEBUG("WM_MBUTTONDOWN\n"); + TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); + return 0; + + case WM_MBUTTONUP: + DEBUG("WM_MBUTTONUP\n"); + TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); + return 0; + + case WM_MOUSEMOVE: + { + if( (wParam & MK_LBUTTON) && (wParam & MK_RBUTTON) ) + msg = WM_MBUTTONDOWN; + else if( wParam & MK_LBUTTON ) + msg = WM_LBUTTONDOWN; else - CheckMenuItem( hMenu, IDM_MARKQ, MF_UNCHECKED ); - return 0; + return 0; - case IDM_BEGINNER: - SetDifficulty( &board, BEGINNER ); - CreateBoard( &board ); - return 0; + TestBoard( hWnd, &board, LOWORD(lParam), HIWORD(lParam), msg ); - case IDM_ADVANCED: - SetDifficulty( &board, ADVANCED ); - CreateBoard( &board ); return 0; - - case IDM_EXPERT: - SetDifficulty( &board, EXPERT ); - CreateBoard( &board ); - return 0; - - case IDM_CUSTOM: - SetDifficulty( &board, CUSTOM ); - CreateBoard( &board ); - return 0; - - case IDM_EXIT: - SendMessage( hWnd, WM_CLOSE, 0, 0); - return 0; - - case IDM_TIMES: - DialogBoxParam( board.hInst, "DLG_TIMES", hWnd, - TimesDlgProc, (LPARAM) &board); - return 0; - - case IDM_ABOUT: - DialogBox( board.hInst, "DLG_ABOUT", hWnd, AboutDlgProc ); - return 0; - default: - DEBUG("Unknown WM_COMMAND command message received\n"); - break; } + + case WM_COMMAND: + switch(LOWORD(wParam)) + { + case IDM_NEW: + CreateBoard( &board ); + return 0; + + case IDM_MARKQ: + { + HMENU hMenu; + + hMenu = GetMenu( hWnd ); + board.bMark = !board.bMark; + + if( board.bMark ) + CheckMenuItem( hMenu, IDM_MARKQ, MF_CHECKED ); + else + CheckMenuItem( hMenu, IDM_MARKQ, MF_UNCHECKED ); + + return 0; + } + + case IDM_BEGINNER: + SetDifficulty( &board, BEGINNER ); + CreateBoard( &board ); + return 0; + + case IDM_ADVANCED: + SetDifficulty( &board, ADVANCED ); + CreateBoard( &board ); + return 0; + + case IDM_EXPERT: + SetDifficulty( &board, EXPERT ); + CreateBoard( &board ); + return 0; + + case IDM_CUSTOM: + SetDifficulty( &board, CUSTOM ); + CreateBoard( &board ); + return 0; + + case IDM_EXIT: + SendMessage( hWnd, WM_CLOSE, 0, 0); + return 0; + + case IDM_TIMES: + DialogBoxParam( board.hInst, MAKEINTRESOURCE(IDD_TIMES), hWnd, TimesDlgProc, (LPARAM) &board); + return 0; + + case IDM_ABOUT: + { + TCHAR szOtherStuff[255]; + + LoadString( board.hInst, IDS_ABOUT, szOtherStuff, sizeof(szOtherStuff) / sizeof(TCHAR) ); + + ShellAbout( hWnd, szAppName, szOtherStuff, (HICON)SendMessage(hWnd, WM_GETICON, ICON_BIG, 0) ); + return 0; + } + + default: + DEBUG("Unknown WM_COMMAND command message received\n"); + break; + } } + return( DefWindowProc( hWnd, msg, wParam, lParam )); } -void InitBoard( BOARD *p_board ) +void InitBoard( BOARD *pBoard ) { HMENU hMenu; - p_board->hMinesBMP = LoadBitmap( p_board->hInst, (LPCSTR) IDB_MINES); - p_board->hFacesBMP = LoadBitmap( p_board->hInst, (LPCSTR) IDB_FACES); - p_board->hLedsBMP = LoadBitmap( p_board->hInst, (LPCSTR) IDB_LEDS); + pBoard->hMinesBMP = LoadBitmap( pBoard->hInst, (LPCTSTR) IDB_MINES); + pBoard->hFacesBMP = LoadBitmap( pBoard->hInst, (LPCTSTR) IDB_FACES); + pBoard->hLedsBMP = LoadBitmap( pBoard->hInst, (LPCTSTR) IDB_LEDS); - LoadBoard( p_board ); + LoadBoard( pBoard ); - if( p_board->pos.x < GetSystemMetrics( SM_CXFIXEDFRAME ) ) - p_board->pos.x = GetSystemMetrics( SM_CXFIXEDFRAME ); + if( pBoard->Pos.x < GetSystemMetrics( SM_CXFIXEDFRAME ) ) + pBoard->Pos.x = GetSystemMetrics( SM_CXFIXEDFRAME ); - if( p_board->pos.x > (GetSystemMetrics( SM_CXSCREEN ) - GetSystemMetrics( SM_CXFIXEDFRAME ))) + if( pBoard->Pos.x > (GetSystemMetrics( SM_CXSCREEN ) - GetSystemMetrics( SM_CXFIXEDFRAME ))) { - p_board->pos.x = GetSystemMetrics( SM_CXSCREEN ) + pBoard->Pos.x = GetSystemMetrics( SM_CXSCREEN ) - GetSystemMetrics( SM_CXFIXEDFRAME ); } - if( p_board->pos.y < (GetSystemMetrics( SM_CYMENU ) + GetSystemMetrics( SM_CYCAPTION ) + GetSystemMetrics( SM_CYFIXEDFRAME ))) + if( pBoard->Pos.y < (GetSystemMetrics( SM_CYMENU ) + GetSystemMetrics( SM_CYCAPTION ) + GetSystemMetrics( SM_CYFIXEDFRAME ))) { - p_board->pos.y = GetSystemMetrics( SM_CYMENU ) + + pBoard->Pos.y = GetSystemMetrics( SM_CYMENU ) + GetSystemMetrics( SM_CYCAPTION ) + GetSystemMetrics( SM_CYFIXEDFRAME ); } - if( p_board->pos.y > (GetSystemMetrics( SM_CYSCREEN ) - GetSystemMetrics( SM_CYFIXEDFRAME ))) + if( pBoard->Pos.y > (GetSystemMetrics( SM_CYSCREEN ) - GetSystemMetrics( SM_CYFIXEDFRAME ))) { - p_board->pos.y = GetSystemMetrics( SM_CYSCREEN ) + pBoard->Pos.y = GetSystemMetrics( SM_CYSCREEN ) - GetSystemMetrics( SM_CYFIXEDFRAME ); } - hMenu = GetMenu( p_board->hWnd ); - CheckMenuItem( hMenu, IDM_BEGINNER + p_board->difficulty, MF_CHECKED ); + hMenu = GetMenu( pBoard->hWnd ); + CheckMenuItem( hMenu, IDM_BEGINNER + pBoard->Difficulty, MF_CHECKED ); - if( p_board->IsMarkQ ) + if( pBoard->bMark ) CheckMenuItem( hMenu, IDM_MARKQ, MF_CHECKED ); else CheckMenuItem( hMenu, IDM_MARKQ, MF_UNCHECKED ); - CheckLevel( p_board ); + CheckLevel( pBoard ); } -void LoadBoard( BOARD *p_board ) +static DWORD LoadDWord(HKEY hKey, TCHAR *szKeyName, DWORD dwDefaultValue) { DWORD dwSize; DWORD dwValue; - HKEY hkey; - char data[16]; - char key_name[8]; - unsigned i; - - - RegOpenKeyEx( HKEY_CURRENT_USER, WINEMINE_REGKEY, - 0, KEY_QUERY_VALUE, &hkey ); dwSize = sizeof(DWORD); - if( RegQueryValueEx( hkey, "Xpos", NULL, NULL, (LPBYTE) &dwValue, &dwSize ) == ERROR_SUCCESS ) - p_board->pos.x = dwValue; - else - p_board->pos.x = GetSystemMetrics( SM_CXFIXEDFRAME ); - dwSize = sizeof(DWORD); - if( RegQueryValueEx( hkey, "Ypos", NULL, NULL, (LPBYTE) &dwValue, &dwSize ) == ERROR_SUCCESS ) - p_board->pos.y = dwValue; - else - p_board->pos.y = GetSystemMetrics( SM_CYMENU ) - + GetSystemMetrics( SM_CYCAPTION ) - + GetSystemMetrics( SM_CYFIXEDFRAME ); + if( RegQueryValueEx( hKey, szKeyName, NULL, NULL, (LPBYTE) &dwValue, &dwSize ) == ERROR_SUCCESS ) + return dwValue; - dwSize = sizeof(DWORD); - if( RegQueryValueEx( hkey, "Rows", NULL, NULL, (LPBYTE) &dwValue, &dwSize ) == ERROR_SUCCESS ) - p_board->rows = dwValue; - else - p_board->rows = BEGINNER_ROWS; - - dwSize = sizeof(DWORD); - if( RegQueryValueEx( hkey, "Cols", NULL, NULL, (LPBYTE) &dwValue, &dwSize ) == ERROR_SUCCESS ) - p_board->cols = dwValue; - else - p_board->cols = BEGINNER_COLS; - - dwSize = sizeof(DWORD); - if( RegQueryValueEx( hkey, "Mines", NULL, NULL, (LPBYTE) &dwValue, &dwSize ) == ERROR_SUCCESS ) - p_board->mines = dwValue; - else - p_board->rows = BEGINNER_ROWS; - - dwSize = sizeof(DWORD); - if( RegQueryValueEx( hkey, "Difficulty", NULL, NULL, (LPBYTE) &dwValue, &dwSize ) == ERROR_SUCCESS ) - p_board->difficulty = (DIFFICULTY) dwValue; - else - p_board->difficulty = BEGINNER; - - dwSize = sizeof(DWORD); - if( RegQueryValueEx( hkey, "MarkQ", NULL, NULL, (LPBYTE) &dwValue, &dwSize ) == ERROR_SUCCESS ) - p_board->IsMarkQ = dwValue; - else - p_board->IsMarkQ = TRUE; - - for( i = 0; i < 3; i++ ) { - wsprintf( key_name, "Name%d", i ); - dwSize = sizeof( data ); - - if( RegQueryValueEx( hkey, key_name, NULL, NULL, (LPBYTE) data, (LPDWORD) &dwSize ) == ERROR_SUCCESS ) - strncpy( p_board->best_name[i], data, sizeof( data ) ); - else - wsprintf( p_board->best_name[i], "Nobody"); - } - - for( i = 0; i < 3; i++ ) { - wsprintf( key_name, "Time%d", i ); - - dwSize = sizeof(DWORD); - if( RegQueryValueEx( hkey, key_name, NULL, NULL, (LPBYTE) &dwValue, &dwSize ) == ERROR_SUCCESS ) - p_board->best_time[i] = dwValue; - else - p_board->best_time[i] = 999; - } - - RegCloseKey( hkey ); + return dwDefaultValue; } -void SaveBoard( BOARD *p_board ) +void LoadBoard( BOARD *pBoard ) { - DWORD disp; - HKEY hkey; - unsigned i; - char data[16]; - char key_name[8]; + DWORD dwSize; + HKEY hKey; + TCHAR szData[16]; + TCHAR szKeyName[8]; + TCHAR szNobody[15]; + UCHAR i; - if( RegCreateKeyEx( HKEY_CURRENT_USER, - WINEMINE_REGKEY, 0, NULL, - REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, - &hkey, &disp ) != ERROR_SUCCESS) + RegOpenKeyEx( HKEY_CURRENT_USER, szWineMineRegKey, 0, KEY_QUERY_VALUE, &hKey ); + + pBoard->Pos.x = (LONG) LoadDWord( hKey, TEXT("Xpos"), GetSystemMetrics(SM_CXFIXEDFRAME) ); + pBoard->Pos.y = (LONG) LoadDWord( hKey, TEXT("Ypos"), GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CYFIXEDFRAME) ); + pBoard->uRows = (ULONG) LoadDWord( hKey, TEXT("Height"), BEGINNER_ROWS ); + pBoard->uCols = (ULONG) LoadDWord( hKey, TEXT("Width"), BEGINNER_COLS ); + pBoard->uMines = (ULONG) LoadDWord( hKey, TEXT("Mines"), BEGINNER_MINES ); + pBoard->Difficulty = (DIFFICULTY) LoadDWord( hKey, TEXT("Difficulty"), BEGINNER ); + pBoard->bMark = (BOOL) LoadDWord( hKey, TEXT("Mark"), TRUE ); + + LoadString( pBoard->hInst, IDS_NOBODY, szNobody, sizeof(szNobody) / sizeof(TCHAR) ); + + for( i = 0; i < 3; i++ ) + { + // As we write to the same registry key as MS WinMine does, we have to start at 1 for the registry keys + wsprintf( szKeyName, TEXT("Name%d"), i + 1 ); + dwSize = sizeof(szData); + + if( RegQueryValueEx( hKey, szKeyName, NULL, NULL, (LPBYTE)szData, (LPDWORD) &dwSize ) == ERROR_SUCCESS ) + _tcsncpy( pBoard->szBestName[i], szData, sizeof(szData) / sizeof(TCHAR) ); + else + _tcscpy( pBoard->szBestName[i], szNobody); + } + + for( i = 0; i < 3; i++ ) + { + wsprintf( szKeyName, TEXT("Time%d"), i + 1 ); + pBoard->uBestTime[i] = LoadDWord( hKey, szKeyName, 999 ); + } + + RegCloseKey(hKey); +} + +void SaveBoard( BOARD *pBoard ) +{ + DWORD dwValue; + HKEY hKey; + UCHAR i; + TCHAR szData[16]; + TCHAR szKeyName[8]; + + if( RegCreateKeyEx( HKEY_CURRENT_USER, szWineMineRegKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL ) != ERROR_SUCCESS) return; - RegSetValueEx( hkey, "Xpos", 0, REG_DWORD, (LPBYTE) &p_board->pos.x, sizeof(DWORD) ); - RegSetValueEx( hkey, "Ypos", 0, REG_DWORD, (LPBYTE) &p_board->pos.y, sizeof(DWORD) ); - RegSetValueEx( hkey, "Difficulty", 0, REG_DWORD, (LPBYTE) &p_board->difficulty, sizeof(DWORD) ); - RegSetValueEx( hkey, "Rows", 0, REG_DWORD, (LPBYTE) &p_board->rows, sizeof(DWORD) ); - RegSetValueEx( hkey, "Cols", 0, REG_DWORD, (LPBYTE) &p_board->cols, sizeof(DWORD) ); - RegSetValueEx( hkey, "Mines", 0, REG_DWORD, (LPBYTE) &p_board->mines, sizeof(DWORD) ); - RegSetValueEx( hkey, "MarkQ", 0, REG_DWORD, (LPBYTE) &p_board->IsMarkQ, sizeof(DWORD) ); + RegSetValueEx( hKey, TEXT("Xpos"), 0, REG_DWORD, (LPBYTE) &pBoard->Pos.x, sizeof(DWORD) ); + RegSetValueEx( hKey, TEXT("Ypos"), 0, REG_DWORD, (LPBYTE) &pBoard->Pos.y, sizeof(DWORD) ); + RegSetValueEx( hKey, TEXT("Difficulty"), 0, REG_DWORD, (LPBYTE) &pBoard->Difficulty, sizeof(DWORD) ); + RegSetValueEx( hKey, TEXT("Height"), 0, REG_DWORD, (LPBYTE) &pBoard->uRows, sizeof(DWORD) ); + RegSetValueEx( hKey, TEXT("Width"), 0, REG_DWORD, (LPBYTE) &pBoard->uCols, sizeof(DWORD) ); + RegSetValueEx( hKey, TEXT("Mines"), 0, REG_DWORD, (LPBYTE) &pBoard->uMines, sizeof(DWORD) ); + RegSetValueEx( hKey, TEXT("Mark"), 0, REG_DWORD, (LPBYTE) &pBoard->bMark, sizeof(DWORD) ); - for( i = 0; i < 3; i++ ) { - wsprintf( key_name, "Name%u", i ); - strncpy( data, p_board->best_name[i], sizeof( data ) ); - RegSetValueEx( hkey, key_name, 0, REG_SZ, (LPBYTE) data, strlen(data)+1 ); + for( i = 0; i < 3; i++ ) + { + // As we write to the same registry key as MS WinMine does, we have to start at 1 for the registry keys + wsprintf( szKeyName, TEXT("Name%u"), i + 1); + _tcsncpy( szData, pBoard->szBestName[i], sizeof(szData) / sizeof(TCHAR) ); + RegSetValueEx( hKey, szKeyName, 0, REG_SZ, (LPBYTE)szData, (_tcslen(szData) + 1) * sizeof(TCHAR) ); } - for( i = 0; i < 3; i++ ) { - wsprintf( key_name, "Time%u", i ); - RegSetValueEx( hkey, key_name, 0, REG_DWORD, (LPBYTE) &p_board->best_time[i], sizeof(DWORD) ); + for( i = 0; i < 3; i++ ) + { + wsprintf( szKeyName, TEXT("Time%u"), i + 1); + dwValue = pBoard->uBestTime[i]; + RegSetValueEx( hKey, szKeyName, 0, REG_DWORD, (LPBYTE)(LPDWORD)&dwValue, sizeof(DWORD) ); } - RegCloseKey( hkey ); + RegCloseKey(hKey); } -void DestroyBoard( BOARD *p_board ) +void DestroyBoard( BOARD *pBoard ) { - DeleteObject( p_board->hFacesBMP ); - DeleteObject( p_board->hLedsBMP ); - DeleteObject( p_board->hMinesBMP ); + DeleteObject( pBoard->hFacesBMP ); + DeleteObject( pBoard->hLedsBMP ); + DeleteObject( pBoard->hMinesBMP ); } -void SetDifficulty( BOARD *p_board, DIFFICULTY difficulty ) +void SetDifficulty( BOARD *pBoard, DIFFICULTY Difficulty ) { - HMENU hMenu = GetMenu( p_board->hWnd ); + HMENU hMenu; - CheckMenuItem( hMenu, IDM_BEGINNER + p_board->difficulty, MF_UNCHECKED ); - p_board->difficulty = difficulty; - CheckMenuItem( hMenu, IDM_BEGINNER + difficulty, MF_CHECKED ); + switch(Difficulty) + { + case BEGINNER: + pBoard->uCols = BEGINNER_COLS; + pBoard->uRows = BEGINNER_ROWS; + pBoard->uMines = BEGINNER_MINES; + break; - switch( difficulty ) { - case BEGINNER: - p_board->cols = BEGINNER_COLS; - p_board->rows = BEGINNER_ROWS; - p_board->mines = BEGINNER_MINES; - break; + case ADVANCED: + pBoard->uCols = ADVANCED_COLS; + pBoard->uRows = ADVANCED_ROWS; + pBoard->uMines = ADVANCED_MINES; + break; - case ADVANCED: - p_board->cols = ADVANCED_COLS; - p_board->rows = ADVANCED_ROWS; - p_board->mines = ADVANCED_MINES; - break; + case EXPERT: + pBoard->uCols = EXPERT_COLS; + pBoard->uRows = EXPERT_ROWS; + pBoard->uMines = EXPERT_MINES; + break; - case EXPERT: - p_board->cols = EXPERT_COLS; - p_board->rows = EXPERT_ROWS; - p_board->mines = EXPERT_MINES; - break; + case CUSTOM: + if( DialogBoxParam( pBoard->hInst, MAKEINTRESOURCE(IDD_CUSTOM), pBoard->hWnd, CustomDlgProc, (LPARAM) pBoard) != IDOK ) + return; - case CUSTOM: - DialogBoxParam( p_board->hInst, "DLG_CUSTOM", p_board->hWnd, - CustomDlgProc, (LPARAM) p_board); - break; + break; } + + hMenu = GetMenu(pBoard->hWnd); + CheckMenuItem( hMenu, IDM_BEGINNER + pBoard->Difficulty, MF_UNCHECKED ); + pBoard->Difficulty = Difficulty; + CheckMenuItem( hMenu, IDM_BEGINNER + Difficulty, MF_CHECKED ); + } -void CreateBoard( BOARD *p_board ) +void CreateBoard( BOARD *pBoard ) { - int left, top, bottom, right, wnd_x, wnd_y, wnd_width, wnd_height; + ULONG uLeft, uTop, uBottom, uRight, uWndX, uWndY, uWndWidth, uWndHeight; - p_board->mb = MB_NONE; - p_board->boxes_left = p_board->cols * p_board->rows - p_board->mines; - p_board->num_flags = 0; + pBoard->uBoxesLeft = pBoard->uCols * pBoard->uRows - pBoard->uMines; + pBoard->uNumFlags = 0; - CreateBoxes( p_board ); + CreateBoxes( pBoard ); - p_board->width = p_board->cols * MINE_WIDTH + BOARD_WMARGIN * 2; + pBoard->uWidth = pBoard->uCols * MINE_WIDTH + BOARD_WMARGIN * 2; - p_board->height = p_board->rows * MINE_HEIGHT + LED_HEIGHT + pBoard->uHeight = pBoard->uRows * MINE_HEIGHT + LED_HEIGHT + BOARD_HMARGIN * 3; - wnd_x = p_board->pos.x - GetSystemMetrics( SM_CXFIXEDFRAME ); - wnd_y = p_board->pos.y - GetSystemMetrics( SM_CYMENU ) - - GetSystemMetrics( SM_CYCAPTION ) - - GetSystemMetrics( SM_CYFIXEDFRAME ); - wnd_width = p_board->width - + GetSystemMetrics( SM_CXFIXEDFRAME ) * 2; - wnd_height = p_board->height - + GetSystemMetrics( SM_CYMENU ) - + GetSystemMetrics( SM_CYCAPTION ) - + GetSystemMetrics( SM_CYFIXEDFRAME ) * 2; + uWndX = pBoard->Pos.x - GetSystemMetrics( SM_CXFIXEDFRAME ); + uWndY = pBoard->Pos.y - GetSystemMetrics( SM_CYMENU ) + - GetSystemMetrics( SM_CYCAPTION ) + - GetSystemMetrics( SM_CYFIXEDFRAME ); + uWndWidth = pBoard->uWidth + GetSystemMetrics( SM_CXFIXEDFRAME ) * 2; + uWndHeight = pBoard->uHeight + + GetSystemMetrics( SM_CYMENU ) + + GetSystemMetrics( SM_CYCAPTION ) + + GetSystemMetrics( SM_CYFIXEDFRAME ) * 2; /* setting the mines rectangle boundary */ - left = BOARD_WMARGIN; - top = BOARD_HMARGIN * 2 + LED_HEIGHT; - right = left + p_board->cols * MINE_WIDTH; - bottom = top + p_board->rows * MINE_HEIGHT; - SetRect( &p_board->mines_rect, left, top, right, bottom ); + uLeft = BOARD_WMARGIN; + uTop = BOARD_HMARGIN * 2 + LED_HEIGHT; + uRight = uLeft + pBoard->uCols * MINE_WIDTH; + uBottom = uTop + pBoard->uRows * MINE_HEIGHT; + SetRect( &pBoard->MinesRect, uLeft, uTop, uRight, uBottom ); /* setting the face rectangle boundary */ - left = p_board->width / 2 - FACE_WIDTH / 2; - top = BOARD_HMARGIN; - right = left + FACE_WIDTH; - bottom = top + FACE_HEIGHT; - SetRect( &p_board->face_rect, left, top, right, bottom ); + uLeft = pBoard->uWidth / 2 - FACE_WIDTH / 2; + uTop = BOARD_HMARGIN; + uRight = uLeft + FACE_WIDTH; + uBottom = uTop + FACE_HEIGHT; + SetRect( &pBoard->FaceRect, uLeft, uTop, uRight, uBottom ); /* setting the timer rectangle boundary */ - left = BOARD_WMARGIN; - top = BOARD_HMARGIN; - right = left + LED_WIDTH * 3; - bottom = top + LED_HEIGHT; - SetRect( &p_board->counter_rect, left, top, right, bottom ); + uLeft = BOARD_WMARGIN; + uTop = BOARD_HMARGIN; + uRight = uLeft + LED_WIDTH * 3; + uBottom = uTop + LED_HEIGHT; + SetRect( &pBoard->CounterRect, uLeft, uTop, uRight, uBottom ); /* setting the counter rectangle boundary */ - left = p_board->width - BOARD_WMARGIN - LED_WIDTH * 3; - top = BOARD_HMARGIN; - right = p_board->width - BOARD_WMARGIN; - bottom = top + LED_HEIGHT; - SetRect( &p_board->timer_rect, left, top, right, bottom ); + uLeft = pBoard->uWidth - BOARD_WMARGIN - LED_WIDTH * 3; + uTop = BOARD_HMARGIN; + uRight = pBoard->uWidth - BOARD_WMARGIN; + uBottom = uTop + LED_HEIGHT; + SetRect( &pBoard->TimerRect, uLeft, uTop, uRight, uBottom ); - p_board->status = WAITING; - p_board->face_bmp = SMILE_BMP; - p_board->time = 0; + pBoard->Status = WAITING; + pBoard->FaceBmp = SMILE_BMP; + pBoard->uTime = 0; - MoveWindow( p_board->hWnd, wnd_x, wnd_y, wnd_width, wnd_height, TRUE ); - RedrawWindow( p_board->hWnd, NULL, NULL_HANDLE, - RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE ); + MoveWindow( pBoard->hWnd, uWndX, uWndY, uWndWidth, uWndHeight, TRUE ); + RedrawWindow( pBoard->hWnd, NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE ); } - -void CheckLevel( BOARD *p_board ) +void CheckLevel( BOARD *pBoard ) { - if( p_board->rows < BEGINNER_ROWS ) - p_board->rows = BEGINNER_ROWS; + if( pBoard->uRows < BEGINNER_ROWS ) + pBoard->uRows = BEGINNER_ROWS; - if( p_board->rows > MAX_ROWS ) - p_board->rows = MAX_ROWS; + if( pBoard->uRows > MAX_ROWS ) + pBoard->uRows = MAX_ROWS; - if( p_board->cols < BEGINNER_COLS ) - p_board->cols = BEGINNER_COLS; + if( pBoard->uCols < BEGINNER_COLS ) + pBoard->uCols = BEGINNER_COLS; - if( p_board->cols > MAX_COLS ) - p_board->cols = MAX_COLS; + if( pBoard->uCols > MAX_COLS ) + pBoard->uCols = MAX_COLS; - if( p_board->mines < BEGINNER_MINES ) - p_board->mines = BEGINNER_MINES; + if( pBoard->uMines < BEGINNER_MINES ) + pBoard->uMines = BEGINNER_MINES; - if( p_board->mines > p_board->cols * p_board->rows - 1 ) - p_board->mines = p_board->cols * p_board->rows - 1; + if( pBoard->uMines > pBoard->uCols * pBoard->uRows - 1 ) + pBoard->uMines = pBoard->uCols * pBoard->uRows - 1; } - -void CreateBoxes( BOARD *p_board ) +void CreateBoxes( BOARD *pBoard ) { - int i, j; - unsigned col, row; + LONG i, j; + ULONG uCol, uRow; - srand( (unsigned) time( NULL ) ); + srand( (unsigned int)time( NULL ) ); /* Create the boxes... * We actually create them with an empty border, * so special care doesn't have to be taken on the edges */ - for( col = 0; col <= p_board->cols + 1; col++ ) - for( row = 0; row <= p_board->rows + 1; row++ ) { - p_board->box[col][row].IsPressed = FALSE; - p_board->box[col][row].IsMine = FALSE; - p_board->box[col][row].FlagType = NORMAL; - p_board->box[col][row].NumMines = 0; - } + for( uCol = 0; uCol <= pBoard->uCols + 1; uCol++ ) + { + for( uRow = 0; uRow <= pBoard->uRows + 1; uRow++ ) + { + pBoard->Box[uCol][uRow].bIsPressed = FALSE; + pBoard->Box[uCol][uRow].bIsMine = FALSE; + pBoard->Box[uCol][uRow].uFlagType = NORMAL; + pBoard->Box[uCol][uRow].uNumMines = 0; + } + } /* create mines */ i = 0; - while( (unsigned) i < p_board->mines ) { - col = (int) (p_board->cols * (float) rand() / RAND_MAX + 1); - row = (int) (p_board->rows * (float) rand() / RAND_MAX + 1); + while( (ULONG)i < pBoard->uMines ) + { + uCol = (ULONG)(pBoard->uCols * (float)rand() / RAND_MAX + 1); + uRow = (ULONG)(pBoard->uRows * (float)rand() / RAND_MAX + 1); - if( !p_board->box[col][row].IsMine ) { + if( !pBoard->Box[uCol][uRow].bIsMine ) + { i++; - p_board->box[col][row].IsMine = TRUE; + pBoard->Box[uCol][uRow].bIsMine = TRUE; } } @@ -573,475 +568,518 @@ void CreateBoxes( BOARD *p_board ) * Now we label the remaining boxes with the * number of mines surrounding them. */ - - for( col = 1; col < p_board->cols + 1; col++ ) - for( row = 1; row < p_board->rows + 1; row++ ) { - for( i = -1; i <= 1; i++ ) - for( j = -1; j <= 1; j++ ) { - if( p_board->box[col + i][row + j].IsMine ) { - p_board->box[col][row].NumMines++ ; + for( uCol = 1; uCol < pBoard->uCols + 1; uCol++ ) + { + for( uRow = 1; uRow < pBoard->uRows + 1; uRow++ ) + { + for( i = -1; i <= 1; i++ ) + { + for( j = -1; j <= 1; j++ ) + { + if( pBoard->Box[uCol + i][uRow + j].bIsMine ) + { + pBoard->Box[uCol][uRow].uNumMines++; + } + } } } } } -void DrawMines ( HDC hdc, HDC hMemDC, BOARD *p_board ) +void DrawMines ( HDC hdc, HDC hMemDC, BOARD *pBoard ) { HGDIOBJ hOldObj; - unsigned col, row; - hOldObj = SelectObject (hMemDC, p_board->hMinesBMP); + ULONG uCol, uRow; + hOldObj = SelectObject (hMemDC, pBoard->hMinesBMP); - for( row = 1; row <= p_board->rows; row++ ) { - for( col = 1; col <= p_board->cols; col++ ) { - DrawMine( hdc, hMemDC, p_board, col, row, FALSE ); - } + for( uRow = 1; uRow <= pBoard->uRows; uRow++ ) + { + for( uCol = 1; uCol <= pBoard->uCols; uCol++ ) + { + DrawMine( hdc, hMemDC, pBoard, uCol, uRow, FALSE ); + } } + SelectObject( hMemDC, hOldObj ); } -void DrawMine( HDC hdc, HDC hMemDC, BOARD *p_board, unsigned col, unsigned row, BOOL IsPressed ) +void DrawMine( HDC hdc, HDC hMemDC, BOARD *pBoard, ULONG uCol, ULONG uRow, BOOL bIsPressed ) { MINEBMP_OFFSET offset = BOX_BMP; - if( col == 0 || col > p_board->cols || row == 0 || row > p_board->rows ) - return; + if( uCol == 0 || uCol > pBoard->uCols || uRow == 0 || uRow > pBoard->uRows ) + return; - if( p_board->status == GAMEOVER ) { - if( p_board->box[col][row].IsMine ) { - switch( p_board->box[col][row].FlagType ) { + if( pBoard->Status == GAMEOVER ) + { + if( pBoard->Box[uCol][uRow].bIsMine ) + { + switch( pBoard->Box[uCol][uRow].uFlagType ) + { + case FLAG: + offset = FLAG_BMP; + break; + case COMPLETE: + offset = EXPLODE_BMP; + break; + case QUESTION: + /* fall through */ + case NORMAL: + offset = MINE_BMP; + } + } + else + { + switch( pBoard->Box[uCol][uRow].uFlagType ) + { + case QUESTION: + offset = QUESTION_BMP; + break; + case FLAG: + offset = WRONG_BMP; + break; + case NORMAL: + offset = BOX_BMP; + break; + case COMPLETE: + /* Do nothing */ + break; + default: + DEBUG("Unknown FlagType during game over in DrawMine\n"); + break; + } + } + } + else + { /* WAITING or PLAYING */ + switch( pBoard->Box[uCol][uRow].uFlagType ) + { + case QUESTION: + if( !bIsPressed ) + offset = QUESTION_BMP; + else + offset = QPRESS_BMP; + break; case FLAG: offset = FLAG_BMP; break; - case COMPLETE: - offset = EXPLODE_BMP; - break; case NORMAL: - offset = MINE_BMP; - } - } else { - switch( p_board->box[col][row].FlagType ) { - case QUESTION: - offset = QUESTION_BMP; - break; - case FLAG: - offset = WRONG_BMP; - break; - case NORMAL: - offset = BOX_BMP; + if( !bIsPressed ) + offset = BOX_BMP; + else + offset = MPRESS_BMP; break; case COMPLETE: /* Do nothing */ break; default: - DEBUG("Unknown FlagType during game over in DrawMine\n"); + DEBUG("Unknown FlagType while playing in DrawMine\n"); break; - } - } - } else { /* WAITING or PLAYING */ - switch( p_board->box[col][row].FlagType ) { - case QUESTION: - if( !IsPressed ) - offset = QUESTION_BMP; - else - offset = QPRESS_BMP; - break; - case FLAG: - offset = FLAG_BMP; - break; - case NORMAL: - if( !IsPressed ) - offset = BOX_BMP; - else - offset = MPRESS_BMP; - break; - case COMPLETE: - /* Do nothing */ - break; - default: - DEBUG("Unknown FlagType while playing in DrawMine\n"); - break; } } - if( p_board->box[col][row].FlagType == COMPLETE - && !p_board->box[col][row].IsMine ) - offset = (MINEBMP_OFFSET) p_board->box[col][row].NumMines; + if( pBoard->Box[uCol][uRow].uFlagType == COMPLETE && !pBoard->Box[uCol][uRow].bIsMine ) + offset = (MINEBMP_OFFSET) pBoard->Box[uCol][uRow].uNumMines; BitBlt( hdc, - (col - 1) * MINE_WIDTH + p_board->mines_rect.left, - (row - 1) * MINE_HEIGHT + p_board->mines_rect.top, + (uCol - 1) * MINE_WIDTH + pBoard->MinesRect.left, + (uRow - 1) * MINE_HEIGHT + pBoard->MinesRect.top, MINE_WIDTH, MINE_HEIGHT, hMemDC, 0, offset * MINE_HEIGHT, SRCCOPY ); } -void DrawLeds( HDC hdc, HDC hMemDC, BOARD *p_board, int number, int x, int y ) +void DrawLeds( HDC hDC, HDC hMemDC, BOARD *pBoard, LONG nNumber, LONG x, LONG y ) { HGDIOBJ hOldObj; - unsigned led[3], i; - int count; + UCHAR i; + ULONG uLED[3]; + LONG nCount; - count = number; - if( count < 1000 ) { - if( count >= 0 ) { - led[0] = count / 100 ; - count -= led[0] * 100; + nCount = nNumber; + + if( nCount < 1000 ) + { + if( nCount >= 0 ) + { + uLED[0] = nCount / 100 ; + nCount -= uLED[0] * 100; } - else { - led[0] = 10; /* negative sign */ - count = -count; + else + { + uLED[0] = 10; /* negative sign */ + nCount = -nCount; } - led[1] = count / 10; - count -= led[1] * 10; - led[2] = count; + + uLED[1] = nCount / 10; + nCount -= uLED[1] * 10; + uLED[2] = nCount; } - else { + else + { for( i = 0; i < 3; i++ ) - led[i] = 10; + uLED[i] = 10; } /* use unlit led if not playing */ - /* if( p_board->status == WAITING ) + /* if( pBoard->Status == WAITING ) for( i = 0; i < 3; i++ ) - led[i] = 11;*/ + uLED[i] = 11;*/ - hOldObj = SelectObject (hMemDC, p_board->hLedsBMP); + hOldObj = SelectObject (hMemDC, pBoard->hLedsBMP); - for( i = 0; i < 3; i++ ) { - BitBlt( hdc, + for( i = 0; i < 3; i++ ) + { + BitBlt( hDC, i * LED_WIDTH + x, y, LED_WIDTH, LED_HEIGHT, hMemDC, 0, - led[i] * LED_HEIGHT, + uLED[i] * LED_HEIGHT, SRCCOPY); } SelectObject( hMemDC, hOldObj ); } - -void DrawFace( HDC hdc, HDC hMemDC, BOARD *p_board ) +void DrawFace( HDC hDC, HDC hMemDC, BOARD *pBoard ) { HGDIOBJ hOldObj; - hOldObj = SelectObject (hMemDC, p_board->hFacesBMP); + hOldObj = SelectObject (hMemDC, pBoard->hFacesBMP); - BitBlt( hdc, - p_board->face_rect.left, - p_board->face_rect.top, + BitBlt( hDC, + pBoard->FaceRect.left, + pBoard->FaceRect.top, FACE_WIDTH, FACE_HEIGHT, - hMemDC, 0, p_board->face_bmp * FACE_HEIGHT, SRCCOPY); + hMemDC, 0, pBoard->FaceBmp * FACE_HEIGHT, SRCCOPY); SelectObject( hMemDC, hOldObj ); } - -void DrawBoard( HDC hdc, HDC hMemDC, PAINTSTRUCT *ps, BOARD *p_board ) +void DrawBoard( HDC hDC, HDC hMemDC, PAINTSTRUCT *ps, BOARD *pBoard ) { - RECT tmp_rect; + RECT TempRect; - if( IntersectRect( &tmp_rect, &ps->rcPaint, &p_board->counter_rect) ) - DrawLeds( hdc, hMemDC, p_board, p_board->mines - p_board->num_flags, - p_board->counter_rect.left, - p_board->counter_rect.top ); + if( IntersectRect( &TempRect, &ps->rcPaint, &pBoard->CounterRect) ) + DrawLeds( hDC, hMemDC, pBoard, pBoard->uMines - pBoard->uNumFlags, + pBoard->CounterRect.left, + pBoard->CounterRect.top ); - if( IntersectRect( &tmp_rect, &ps->rcPaint, &p_board->timer_rect ) ) - DrawLeds( hdc, hMemDC, p_board, p_board->time, - p_board->timer_rect.left, - p_board->timer_rect.top); + if( IntersectRect( &TempRect, &ps->rcPaint, &pBoard->TimerRect ) ) + DrawLeds( hDC, hMemDC, pBoard, pBoard->uTime, + pBoard->TimerRect.left, + pBoard->TimerRect.top); - if( IntersectRect( &tmp_rect, &ps->rcPaint, &p_board->face_rect ) ) - DrawFace( hdc, hMemDC, p_board ); + if( IntersectRect( &TempRect, &ps->rcPaint, &pBoard->FaceRect ) ) + DrawFace( hDC, hMemDC, pBoard ); - if( IntersectRect( &tmp_rect, &ps->rcPaint, &p_board->mines_rect ) ) - DrawMines( hdc, hMemDC, p_board ); + if( IntersectRect( &TempRect, &ps->rcPaint, &pBoard->MinesRect ) ) + DrawMines( hDC, hMemDC, pBoard ); } -void TestBoard( HWND hWnd, BOARD *p_board, unsigned x, unsigned y, int msg ) +void TestBoard( HWND hWnd, BOARD *pBoard, LONG x, LONG y, int msg ) { POINT pt; - UINT col, row; + ULONG uCol, uRow; pt.x = x; pt.y = y; - if( PtInRect( &p_board->mines_rect, pt ) && p_board->status != GAMEOVER - && p_board->status != WON ) - TestMines( p_board, pt, msg ); - else { - UnpressBoxes( p_board, - p_board->press.x, - p_board->press.y ); - p_board->press.x = 0; - p_board->press.y = 0; + if( PtInRect( &pBoard->MinesRect, pt ) && pBoard->Status != GAMEOVER && pBoard->Status != WON ) + TestMines( pBoard, pt, msg ); + else + { + UnpressBoxes( pBoard, pBoard->Press.x, pBoard->Press.y ); + pBoard->Press.x = 0; + pBoard->Press.y = 0; } - if( p_board->boxes_left == 0 ) + if( pBoard->uBoxesLeft == 0 ) { // MG - 2006-02-21 // mimic MS minesweeper behaviour - when autocompleting a board, flag mines - p_board->status = WON; - for( col = 0; col <= p_board->cols + 1; col++ ) + pBoard->Status = WON; + + for( uCol = 0; uCol <= pBoard->uCols + 1; uCol++ ) { - for( row = 0; row <= p_board->rows + 1; row++ ) + for( uRow = 0; uRow <= pBoard->uRows + 1; uRow++ ) { - if(p_board->box[col][row].IsMine == TRUE) + if(pBoard->Box[uCol][uRow].bIsMine) { - p_board->box[col][row].FlagType = FLAG; + pBoard->Box[uCol][uRow].uFlagType = FLAG; } } } - p_board->num_flags = p_board->mines; - RedrawWindow( p_board->hWnd, NULL, NULL_HANDLE, RDW_INVALIDATE | RDW_UPDATENOW ); + + pBoard->uNumFlags = pBoard->uMines; + RedrawWindow( pBoard->hWnd, NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW ); - if( p_board->difficulty != CUSTOM && - p_board->time < p_board->best_time[p_board->difficulty] ) { - p_board->best_time[p_board->difficulty] = p_board->time; - - DialogBoxParam( p_board->hInst, "DLG_CONGRATS", hWnd, - CongratsDlgProc, (LPARAM) p_board); - - DialogBoxParam( p_board->hInst, "DLG_TIMES", hWnd, - TimesDlgProc, (LPARAM) p_board); - } - } - TestFace( p_board, pt, msg ); -} - -void TestMines( BOARD *p_board, POINT pt, int msg ) -{ - BOOL draw = TRUE; - unsigned col, row; - - col = (pt.x - p_board->mines_rect.left) / MINE_WIDTH + 1; - row = (pt.y - p_board->mines_rect.top ) / MINE_HEIGHT + 1; - - switch ( msg ) { - case WM_LBUTTONDOWN: - if( p_board->press.x != col || p_board->press.y != row ) { - UnpressBox( p_board, - p_board->press.x, p_board->press.y ); - p_board->press.x = col; - p_board->press.y = row; - PressBox( p_board, col, row ); - } - draw = FALSE; - break; - - case WM_LBUTTONUP: - if( p_board->press.x != col || p_board->press.y != row ) - UnpressBox( p_board, - p_board->press.x, p_board->press.y ); - p_board->press.x = 0; - p_board->press.y = 0; - if( p_board->box[col][row].FlagType != FLAG ) - p_board->status = PLAYING; - CompleteBox( p_board, col, row ); - break; - - case WM_MBUTTONDOWN: - PressBoxes( p_board, col, row ); - draw = FALSE; - break; - - case WM_MBUTTONUP: - if( p_board->press.x != col || p_board->press.y != row ) - UnpressBoxes( p_board, - p_board->press.x, p_board->press.y ); - p_board->press.x = 0; - p_board->press.y = 0; - CompleteBoxes( p_board, col, row ); - break; - - case WM_RBUTTONDOWN: - AddFlag( p_board, col, row ); - p_board->status = PLAYING; - break; - default: - DEBUG("Unknown message type received in TestMines\n"); - break; - } - - if( draw ) - { - RedrawWindow( p_board->hWnd, NULL, NULL_HANDLE, - RDW_INVALIDATE | RDW_UPDATENOW ); - } -} - - -void TestFace( BOARD *p_board, POINT pt, int msg ) -{ - if( p_board->status == PLAYING || p_board->status == WAITING ) { - if( msg == WM_LBUTTONDOWN || msg == WM_MBUTTONDOWN ) - p_board->face_bmp = OOH_BMP; - else p_board->face_bmp = SMILE_BMP; - } - else if( p_board->status == GAMEOVER ) - p_board->face_bmp = DEAD_BMP; - else if( p_board->status == WON ) - p_board->face_bmp = COOL_BMP; - - if( PtInRect( &p_board->face_rect, pt ) ) { - if( msg == WM_LBUTTONDOWN ) - p_board->face_bmp = SPRESS_BMP; - - if( msg == WM_LBUTTONUP ) - CreateBoard( p_board ); - } - - RedrawWindow( p_board->hWnd, &p_board->face_rect, NULL_HANDLE, - RDW_INVALIDATE | RDW_UPDATENOW ); -} - - -void CompleteBox( BOARD *p_board, unsigned col, unsigned row ) -{ - int i, j; - - if( p_board->box[col][row].FlagType != COMPLETE && - p_board->box[col][row].FlagType != FLAG && - col > 0 && col < p_board->cols + 1 && - row > 0 && row < p_board->rows + 1 ) { - p_board->box[col][row].FlagType = COMPLETE; - - if( p_board->box[col][row].IsMine ) { - p_board->face_bmp = DEAD_BMP; - p_board->status = GAMEOVER; - } - else if( p_board->status != GAMEOVER ) - p_board->boxes_left--; - - if( p_board->box[col][row].NumMines == 0 ) + if( pBoard->Difficulty != CUSTOM && pBoard->uTime < pBoard->uBestTime[pBoard->Difficulty] ) { - for( i = -1; i <= 1; i++ ) - for( j = -1; j <= 1; j++ ) - CompleteBox( p_board, col + i, row + j ); + pBoard->uBestTime[pBoard->Difficulty] = pBoard->uTime; + + DialogBoxParam( pBoard->hInst, MAKEINTRESOURCE(IDD_CONGRATS), hWnd, CongratsDlgProc, (LPARAM) pBoard); + DialogBoxParam( pBoard->hInst, MAKEINTRESOURCE(IDD_TIMES), hWnd, TimesDlgProc, (LPARAM) pBoard); } } + + TestFace( pBoard, pt, msg ); } - -void CompleteBoxes( BOARD *p_board, unsigned col, unsigned row ) +void TestMines( BOARD *pBoard, POINT pt, int msg ) { - unsigned numFlags = 0; - int i, j; + BOOL bDraw = TRUE; + ULONG uCol, uRow; - if( p_board->box[col][row].FlagType == COMPLETE ) { - for( i = -1; i <= 1; i++ ) - for( j = -1; j <= 1; j++ ) { - if( p_board->box[col+i][row+j].FlagType == FLAG ) - numFlags++; - } + uCol = (pt.x - pBoard->MinesRect.left) / MINE_WIDTH + 1; + uRow = (pt.y - pBoard->MinesRect.top ) / MINE_HEIGHT + 1; - if( numFlags == p_board->box[col][row].NumMines ) { - for( i = -1; i <= 1; i++ ) - for( j = -1; j <= 1; j++ ) { - if( p_board->box[col+i][row+j].FlagType != FLAG ) - CompleteBox( p_board, col+i, row+j ); - } - } - } -} + switch (msg) + { + case WM_LBUTTONDOWN: + if( pBoard->Press.x != uCol || pBoard->Press.y != uRow ) + { + UnpressBox( pBoard, pBoard->Press.x, pBoard->Press.y ); + pBoard->Press.x = uCol; + pBoard->Press.y = uRow; + PressBox( pBoard, uCol, uRow ); + } - -void AddFlag( BOARD *p_board, unsigned col, unsigned row ) -{ - if( p_board->box[col][row].FlagType != COMPLETE ) { - switch( p_board->box[col][row].FlagType ) { - case FLAG: - if( p_board->IsMarkQ ) - p_board->box[col][row].FlagType = QUESTION; - else - p_board->box[col][row].FlagType = NORMAL; - p_board->num_flags--; + bDraw = FALSE; break; - case QUESTION: - p_board->box[col][row].FlagType = NORMAL; + case WM_LBUTTONUP: + if( pBoard->Press.x != uCol || pBoard->Press.y != uRow ) + UnpressBox( pBoard, pBoard->Press.x, pBoard->Press.y ); + + pBoard->Press.x = 0; + pBoard->Press.y = 0; + + if( pBoard->Box[uCol][uRow].uFlagType != FLAG ) + pBoard->Status = PLAYING; + + CompleteBox( pBoard, uCol, uRow ); + break; + + case WM_MBUTTONDOWN: + PressBoxes( pBoard, uCol, uRow ); + bDraw = FALSE; + break; + + case WM_MBUTTONUP: + if( pBoard->Press.x != uCol || pBoard->Press.y != uRow ) + UnpressBoxes( pBoard, pBoard->Press.x, pBoard->Press.y ); + + pBoard->Press.x = 0; + pBoard->Press.y = 0; + CompleteBoxes( pBoard, uCol, uRow ); + break; + + case WM_RBUTTONDOWN: + AddFlag( pBoard, uCol, uRow ); + pBoard->Status = PLAYING; break; default: - p_board->box[col][row].FlagType = FLAG; - p_board->num_flags++; + DEBUG("Unknown message type received in TestMines\n"); + break; + } + + if(bDraw) + RedrawWindow( pBoard->hWnd, NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW ); +} + +void TestFace( BOARD *pBoard, POINT pt, int msg ) +{ + if( pBoard->Status == PLAYING || pBoard->Status == WAITING ) + { + if( msg == WM_LBUTTONDOWN || msg == WM_MBUTTONDOWN ) + pBoard->FaceBmp = OOH_BMP; + else pBoard->FaceBmp = SMILE_BMP; + } + else if( pBoard->Status == GAMEOVER ) + pBoard->FaceBmp = DEAD_BMP; + else if( pBoard->Status == WON ) + pBoard->FaceBmp = COOL_BMP; + + if( PtInRect( &pBoard->FaceRect, pt ) ) + { + if( msg == WM_LBUTTONDOWN ) + pBoard->FaceBmp = SPRESS_BMP; + + if( msg == WM_LBUTTONUP ) + CreateBoard( pBoard ); + } + + RedrawWindow( pBoard->hWnd, &pBoard->FaceRect, NULL, RDW_INVALIDATE | RDW_UPDATENOW ); +} + +void CompleteBox( BOARD *pBoard, ULONG uCol, ULONG uRow ) +{ + CHAR i, j; + + if( pBoard->Box[uCol][uRow].uFlagType != COMPLETE && + pBoard->Box[uCol][uRow].uFlagType != FLAG && + uCol > 0 && uCol < pBoard->uCols + 1 && + uRow > 0 && uRow < pBoard->uRows + 1 ) + { + pBoard->Box[uCol][uRow].uFlagType = COMPLETE; + + if( pBoard->Box[uCol][uRow].bIsMine ) + { + pBoard->FaceBmp = DEAD_BMP; + pBoard->Status = GAMEOVER; + } + else if( pBoard->Status != GAMEOVER ) + pBoard->uBoxesLeft--; + + if( pBoard->Box[uCol][uRow].uNumMines == 0 ) + { + for( i = -1; i <= 1; i++ ) + for( j = -1; j <= 1; j++ ) + CompleteBox( pBoard, uCol + i, uRow + j ); } } } - -void PressBox( BOARD *p_board, unsigned col, unsigned row ) +void CompleteBoxes( BOARD *pBoard, ULONG uCol, ULONG uRow ) { - HDC hdc; + CHAR i, j; + ULONG uNumFlags = 0; + + if( pBoard->Box[uCol][uRow].uFlagType == COMPLETE ) + { + for( i = -1; i <= 1; i++ ) + { + for( j = -1; j <= 1; j++ ) + { + if( pBoard->Box[uCol + i][uRow + j].uFlagType == FLAG ) + uNumFlags++; + } + } + + if( uNumFlags == pBoard->Box[uCol][uRow].uNumMines ) + { + for( i = -1; i <= 1; i++ ) + { + for( j = -1; j <= 1; j++ ) + { + if( pBoard->Box[uCol + i][uRow + j].uFlagType != FLAG ) + CompleteBox( pBoard, uCol + i, uRow + j ); + } + } + } + } +} + +void AddFlag( BOARD *pBoard, ULONG uCol, ULONG uRow ) +{ + if( pBoard->Box[uCol][uRow].uFlagType != COMPLETE ) + { + switch( pBoard->Box[uCol][uRow].uFlagType ) + { + case FLAG: + if( pBoard->bMark ) + pBoard->Box[uCol][uRow].uFlagType = QUESTION; + else + pBoard->Box[uCol][uRow].uFlagType = NORMAL; + + pBoard->uNumFlags--; + break; + + case QUESTION: + pBoard->Box[uCol][uRow].uFlagType = NORMAL; + break; + + default: + pBoard->Box[uCol][uRow].uFlagType = FLAG; + pBoard->uNumFlags++; + } + } +} + +void PressBox( BOARD *pBoard, ULONG uCol, ULONG uRow ) +{ + HDC hDC; HGDIOBJ hOldObj; HDC hMemDC; - hdc = GetDC( p_board->hWnd ); - hMemDC = CreateCompatibleDC( hdc ); - hOldObj = SelectObject (hMemDC, p_board->hMinesBMP); + hDC = GetDC( pBoard->hWnd ); + hMemDC = CreateCompatibleDC(hDC); + hOldObj = SelectObject (hMemDC, pBoard->hMinesBMP); - DrawMine( hdc, hMemDC, p_board, col, row, TRUE ); + DrawMine( hDC, hMemDC, pBoard, uCol, uRow, TRUE ); SelectObject( hMemDC, hOldObj ); DeleteDC( hMemDC ); - ReleaseDC( p_board->hWnd, hdc ); + ReleaseDC( pBoard->hWnd, hDC ); } - -void PressBoxes( BOARD *p_board, unsigned col, unsigned row ) +void PressBoxes( BOARD *pBoard, ULONG uCol, ULONG uRow ) { - int i, j; + CHAR i, j; for( i = -1; i <= 1; i++ ) - for( j = -1; j <= 1; j++ ) { - p_board->box[col + i][row + j].IsPressed = TRUE; - PressBox( p_board, col + i, row + j ); + { + for( j = -1; j <= 1; j++ ) + { + pBoard->Box[uCol + i][uRow + j].bIsPressed = TRUE; + PressBox( pBoard, uCol + i, uRow + j ); + } } for( i = -1; i <= 1; i++ ) - for( j = -1; j <= 1; j++ ) { - if( !p_board->box[p_board->press.x + i][p_board->press.y + j].IsPressed ) - UnpressBox( p_board, p_board->press.x + i, p_board->press.y + j ); + { + for( j = -1; j <= 1; j++ ) + { + if( !pBoard->Box[pBoard->Press.x + i][pBoard->Press.y + j].bIsPressed ) + UnpressBox( pBoard, pBoard->Press.x + i, pBoard->Press.y + j ); + } } for( i = -1; i <= 1; i++ ) - for( j = -1; j <= 1; j++ ) { - p_board->box[col + i][row + j].IsPressed = FALSE; - PressBox( p_board, col + i, row + j ); + { + for( j = -1; j <= 1; j++ ) + { + pBoard->Box[uCol + i][uRow + j].bIsPressed = FALSE; + PressBox( pBoard, uCol + i, uRow + j ); + } } - p_board->press.x = col; - p_board->press.y = row; + pBoard->Press.x = uCol; + pBoard->Press.y = uRow; } - -void UnpressBox( BOARD *p_board, unsigned col, unsigned row ) +void UnpressBox( BOARD *pBoard, ULONG uCol, ULONG uRow ) { - HDC hdc; + HDC hDC; HGDIOBJ hOldObj; HDC hMemDC; - hdc = GetDC( p_board->hWnd ); - hMemDC = CreateCompatibleDC( hdc ); - hOldObj = SelectObject( hMemDC, p_board->hMinesBMP ); + hDC = GetDC( pBoard->hWnd ); + hMemDC = CreateCompatibleDC( hDC ); + hOldObj = SelectObject( hMemDC, pBoard->hMinesBMP ); - DrawMine( hdc, hMemDC, p_board, col, row, FALSE ); + DrawMine( hDC, hMemDC, pBoard, uCol, uRow, FALSE ); SelectObject( hMemDC, hOldObj ); DeleteDC( hMemDC ); - ReleaseDC( p_board->hWnd, hdc ); + ReleaseDC( pBoard->hWnd, hDC ); } - -void UnpressBoxes( BOARD *p_board, unsigned col, unsigned row ) +void UnpressBoxes( BOARD *pBoard, ULONG uCol, ULONG uRow ) { - int i, j; + CHAR i, j; for( i = -1; i <= 1; i++ ) - for( j = -1; j <= 1; j++ ) { - UnpressBox( p_board, col + i, row + j ); - } + { + for( j = -1; j <= 1; j++ ) + { + UnpressBox( pBoard, uCol + i, uRow + j ); + } + } } diff --git a/reactos/base/applications/games/winemine/main.h b/reactos/base/applications/games/winemine/main.h index 35dc0e146e6..70699f68c49 100644 --- a/reactos/base/applications/games/winemine/main.h +++ b/reactos/base/applications/games/winemine/main.h @@ -18,7 +18,19 @@ #include -#define WINEMINE_REGKEY "Software\\ReactOS\\WineMine" +static const TCHAR szWineMineRegKey[] = TEXT("Software\\Microsoft\\WinMine"); + +// Common Controls 6.0 for MSVC 2005 or later +#if _MSC_VER >= 1400 +# pragma comment(linker, "/manifestdependency:\"type='win32' " \ + "name='Microsoft.Windows.Common-Controls' " \ + "version='6.0.0.0' " \ + "processorArchitecture='x86' " \ + "publicKeyToken='6595b64144ccf1df' " \ + "language='*'\"") +#endif + +#define ID_TIMER 1000 #define BEGINNER_MINES 10 #define BEGINNER_COLS 9 @@ -32,8 +44,8 @@ #define EXPERT_COLS 30 #define EXPERT_ROWS 16 -#define MAX_COLS 30 -#define MAX_ROWS 24 +#define MAX_COLS 30 +#define MAX_ROWS 24 #define BOTTOM_MARGIN 20 #define BOARD_WMARGIN 5 @@ -51,68 +63,58 @@ typedef enum { SPRESS_BMP, COOL_BMP, DEAD_BMP, OOH_BMP, SMILE_BMP } FACE_BMP; typedef enum { WAITING, PLAYING, GAMEOVER, WON } GAME_STATUS; -typedef enum { - MPRESS_BMP, ONE_BMP, TWO_BMP, THREE_BMP, FOUR_BMP, FIVE_BMP, SIX_BMP, - SEVEN_BMP, EIGHT_BMP, BOX_BMP, FLAG_BMP, QUESTION_BMP, EXPLODE_BMP, - WRONG_BMP, MINE_BMP, QPRESS_BMP +typedef enum +{ + MPRESS_BMP, ONE_BMP, TWO_BMP, THREE_BMP, FOUR_BMP, FIVE_BMP, SIX_BMP, + SEVEN_BMP, EIGHT_BMP, BOX_BMP, FLAG_BMP, QUESTION_BMP, EXPLODE_BMP, + WRONG_BMP, MINE_BMP, QPRESS_BMP } MINEBMP_OFFSET; typedef enum { BEGINNER, ADVANCED, EXPERT, CUSTOM } DIFFICULTY; typedef struct tagBOARD { - BOOL IsMarkQ; - HDC hdc; + BOOL bMark; HINSTANCE hInst; - HWND hWnd; + HWND hWnd; HBITMAP hMinesBMP; HBITMAP hFacesBMP; HBITMAP hLedsBMP; - RECT mines_rect; - RECT face_rect; - RECT timer_rect; - RECT counter_rect; + RECT MinesRect; + RECT FaceRect; + RECT TimerRect; + RECT CounterRect; - unsigned width; - unsigned height; - POINT pos; + ULONG uWidth; + ULONG uHeight; + POINT Pos; - unsigned time; - unsigned num_flags; - unsigned boxes_left; - unsigned num_mines; + ULONG uTime; + ULONG uNumFlags; + ULONG uBoxesLeft; + ULONG uNumMines; - /* difficulty info */ - unsigned rows; - unsigned cols; - unsigned mines; - char best_name [3][16]; - unsigned best_time [3]; - DIFFICULTY difficulty; + ULONG uRows; + ULONG uCols; + ULONG uMines; + TCHAR szBestName[3][16]; + ULONG uBestTime[3]; + DIFFICULTY Difficulty; - POINT press; + POINT Press; - /* defines for mb */ - #define MB_NONE 0 - #define MB_LEFTDOWN 1 - #define MB_LEFTUP 2 - #define MB_RIGHTDOWN 3 - #define MB_RIGHTUP 4 - #define MB_BOTHDOWN 5 - #define MB_BOTHUP 6 - unsigned mb; + FACE_BMP FaceBmp; + GAME_STATUS Status; - FACE_BMP face_bmp; - GAME_STATUS status; struct BOX_STRUCT { - unsigned IsMine : 1; - unsigned IsPressed : 1; - unsigned FlagType : 2; - unsigned NumMines : 4; - } box [MAX_COLS + 2] [MAX_ROWS + 2]; + UINT bIsMine : 1; + UINT bIsPressed : 1; + UINT uFlagType : 2; + UINT uNumMines : 4; + } Box [MAX_COLS + 2] [MAX_ROWS + 2]; - /* defines for FlagType */ + /* defines for uFlagType */ #define NORMAL 0 #define QUESTION 1 #define FLAG 2 @@ -121,63 +123,33 @@ typedef struct tagBOARD } BOARD; void ExitApp( int error ); - -void InitBoard( BOARD *p_board ); - -void LoadBoard( BOARD *p_board ); - -void SaveBoard( BOARD *p_board ); - -void DestroyBoard( BOARD *p_board ); - -void SetDifficulty( BOARD *p_board, DIFFICULTY difficulty ); - -void CheckLevel( BOARD *p_board ); - -void CreateBoard( BOARD *p_board ); - -void CreateBoxes( BOARD *p_board ); - -void TestBoard( HWND hWnd, BOARD *p_board, unsigned x, unsigned y, int msg ); - -void TestMines( BOARD *p_board, POINT pt, int msg ); - -void TestFace( BOARD *p_board, POINT pt, int msg ); - -void DrawBoard( HDC hdc, HDC hMemDC, PAINTSTRUCT *ps, BOARD *p_board ); - -void DrawMines( HDC hdc, HDC hMemDC, BOARD *p_board ); - -void DrawMine( HDC hdc, HDC hMemDC, BOARD *p_board, unsigned col, unsigned row, BOOL IsPressed ); - -void AddFlag( BOARD *p_board, unsigned col, unsigned row ); - -void CompleteBox( BOARD *p_board, unsigned col, unsigned row ); - -void CompleteBoxes( BOARD *p_board, unsigned col, unsigned row ); - -void PressBox( BOARD *p_board, unsigned col, unsigned row ); - -void PressBoxes( BOARD *p_board, unsigned col, unsigned row ); - -void UnpressBox( BOARD *p_board, unsigned col, unsigned row ); - -void UnpressBoxes( BOARD *p_board, unsigned col, unsigned row ); - -void UpdateTimer( BOARD *p_board ); - -void DrawLeds( HDC hdc, HDC hMemDC, BOARD *p_board, int number, int x, int y); - -void DrawFace( HDC hdc, HDC hMemDC, BOARD *p_board ); - +void InitBoard( BOARD *pBoard ); +void LoadBoard( BOARD *pBoard ); +void SaveBoard( BOARD *pBoard ); +void DestroyBoard( BOARD *pBoard ); +void SetDifficulty( BOARD *pBoard, DIFFICULTY difficulty ); +void CheckLevel( BOARD *pBoard ); +void CreateBoard( BOARD *pBoard ); +void CreateBoxes( BOARD *pBoard ); +void TestBoard( HWND hWnd, BOARD *pBoard, LONG x, LONG y, int msg ); +void TestMines( BOARD *pBoard, POINT pt, int msg ); +void TestFace( BOARD *pBoard, POINT pt, int msg ); +void DrawBoard( HDC hdc, HDC hMemDC, PAINTSTRUCT *ps, BOARD *pBoard ); +void DrawMines( HDC hdc, HDC hMemDC, BOARD *pBoard ); +void DrawMine( HDC hdc, HDC hMemDC, BOARD *pBoard, ULONG uCol, ULONG uRow, BOOL IsPressed ); +void AddFlag( BOARD *pBoard, ULONG uCol, ULONG uRow ); +void CompleteBox( BOARD *pBoard, ULONG uCol, ULONG uRow ); +void CompleteBoxes( BOARD *pBoard, ULONG uCol, ULONG uRow ); +void PressBox( BOARD *pBoard, ULONG uCol, ULONG uRow ); +void PressBoxes( BOARD *pBoard, ULONG uCol, ULONG uRow ); +void UnpressBox( BOARD *pBoard, ULONG uCol, ULONG uRow ); +void UnpressBoxes( BOARD *pBoard, ULONG uCol, ULONG uRow ); +void UpdateTimer( BOARD *pBoard ); +void DrawLeds( HDC hdc, HDC hMemDC, BOARD *pBoard, LONG nNumber, LONG x, LONG y); +void DrawFace( HDC hdc, HDC hMemDC, BOARD *pBoard ); LRESULT WINAPI MainProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -BOOL CALLBACK CustomDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); - -BOOL CALLBACK CongratsDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); - -BOOL CALLBACK TimesDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); - -BOOL CALLBACK AboutDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); +INT_PTR CALLBACK CustomDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); +INT_PTR CALLBACK CongratsDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); +INT_PTR CALLBACK TimesDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); /* end of header */ diff --git a/reactos/base/applications/games/winemine/manifest.xml b/reactos/base/applications/games/winemine/manifest.xml new file mode 100644 index 00000000000..c24546fd343 --- /dev/null +++ b/reactos/base/applications/games/winemine/manifest.xml @@ -0,0 +1,23 @@ + + + +ReactOS WineMine + + + + + + diff --git a/reactos/base/applications/games/winemine/resource.h b/reactos/base/applications/games/winemine/resource.h index 7bcbb016ff1..2e3ec2eba89 100644 --- a/reactos/base/applications/games/winemine/resource.h +++ b/reactos/base/applications/games/winemine/resource.h @@ -21,9 +21,8 @@ #define IDNONE -1 -#define ID_TIMER 1000 - /* menu defines */ +#define IDM_WINEMINE 1000 #define IDM_NEW 1001 #define IDM_EXIT 1002 #define IDM_TIMES 1003 @@ -47,13 +46,19 @@ #define IDC_EDITROWS 1032 #define IDC_EDITMINES 1033 -#define IDS_APPNAME 1101 -#define IDS_SECONDS 1102 +#define IDS_SECONDS 1101 +#define IDS_NOBODY 1102 +#define IDS_ABOUT 1103 #define IDI_WINEMINE 1201 +#define IDA_WINEMINE 1202 #define IDB_FACES 1301 #define IDB_LEDS 1302 #define IDB_MINES 1303 #define IDRESET 1401 + +#define IDD_CONGRATS 1501 +#define IDD_TIMES 1502 +#define IDD_CUSTOM 1503 diff --git a/reactos/base/applications/games/winemine/rsrc.rc b/reactos/base/applications/games/winemine/rsrc.rc index a5d8343acd2..6022bbf8a57 100644 --- a/reactos/base/applications/games/winemine/rsrc.rc +++ b/reactos/base/applications/games/winemine/rsrc.rc @@ -1,14 +1,24 @@ #include #include "resource.h" +/* define language neutral resources */ +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +IDA_WINEMINE ACCELERATORS DISCARDABLE +{ + VK_F2, IDM_NEW, VIRTKEY, NOINVERT + "X", IDM_EXIT, VIRTKEY, ALT, NOINVERT +} + IDI_WINEMINE ICON MOVEABLE "rc/winemine.ico" IDB_FACES BITMAP MOVEABLE "rc/faces.bmp" IDB_LEDS BITMAP MOVEABLE "rc/leds.bmp" IDB_MINES BITMAP MOVEABLE "rc/mines.bmp" -/* define language neutral resources */ - -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +// Common Controls 6.0 for GCC +#if defined(__GNUC__) + 1 24 "manifest.xml" +#endif /* include localised resources */ #include "lang/bg-BG.rc" diff --git a/reactos/base/applications/games/winemine/winemine.rbuild b/reactos/base/applications/games/winemine/winemine.rbuild index 15d72776d95..192d685ebb1 100644 --- a/reactos/base/applications/games/winemine/winemine.rbuild +++ b/reactos/base/applications/games/winemine/winemine.rbuild @@ -1,6 +1,6 @@ - + . 0x0501 0x0501 @@ -8,6 +8,7 @@ gdi32 user32 advapi32 + shell32 main.c dialog.c rsrc.rc