36 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
37 'W',
'i',
'n',
'M',
'i',
'n',
'e',0};
44 static const WCHAR difficultyW[] = {
'D',
'i',
'f',
'f',
'i',
'c',
'u',
'l',
't',
'y',0};
46 static const WCHAR nameW[] = {
'N',
'a',
'm',
'e',
'%',
'u',0};
47 static const WCHAR timeW[] = {
'T',
'i',
'm',
'e',
'%',
'u',0};
66 if( p_board->
mines > ( p_board->
cols - 1 ) * ( p_board->
rows - 1 ) )
67 p_board->
mines = ( p_board->
cols - 1 ) * ( p_board->
rows - 1 );
109 for(
i = 0;
i < 3;
i++ ) {
119 for(
i = 0;
i < 3;
i++ ) {
169 for(
i = 0;
i < 3;
i++ ) {
175 for(
i = 0;
i < 3;
i++ ) {
193 if ( difficulty ==
CUSTOM )
198 hMenu =
GetMenu( p_board->hWnd );
200 p_board->difficulty = difficulty;
203 switch( difficulty ) {
270 for( col = 0; col <= p_board->
cols + 1; col++ )
272 p_board->box[col][
row].IsPressed =
FALSE;
273 p_board->box[col][
row].IsMine =
FALSE;
274 p_board->box[col][
row].FlagType =
NORMAL;
275 p_board->box[col][
row].NumMines = 0;
340 p_board->box[selected_col][selected_row].IsMine =
TRUE;
344 while( (
unsigned) i < p_board->mines ) {
348 if( !p_board->box[col][
row].IsMine ) {
350 p_board->box[col][
row].IsMine =
TRUE;
355 p_board->box[selected_col][selected_row].IsMine =
FALSE;
361 for( col = 1; col < p_board->
cols + 1; col++ )
363 for(
i = -1;
i <= 1;
i++ )
364 for(
j = -1;
j <= 1;
j++ ) {
365 if( p_board->box[col +
i][
row +
j].IsMine ) {
366 p_board->box[col][
row].NumMines++ ;
376 if( col == 0 || col > p_board->
cols ||
row == 0 ||
row > p_board->
rows )
380 if( p_board->box[col][
row].IsMine ) {
381 switch( p_board->box[col][
row].FlagType ) {
394 switch( p_board->box[col][
row].FlagType ) {
408 WINE_TRACE(
"Unknown FlagType during game over in DrawMine\n");
413 switch( p_board->box[col][
row].FlagType ) {
433 WINE_TRACE(
"Unknown FlagType while playing in DrawMine\n");
439 && !p_board->box[col][
row].IsMine )
456 for( col = 1; col <= p_board->
cols; col++ ) {
472 led[0] =
count / 100 ;
473 count -= led[0] * 100;
480 count -= led[1] * 10;
484 for(
i = 0;
i < 3;
i++ )
490 for(
i = 0;
i < 3;
i++ ) {
547 if( p_board->box[col][
row].FlagType !=
COMPLETE ) {
548 switch( p_board->box[col][
row].FlagType ) {
553 p_board->box[col][
row].FlagType =
NORMAL;
558 p_board->box[col][
row].FlagType =
NORMAL;
562 p_board->box[col][
row].FlagType =
FLAG;
591 for(
i = -1;
i <= 1;
i++ )
592 for(
j = -1;
j <= 1;
j++ ) {
620 for(
i = -1;
i <= 1;
i++ )
621 for(
j = -1;
j <= 1;
j++ ) {
622 p_board->box[col +
i][
row +
j].IsPressed =
TRUE;
626 for(
i = -1;
i <= 1;
i++ )
627 for(
j = -1;
j <= 1;
j++ ) {
628 if( !p_board->box[p_board->
press.
x +
i][p_board->
press.
y +
j].IsPressed )
632 for(
i = -1;
i <= 1;
i++ )
633 for(
j = -1;
j <= 1;
j++ ) {
634 p_board->box[col +
i][
row +
j].IsPressed =
FALSE;
648 p_board->box[col][
row].FlagType !=
FLAG &&
649 col > 0 && col < p_board->cols + 1 &&
653 if( p_board->box[col][
row].IsMine ) {
660 if( p_board->box[col][
row].NumMines == 0 )
662 for(
i = -1;
i <= 1;
i++ )
663 for(
j = -1;
j <= 1;
j++ )
672 unsigned numFlags = 0;
675 if( p_board->box[col][
row].FlagType ==
COMPLETE ) {
676 for(
i = -1;
i <= 1;
i++ )
677 for(
j = -1;
j <= 1;
j++ ) {
678 if( p_board->box[col+
i][
row+
j].FlagType ==
FLAG )
682 if( numFlags == p_board->box[col][
row].NumMines ) {
683 for(
i = -1;
i <= 1;
i++ )
684 for(
j = -1;
j <= 1;
j++ ) {
685 if( p_board->box[col+
i][
row+
j].FlagType !=
FLAG )
719 if( p_board->box[col][
row].FlagType !=
FLAG 746 WINE_TRACE(
"Unknown message type received in TestMines\n");
807 for( col = 1; col <= p_board->
cols; col++ ) {
808 if (p_board->box[col][
row].IsMine && p_board->box[col][
row].FlagType !=
FLAG)
809 p_board->box[col][
row].FlagType =
FLAG;
999 WINE_TRACE(
"Unknown WM_COMMAND command message received\n");
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
static void DrawMine(HDC hdc, HDC hMemDC, BOARD *p_board, unsigned col, unsigned row, BOOL IsPressed)
static void TestBoard(HWND hWnd, BOARD *p_board, int x, int y, int msg)
static const WCHAR markW[]
BOOL WINAPI RedrawWindow(_In_opt_ HWND, _In_opt_ LPCRECT, _In_opt_ HRGN, _In_ UINT)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
static void PlaceMines(BOARD *p_board, int selected_col, int selected_row)
static void UnpressBox(BOARD *p_board, unsigned col, unsigned row)
INT_PTR CALLBACK CustomDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
WINE_DEFAULT_DEBUG_CHANNEL(wmic)
static void DrawMines(HDC hdc, HDC hMemDC, BOARD *p_board)
#define MAX_PLAYER_NAME_SIZE
HDC WINAPI GetDC(_In_opt_ HWND)
static const WCHAR yposW[]
#define HKEY_CURRENT_USER
GLuint GLuint GLsizei count
TW_UINT32 TW_UINT16 TW_UINT16 MSG
BOOL WINAPI UpdateWindow(_In_ HWND)
void __cdecl srand(_In_ unsigned int _Seed)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
VOID WINAPI ExitProcess(IN UINT uExitCode)
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
GLint GLint GLint GLint GLint x
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
WCHAR best_name[3][MAX_PLAYER_NAME_SIZE+1]
static void PressBox(BOARD *p_board, unsigned col, unsigned row)
static const WCHAR xposW[]
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
void CheckLevel(BOARD *p_board)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
static void LoadBoard(BOARD *p_board)
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
BOOL WINAPI AdjustWindowRect(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL)
static const WCHAR widthW[]
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
_Check_return_ int __cdecl rand(void)
static size_t double number
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
static void TestFace(BOARD *p_board, POINT pt, int msg)
static const WCHAR difficultyW[]
HACCEL WINAPI LoadAcceleratorsW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
static void ShiftBetween(LONG *x, LONG *y, LONG a, LONG b)
INT_PTR CALLBACK TimesDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static const WCHAR minesW[]
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
static void DrawBoard(HDC hdc, HDC hMemDC, PAINTSTRUCT *ps, BOARD *p_board)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static const WCHAR nameW[]
static const DWORD wnd_style
#define REG_OPTION_NON_VOLATILE
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
GLboolean GLboolean GLboolean b
static void InitBoard(BOARD *p_board)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
static void AddFlag(BOARD *p_board, unsigned col, unsigned row)
BOOL WINAPI GetMonitorInfoW(_In_ HMONITOR, _Inout_ LPMONITORINFO)
static void CompleteBoxes(BOARD *p_board, unsigned col, unsigned row)
int WINAPI GetSystemMetrics(_In_ int)
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
static LRESULT WINAPI MainProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
static void DrawFace(HDC hdc, HDC hMemDC, BOARD *p_board)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
static void SaveBoard(BOARD *p_board)
int WINAPI TranslateAcceleratorW(_In_ HWND, _In_ HACCEL, _In_ LPMSG)
BOOL WINAPI ShellAboutW(HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff, HICON hIcon)
static void CompleteBox(BOARD *p_board, unsigned col, unsigned row)
INT_PTR CALLBACK CongratsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
BOOL WINAPI IntersectRect(_Out_ LPRECT, _In_ LPCRECT, _In_ LPCRECT)
static void TestMines(BOARD *p_board, POINT pt, int msg)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
HWND WINAPI SetCapture(_In_ HWND hWnd)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
BOOL WINAPI DeleteDC(_In_ HDC)
HBITMAP WINAPI LoadBitmapW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
static void CreateBoard(BOARD *p_board)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
struct tagCREATESTRUCTW * LPCREATESTRUCTW
static void DestroyBoard(BOARD *p_board)
GLint GLint GLint GLint GLint GLint y
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
static const WCHAR heightW[]
static void DrawLeds(HDC hdc, HDC hMemDC, BOARD *p_board, int number, int x, int y)
static void PressBoxes(BOARD *p_board, unsigned col, unsigned row)
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
BOOL WINAPI ReleaseCapture(void)
static void MoveOnScreen(RECT *rect)
#define WS_OVERLAPPEDWINDOW
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
HMONITOR WINAPI MonitorFromRect(LPCRECT, DWORD)
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
int WINAPI wWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPWSTR cmdline, int cmdshow)
#define MAKEINTRESOURCEW(i)
GLdouble GLdouble GLdouble GLdouble top
GLuint GLuint GLsizei GLenum type
GLboolean GLboolean GLboolean GLboolean a
HBRUSH WINAPI GetSysColorBrush(_In_ int)
HMENU WINAPI GetMenu(_In_ HWND)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
static const WCHAR timeW[]
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
#define RegCloseKey(hKey)
static VOID NTAPI BitBlt(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG BitsPerPixel, _In_ ULONG Delta)
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
static void SetDifficulty(BOARD *p_board, DIFFICULTY difficulty)
static void UnpressBoxes(BOARD *p_board, unsigned col, unsigned row)