61 #define APPNAME _T("Maze") 78 #define MAX_MAZE_SIZE_X ((unsigned long) 1000) // Dynamic detection? 79 #define MAX_MAZE_SIZE_Y ((unsigned long) 1000) // Dynamic detection? 81 #define MOVE_LIST_SIZE (MAX_MAZE_SIZE_X * MAX_MAZE_SIZE_Y) 83 #define WALL_TOP 0x8000 84 #define WALL_RIGHT 0x4000 85 #define WALL_BOTTOM 0x2000 86 #define WALL_LEFT 0x1000 88 #define DOOR_IN_TOP 0x800 89 #define DOOR_IN_RIGHT 0x400 90 #define DOOR_IN_BOTTOM 0x200 91 #define DOOR_IN_LEFT 0x100 92 #define DOOR_IN_ANY 0xF00 94 #define DOOR_OUT_TOP 0x80 95 #define DOOR_OUT_RIGHT 0x40 96 #define DOOR_OUT_BOTTOM 0x20 97 #define DOOR_OUT_LEFT 0x10 99 #define START_SQUARE 0x2 100 #define END_SQUARE 0x1 105 #define get_random(x) (rand() % (x)) 136 DWORD valuetype, valuesize, val_size, val_presd, val_postsd, val_sd;
144 valuesize =
sizeof(
DWORD);
193 register int i,
j, wall;
253 wall = (wall + 2) % 4;
282 register int i, newdoor = 0;
327 register int num_candidates;
344 candidates[num_candidates++] = 0;
360 candidates[num_candidates++] = 1;
376 candidates[num_candidates++] = 2;
392 candidates[num_candidates++] = 3;
395 if (num_candidates == 0)
397 if (num_candidates == 1)
398 return candidates[0];
399 return candidates[
get_random(num_candidates)];
414 register int i,
j,
dir;
483 register int i,
j,
dir;
548 }
while (!action_done);
556 path[
n + 1].dir = -1;
593 static long grayPattern [] = {
HGDIOBJ WINAPI GetStockObject(_In_ int)
static int post_solve_delay
GLint GLint GLsizei width
HPEN WINAPI CreatePen(_In_ int, _In_ int, _In_ COLORREF)
BOOL WINAPI ScreenSaverConfigureDialog(HWND hWnd, UINT message, WPARAM wparam, LPARAM lparam)
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
BITMAPINFOHEADER bmiHeader
HDC WINAPI GetDC(_In_opt_ HWND)
static void ReadSettings(HWND hWnd)
_In_ HBITMAP _In_ UINT _In_ UINT _Inout_ LPBITMAPINFO pbmi
struct tagBITMAPINFOHEADER BITMAPINFOHEADER
#define HKEY_CURRENT_USER
static void begin_solve_maze(HWND hWnd)
void __cdecl srand(_In_ unsigned int _Seed)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
BOOL WINAPI LineTo(_In_ HDC, _In_ int, _In_ int)
static void initialize_maze()
GLint GLint GLint GLint GLint x
#define SendDlgItemMessage
static void create_maze(HWND hWnd)
static void draw_solid_square(int, int, int, HDC, HBRUSH)
static LPCWSTR registryPath
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
static int solve_maze(HWND hWnd)
BOOL WINAPI MoveToEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
#define IDC_SLIDER_POSTSD
static void set_maze_sizes(int width, int height)
_Check_return_ int __cdecl rand(void)
static void enter_square(int, HDC, HBRUSH)
static UINT WPARAM LPARAM lparam
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
static void draw_maze_border(HWND hWnd)
static struct @1509 move_list[MOVE_LIST_SIZE]
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
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
#define REG_OPTION_NON_VOLATILE
static void SetDefaults()
BOOL WINAPI RegisterDialogClasses(HANDLE hmodule)
static BOOL OnCreate(HWND hWnd, LPCREATESTRUCT lpCreateStruct)
BOOL WINAPI SetDlgItemInt(_In_ HWND, _In_ int, _In_ UINT, _In_ BOOL)
BOOL WINAPI AboutProc(HWND hWnd, UINT message, WPARAM wparam, LPARAM lparam)
#define memcpy(s1, s2, n)
static void ReadRegistry()
GLint GLint GLsizei GLsizei height
INT_PTR(CALLBACK * DLGPROC)(HWND, UINT, WPARAM, LPARAM)
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
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
GLint GLint GLint GLint GLint GLint y
LRESULT CALLBACK ScreenSaverProc(HWND hWnd, UINT message, WPARAM uParam, LPARAM lParam)
static int pre_solve_delay
LRESULT WINAPI DefScreenSaverProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
static struct @1509 save_path[MOVE_LIST_SIZE]
static unsigned short maze[MAX_MAZE_SIZE_X][MAX_MAZE_SIZE_Y]
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
static void WriteRegistry()
static void start_timer(HWND hWnd, int iTimeout)
HBRUSH WINAPI CreateDIBPatternBrushPt(_In_ const VOID *pvPackedDIB, _In_ UINT uUsage)
#define RegCloseKey(hKey)
static UINT WPARAM wparam