From c2d1eb267f83e96f5fa611e4a5e8abca33d888c5 Mon Sep 17 00:00:00 2001 From: "nethack.allison" Date: Mon, 11 Mar 2002 02:29:42 +0000 Subject: [PATCH] various things - a couple of README updates - some color changes for windowcolors - prevent crash From a bug report, but better than a crash. It probably renders the map_mode:fit_to_screen ignored in defaults.nh. --- README | 9 +++------ sys/winnt/porthelp | 41 +++++++++++++++++++++++++---------------- win/win32/mhmap.c | 1 + win/win32/mswproc.c | 40 ++++++++++++++++++++++------------------ 4 files changed, 51 insertions(+), 40 deletions(-) diff --git a/README b/README index e20533a51..8d6c251ae 100644 --- a/README +++ b/README @@ -21,7 +21,7 @@ o more feedback about skill advancement from #enhance command o End-of-game disclose options can be individually tuned to your liking o Mac: command-key shortcuts in the player selection dialog o Amiga: screenmode requester -o Win32: new graphical port contributed by Alex Kompel +o Win32: new graphical interface contributed by Alex Kompel We've also included variations of enhancements contributed by members of the NetHack community at large. Among them: @@ -83,7 +83,7 @@ Please read items (1), (2) and (3) BEFORE doing anything with your new code. x. A 'win/gnome' subdirectory, which contains files specific to GNOME. y. A 'win/tty' subdirectory, which contains files specific to ttys. z. A 'win/win32' subdirectory, which contains files specific to the - Windows NT Win32 API. + Windows Win32 API. The names of these directories should not be changed unless you are ready to go through the makefiles and the makedefs program and change @@ -160,9 +160,6 @@ Please read items (1), (2) and (3) BEFORE doing anything with your new code. Unless otherwise mentioned, the compiler used was the OS-vendor's C compiler. - The Atari and Amiga ports are struggling to stay supported due to a - lack of people with machines and time. - With the demise of Windows NT on the DEC Alpha, no attempt has been made to build NetHack 3.4.0 on that platform. @@ -172,7 +169,7 @@ Please read items (1), (2) and (3) BEFORE doing anything with your new code. A build for Intel 80286 machines and DOS "real mode" overlaid versions has not been produced for 3.4.0. Nobody on the porting team has the time or the software to attempt the necessary tuning that will allow - it achieve the balance of having just the right amount of available + it to achieve the balance of having just the right amount of available memory, and still have acceptable performance. The sources necessary to do so are still included in the source distribution, so if someone has access to a real-mode compiler and lots of spare time on their hands, diff --git a/sys/winnt/porthelp b/sys/winnt/porthelp index f60370f6c..60e7ce862 100644 --- a/sys/winnt/porthelp +++ b/sys/winnt/porthelp @@ -161,34 +161,43 @@ Map Window options: only be specified in the defaults.nh config file. Default: [default] - tile_height Used with tile_file to specify the width of each + tile_height Used with tile_file to specify the height of each tile in pixels. This option may only be specified in the defaults.nh config file. Default: [16] - tile_width Used with tile_file to specify the height of each + tile_width Used with tile_file to specify the width of each tile in pixels. This option may only be specified in the defaults.nh config file. Default: [16] - windowcolors Specifies the colors for various windows - This is a single option that has the following + windowcolors Specifies the colors for various windows + This option may only be specified in the + defaults.nh config file and has the following format: - window-type foreground/background + window-type foreground/background Notes: - - The slash is required. - - window-type is one of: - "menu, "message", "status", or "text" - (Short forms are: "mnu", "msg", "sts", or "txt"). + - the slash is required. + - window-type is either "message" or "status" + (Short forms are: "msg" or "sts"). - Foreground and background may be specified as - a color name (for example "blue") or as a - six digit hexadecimal RGB color-number (for - example "#8F8F8F"). + a color name (such as "blue"), or by a six + digit hexadecimal RGB color value (such as + "#8F8F8F") + - The following color names are available: + black, red, green, brown, blue, magenta, + cyan, gray (or grey), orange, + yellow, purple, silver, maroon, fuchsia, + lime, olive, navy, teal, aqua. In addition, you + can use the following names to refer to default + Windows settings: activeborder, activecaption, + appworkspace, background, btnface, btnshadow, btntext, + captiontext, graytext, highlight, highlighttext, + inactiveborder, inactivecaption, menu, menutext, + scrollbar, window, windowframe, windowtext. - Examples include: - OPTIONS=windowcolors:menu white/black - OPTIONS=msg green/yellow - OPTIONS=windowcolors:sts white/blue txt white/blue + Example: + OPTIONS=windowcolors:sts #00FF80/blue msg menutext/menu Miscellaneous options: diff --git a/win/win32/mhmap.c b/win/win32/mhmap.c index 8355b16ab..c1c798332 100644 --- a/win/win32/mhmap.c +++ b/win/win32/mhmap.c @@ -178,6 +178,7 @@ int mswin_map_mode(HWND hWnd, int mode) SIZE mapSize; data = (PNHMapWindow)GetWindowLong(hWnd, GWL_USERDATA); + if (!data) return mode; if( mode == data->mapMode ) return mode; oldMode = data->mapMode; diff --git a/win/win32/mswproc.c b/win/win32/mswproc.c index d46ffed0e..0862ca3f9 100644 --- a/win/win32/mswproc.c +++ b/win/win32/mswproc.c @@ -1540,28 +1540,32 @@ mswin_destroy_reg() typedef struct ctv { - char *colorstring; + const char *colorstring; COLORREF colorvalue; } color_table_value; static color_table_value color_table[] = { - { "black", RGB(0x00, 0x00, 0x00)}, - { "silver", RGB(0xC0, 0xC0, 0xC0)}, - { "gray", RGB(0x80, 0x80, 0x80)}, - { "grey", RGB(0x80, 0x80, 0x80)}, - { "white", RGB(0xFF, 0xFF, 0xFF)}, - { "maroon", RGB(0x80, 0x00, 0x00)}, - { "red", RGB(0xFF, 0x00, 0x00)}, - { "purple", RGB(0x80, 0x00, 0x80)}, - { "fuchsia", RGB(0xFF, 0x00, 0xFF)}, - { "green", RGB(0x00, 0x80, 0x00)}, - { "lime", RGB(0x00, 0xFF, 0x00)}, - { "olive", RGB(0x80, 0x80, 0x00)}, + { "black", RGB(0x00, 0x00, 0x00)}, + { "red", RGB(0xFF, 0x00, 0x00)}, + { "green", RGB(0x00, 0x80, 0x00)}, + { "brown", RGB(200,160,0)}, + { "blue", RGB(0,0,170)}, + { "magenta", RGB(160,0,160)}, + { "cyan", RGB(0,160,160,)}, + { "gray", RGB(0x80, 0x80, 0x80)}, + { "orange", RGB(255,140,0)}, { "yellow", RGB(0xFF, 0xFF, 0x00)}, - { "navy", RGB(0x00, 0x00, 0x80)}, - { "blue", RGB(0x00, 0x00, 0xFF)}, - { "teal", RGB(0x00, 0x80, 0x80)}, - { "aqua", RGB(0x00, 0xFF, 0xFF)}, + { "white", RGB(0xFF, 0xFF, 0xFF)}, + { "purple", RGB(0x80, 0x00, 0x80)}, + { "silver", RGB(0xC0, 0xC0, 0xC0)}, + { "grey", RGB(0x80, 0x80, 0x80)}, + { "maroon", RGB(0x80, 0x00, 0x00)}, + { "fuchsia", RGB(0xFF, 0x00, 0xFF)}, + { "lime", RGB(0x00, 0xFF, 0x00)}, + { "olive", RGB(0x80, 0x80, 0x00)}, + { "navy", RGB(0x00, 0x00, 0x80)}, + { "teal", RGB(0x00, 0x80, 0x80)}, + { "aqua", RGB(0x00, 0xFF, 0xFF)}, { "", RGB(0x00, 0x00, 0x00)}, }; @@ -1636,4 +1640,4 @@ static void mswin_color_from_string(char *colorstring, HBRUSH* brushptr, COLORRE if (max_brush > TOTAL_BRUSHES) panic("Too many colors!"); *brushptr = CreateSolidBrush(*colorptr); brush_table[max_brush++] = *brushptr; -} \ No newline at end of file +}