uint map_tile_hgt;
bool map_active;
-#ifdef JP
+#if 1 /* #ifdef JP */
LOGFONT lf;
#endif
*/
static DIBINIT infGraph;
-#ifdef USE_TRANSPARENCY
-
/*
* The global bitmap mask
*/
static DIBINIT infMask;
-#endif /* USE_TRANSPARENCY */
-
#endif /* USE_GRAPHICS */
static cptr ANGBAND_DIR_XTRA_GRAF;
static cptr ANGBAND_DIR_XTRA_SOUND;
static cptr ANGBAND_DIR_XTRA_HELP;
-#ifndef JP
+#if 0 /* #ifndef JP */
static cptr ANGBAND_DIR_XTRA_FONT;
#endif
#ifdef USE_MUSIC
/*
+ * Flag for macro trigger with dump ASCII
+ */
+static bool Term_no_press = FALSE;
+
+
+/*
* The "simple" color values
*
* See "main-ibm.c" for original table information
* Hack -- initialization list for "special_key"
*/
static byte special_key_list[] = {
-VK_CLEAR,VK_PAUSE,VK_CAPITAL,VK_KANA,VK_JUNJA,VK_FINAL,VK_KANJI,
-VK_CONVERT,VK_NONCONVERT,VK_ACCEPT,VK_MODECHANGE,
-VK_PRIOR,VK_NEXT,VK_END,VK_HOME,VK_LEFT,VK_UP,VK_RIGHT,VK_DOWN,
-VK_SELECT,VK_PRINT,VK_EXECUTE,VK_SNAPSHOT,VK_INSERT,VK_DELETE,
-VK_HELP,VK_APPS,
-VK_F1,VK_F2,VK_F3,VK_F4,VK_F5,VK_F6,VK_F7,VK_F8,VK_F9,VK_F10,
-VK_F11,VK_F12,VK_F13,VK_F14,VK_F15,VK_F16,VK_F17,VK_F18,VK_F19,VK_F20,
-VK_F21,VK_F22,VK_F23,VK_F24,VK_NUMLOCK,VK_SCROLL,
-VK_ATTN,VK_CRSEL,VK_EXSEL,VK_EREOF,VK_PLAY,VK_ZOOM,VK_NONAME,
-VK_PA1,0
+ VK_CLEAR, VK_PAUSE, VK_CAPITAL,
+ VK_KANA, VK_JUNJA, VK_FINAL, VK_KANJI,
+ VK_CONVERT, VK_NONCONVERT, VK_ACCEPT, VK_MODECHANGE,
+ VK_PRIOR, VK_NEXT, VK_END, VK_HOME,
+ VK_LEFT, VK_UP, VK_RIGHT, VK_DOWN,
+ VK_SELECT, VK_PRINT, VK_EXECUTE, VK_SNAPSHOT,
+ VK_INSERT, VK_DELETE, VK_HELP, VK_APPS,
+ VK_NUMPAD0, VK_NUMPAD1, VK_NUMPAD2, VK_NUMPAD3,
+ VK_NUMPAD4, VK_NUMPAD5, VK_NUMPAD6, VK_NUMPAD7,
+ VK_NUMPAD8, VK_NUMPAD9, VK_MULTIPLY, VK_ADD,
+ VK_SEPARATOR, VK_SUBTRACT, VK_DECIMAL, VK_DIVIDE,
+ VK_F1, VK_F2, VK_F3, VK_F4, VK_F5, VK_F6,
+ VK_F7, VK_F8, VK_F9, VK_F10, VK_F11, VK_F12,
+ VK_F13, VK_F14, VK_F15, VK_F16, VK_F17, VK_F18,
+ VK_F19,VK_F20, VK_F21, VK_F22, VK_F23, VK_F24,
+ VK_NUMLOCK, VK_SCROLL, VK_ATTN, VK_CRSEL,
+ VK_EXSEL, VK_EREOF, VK_PLAY, VK_ZOOM,
+ VK_NONAME, VK_PA1,
+ 0 /* End of List */
};
static byte ignore_key_list[] = {
-VK_ESCAPE,VK_TAB,VK_SPACE,
-'F','W','O','H', /* these are menu characters.*/
-VK_SHIFT,VK_CONTROL,VK_MENU,VK_LWIN,VK_RWIN,
-VK_LSHIFT,VK_RSHIFT,VK_LCONTROL,VK_RCONTROL,VK_LMENU,VK_RMENU,0
+ VK_ESCAPE, VK_TAB, VK_SPACE,
+ 'F', 'W', 'O', /*'H',*/ /* these are menu characters.*/
+ VK_SHIFT, VK_CONTROL, VK_MENU, VK_LWIN, VK_RWIN,
+ VK_LSHIFT, VK_RSHIFT, VK_LCONTROL, VK_RCONTROL,
+ VK_LMENU, VK_RMENU,
+ 0 /* End of List */
};
-
#else
/*
* Hack -- initialization list for "special_key"
VK_INSERT, /* 0x2D (KP<0>) */
VK_DELETE, /* 0x2E (KP<.>) */
VK_HELP, /* 0x2F (?????) */
-
#if 0
VK_NUMPAD0, /* 0x60 (KP<0>) */
VK_NUMPAD1, /* 0x61 (KP<1>) */
VK_DECIMAL, /* 0x6E (KP<.>) */
VK_DIVIDE, /* 0x6F (KP</>) */
#endif
-
VK_F1, /* 0x70 */
VK_F2, /* 0x71 */
VK_F3, /* 0x72 */
VK_F22, /* 0x85 */
VK_F23, /* 0x86 */
VK_F24, /* 0x87 */
-
0
};
#endif
hBG = LoadImage(NULL, bmfile, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
if (!hBG) {
+#ifdef JP
plog_fmt("ÊÉ»æÍÑ¥Ó¥Ã¥È¥Þ¥Ã¥× '%s' ¤òÆɤ߹þ¤á¤Þ¤»¤ó¡£", bmfile);
+#else
+ plog_fmt("Can't load the bitmap file '%s'.", bmfile);
+#endif
use_bg = 0;
return 0;
}
*
* Return a pointer to a static buffer holding the capitalized base name.
*/
-#ifndef JP
+#if 0 /* #ifndef JP */
static char *analyze_font(char *path, int *wp, int *hp)
{
int wid, hgt;
}
/* Find first 'X' */
- s = strchr(p, 'X');
+ s = my_strchr(p, 'X');
/* Extract font width */
wid = atoi(p);
#ifdef JP
strcpy(buf, td->lf.lfFaceName[0]!='\0' ? td->lf.lfFaceName : "£Í£Ó ¥´¥·¥Ã¥¯");
#else
+#if 0
strcpy(buf, td->font_file ? td->font_file : "8X13.FON");
+#else
+ strcpy(buf, td->lf.lfFaceName[0]!='\0' ? td->lf.lfFaceName : "Courier");
+#endif
#endif
WritePrivateProfileString(sec_name, "Font", buf, ini_file);
-#ifdef JP
+#if 1 /* #ifdef JP */
wsprintf(buf, "%d", td->lf.lfWidth);
WritePrivateProfileString(sec_name, "FontWid", buf, ini_file);
wsprintf(buf, "%d", td->lf.lfHeight);
#ifdef JP
GetPrivateProfileString(sec_name, "Font", "£Í£Ó ¥´¥·¥Ã¥¯", tmp, 127, ini_file);
#else
+#if 0
GetPrivateProfileString(sec_name, "Font", "8X13.FON", tmp, 127, ini_file);
+#else
+ GetPrivateProfileString(sec_name, "Font", "Courier", tmp, 127, ini_file);
+#endif
#endif
td->bizarre = (GetPrivateProfileInt(sec_name, "Bizarre", td->bizarre, ini_file) != 0);
/* Analyze font, save desired font name */
-#ifdef JP
+#if 1 /* #ifdef JP */
td->font_want = string_make(tmp);
hgt = 15; wid = 0;
td->lf.lfWidth = GetPrivateProfileInt(sec_name, "FontWid", wid, ini_file);
/* Tile size */
-#ifdef JP
+#if 1 /* #ifdef JP */
td->tile_wid = GetPrivateProfileInt(sec_name, "TileWid", td->lf.lfWidth, ini_file);
td->tile_hgt = GetPrivateProfileInt(sec_name, "TileHgt", td->lf.lfHeight, ini_file);
#else
infGraph.CellWidth = wid;
infGraph.CellHeight = hgt;
-#ifdef USE_TRANSPARENCY
-
if (arg_graphics == GRAPHICS_ADAM_BOLT)
{
/* Access the mask file */
}
}
-#endif /* USE_TRANSPARENCY */
-
/* Activate a palette */
if (!new_palette())
{
{
int wid, hgt;
-#ifndef JP
+#if 0 /* #ifndef JP */
int i;
char *base;
char buf[1024];
/* Forget the old font (if needed) */
if (td->font_id) DeleteObject(td->font_id);
-#ifndef JP
+#if 1 /* #ifdef JP */
+ /* Unused */
+ (void)path;
+
+ /* Create the font (using the 'base' of the font file name!) */
+ td->font_id = CreateFontIndirect(&(td->lf));
+ wid = td->lf.lfWidth;
+ hgt = td->lf.lfHeight;
+ if (!td->font_id) return (1);
+#else
/* Forget old font */
if (td->font_file)
{
td->font_file = NULL;
}
-
/* No path given */
if (!path) return (1);
-
/* Local copy */
strcpy(buf, path);
/* Remove the "suffix" */
base[strlen(base)-4] = '\0';
-#endif
/* Create the font (using the 'base' of the font file name!) */
-#ifdef JP
- td->font_id = CreateFontIndirect(&(td->lf));
- wid = td->lf.lfWidth;
- hgt = td->lf.lfHeight;
- if (!td->font_id) return (1);
-#else
td->font_id = CreateFont(hgt, wid, 0, 0, FW_DONTCARE, 0, 0, 0,
ANSI_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
FIXED_PITCH | FF_DONTCARE, base);
#endif
-
/* Hack -- Unknown size */
if (!wid || !hgt)
{
*/
static void term_change_font(term_data *td)
{
-#ifdef JP
+#if 1 /* #ifdef JP */
CHOOSEFONT cf;
memset(&cf, 0, sizeof(cf));
*/
static errr Term_user_win(int n)
{
+ /* Unused */
+ (void)n;
+
/* Success */
return (0);
}
RECT rc;
HDC hdc;
-
-#ifdef JP
+#if 1 /* #ifdef JP */
static HBITMAP WALL;
static HBRUSH myBrush, oldBrush;
static HPEN oldPen;
rc.right += td->tile_wid;
}
#else
+#if 1
+ if (*(s+i)==127){
+ oldBrush = SelectObject(hdc, myBrush);
+ oldPen = SelectObject(hdc, GetStockObject(NULL_PEN) );
+
+ /* Dump the wall */
+ Rectangle(hdc, rc.left, rc.top, rc.right+1, rc.bottom+1);
+
+ SelectObject(hdc, oldBrush);
+ SelectObject(hdc, oldPen);
+
+ /* Advance */
+ rc.left += td->tile_wid;
+ rc.right += td->tile_wid;
+ } else {
+ /* Dump the text */
+ ExtTextOut(hdc, rc.left, rc.top, ETO_CLIPPED, &rc,
+ s+i, 1, NULL);
+
+ /* Advance */
+ rc.left += td->tile_wid;
+ rc.right += td->tile_wid;
+ }
+#else
/* Dump the text */
ExtTextOut(hdc, rc.left, rc.top, 0, &rc,
s+i, 1, NULL);
rc.left += td->tile_wid;
rc.right += td->tile_wid;
#endif
+#endif
}
}
*
* If "graphics" is not available, we simply "wipe" the given grids.
*/
-# ifdef USE_TRANSPARENCY
static errr Term_pict_win(int x, int y, int n, const byte *ap, const char *cp, const byte *tap, const char *tcp)
-# else /* USE_TRANSPARENCY */
-static errr Term_pict_win(int x, int y, int n, const byte *ap, const char *cp)
-# endif /* USE_TRANSPARENCY */
{
term_data *td = (term_data*)(Term->data);
int i;
int x1, y1, w1, h1;
int x2, y2, w2, h2, tw2;
-
-# ifdef USE_TRANSPARENCY
-
int x3, y3;
HDC hdcMask;
-# endif /* USE_TRANSPARENCY */
-
HDC hdc;
HDC hdcSrc;
HBITMAP hbmSrcOld;
hdcSrc = CreateCompatibleDC(hdc);
hbmSrcOld = SelectObject(hdcSrc, infGraph.hBitmap);
-# ifdef USE_TRANSPARENCY
-
if (arg_graphics == GRAPHICS_ADAM_BOLT)
{
hdcMask = CreateCompatibleDC(hdc);
SelectObject(hdcMask, infMask.hBitmap);
}
-# endif /* USE_TRANSPARENCY */
-
/* Draw attr/char pairs */
for (i = 0; i < n; i++, x2 += w2)
{
x1 = col * w1;
y1 = row * h1;
-# ifdef USE_TRANSPARENCY
-
if (arg_graphics == GRAPHICS_ADAM_BOLT)
{
x3 = (tcp[i] & 0x7F) * w1;
}
}
else
-
-# endif /* USE_TRANSPARENCY */
-
{
/* Perfect size */
if ((w1 == tw2) && (h1 == h2))
SelectObject(hdcSrc, hbmSrcOld);
DeleteDC(hdcSrc);
-# ifdef USE_TRANSPARENCY
-
if (arg_graphics == GRAPHICS_ADAM_BOLT)
{
/* Release */
DeleteDC(hdcMask);
}
-# endif /* USE_TRANSPARENCY */
-
/* Release */
ReleaseDC(td->w, hdc);
int x, min_x, max_x;
int y, min_y, max_y;
-#ifdef USE_TRANSPARENCY
byte ta, tc;
-#endif
/* Only in graphics mode */
if (!use_graphics) return;
{
for (y = min_y; y < max_y; y++)
{
-#ifdef USE_TRANSPARENCY
map_info(y, x, &a, (char*)&c, &ta, (char*)&tc);
-#else /* USE_TRANSPARENCY */
- map_info(y, x, &a, (char*)&c);
-#endif /* USE_TRANSPARENCY */
/* Ignore non-graphics */
if ((a & 0x80) && (c & 0x80))
{
-#ifdef USE_TRANSPARENCY
Term_pict_win(x - min_x, y - min_y, 1, &a, &c, &ta, &tc);
-#else /* USE_TRANSPARENCY */
- Term_pict_win(x - min_x, y - min_y, 1, &a, &c);
-#endif /* USE_TRANSPARENCY */
}
}
}
term_data *td;
-#ifndef JP
+#if 0 /* #ifndef JP */
char buf[1024];
#endif
td->pos_x = 7 * 30;
td->pos_y = 7 * 20;
td->posfix = FALSE;
-
-#ifdef JP
+#if 1 /* #ifdef JP */
td->bizarre = TRUE;
#endif
/* Sub windows */
td->pos_x = (7 - i) * 30;
td->pos_y = (7 - i) * 20;
td->posfix = FALSE;
-#ifdef JP
+#if 1 /* #ifdef JP */
td->bizarre = TRUE;
#endif
}
{
td = &data[i];
-#ifdef JP
+#if 1 /* #ifdef JP */
strncpy(td->lf.lfFaceName, td->font_want, LF_FACESIZE);
+#ifdef JP
td->lf.lfCharSet = SHIFTJIS_CHARSET;
+#else
+ td->lf.lfCharSet = ANSI_CHARSET;
+#endif
td->lf.lfPitchAndFamily = FIXED_PITCH | FF_DONTCARE;
/* Activate the chosen font */
term_force_font(td, NULL);
}
+static bool process_keydown(WPARAM wParam, LPARAM lParam)
+{
+ int i;
+ bool mc = FALSE;
+ bool ms = FALSE;
+ bool ma = FALSE;
+
+ /* Extract the modifiers */
+ if (GetKeyState(VK_CONTROL) & 0x8000) mc = TRUE;
+ if (GetKeyState(VK_SHIFT) & 0x8000) ms = TRUE;
+ if (GetKeyState(VK_MENU) & 0x8000) ma = TRUE;
+
+ Term_no_press = (ma) ? TRUE : FALSE;
+
+ /* Handle "special" keys */
+ if (special_key[(byte)(wParam)] || (ma && !ignore_key[(byte)(wParam)]) )
+ {
+ bool ext_key = (lParam & 0x1000000L) ? TRUE : FALSE;
+ bool numpad = FALSE;
+
+ /* Begin the macro trigger */
+ Term_keypress(31);
+
+ /* Send the modifiers */
+ if (mc) Term_keypress('C');
+ if (ms) Term_keypress('S');
+ if (ma) Term_keypress('A');
+
+ /* Extract "scan code" */
+ i = LOBYTE(HIWORD(lParam));
+
+ /* Introduce the scan code */
+ Term_keypress('x');
+
+ /* Extended key bit */
+ switch (wParam)
+ {
+ /* Numpad Enter and '/' are extended key */
+ case VK_DIVIDE:
+ Term_no_press = TRUE;
+ case VK_RETURN: /* Enter */
+ numpad = ext_key;
+ break;
+ /* Other extended keys are on full keyboard */
+ case VK_NUMPAD0:
+ case VK_NUMPAD1:
+ case VK_NUMPAD2:
+ case VK_NUMPAD3:
+ case VK_NUMPAD4:
+ case VK_NUMPAD5:
+ case VK_NUMPAD6:
+ case VK_NUMPAD7:
+ case VK_NUMPAD8:
+ case VK_NUMPAD9:
+ case VK_ADD:
+ case VK_MULTIPLY:
+ case VK_SUBTRACT:
+ case VK_SEPARATOR:
+ case VK_DECIMAL:
+ Term_no_press = TRUE;
+ case VK_CLEAR:
+ case VK_HOME:
+ case VK_END:
+ case VK_PRIOR: /* Page Up */
+ case VK_NEXT: /* Page Down */
+ case VK_INSERT:
+ case VK_DELETE:
+ case VK_UP:
+ case VK_DOWN:
+ case VK_LEFT:
+ case VK_RIGHT:
+ numpad = !ext_key;
+ }
+
+ /* Special modifiers for keypad keys */
+ if (numpad) Term_keypress('K');
+
+ /* Encode the hexidecimal scan code */
+ Term_keypress(hexsym[i/16]);
+ Term_keypress(hexsym[i%16]);
+
+ /* End the macro trigger */
+ Term_keypress(13);
+
+ return 1;
+ }
+
+ return 0;
+}
+
#ifdef __MWERKS__
LRESULT FAR PASCAL AngbandWndProc(HWND hWnd, UINT uMsg,
case WM_SYSKEYDOWN:
case WM_KEYDOWN:
{
- bool mc = FALSE;
- bool ms = FALSE;
- bool ma = FALSE;
-
- /* Extract the modifiers */
- if (GetKeyState(VK_CONTROL) & 0x8000) mc = TRUE;
- if (GetKeyState(VK_SHIFT) & 0x8000) ms = TRUE;
- if (GetKeyState(VK_MENU) & 0x8000) ma = TRUE;
-
- /* Handle "special" keys */
- if (special_key[(byte)(wParam)] || (ma && !ignore_key[(byte)(wParam)]) )
- {
- bool ext_key = (lParam & 0x1000000L) ? TRUE : FALSE;
- bool numpad = FALSE;
-
- /* Begin the macro trigger */
- Term_keypress(31);
-
- /* Send the modifiers */
- if (mc) Term_keypress('C');
- if (ms) Term_keypress('S');
- if (ma) Term_keypress('A');
-
- /* Extract "scan code" */
- i = LOBYTE(HIWORD(lParam));
-
- /* Introduce the scan code */
- Term_keypress('x');
-
- /* Extended key bit */
- switch (i)
- {
- case VK_ENTER:
- case '/':
- /* Numpad Enter and '/' are extended key */
- numpad = ext_key;
- default:
- /* Other extended keys are on full keyboard */
- numpad = !ext_key;
- }
-
- /* Special modifiers for keypad keys */
- if (numpad) Term_keypress('K');
-
- /* Encode the hexidecimal scan code */
- Term_keypress(hexsym[i/16]);
- Term_keypress(hexsym[i%16]);
-
- /* End the macro trigger */
- Term_keypress(13);
-
+ if (process_keydown(wParam, lParam))
return 0;
- }
-
break;
}
case WM_CHAR:
{
- Term_keypress(wParam);
+ if (Term_no_press) Term_no_press = FALSE;
+ else Term_keypress(wParam);
return 0;
}
#else /* ZANGBAND */
/* do_cmd_save_game(); */
#endif /* ZANGBAND */
- Term_key_push(252);
+ Term_key_push(SPECIAL_KEY_QUIT);
return 0;
}
quit(NULL);
return 0;
}
+ case WM_QUERYENDSESSION:
+ {
+ if (game_in_progress && character_generated)
+ {
+ /* Hack -- Forget messages */
+ msg_flag = FALSE;
+
+ /* Mega-Hack -- Delay death */
+ if (p_ptr->chp < 0) p_ptr->is_dead = FALSE;
+
+#ifdef JP
+ do_cmd_write_nikki(NIKKI_GAMESTART, 0, "----¥²¡¼¥àÃæÃÇ----");
+#else
+ do_cmd_write_nikki(NIKKI_GAMESTART, 0, "---- Save and Exit Game ----");
+#endif
+
+ /* Hardcode panic save */
+ p_ptr->panic_save = 1;
+
+ /* Forbid suspend */
+ signals_ignore_tstp();
+
+ /* Indicate panic save */
+#ifdef JP
+ (void)strcpy(p_ptr->died_from, "(¶ÛµÞ¥»¡¼¥Ö)");
+#else
+ (void)strcpy(p_ptr->died_from, "(panic save)");
+#endif
+
+ /* Panic save */
+ (void)save_player();
+ }
+ quit(NULL);
+ return 0;
+ }
+
case WM_QUIT:
{
quit(NULL);
case WM_SYSKEYDOWN:
case WM_KEYDOWN:
{
- bool mc = FALSE;
- bool ms = FALSE;
- bool ma = FALSE;
-
- /* Extract the modifiers */
- if (GetKeyState(VK_CONTROL) & 0x8000) mc = TRUE;
- if (GetKeyState(VK_SHIFT) & 0x8000) ms = TRUE;
- if (GetKeyState(VK_MENU) & 0x8000) ma = TRUE;
-
- /* Handle "special" keys */
- if (special_key[(byte)(wParam)] || (ma && !ignore_key[(byte)(wParam)]) )
- {
- /* Begin the macro trigger */
- Term_keypress(31);
-
- /* Send the modifiers */
- if (mc) Term_keypress('C');
- if (ms) Term_keypress('S');
- if (ma) Term_keypress('A');
-
- /* Extract "scan code" */
- i = LOBYTE(HIWORD(lParam));
-
- /* Introduce the scan code */
- Term_keypress('x');
-
- /* Encode the hexidecimal scan code */
- Term_keypress(hexsym[i/16]);
- Term_keypress(hexsym[i%16]);
-
- /* End the macro trigger */
- Term_keypress(13);
-
+ if (process_keydown(wParam, lParam))
return 0;
- }
-
break;
}
case WM_CHAR:
{
- Term_keypress(wParam);
+ if (Term_no_press) Term_no_press = FALSE;
+ else Term_keypress(wParam);
return 0;
}
if (infGraph.hPalette) DeleteObject(infGraph.hPalette);
if (infGraph.hBitmap) DeleteObject(infGraph.hBitmap);
-#ifdef USE_TRANSPARENCY
if (infMask.hPalette) DeleteObject(infMask.hPalette);
if (infMask.hBitmap) DeleteObject(infMask.hBitmap);
-#endif /* USE_TRANSPARENCY */
#endif /* USE_GRAPHICS */
validate_file(path);
-#ifndef JP
+#if 0 /* #ifndef JP */
/* Build the "font" path */
path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "font");
HDC hdc;
MSG msg;
+ /* Unused */
+ (void)nCmdShow;
+
/* Save globally */
hInstance = hInst;
}
}
+ /* Catch nasty signals */
+ signals_init();
/* Initialize */
init_angband();