36 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
37 'W',
'i',
'n',
'M',
'i',
'n',
'e',0};
44static const WCHAR difficultyW[] = {
'D',
'i',
'f',
'f',
'i',
'c',
'u',
'l',
't',
'y',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 )
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 &&
650 row > 0 && row < p_board->rows + 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");
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
int WINAPI wWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPWSTR cmdline, int cmdshow)
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)
static void SetDifficulty(BOARD *p_board, DIFFICULTY difficulty)
static void TestBoard(HWND hWnd, BOARD *p_board, int x, int y, int msg)
static const WCHAR minesW[]
static const WCHAR widthW[]
static const WCHAR nameW[]
static void MoveOnScreen(RECT *rect)
static void PressBox(BOARD *p_board, unsigned col, unsigned row)
static const WCHAR difficultyW[]
static void DrawMines(HDC hdc, HDC hMemDC, BOARD *p_board)
static void DrawLeds(HDC hdc, HDC hMemDC, BOARD *p_board, int number, int x, int y)
static void SaveBoard(BOARD *p_board)
static const WCHAR xposW[]
static void TestMines(BOARD *p_board, POINT pt, int msg)
static void TestFace(BOARD *p_board, POINT pt, int msg)
static const WCHAR yposW[]
static void DrawFace(HDC hdc, HDC hMemDC, BOARD *p_board)
static void DrawBoard(HDC hdc, HDC hMemDC, PAINTSTRUCT *ps, BOARD *p_board)
static void CompleteBoxes(BOARD *p_board, unsigned col, unsigned row)
static void ShiftBetween(LONG *x, LONG *y, LONG a, LONG b)
static void PressBoxes(BOARD *p_board, unsigned col, unsigned row)
static void UnpressBox(BOARD *p_board, unsigned col, unsigned row)
static void LoadBoard(BOARD *p_board)
static const DWORD wnd_style
static const WCHAR heightW[]
static const WCHAR markW[]
static void InitBoard(BOARD *p_board)
static void PlaceMines(BOARD *p_board, int selected_col, int selected_row)
void CheckLevel(BOARD *p_board)
static LRESULT WINAPI MainProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
static const WCHAR timeW[]
static void CreateBoard(BOARD *p_board)
static void DrawMine(HDC hdc, HDC hMemDC, BOARD *p_board, unsigned col, unsigned row, BOOL IsPressed)
static void CompleteBox(BOARD *p_board, unsigned col, unsigned row)
static void DestroyBoard(BOARD *p_board)
static void UnpressBoxes(BOARD *p_board, unsigned col, unsigned row)
static void AddFlag(BOARD *p_board, unsigned col, unsigned row)
#define MAX_PLAYER_NAME_SIZE
#define RegCloseKey(hKey)
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)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
VOID WINAPI ExitProcess(IN UINT uExitCode)
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
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
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)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble GLdouble top
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
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
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
void __cdecl srand(_In_ unsigned int _Seed)
_Check_return_ int __cdecl rand(void)
static unsigned int number
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
HMONITOR WINAPI MonitorFromRect(LPCRECT, DWORD)
#define REG_OPTION_NON_VOLATILE
#define WS_OVERLAPPEDWINDOW
BOOL WINAPI ShellAboutW(HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff, HICON hIcon)
WCHAR best_name[3][MAX_PLAYER_NAME_SIZE+1]
TW_UINT32 TW_UINT16 TW_UINT16 MSG
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
BOOL WINAPI DeleteDC(_In_ HDC)
#define HKEY_CURRENT_USER
HWND WINAPI SetCapture(_In_ HWND hWnd)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI RedrawWindow(_In_opt_ HWND, _In_opt_ LPCRECT, _In_opt_ HRGN, _In_ UINT)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI ReleaseCapture(void)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI AdjustWindowRect(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
HBRUSH WINAPI GetSysColorBrush(_In_ int)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
BOOL WINAPI IntersectRect(_Out_ LPRECT, _In_ LPCRECT, _In_ LPCRECT)
BOOL WINAPI UpdateWindow(_In_ HWND)
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
HDC WINAPI GetDC(_In_opt_ HWND)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
HACCEL WINAPI LoadAcceleratorsW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
int WINAPI TranslateAcceleratorW(_In_ HWND, _In_ HACCEL, _In_ LPMSG)
BOOL WINAPI GetMonitorInfoW(_In_ HMONITOR, _Inout_ LPMONITORINFO)
#define MAKEINTRESOURCEW(i)
HBITMAP WINAPI LoadBitmapW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
struct tagCREATESTRUCTW * LPCREATESTRUCTW
int WINAPI GetSystemMetrics(_In_ int)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HMENU WINAPI GetMenu(_In_ HWND)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)