(from Yitzhak)

This commit is contained in:
nethack.allison
2002-03-11 23:38:59 +00:00
parent 59938d5bc6
commit d936f1a1bf
3 changed files with 62 additions and 42 deletions

View File

@@ -548,11 +548,12 @@ void onPaint(HWND hWnd)
for(i=paint_rt.left; i<paint_rt.right; i++)
for(j=paint_rt.top; j<paint_rt.bottom; j++)
if(data->map[i][j]>=0) {
uchar ch;
char ch;
TCHAR wch;
RECT glyph_rect;
int color;
unsigned special, mgch;
unsigned special;
int mgch;
HBRUSH back_brush;
nhcoord2display(data, i, j, &glyph_rect);
@@ -564,7 +565,7 @@ void onPaint(HWND hWnd)
/* rely on NetHack core helper routine */
mapglyph(data->map[i][j], &mgch, &color,
&special, i, j);
ch = (uchar)mgch;
ch = (char)mgch;
if (((special & MG_PET) && iflags.hilite_pet) ||
((special & MG_DETECT) && iflags.use_inverse)) {
back_brush = CreateSolidBrush(RGB(192, 192, 192));
@@ -848,23 +849,23 @@ void nhglyph2charcolor(short g, uchar* ch, int* color)
COLORREF nhcolor_to_RGB(int c)
{
switch(c) {
case CLR_BLACK: return RGB( 85, 85, 85);
case CLR_RED: return RGB(255, 0, 0);
case CLR_GREEN: return RGB( 0, 128, 0);
case CLR_BROWN: return RGB(165, 42, 42);
case CLR_BLUE: return RGB( 0, 0, 255);
case CLR_MAGENTA: return RGB(255, 0, 255);
case CLR_CYAN: return RGB( 0, 255, 255);
case CLR_GRAY: return RGB(192, 192, 192);
case NO_COLOR: return RGB(255, 255, 255);
case CLR_ORANGE: return RGB(255, 165, 0);
case CLR_BRIGHT_GREEN: return RGB( 0, 255, 0);
case CLR_YELLOW: return RGB(255, 255, 0);
case CLR_BRIGHT_BLUE: return RGB(0, 191, 255);
case CLR_BRIGHT_MAGENTA: return RGB(255, 127, 255);
case CLR_BRIGHT_CYAN: return RGB(127, 255, 255); /* something close to aquamarine */
case CLR_WHITE: return RGB(255, 255, 255);
default: return RGB( 0, 0, 0); /* black */
case CLR_BLACK: return RGB(0x55, 0x55, 0x55);
case CLR_RED: return RGB(0xFF, 0x00, 0x00);
case CLR_GREEN: return RGB(0x00, 0x80, 0x00);
case CLR_BROWN: return RGB(0xA5, 0x2A, 0x2A);
case CLR_BLUE: return RGB(0x00, 0x00, 0xFF);
case CLR_MAGENTA: return RGB(0xFF, 0x00, 0xFF);
case CLR_CYAN: return RGB(0x00, 0xFF, 0xFF);
case CLR_GRAY: return RGB(0xC0, 0xC0, 0xC0);
case NO_COLOR: return RGB(0xFF, 0xFF, 0xFF);
case CLR_ORANGE: return RGB(0xFF, 0xA5, 0x00);
case CLR_BRIGHT_GREEN: return RGB(0x00, 0xFF, 0x00);
case CLR_YELLOW: return RGB(0xFF, 0xFF, 0x00);
case CLR_BRIGHT_BLUE: return RGB(0x00, 0xC0, 0xFF);
case CLR_BRIGHT_MAGENTA: return RGB(0xFF, 0x80, 0xFF);
case CLR_BRIGHT_CYAN: return RGB(0x80, 0xFF, 0xFF); /* something close to aquamarine */
case CLR_WHITE: return RGB(0xFF, 0xFF, 0xFF);
default: return RGB(0x00, 0x00, 0x00); /* black */
}
}

View File

@@ -59,6 +59,7 @@ void mswin_display_RIP_window (HWND hWnd)
RECT clientrect;
RECT textrect;
HDC hdc;
HFONT OldFont;
data = (PNHRIPWindow)GetWindowLong(hWnd, GWL_USERDATA);
@@ -75,8 +76,10 @@ void mswin_display_RIP_window (HWND hWnd)
if (data->window_text)
{
hdc = GetDC (hWnd);
OldFont = SelectObject (hdc, mswin_get_font(NHW_TEXT, 0, hdc, FALSE));
DrawText (hdc, data->window_text, strlen(data->window_text), &textrect,
DT_LEFT | DT_NOPREFIX | DT_CALCRECT);
SelectObject (hdc, OldFont);
ReleaseDC(hWnd, hdc);
}
if (textrect.right - textrect.left > RIP_WIDTH)
@@ -145,8 +148,10 @@ BOOL CALLBACK NHRIPWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam
HDC hdcBitmap;
HANDLE OldBitmap;
PAINTSTRUCT ps;
HFONT OldFont;
hdc = BeginPaint (hWnd, &ps);
OldFont = SelectObject (hdc, mswin_get_font(NHW_TEXT, 0, hdc, FALSE));
hdcBitmap = CreateCompatibleDC(hdc);
SetBkMode (hdc, TRANSPARENT);
GetClientRect (hWnd, &clientrect);
@@ -177,6 +182,7 @@ BOOL CALLBACK NHRIPWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam
DT_CENTER | DT_VCENTER | DT_NOPREFIX | DT_WORDBREAK);
}
SelectObject (hdcBitmap, OldBitmap);
SelectObject (hdc, OldFont);
DeleteDC (hdcBitmap);
EndPaint (hWnd, &ps);
}

View File

@@ -1549,29 +1549,42 @@ typedef struct ctv
COLORREF colorvalue;
} color_table_value;
/*
* The color list here is a combination of:
* NetHack colors. (See mhmap.c)
* HTML colors. (See http://www.w3.org/TR/REC-html40/types.html#h-6.5 )
*/
static color_table_value color_table[] = {
{ "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)},
{ "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)},
/* NetHack colors */
{ "black", RGB(0x55, 0x55, 0x55)},
{ "red", RGB(0xFF, 0x00, 0x00)},
{ "green", RGB(0x00, 0x80, 0x00)},
{ "brown", RGB(0xA5, 0x2A, 0x2A)},
{ "blue", RGB(0x00, 0x00, 0xFF)},
{ "magenta", RGB(0xFF, 0x00, 0xFF)},
{ "cyan", RGB(0x00, 0xFF, 0xFF)},
{ "orange", RGB(0xFF, 0xA5, 0x00)},
{ "brightgreen", RGB(0x00, 0xFF, 0x00)},
{ "yellow", RGB(0xFF, 0xFF, 0x00)},
{ "brightblue", RGB(0x00, 0xC0, 0xFF)},
{ "brightmagenta", RGB(0xFF, 0x80, 0xFF)},
{ "brightcyan", RGB(0x80, 0xFF, 0xFF)},
{ "white", RGB(0xFF, 0xFF, 0xFF)},
/* Remaining HTML colors */
{ "trueblack", RGB(0x00, 0x00, 0x00)},
{ "gray", RGB(0x80, 0x80, 0x80)},
{ "grey", RGB(0x80, 0x80, 0x80)},
{ "purple", RGB(0x80, 0x00, 0x80)},
{ "silver", RGB(0xC0, 0xC0, 0xC0)},
{ "maroon", RGB(0x80, 0x00, 0x00)},
{ "fuchsia", RGB(0xFF, 0x00, 0xFF)}, /* = NetHack magenta */
{ "lime", RGB(0x00, 0xFF, 0x00)}, /* = NetHack bright green */
{ "olive", RGB(0x80, 0x80, 0x00)},
{ "navy", RGB(0x00, 0x00, 0x80)},
{ "teal", RGB(0x00, 0x80, 0x80)},
{ "aqua", RGB(0x00, 0xFF, 0xFF)}, /* = NetHack cyan */
{ "", RGB(0x00, 0x00, 0x00)},
};
typedef struct ctbv