OSDN Git Service

[Refactor] #40274 WIN32のプリプロが有効であることを前提とし、main-win.c からプリプロ自体を削除 / Removed WIN32...
[hengband/hengband.git] / src / main-win.c
index d409293..d81d3cd 100644 (file)
@@ -1,4 +1,5 @@
 /*!
+* todo main関数を含むファイルの割に長過ぎる。main-win-utils.cなどといった形で分割したい
 * @file main-win.c
 * @brief Windows版固有実装(メインエントリポイント含む)
 * @date 2018/03/16
 * <p>
 * Compiling this file, and using the resulting executable, requires
 * several extra files not distributed with the standard Angband code.
-* If "USE_GRAPHICS" is defined, then "readdib.h" and "readdib.c" must
-* be placed into "src/", and the "8X8.BMP" bitmap file must be placed
-* into "lib/xtra/graf".  In any case, some "*.fon" files (including
-* "8X13.FON" if nothing else) must be placed into "lib/xtra/font/".
-* If "USE_SOUND" is defined, then some special library (for example,
-* "winmm.lib") may need to be linked in, and desired "*.WAV" sound
-* files must be placed into "lib/xtra/sound/".  All of these extra
-* files can be found in the "ext-win" archive.
+* In any case, some "*.fon" files (including "8X13.FON" if nothing else)
+* must be placed into "lib/xtra/font/".  All of these extra files can be found
+* in the "ext-win" archive.
 * </p>
 *
 * <p>
-* The "Term_xtra_win_clear()" function should probably do a low-level
+* The "term_xtra_win_clear()" function should probably do a low-level
 * clear of the current window, and redraw the borders and other things,
-* if only for efficiency.  
+* if only for efficiency.
 * </p>
 *
 * <p>
 * window, I think, and only a few calls actually check for its existance,
 * this may be okay since "NULL" means "on top of all windows". (?)  The
 * user must never be allowed to "hide" the main window, or the "menubar"
-* will disappear.  
+* will disappear.
 * </p>
 *
 * <p>
 * Special "Windows Help Files" can be placed into "lib/xtra/help/" for
 * use with the "winhelp.exe" program.  These files *may* be available
-* at the ftp site somewhere, but I have not seen them.  
+* at the ftp site somewhere, but I have not seen them.
 * </p>
 *
 * <p>
 */
 
 #include "angband.h"
+#include "signal-handlers.h"
 #include "util.h"
 #include "inet.h"
+#include "chuukei.h"
 
-#include "cmd-dump.h"
+#include "io/write-diary.h"
+#include "cmd/cmd-dump.h"
+#include "cmd/cmd-save.h"
 #include "view-mainwindow.h"
 #include "floor.h"
 #include "floor-events.h"
 #include "dungeon.h"
 
 /*
- * Extract the "WIN32" flag from the compiler
- */
-#if defined(__WIN32__) || defined(__WINNT__) || defined(__NT__)
-# ifndef WIN32
-#  define WIN32
-# endif
-#endif
-
-/*
  * Available graphic modes
  */
 #define GRAPHICS_NONE       0
 #define GRAPHICS_HENGBAND   3
 
 /*
- * Hack -- allow use of "screen saver" mode
- */
-#define USE_SAVER
-
-
-/*
  * Menu constants -- see "ANGBAND.RC"
  */
-
 #define IDM_FILE_NEW                   100
 #define IDM_FILE_OPEN                  101
 #define IDM_FILE_SAVE                  110
 #include <windows.h>
 
 /*
- * Exclude parts of MMSYSTEM.H that are not needed
- */
+* Exclude parts of MMSYSTEM.H that are not needed
+*/
 #define MMNODRV          /* Installable driver support */
 #define MMNOWAVE         /* Waveform support */
 #define MMNOMIDI         /* MIDI support */
 #define MMNOMMIO         /* Multimedia file I/O support */
 #define MMNOMMSYSTEM     /* General MMSYSTEM functions */
 
+#define INVALID_FILE_NAME (DWORD)0xFFFFFFFF
 
- /*
 * Standard sound names
 */
+/*
+ * Standard sound names
+ */
 const concptr angband_sound_name[SOUND_MAX] =
 {
        "dummy",
@@ -413,50 +398,22 @@ const concptr angband_music_basic_name[MUSIC_BASIC_MAX] =
 #include <commdlg.h>
 
 /*
- * HTML-Help requires htmlhelp.h and htmlhelp.lib from Microsoft's
- * HTML Workshop < http://msdn.microsoft.com/workshop/author/htmlhelp/ >.
- */
-/* #define HTML_HELP */
-
-#ifdef HTML_HELP
-#include <htmlhelp.h>
-#endif /* HTML_HELP */
-
-/*
  * Include the support for loading bitmaps
  */
-#ifdef USE_GRAPHICS
-# include "readdib.h"
-#endif
-
-/*
- * Hack -- Fake declarations from "dos.h" 
- */
-#ifdef WIN32
-#define INVALID_FILE_NAME (DWORD)0xFFFFFFFF
-#else /* WIN32 */
-#define FA_LABEL    0x08        /* Volume label */
-#define FA_DIREC    0x10        /* Directory */
-unsigned _cdecl _dos_getfileattr(concptr , unsigned *);
-#endif /* WIN32 */
+#include "readdib.h"
 
-/*
- * Silliness in WIN32 drawing routine
- */
-#ifdef WIN32
-# define MoveTo(H,X,Y) MoveToEx(H, X, Y, NULL)
-#endif /* WIN32 */
+#define MoveTo(H,X,Y) MoveToEx(H, X, Y, NULL)
 
-/*
- * Silliness for Windows 95
- */
+ /*
 * Silliness for Windows 95
 */
 #ifndef WS_EX_TOOLWINDOW
 # define WS_EX_TOOLWINDOW 0
 #endif
 
-/*
- * Foreground color bits (hard-coded by DOS)
- */
+  /*
  * Foreground color bits (hard-coded by DOS)
  */
 #define VID_BLACK      0x00
 #define VID_BLUE       0x01
 #define VID_GREEN      0x02
@@ -466,14 +423,14 @@ unsigned _cdecl _dos_getfileattr(concptr , unsigned *);
 #define VID_YELLOW     0x06
 #define VID_WHITE      0x07
 
-/*
- * Bright text (hard-coded by DOS)
- */
+   /*
      * Bright text (hard-coded by DOS)
      */
 #define VID_BRIGHT     0x08
 
-/*
- * Background color bits (hard-coded by DOS)
- */
+       /*
       * Background color bits (hard-coded by DOS)
       */
 #define VUD_BLACK      0x00
 #define VUD_BLUE       0x10
 #define VUD_GREEN      0x20
@@ -483,15 +440,15 @@ unsigned _cdecl _dos_getfileattr(concptr , unsigned *);
 #define VUD_YELLOW     0x60
 #define VUD_WHITE      0x70
 
-/*
- * Blinking text (hard-coded by DOS)
- */
+        /*
        * Blinking text (hard-coded by DOS)
        */
 #define VUD_BRIGHT     0x80
 
 
-/*
- * Forward declare
- */
+         /*
         * Forward declare
         */
 typedef struct _term_data term_data;
 
 /*!
@@ -552,9 +509,7 @@ struct _term_data
        uint map_tile_hgt;
 
        bool map_active;
-#if 1 /* #ifdef JP */
        LOGFONT lf;
-#endif
 
        bool posfix;
 
@@ -616,23 +571,16 @@ static HBITMAP hBG = NULL;
 static int use_bg = 0; //!< 背景使用フラグ、1なら私用。
 static char bg_bitmap_file[1024] = "bg.bmp"; //!< 現在の背景ビットマップファイル名。
 
-#ifdef USE_SAVER
-
 /*
  * The screen saver window
  */
 static HWND hwndSaver;
 
-#endif /* USE_SAVER */
-
-
-#ifdef USE_GRAPHICS
-
 /*!
  * 現在使用中のタイルID(0ならば未使用)
  * Flag set once "graphics" has been initialized
  */
-static byte_hack current_graphics_mode = 0;
+static byte current_graphics_mode = 0;
 
 /*
  * The global bitmap
@@ -644,11 +592,6 @@ static DIBINIT infGraph;
  */
 static DIBINIT infMask;
 
-#endif /* USE_GRAPHICS */
-
-
-#ifdef USE_SOUND
-
 /*
  * Flag set once "sound" has been initialized
  */
@@ -660,12 +603,6 @@ static bool can_use_sound = FALSE;
  */
 static concptr sound_file[SOUND_MAX][SAMPLE_SOUND_MAX];
 
-#endif /* USE_SOUND */
-
-
-
-#ifdef USE_MUSIC
-
 #define SAMPLE_MUSIC_MAX 16
 static concptr music_file[MUSIC_BASIC_MAX][SAMPLE_MUSIC_MAX];
 static concptr dungeon_music_file[1000][SAMPLE_MUSIC_MAX];
@@ -679,9 +616,6 @@ static char mci_device_type[256];
 int current_music_type = 0;
 int current_music_id = 0;
 
-#endif /* USE_MUSIC */
-
-
 /*
  * Full path to ANGBAND.INI
  */
@@ -704,13 +638,7 @@ static concptr ANGBAND_DIR_XTRA_GRAF;
 static concptr ANGBAND_DIR_XTRA_SOUND;
 static concptr ANGBAND_DIR_XTRA_MUSIC;
 static concptr ANGBAND_DIR_XTRA_HELP;
-#if 0 /* #ifndef JP */
-static concptr ANGBAND_DIR_XTRA_FONT;
-#endif
-#ifdef USE_MUSIC
 static concptr ANGBAND_DIR_XTRA_MUSIC;
-#endif
-
 
 /*
  * The "complex" color values
@@ -721,7 +649,7 @@ static COLORREF win_clr[256];
 /*
  * Flag for macro trigger with dump ASCII
  */
-static bool Term_no_press = FALSE;
+static bool term_no_press = FALSE;
 
 /*
  * Copy and paste
@@ -766,7 +694,6 @@ static BYTE win_pal[256] =
 static bool special_key[256];
 static bool ignore_key[256];
 
-#if 1
 /*
  * Hack -- initialization list for "special_key"
  */
@@ -800,85 +727,6 @@ static byte ignore_key_list[] = {
        VK_LMENU, VK_RMENU,
        0       /* End of List */
 };
-#else
-/*
- * Hack -- initialization list for "special_key"
- *
- * We ignore the modifier keys (shift, control, alt, num lock, scroll lock),
- * and the normal keys (escape, tab, return, letters, numbers, etc), but we
- * catch the keypad keys (with and without numlock set, including keypad 5),
- * the function keys (including the "menu" key which maps to F10), and the
- * "pause" key (between scroll lock and numlock).  We also catch a few odd
- * keys which I do not recognize, but which are listed among keys which we
- * do catch, so they should be harmless to catch.
- */
-static byte special_key_list[] =
-{
-       VK_CLEAR,               /* 0x0C (KP<5>) */
-
-       VK_PAUSE,               /* 0x13 (pause) */
-
-       VK_PRIOR,               /* 0x21 (KP<9>) */
-       VK_NEXT,                /* 0x22 (KP<3>) */
-       VK_END,                 /* 0x23 (KP<1>) */
-       VK_HOME,                /* 0x24 (KP<7>) */
-       VK_LEFT,                /* 0x25 (KP<4>) */
-       VK_UP,                  /* 0x26 (KP<8>) */
-       VK_RIGHT,               /* 0x27 (KP<6>) */
-       VK_DOWN,                /* 0x28 (KP<2>) */
-       VK_SELECT,              /* 0x29 (?????) */
-       VK_PRINT,               /* 0x2A (?????) */
-       VK_EXECUTE,             /* 0x2B (?????) */
-       VK_SNAPSHOT,    /* 0x2C (?????) */
-       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_NUMPAD2,             /* 0x62 (KP<2>) */
-       VK_NUMPAD3,             /* 0x63 (KP<3>) */
-       VK_NUMPAD4,             /* 0x64 (KP<4>) */
-       VK_NUMPAD5,             /* 0x65 (KP<5>) */
-       VK_NUMPAD6,             /* 0x66 (KP<6>) */
-       VK_NUMPAD7,             /* 0x67 (KP<7>) */
-       VK_NUMPAD8,             /* 0x68 (KP<8>) */
-       VK_NUMPAD9,             /* 0x69 (KP<9>) */
-       VK_MULTIPLY,    /* 0x6A (KP<*>) */
-       VK_ADD,                 /* 0x6B (KP<+>) */
-       VK_SEPARATOR,   /* 0x6C (?????) */
-       VK_SUBTRACT,    /* 0x6D (KP<->) */
-       VK_DECIMAL,             /* 0x6E (KP<.>) */
-       VK_DIVIDE,              /* 0x6F (KP</>) */
-#endif
-       VK_F1,                  /* 0x70 */
-       VK_F2,                  /* 0x71 */
-       VK_F3,                  /* 0x72 */
-       VK_F4,                  /* 0x73 */
-       VK_F5,                  /* 0x74 */
-       VK_F6,                  /* 0x75 */
-       VK_F7,                  /* 0x76 */
-       VK_F8,                  /* 0x77 */
-       VK_F9,                  /* 0x78 */
-       VK_F10,                 /* 0x79 */
-       VK_F11,                 /* 0x7A */
-       VK_F12,                 /* 0x7B */
-       VK_F13,                 /* 0x7C */
-       VK_F14,                 /* 0x7D */
-       VK_F15,                 /* 0x7E */
-       VK_F16,                 /* 0x7F */
-       VK_F17,                 /* 0x80 */
-       VK_F18,                 /* 0x81 */
-       VK_F19,                 /* 0x82 */
-       VK_F20,                 /* 0x83 */
-       VK_F21,                 /* 0x84 */
-       VK_F22,                 /* 0x85 */
-       VK_F23,                 /* 0x86 */
-       VK_F24,                 /* 0x87 */
-       0
-};
-#endif
-
 
 /* Function prototype */
 
@@ -902,7 +750,7 @@ static int init_bg(void)
        delete_bg();
        if (use_bg == 0) return 0;
 
-       hBG = LoadImage(NULL, bmfile,  IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
+       hBG = LoadImage(NULL, bmfile, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
        if (!hBG) {
                plog_fmt(_("壁紙用ビットマップ '%s' を読み込めません。", "Can't load the bitmap file '%s'."), bmfile);
                use_bg = 0;
@@ -919,7 +767,7 @@ static void DrawBG(HDC hdc, RECT *r)
        BITMAP bm;
        int x = r->left, y = r->top;
        int nx, ny, sx, sy, swid, shgt, cwid, chgt;
-       
+
        if (!use_bg || !hBG)
                return;
 
@@ -936,81 +784,17 @@ static void DrawBG(HDC hdc, RECT *r)
                do {
                        sy = ny % shgt;
                        chgt = MIN(shgt - sy, r->bottom - ny);
-                               BitBlt(hdc, nx, ny, cwid, chgt, hdcSrc, sx, sy, SRCCOPY);
+                       BitBlt(hdc, nx, ny, cwid, chgt, hdcSrc, sx, sy, SRCCOPY);
                        ny += chgt;
                } while (ny < r->bottom);
                ny = y;
                nx += cwid;
        } while (nx < r->right);
-       
+
        SelectObject(hdcSrc, hOld);
        DeleteDC(hdcSrc);
 }
 
-#if 0
-/*
- * Hack -- given a pathname, point at the filename
- */
-static concptr extract_file_name(concptr s)
-{
-       concptr p;
-
-       /* Start at the end */
-       p = s + strlen(s) - 1;
-
-       /* Back up to divider */
-       while ((p >= s) && (*p != ':') && (*p != '\\')) p--;
-
-       /* Return file name */
-       return (p+1);
-}
-#endif
-
-
-/*
- * Hack -- given a simple filename, extract the "font size" info
- *
- * Return a pointer to a static buffer holding the capitalized base name.
- */
-#if 0 /* #ifndef JP */
-static char *analyze_font(char *path, int *wp, int *hp)
-{
-       int wid, hgt;
-
-       char *s, *p;
-
-       /* Start at the end */
-       p = path + strlen(path) - 1;
-
-       /* Back up to divider */
-       while ((p >= path) && (*p != ':') && (*p != '\\')) --p;
-
-       /* Advance to file name */
-       ++p;
-
-       /* Capitalize */
-       for (s = p; *s; ++s)
-       {
-               /* Capitalize (be paranoid) */
-               if (islower(*s)) *s = toupper(*s);
-       }
-
-       /* Find first 'X' */
-       s = my_strchr(p, 'X');
-
-       /* Extract font width */
-       wid = atoi(p);
-
-       /* Extract height */
-       hgt = s ? atoi(s+1) : 0;
-
-       /* Save results */
-       (*wp) = wid;
-       (*hp) = hgt;
-       return (p);
-}
-#endif
-
 
 /*
  * Check for existance of a file
@@ -1018,46 +802,22 @@ static char *analyze_font(char *path, int *wp, int *hp)
 static bool check_file(concptr s)
 {
        char path[1024];
-
-#ifdef WIN32
-
        DWORD attrib;
 
-#else /* WIN32 */
-
-       unsigned int attrib;
-
-#endif /* WIN32 */
-
        /* Copy it */
        strcpy(path, s);
 
-#ifdef WIN32
-
        /* Examine */
        attrib = GetFileAttributes(path);
 
        /* Require valid filename */
-       if (attrib == INVALID_FILE_NAME) return (FALSE);
-
-       /* Prohibit directory */
-       if (attrib & FILE_ATTRIBUTE_DIRECTORY) return (FALSE);
-
-#else /* WIN32 */
-
-       /* Examine and verify */
-       if (_dos_getfileattr(path, &attrib)) return (FALSE);
-
-       /* Prohibit something */
-       if (attrib & FA_LABEL) return (FALSE);
+       if (attrib == INVALID_FILE_NAME) return FALSE;
 
        /* Prohibit directory */
-       if (attrib & FA_DIREC) return (FALSE);
-
-#endif /* WIN32 */
+       if (attrib & FILE_ATTRIBUTE_DIRECTORY) return FALSE;
 
        /* Success */
-       return (TRUE);
+       return TRUE;
 }
 
 
@@ -1069,17 +829,8 @@ static bool check_dir(concptr s)
        int i;
 
        char path[1024];
-
-#ifdef WIN32
-
        DWORD attrib;
 
-#else /* WIN32 */
-
-       unsigned int attrib;
-
-#endif /* WIN32 */
-
        /* Copy it */
        strcpy(path, s);
 
@@ -1087,34 +838,19 @@ static bool check_dir(concptr s)
        i = strlen(path);
 
        /* Remove trailing backslash */
-       if (i && (path[i-1] == '\\')) path[--i] = '\0';
-
-#ifdef WIN32
+       if (i && (path[i - 1] == '\\')) path[--i] = '\0';
 
        /* Examine */
        attrib = GetFileAttributes(path);
 
        /* Require valid filename */
-       if (attrib == INVALID_FILE_NAME) return (FALSE);
-
-       /* Require directory */
-       if (!(attrib & FILE_ATTRIBUTE_DIRECTORY)) return (FALSE);
-
-#else /* WIN32 */
-
-       /* Examine and verify */
-       if (_dos_getfileattr(path, &attrib)) return (FALSE);
-
-       /* Prohibit something */
-       if (attrib & FA_LABEL) return (FALSE);
+       if (attrib == INVALID_FILE_NAME) return FALSE;
 
        /* Require directory */
-       if (!(attrib & FA_DIREC)) return (FALSE);
-
-#endif /* WIN32 */
+       if (!(attrib & FILE_ATTRIBUTE_DIRECTORY)) return FALSE;
 
        /* Success */
-       return (TRUE);
+       return TRUE;
 }
 
 
@@ -1220,25 +956,19 @@ static void save_prefs_aux(int i)
 
        /* Font */
 #ifdef JP
-       strcpy(buf, td->lf.lfFaceName[0]!='\0' ? td->lf.lfFaceName : "MS ゴシック");
-#else
-#if 0
-       strcpy(buf, td->font_file ? td->font_file : "8X13.FON");
+       strcpy(buf, td->lf.lfFaceName[0] != '\0' ? td->lf.lfFaceName : "MS ゴシック");
 #else
-       strcpy(buf, td->lf.lfFaceName[0]!='\0' ? td->lf.lfFaceName : "Courier");
-#endif
+       strcpy(buf, td->lf.lfFaceName[0] != '\0' ? td->lf.lfFaceName : "Courier");
 #endif
 
        WritePrivateProfileString(sec_name, "Font", buf, ini_file);
 
-#if 1 /* #ifdef JP */
        wsprintf(buf, "%d", td->lf.lfWidth);
        WritePrivateProfileString(sec_name, "FontWid", buf, ini_file);
        wsprintf(buf, "%d", td->lf.lfHeight);
        WritePrivateProfileString(sec_name, "FontHgt", buf, ini_file);
        wsprintf(buf, "%d", td->lf.lfWeight);
        WritePrivateProfileString(sec_name, "FontWgt", buf, ini_file);
-#endif
        /* Bizarre */
        strcpy(buf, td->bizarre ? "1" : "0");
        WritePrivateProfileString(sec_name, "Bizarre", buf, ini_file);
@@ -1324,7 +1054,7 @@ static void save_prefs(void)
        /* bg */
        strcpy(buf, use_bg ? "1" : "0");
        WritePrivateProfileString("Angband", "BackGround", buf, ini_file);
-       WritePrivateProfileString("Angband", "BackGroundBitmap", 
+       WritePrivateProfileString("Angband", "BackGroundBitmap",
                bg_bitmap_file[0] != '\0' ? bg_bitmap_file : "bg.bmp", ini_file);
 
        /* Save window prefs */
@@ -1345,11 +1075,11 @@ static void load_prefs_aux(int i)
        char tmp[1024];
 
        int wid, hgt, posx, posy;
-       int dispx = GetSystemMetrics( SM_CXVIRTUALSCREEN);
-       int dispy = GetSystemMetrics( SM_CYVIRTUALSCREEN);
-       posx=0;
-       posy=0;
-       
+       int dispx = GetSystemMetrics(SM_CXVIRTUALSCREEN);
+       int dispy = GetSystemMetrics(SM_CYVIRTUALSCREEN);
+       posx = 0;
+       posy = 0;
+
        /* Make section name */
        sprintf(sec_name, "Term-%d", i);
 
@@ -1366,38 +1096,23 @@ static void load_prefs_aux(int i)
 #ifdef JP
        GetPrivateProfileString(sec_name, "Font", "MS ゴシック", 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
 
 
        /* Bizarre */
        td->bizarre = (GetPrivateProfileInt(sec_name, "Bizarre", td->bizarre, ini_file) != 0);
 
        /* Analyze font, save desired font name */
-#if 1 /* #ifdef JP */
        td->font_want = string_make(tmp);
        hgt = 15; wid = 0;
-       td->lf.lfWidth  = GetPrivateProfileInt(sec_name, "FontWid", wid, ini_file);
+       td->lf.lfWidth = GetPrivateProfileInt(sec_name, "FontWid", wid, ini_file);
        td->lf.lfHeight = GetPrivateProfileInt(sec_name, "FontHgt", hgt, ini_file);
        td->lf.lfWeight = GetPrivateProfileInt(sec_name, "FontWgt", 0, ini_file);
-#else
-       td->font_want = string_make(analyze_font(tmp, &wid, &hgt));
-#endif
-
 
        /* Tile size */
-#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
-       td->tile_wid = GetPrivateProfileInt(sec_name, "TileWid", wid, ini_file);
-       td->tile_hgt = GetPrivateProfileInt(sec_name, "TileHgt", hgt, ini_file);
-#endif
-
 
        /* Window size */
        td->cols = GetPrivateProfileInt(sec_name, "NumCols", td->cols, ini_file);
@@ -1413,8 +1128,8 @@ static void load_prefs_aux(int i)
        /* Window position */
        posx = GetPrivateProfileInt(sec_name, "PositionX", posx, ini_file);
        posy = GetPrivateProfileInt(sec_name, "PositionY", posy, ini_file);
-       td->pos_x = MIN(MAX(0, posx), dispx-128);
-       td->pos_y = MIN(MAX(0, posy), dispy-128);
+       td->pos_x = MIN(MAX(0, posx), dispx - 128);
+       td->pos_y = MIN(MAX(0, posy), dispy - 128);
 
        /* Window Z position */
        if (i > 0)
@@ -1432,7 +1147,7 @@ static void load_prefs(void)
        int i;
 
        /* Extract the "arg_graphics" flag */
-       arg_graphics = (byte_hack)GetPrivateProfileInt("Angband", "Graphics", GRAPHICS_NONE, ini_file);
+       arg_graphics = (byte)GetPrivateProfileInt("Angband", "Graphics", GRAPHICS_NONE, ini_file);
 
        /* Extract the "arg_bigtile" flag */
        arg_bigtile = (GetPrivateProfileInt("Angband", "Bigtile", FALSE, ini_file) != 0);
@@ -1455,7 +1170,6 @@ static void load_prefs(void)
        }
 }
 
-#if defined(USE_SOUND) || defined(USE_MUSIC)
 
 /*
  * - Taken from files.c.
@@ -1483,7 +1197,7 @@ static s16b tokenize_whitespace(char *buf, s16b num, char **tokens)
                char *t;
 
                /* Skip leading whitespace */
-               for ( ; *s && iswspace(*s); ++s) /* loop */;
+               for (; *s && iswspace(*s); ++s) /* loop */;
 
                /* All done */
                if (!*s) break;
@@ -1505,9 +1219,6 @@ static s16b tokenize_whitespace(char *buf, s16b num, char **tokens)
        return (k);
 }
 
-#endif /* USE_SOUND || USE_MUSIC */
-
-#ifdef USE_SOUND
 
 static void load_sound_prefs(void)
 {
@@ -1539,9 +1250,6 @@ static void load_sound_prefs(void)
        }
 }
 
-#endif /* USE_SOUND */
-
-#ifdef USE_MUSIC
 
 static void load_music_prefs(void)
 {
@@ -1632,7 +1340,6 @@ static void load_music_prefs(void)
 
 }
 
-#endif /* USE_MUSIC */
 
 /*
  * Create the new global palette based on the bitmap palette
@@ -1661,7 +1368,7 @@ static int new_palette(void)
 
 
        /* This makes no sense */
-       if (!paletted) return (TRUE);
+       if (!paletted) return TRUE;
 
 
        /* No bitmap */
@@ -1669,8 +1376,6 @@ static int new_palette(void)
        lppe = NULL;
        nEntries = 0;
 
-#ifdef USE_GRAPHICS
-
        /* Check the bitmap palette */
        hBmPal = infGraph.hPalette;
 
@@ -1689,12 +1394,10 @@ static int new_palette(void)
                        rnfree(lppe, lppeSize);
 
                        /* Fail */
-                       return (FALSE);
+                       return FALSE;
                }
        }
 
-#endif /* USE_GRAPHICS */
-
        /* Size of palette */
        pLogPalSize = sizeof(LOGPALETTE) + (nEntries + 16) * sizeof(PALETTEENTRY);
 
@@ -1719,7 +1422,7 @@ static int new_palette(void)
                LPPALETTEENTRY p;
 
                /* Access the entry */
-               p = &(pLogPal->palPalEntry[i+nEntries]);
+               p = &(pLogPal->palPalEntry[i + nEntries]);
 
                /* Save the colors */
                p->peRed = GetRValue(win_clr[i]);
@@ -1768,11 +1471,10 @@ static int new_palette(void)
        hPal = hNewPal;
 
        /* Success */
-       return (TRUE);
+       return TRUE;
 }
 
 
-#ifdef USE_GRAPHICS
 /*!
  * @brief グラフィクスを初期化する / Initialize graphics
  * @details
@@ -1841,7 +1543,7 @@ static bool init_graphics(void)
        if (!ReadDIB(data[0].w, buf, &infGraph))
        {
                plog_fmt(_("ビットマップ '%s' を読み込めません。", "Cannot read bitmap file '%s'"), name);
-               return (FALSE);
+               return FALSE;
        }
 
        /* Save the new sizes */
@@ -1861,7 +1563,7 @@ static bool init_graphics(void)
                if (!ReadDIB(data[0].w, buf, &infMask))
                {
                        plog_fmt("Cannot read bitmap file '%s'", buf);
-                       return (FALSE);
+                       return FALSE;
                }
        }
        if (arg_graphics == GRAPHICS_HENGBAND)
@@ -1873,7 +1575,7 @@ static bool init_graphics(void)
                if (!ReadDIB(data[0].w, buf, &infMask))
                {
                        plog_fmt("Cannot read bitmap file '%s'", buf);
-                       return (FALSE);
+                       return FALSE;
                }
        }
 
@@ -1883,17 +1585,15 @@ static bool init_graphics(void)
                /* Free bitmap */
 
                plog(_("パレットを実現できません!", "Cannot activate palette!"));
-               return (FALSE);
+               return FALSE;
        }
 
        /* Graphics available */
        current_graphics_mode = arg_graphics;
        return (current_graphics_mode);
 }
-#endif /* USE_GRAPHICS */
 
 
-#ifdef USE_MUSIC
 /*
  * Initialize music
  */
@@ -1920,9 +1620,7 @@ static void stop_music(void)
        mciSendCommand(mop.wDeviceID, MCI_CLOSE, 0, 0);
 }
 
-#endif /* USE_MUSIC */
 
-#ifdef USE_SOUND
 /*
  * Initialize sound
  */
@@ -1939,7 +1637,6 @@ static bool init_sound(void)
        }
        return (can_use_sound);
 }
-#endif /* USE_SOUND */
 
 
 /*
@@ -1952,8 +1649,8 @@ static void term_window_resize(term_data *td)
 
        /* Resize the window */
        SetWindowPos(td->w, 0, 0, 0,
-                    td->size_wid, td->size_hgt,
-                    SWP_NOMOVE | SWP_NOZORDER);
+               td->size_wid, td->size_hgt,
+               SWP_NOMOVE | SWP_NOZORDER);
 
        /* Redraw later */
        InvalidateRect(td->w, NULL, TRUE);
@@ -1973,16 +1670,9 @@ static errr term_force_font(term_data *td, concptr path)
 {
        int wid, hgt;
 
-#if 0 /* #ifndef JP */
-       int i;
-       char *base;
-       char buf[1024];
-#endif
-
        /* Forget the old font (if needed) */
        if (td->font_id) DeleteObject(td->font_id);
 
-#if 1 /* #ifdef JP */
        /* Unused */
        (void)path;
 
@@ -1990,68 +1680,7 @@ static errr term_force_font(term_data *td, concptr path)
        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)
-       {
-               bool used = FALSE;
-
-               /* Scan windows */
-               for (i = 0; i < MAX_TERM_DATA; i++)
-               {
-                       /* Don't check when closing the application */
-                       if (!path) break;
-
-                       /* Check "screen" */
-                       if ((td != &data[i]) &&
-                           (data[i].font_file) &&
-                           (streq(data[i].font_file, td->font_file)))
-                       {
-                               used = TRUE;
-                       }
-               }
-
-               /* Remove unused font resources */
-               if (!used) RemoveFontResource(td->font_file);
-
-               /* Free the old name */
-               string_free(td->font_file);
-
-               /* Forget it */
-               td->font_file = NULL;
-       }
-
-       /* No path given */
-       if (!path) return (1);
-
-       /* Local copy */
-       strcpy(buf, path);
-
-       /* Analyze font path */
-       base = analyze_font(buf, &wid, &hgt);
-
-       /* Verify suffix */
-       if (!suffix(base, ".FON")) return (1);
-
-       /* Verify file */
-       if (!check_file(buf)) return (1);
-
-       /* Load the new font */
-       if (!AddFontResource(buf)) return (1);
-
-       /* Save new font name */
-       td->font_file = string_make(base);
-
-       /* Remove the "suffix" */
-       base[strlen(base)-4] = '\0';
-
-       /* Create the font (using the 'base' of the font file name!) */
-       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
+       if (!td->font_id) return 1;
 
        /* Hack -- Unknown size */
        if (!wid || !hgt)
@@ -2077,7 +1706,7 @@ static errr term_force_font(term_data *td, concptr path)
        td->font_hgt = hgt;
 
        /* Success */
-       return (0);
+       return 0;
 }
 
 
@@ -2087,13 +1716,12 @@ static errr term_force_font(term_data *td, concptr path)
  */
 static void term_change_font(term_data *td)
 {
-#if 1 /* #ifdef JP */
        CHOOSEFONT cf;
 
        memset(&cf, 0, sizeof(cf));
        cf.lStructSize = sizeof(cf);
-    cf.Flags = CF_SCREENFONTS | CF_FIXEDPITCHONLY | CF_NOVERTFONTS | CF_INITTOLOGFONTSTRUCT;
-    cf.lpLogFont = &(td->lf);
+       cf.Flags = CF_SCREENFONTS | CF_FIXEDPITCHONLY | CF_NOVERTFONTS | CF_INITTOLOGFONTSTRUCT;
+       cf.lpLogFont = &(td->lf);
 
        if (ChooseFont(&cf))
        {
@@ -2113,77 +1741,29 @@ static void term_change_font(term_data *td)
                /* Resize the window */
                term_window_resize(td);
        }
-
-#else
-       OPENFILENAME ofn;
-
-       char tmp[1024] = "";
-
-       /* Extract a default if possible */
-       if (td->font_file) strcpy(tmp, td->font_file);
-
-       /* Ask for a choice */
-       memset(&ofn, 0, sizeof(ofn));
-       ofn.lStructSize = sizeof(ofn);
-       ofn.hwndOwner = data[0].w;
-       ofn.lpstrFilter = "Angband Font Files (*.fon)\0*.fon\0";
-       ofn.nFilterIndex = 1;
-       ofn.lpstrFile = tmp;
-       ofn.nMaxFile = 128;
-       ofn.lpstrInitialDir = ANGBAND_DIR_XTRA_FONT;
-       ofn.Flags = OFN_FILEMUSTEXIST | OFN_NOCHANGEDIR;
-       ofn.lpstrDefExt = "fon";
-
-       /* Force choice if legal */
-       if (GetOpenFileName(&ofn))
-       {
-               /* Force the font */
-               if (term_force_font(td, tmp))
-               {
-                       /* Access the standard font file */
-                       path_build(tmp, sizeof(tmp), ANGBAND_DIR_XTRA_FONT, "8X13.FON");
-
-                       /* Force the use of that font */
-                       (void)term_force_font(td, tmp);
-               }
-
-               /* Assume not bizarre */
-               td->bizarre = FALSE;
-
-               /* Reset the tile info */
-               td->tile_wid = td->font_wid;
-               td->tile_hgt = td->font_hgt;
-
-               /* Analyze the font */
-               term_getsize(td);
-
-               /* Resize the window */
-               term_window_resize(td);
-       }
-#endif
-
 }
 
+
 /*
  * Allow the user to lock this window.
  */
 static void term_window_pos(term_data *td, HWND hWnd)
 {
        SetWindowPos(td->w, hWnd, 0, 0, 0, 0,
-                       SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
+               SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
 }
 
-static void windows_map(void);
+static void windows_map(player_type *player_ptr);
 
 /*
  * Hack -- redraw a term_data
  */
-static void term_data_redraw(term_data *td)
+static void term_data_redraw(player_type *player_ptr, term_data *td)
 {
        if (td->map_active)
        {
                /* Redraw the map */
-               windows_map();
+               windows_map(player_ptr);
        }
        else
        {
@@ -2199,7 +1779,7 @@ static void term_data_redraw(term_data *td)
 }
 
 
-void Term_inversed_area(HWND hWnd, int x, int y, int w, int h)
+void term_inversed_area(HWND hWnd, int x, int y, int w, int h)
 {
        HDC hdc;
        HPEN oldPen;
@@ -2214,7 +1794,7 @@ void Term_inversed_area(HWND hWnd, int x, int y, int w, int h)
        hdc = GetDC(hWnd);
        myBrush = CreateSolidBrush(RGB(255, 255, 255));
        oldBrush = SelectObject(hdc, myBrush);
-       oldPen = SelectObject(hdc, GetStockObject(NULL_PEN) );
+       oldPen = SelectObject(hdc, GetStockObject(NULL_PEN));
 
        PatBlt(hdc, tx, ty, tw, th, PATINVERT);
 
@@ -2223,49 +1803,23 @@ void Term_inversed_area(HWND hWnd, int x, int y, int w, int h)
 }
 
 
-
-/*** Function hooks needed by "Term" ***/
-
-
-#if 0
-
-/*
- * Initialize a new Term
- */
-static void Term_init_win(term *t)
-{
-       /* XXX Unused */
-}
-
-
-/*
- * Nuke an old Term
- */
-static void Term_nuke_win(term *t)
-{
-       /* XXX Unused */
-}
-
-#endif
-
-
 /*!
  * @brief //!< Windows版ユーザ設定項目実装部(実装必須) /Interact with the User
  */
-static errr Term_user_win(int n)
+static errr term_user_win(int n)
 {
        /* Unused */
        (void)n;
 
        /* Success */
-       return (0);
+       return 0;
 }
 
 
 /*
  * React to global changes
  */
-static errr Term_xtra_win_react(void)
+static errr term_xtra_win_react(player_type *player_ptr)
 {
        int i;
 
@@ -2315,9 +1869,6 @@ static errr Term_xtra_win_react(void)
                if (change) (void)new_palette();
        }
 
-
-#ifdef USE_SOUND
-
        /* Handle "arg_sound" */
        if (use_sound != arg_sound)
        {
@@ -2335,10 +1886,6 @@ static errr Term_xtra_win_react(void)
                use_sound = arg_sound;
        }
 
-#endif
-
-#ifdef USE_MUSIC
-
        /* Handle "arg_sound" */
        if (use_music != arg_music)
        {
@@ -2354,16 +1901,11 @@ static errr Term_xtra_win_react(void)
                /* Change setting */
                use_music = arg_music;
 
-               if(!arg_music) stop_music();
-               else select_floor_music(p_ptr);
+               if (!arg_music) stop_music();
+               else select_floor_music(player_ptr);
 
        }
 
-#endif
-
-
-#ifdef USE_GRAPHICS
-
        /* Handle "arg_graphics" */
        if (use_graphics != arg_graphics)
        {
@@ -2381,16 +1923,9 @@ static errr Term_xtra_win_react(void)
                use_graphics = arg_graphics;
 
                /* Reset visuals */
-#ifdef ANGBAND_2_8_1
-               reset_visuals();
-#else /* ANGBAND_2_8_1 */
-               reset_visuals(TRUE);
-#endif /* ANGBAND_2_8_1 */
+               reset_visuals(player_ptr);
        }
 
-#endif /* USE_GRAPHICS */
-
-
        /* Clean up windows */
        for (i = 0; i < MAX_TERM_DATA; i++)
        {
@@ -2415,14 +1950,14 @@ static errr Term_xtra_win_react(void)
 
 
        /* Success */
-       return (0);
+       return 0;
 }
 
 
 /*
  * Process at least one event
  */
-static errr Term_xtra_win_event(int v)
+static errr term_xtra_win_event(int v)
 {
        MSG msg;
 
@@ -2456,7 +1991,7 @@ static errr Term_xtra_win_event(int v)
 /*
  * Process all pending events
  */
-static errr Term_xtra_win_flush(void)
+static errr term_xtra_win_flush(void)
 {
        MSG msg;
 
@@ -2468,16 +2003,16 @@ static errr Term_xtra_win_flush(void)
        }
 
        /* Success */
-       return (0);
+       return 0;
 }
 
 
 /*
  * Hack -- clear the screen
  *
- * Make this more efficient 
+ * Make this more efficient
  */
-static errr Term_xtra_win_clear(void)
+static errr term_xtra_win_clear(void)
 {
        term_data *td = (term_data*)(Term->data);
 
@@ -2512,30 +2047,26 @@ static errr Term_xtra_win_clear(void)
 /*
  * Hack -- make a noise
  */
-static errr Term_xtra_win_noise(void)
+static errr term_xtra_win_noise(void)
 {
        MessageBeep(MB_ICONASTERISK);
-       return (0);
+       return 0;
 }
 
 
 /*
  * Hack -- make a sound
  */
-static errr Term_xtra_win_sound(int v)
+static errr term_xtra_win_sound(int v)
 {
-#ifdef USE_SOUND
        int i;
        char buf[1024];
-#endif /* USE_SOUND */
 
        /* Sound disabled */
-       if (!use_sound) return (1);
+       if (!use_sound) return 1;
 
        /* Illegal sound */
-       if ((v < 0) || (v >= SOUND_MAX)) return (1);
-
-#ifdef USE_SOUND
+       if ((v < 0) || (v >= SOUND_MAX)) return 1;
 
        /* Count the samples */
        for (i = 0; i < SAMPLE_SOUND_MAX; i++)
@@ -2545,40 +2076,22 @@ static errr Term_xtra_win_sound(int v)
        }
 
        /* No sample */
-       if (i == 0) return (1);
+       if (i == 0) return 1;
 
        /* Build the path */
        path_build(buf, 1024, ANGBAND_DIR_XTRA_SOUND, sound_file[v][Rand_external(i)]);
 
-#ifdef WIN32
-
        /* Play the sound, catch errors */
        return (PlaySound(buf, 0, SND_FILENAME | SND_ASYNC));
-
-#else /* WIN32 */
-
-       /* Play the sound, catch errors */
-       return (sndPlaySound(buf, SND_ASYNC));
-
-#endif /* WIN32 */
-
-#else /* USE_SOUND */
-
-       return (1);
-
-#endif /* USE_SOUND */
 }
 
 /*
  * Hack -- play a music
  */
-static errr Term_xtra_win_music(int n, int v)
+static errr term_xtra_win_music(int n, int v)
 {
-#ifdef USE_MUSIC
        int i = 0;
        char buf[1024];
-#endif /* USE_MUSIC */
-
        /* Sound disabled */
        if (n == TERM_XTRA_MUSIC_MUTE)
        {
@@ -2586,37 +2099,35 @@ static errr Term_xtra_win_music(int n, int v)
                mciSendCommand(mop.wDeviceID, MCI_CLOSE, 0, 0);
        }
 
-       if(!use_music) return (1);
+       if (!use_music) return 1;
 
        /* Illegal sound */
-       if(n == TERM_XTRA_MUSIC_BASIC && ((v < 0) || (v >= MUSIC_BASIC_MAX))) return (1);
-       else if(v < 0 || v >= 1000) return(1); /*!< TODO */
+       if (n == TERM_XTRA_MUSIC_BASIC && ((v < 0) || (v >= MUSIC_BASIC_MAX))) return 1;
+       else if (v < 0 || v >= 1000) return(1); /*!< TODO */
 
-#ifdef USE_MUSIC
-
-       switch(n)
+       switch (n)
        {
        case TERM_XTRA_MUSIC_BASIC:
-               for (i = 0; i < SAMPLE_MUSIC_MAX; i++) if(!music_file[v][i]) break;
+               for (i = 0; i < SAMPLE_MUSIC_MAX; i++) if (!music_file[v][i]) break;
                break;
        case TERM_XTRA_MUSIC_DUNGEON:
-               for (i = 0; i < SAMPLE_MUSIC_MAX; i++) if(!dungeon_music_file[v][i]) break;
+               for (i = 0; i < SAMPLE_MUSIC_MAX; i++) if (!dungeon_music_file[v][i]) break;
                break;
        case TERM_XTRA_MUSIC_QUEST:
-               for (i = 0; i < SAMPLE_MUSIC_MAX; i++) if(!quest_music_file[v][i]) break;
+               for (i = 0; i < SAMPLE_MUSIC_MAX; i++) if (!quest_music_file[v][i]) break;
                break;
        case TERM_XTRA_MUSIC_TOWN:
-               for (i = 0; i < SAMPLE_MUSIC_MAX; i++) if(!town_music_file[v][i]) break;
+               for (i = 0; i < SAMPLE_MUSIC_MAX; i++) if (!town_music_file[v][i]) break;
                break;
        }
 
        /* No sample */
        if (i == 0)
        {
-               return (1);
+               return 1;
        }
 
-       switch(n)
+       switch (n)
        {
        case TERM_XTRA_MUSIC_BASIC:
                path_build(buf, 1024, ANGBAND_DIR_XTRA_MUSIC, music_file[v][Rand_external(i)]);
@@ -2632,136 +2143,102 @@ static errr Term_xtra_win_music(int n, int v)
                break;
        }
 
-       if(current_music_type == n && current_music_id == v)
+       if (current_music_type == n && current_music_id == v)
        {
-               return (0);
+               return 0;
        }
        current_music_type = n;
        current_music_id = v;
 
-#ifdef WIN32
-
-       mop.lpstrDeviceType = mci_device_type;  
+       mop.lpstrDeviceType = mci_device_type;
        mop.lpstrElementName = buf;
        mciSendCommand(mop.wDeviceID, MCI_STOP, 0, 0);
        mciSendCommand(mop.wDeviceID, MCI_CLOSE, 0, 0);
        mciSendCommand(mop.wDeviceID, MCI_OPEN, MCI_OPEN_TYPE | MCI_OPEN_ELEMENT, (DWORD)&mop);
        mciSendCommand(mop.wDeviceID, MCI_SEEK, MCI_SEEK_TO_START, 0);
        mciSendCommand(mop.wDeviceID, MCI_PLAY, MCI_NOTIFY, (DWORD)&mop);
-       return (0);
-
-#endif /* WIN32 */
-
-#else /* USE_MUSIC */
-
-       return (1);
-
-#endif /* USE_MUSIC */
-
+       return 0;
 }
 
 
 /*
  * Delay for "x" milliseconds
  */
-static int Term_xtra_win_delay(int v)
+static int term_xtra_win_delay(int v)
 {
-
-#ifdef WIN32
-
        /* Sleep */
        Sleep(v);
 
-#else /* WIN32 */
-
-       DWORD t;
-       MSG msg;
-
-       /* Final count */
-       t = GetTickCount() + v;
-
-       /* Wait for it */
-       while (GetTickCount() < t)
-       {
-               /* Handle messages */
-               if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
-               {
-                       TranslateMessage(&msg);
-                       DispatchMessage(&msg);
-               }
-       }
-
-#endif /* WIN32 */
-
        /* Success */
-       return (0);
+       return 0;
 }
 
 
 /*
+ * todo z-termに影響があるのでplayer_typeの追加は保留
  * Do a "special thing"
  */
-static errr Term_xtra_win(int n, int v)
+static errr term_xtra_win(int n, int v)
 {
        /* Handle a subset of the legal requests */
        switch (n)
        {
                /* Make a bell sound */
-               case TERM_XTRA_NOISE:
-               {
-                       return (Term_xtra_win_noise());
-               }
+       case TERM_XTRA_NOISE:
+       {
+               return (term_xtra_win_noise());
+       }
 
-               /* Play a music */
-               case TERM_XTRA_MUSIC_BASIC:
-               case TERM_XTRA_MUSIC_DUNGEON:
-               case TERM_XTRA_MUSIC_QUEST:
-               case TERM_XTRA_MUSIC_TOWN:
-               {
-                       return (Term_xtra_win_music(n, v));
-               }
+       /* Play a music */
+       case TERM_XTRA_MUSIC_BASIC:
+       case TERM_XTRA_MUSIC_DUNGEON:
+       case TERM_XTRA_MUSIC_QUEST:
+       case TERM_XTRA_MUSIC_TOWN:
+       {
+               return (term_xtra_win_music(n, v));
+       }
 
-               /* Make a special sound */
-               case TERM_XTRA_SOUND:
-               {
-                       return (Term_xtra_win_sound(v));
-               }
+       /* Make a special sound */
+       case TERM_XTRA_SOUND:
+       {
+               return (term_xtra_win_sound(v));
+       }
 
-               /* Process random events */
-               case TERM_XTRA_BORED:
-               {
-                       return (Term_xtra_win_event(0));
-               }
+       /* Process random events */
+       case TERM_XTRA_BORED:
+       {
+               return (term_xtra_win_event(0));
+       }
 
-               /* Process an event */
-               case TERM_XTRA_EVENT:
-               {
-                       return (Term_xtra_win_event(v));
-               }
+       /* Process an event */
+       case TERM_XTRA_EVENT:
+       {
+               return (term_xtra_win_event(v));
+       }
 
-               /* Flush all events */
-               case TERM_XTRA_FLUSH:
-               {
-                       return (Term_xtra_win_flush());
-               }
+       /* Flush all events */
+       case TERM_XTRA_FLUSH:
+       {
+               return (term_xtra_win_flush());
+       }
 
-               /* Clear the screen */
-               case TERM_XTRA_CLEAR:
-               {
-                       return (Term_xtra_win_clear());
-               }
+       /* Clear the screen */
+       case TERM_XTRA_CLEAR:
+       {
+               return (term_xtra_win_clear());
+       }
 
-               /* React to global changes */
-               case TERM_XTRA_REACT:
-               {
-                       return (Term_xtra_win_react());
-               }
+       /* React to global changes */
+       case TERM_XTRA_REACT:
+       {
+               return (term_xtra_win_react(p_ptr));
+       }
 
-               /* Delay for some milliseconds */
-               case TERM_XTRA_DELAY:
-               {
-                       return (Term_xtra_win_delay(v));
-               }
+       /* Delay for some milliseconds */
+       case TERM_XTRA_DELAY:
+       {
+               return (term_xtra_win_delay(v));
+       }
        }
 
        return 1;
@@ -2774,7 +2251,7 @@ static errr Term_xtra_win(int n, int v)
  *
  * Draw a "cursor" at (x,y), using a "yellow box".
  */
-static errr Term_curs_win(int x, int y)
+static errr term_curs_win(int x, int y)
 {
        term_data *td = (term_data*)(Term->data);
 
@@ -2815,7 +2292,7 @@ static errr Term_curs_win(int x, int y)
  *
  * Draw a "big cursor" at (x,y), using a "yellow box".
  */
-static errr Term_bigcurs_win(int x, int y)
+static errr term_bigcurs_win(int x, int y)
 {
        term_data *td = (term_data*)(Term->data);
 
@@ -2827,7 +2304,7 @@ static errr Term_bigcurs_win(int x, int y)
        if (td->map_active)
        {
                /* Normal cursor in map window */
-               Term_curs_win(x, y);
+               term_curs_win(x, y);
                return 0;
        }
        else
@@ -2857,7 +2334,7 @@ static errr Term_bigcurs_win(int x, int y)
  *
  * Erase a "block" of "n" characters starting at (x,y).
  */
-static errr Term_wipe_win(int x, int y, int n)
+static errr term_wipe_win(int x, int y, int n)
 {
        term_data *td = (term_data*)(Term->data);
 
@@ -2890,30 +2367,28 @@ static errr Term_wipe_win(int x, int y, int n)
  *
  * Draw several ("n") chars, with an attr, at a given location.
  *
- * All "graphic" data is handled by "Term_pict_win()", below.
+ * All "graphic" data is handled by "term_pict_win()", below.
  *
  * One would think there is a more efficient method for telling a window
  * what color it should be using to draw with, but perhaps simply changing
- * it every time is not too inefficient.  
+ * it every time is not too inefficient.
  */
-static errr Term_text_win(int x, int y, int n, TERM_COLOR a, concptr s)
+static errr term_text_win(int x, int y, int n, TERM_COLOR a, concptr s)
 {
        term_data *td = (term_data*)(Term->data);
        RECT rc;
        HDC hdc;
 
-#if 1 /* #ifdef JP */
        static HBITMAP  WALL;
        static HBRUSH   myBrush, oldBrush;
        static HPEN     oldPen;
        static bool init_done = FALSE;
 
-       if (!init_done){
+       if (!init_done) {
                WALL = LoadBitmap(hInstance, AppName);
                myBrush = CreatePatternBrush(WALL);
                init_done = TRUE;
        }
-#endif
 
        /* Total rectangle */
        rc.left = x * td->tile_wid + td->size_ow1;
@@ -2934,7 +2409,7 @@ static errr Term_text_win(int x, int y, int n, TERM_COLOR a, concptr s)
        }
        else if (paletted)
        {
-               SetTextColor(hdc, win_clr[a&0x0F]);
+               SetTextColor(hdc, win_clr[a & 0x0F]);
        }
        else
        {
@@ -2943,20 +2418,20 @@ static errr Term_text_win(int x, int y, int n, TERM_COLOR a, concptr s)
 
        /* Use the font */
        SelectObject(hdc, td->font_id);
-       
+
        /* bg */
        if (use_bg) SetBkMode(hdc, TRANSPARENT);
 
        /* Bizarre size */
        if (td->bizarre ||
-           (td->tile_hgt != td->font_hgt) ||
-           (td->tile_wid != td->font_wid))
+               (td->tile_hgt != td->font_hgt) ||
+               (td->tile_wid != td->font_wid))
        {
                int i;
 
                /* Erase complete rectangle */
                ExtTextOut(hdc, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL);
-               
+
                /* bg */
                if (use_bg) DrawBG(hdc, &rc);
 
@@ -2970,15 +2445,15 @@ static errr Term_text_win(int x, int y, int n, TERM_COLOR a, concptr s)
                for (i = 0; i < n; i++)
                {
 #ifdef JP
-                       if (use_bigtile && *(s+i)=="■"[0] && *(s+i+1)=="■"[1])
+                       if (use_bigtile && *(s + i) == "■"[0] && *(s + i + 1) == "■"[1])
                        {
                                rc.right += td->font_wid;
 
                                oldBrush = SelectObject(hdc, myBrush);
-                               oldPen = SelectObject(hdc, GetStockObject(NULL_PEN) );
+                               oldPen = SelectObject(hdc, GetStockObject(NULL_PEN));
 
                                /* Dump the wall */
-                               Rectangle(hdc, rc.left, rc.top, rc.right+1, rc.bottom+1);
+                               Rectangle(hdc, rc.left, rc.top, rc.right + 1, rc.bottom + 1);
 
                                SelectObject(hdc, oldBrush);
                                SelectObject(hdc, oldPen);
@@ -2989,24 +2464,25 @@ static errr Term_text_win(int x, int y, int n, TERM_COLOR a, concptr s)
                                rc.left += 2 * td->tile_wid;
                                rc.right += 2 * td->tile_wid;
                        }
-                       else if ( iskanji(*(s+i)) )  /*  2バイト文字  */
+                       else if (iskanji(*(s + i)))  /*  2バイト文字  */
                        {
                                rc.right += td->font_wid;
                                /* Dump the text */
                                ExtTextOut(hdc, rc.left, rc.top, ETO_CLIPPED, &rc,
-                                      s+i, 2, NULL);
+                                       s + i, 2, NULL);
                                rc.right -= td->font_wid;
 
                                /* Advance */
                                i++;
                                rc.left += 2 * td->tile_wid;
                                rc.right += 2 * td->tile_wid;
-                       } else if (*(s+i)==127){
+                       }
+                       else if (*(s + i) == 127) {
                                oldBrush = SelectObject(hdc, myBrush);
-                               oldPen = SelectObject(hdc, GetStockObject(NULL_PEN) );
+                               oldPen = SelectObject(hdc, GetStockObject(NULL_PEN));
 
                                /* Dump the wall */
-                               Rectangle(hdc, rc.left, rc.top, rc.right+1, rc.bottom+1);
+                               Rectangle(hdc, rc.left, rc.top, rc.right + 1, rc.bottom + 1);
 
                                SelectObject(hdc, oldBrush);
                                SelectObject(hdc, oldPen);
@@ -3014,22 +2490,22 @@ static errr Term_text_win(int x, int y, int n, TERM_COLOR a, concptr s)
                                /* Advance */
                                rc.left += td->tile_wid;
                                rc.right += td->tile_wid;
-                       } else {
+                       }
+                       else {
                                /* Dump the text */
-                               ExtTextOut(hdc, rc.left, rc.top, ETO_CLIPPED, &rc, s+i, 1, NULL);
+                               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
-#if 1
-                       if (*(s+i)==127){
+                       if (*(s + i) == 127) {
                                oldBrush = SelectObject(hdc, myBrush);
-                               oldPen = SelectObject(hdc, GetStockObject(NULL_PEN) );
+                               oldPen = SelectObject(hdc, GetStockObject(NULL_PEN));
 
                                /* Dump the wall */
-                               Rectangle(hdc, rc.left, rc.top, rc.right+1, rc.bottom+1);
+                               Rectangle(hdc, rc.left, rc.top, rc.right + 1, rc.bottom + 1);
 
                                SelectObject(hdc, oldBrush);
                                SelectObject(hdc, oldPen);
@@ -3037,24 +2513,16 @@ static errr Term_text_win(int x, int y, int n, TERM_COLOR a, concptr s)
                                /* Advance */
                                rc.left += td->tile_wid;
                                rc.right += td->tile_wid;
-                       } else {
+                       }
+                       else {
                                /* Dump the text */
                                ExtTextOut(hdc, rc.left, rc.top, ETO_CLIPPED, &rc,
-                                      s+i, 1, NULL);
+                                       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);
-
-                       /* Advance */
-                       rc.left += td->tile_wid;
-                       rc.right += td->tile_wid;
-#endif
 #endif
 
                }
@@ -3065,7 +2533,7 @@ static errr Term_text_win(int x, int y, int n, TERM_COLOR a, concptr s)
        {
                /* Dump the text */
                ExtTextOut(hdc, rc.left, rc.top, ETO_OPAQUE | ETO_CLIPPED, &rc,
-                          s, n, NULL);
+                       s, n, NULL);
        }
 
        /* Release DC */
@@ -3081,7 +2549,7 @@ static errr Term_text_win(int x, int y, int n, TERM_COLOR a, concptr s)
  *
  * Draw an array of "special" attr/char pairs at the given location.
  *
- * We use the "Term_pict_win()" function for "graphic" data, which are
+ * We use the "term_pict_win()" function for "graphic" data, which are
  * encoded by setting the "high-bits" of both the "attr" and the "char"
  * data.  We use the "attr" to represent the "row" of the main bitmap,
  * and the "char" to represent the "col" of the main bitmap.  The use
@@ -3089,12 +2557,9 @@ static errr Term_text_win(int x, int y, int n, TERM_COLOR a, concptr s)
  *
  * If "graphics" is not available, we simply "wipe" the given grids.
  */
-static errr Term_pict_win(TERM_LEN x, TERM_LEN y, int n, const TERM_COLOR *ap, concptr cp, const TERM_COLOR *tap, concptr tcp)
+static errr term_pict_win(TERM_LEN x, TERM_LEN y, int n, const TERM_COLOR *ap, concptr cp, const TERM_COLOR *tap, concptr tcp)
 {
        term_data *td = (term_data*)(Term->data);
-
-#ifdef USE_GRAPHICS
-
        int i;
        TERM_LEN x1, y1, w1, h1, tw1, th1;
        TERM_LEN x2, y2, w2, h2, tw2 = 0;
@@ -3108,7 +2573,7 @@ static errr Term_pict_win(TERM_LEN x, TERM_LEN y, int n, const TERM_COLOR *ap, c
        if (!use_graphics)
        {
                /* Erase the grids */
-               return (Term_wipe_win(x, y, n));
+               return (term_wipe_win(x, y, n));
        }
 
        /* Size of bitmap cell */
@@ -3242,19 +2707,12 @@ static errr Term_pict_win(TERM_LEN x, TERM_LEN y, int n, const TERM_COLOR *ap, c
        /* Release */
        ReleaseDC(td->w, hdc);
 
-#else /* USE_GRAPHICS */
-
-       /* Just erase this grid */
-       return (Term_wipe_win(x, y, n));
-
-#endif /* USE_GRAPHICS */
-
        /* Success */
        return 0;
 }
 
 
-static void windows_map(void)
+static void windows_map(player_type *player_ptr)
 {
        term_data *td = &data[0];
        TERM_COLOR a;
@@ -3267,7 +2725,7 @@ static void windows_map(void)
 
        /* Only in graphics mode */
        if (!use_graphics) return;
-       Term_xtra_win_clear();
+       term_xtra_win_clear();
 
        td->map_tile_wid = (td->tile_wid * td->cols) / MAX_WID;
        td->map_tile_hgt = (td->tile_hgt * td->rows) / MAX_HGT;
@@ -3276,8 +2734,8 @@ static void windows_map(void)
        {
                min_x = 0;
                min_y = 0;
-               max_x = p_ptr->current_floor_ptr->width;
-               max_y = p_ptr->current_floor_ptr->height;
+               max_x = player_ptr->current_floor_ptr->width;
+               max_y = player_ptr->current_floor_ptr->height;
        }
 
        /* Draw the map */
@@ -3285,18 +2743,18 @@ static void windows_map(void)
        {
                for (y = min_y; y < max_y; y++)
                {
-                       map_info(y, x, &a, (char*)&c, &ta, (char*)&tc);
+                       map_info(player_ptr, y, x, &a, (char*)&c, &ta, (char*)&tc);
 
                        /* Ignore non-graphics */
                        if ((a & 0x80) && (c & 0x80))
                        {
-                               Term_pict_win(x - min_x, y - min_y, 1, &a, &c, &ta, &tc);
+                               term_pict_win(x - min_x, y - min_y, 1, &a, &c, &ta, &tc);
                        }
                }
        }
 
        /* Hilite the player */
-       Term_curs_win(p_ptr->x - min_x, p_ptr->y - min_y);
+       term_curs_win(player_ptr->x - min_x, player_ptr->y - min_y);
 
        /* Wait for a keypress, flush key buffer */
        Term_inkey(&c, TRUE, TRUE);
@@ -3306,7 +2764,7 @@ static void windows_map(void)
        td->map_active = FALSE;
 
        /* Restore screen */
-       Term_xtra_win_clear();
+       term_xtra_win_clear();
        Term_redraw();
 }
 
@@ -3327,27 +2785,21 @@ static void term_data_link(term_data *td)
        /* Use a "software" cursor */
        t->soft_cursor = TRUE;
 
-       /* Use "Term_pict" for "graphic" data */
+       /* Use "term_pict" for "graphic" data */
        t->higher_pict = TRUE;
 
        /* Erase with "white space" */
        t->attr_blank = TERM_WHITE;
        t->char_blank = ' ';
 
-#if 0
-       /* Prepare the init/nuke hooks */
-       t->init_hook = Term_init_win;
-       t->nuke_hook = Term_nuke_win;
-#endif
-
        /* Prepare the template hooks */
-       t->user_hook = Term_user_win;
-       t->xtra_hook = Term_xtra_win;
-       t->curs_hook = Term_curs_win;
-       t->bigcurs_hook = Term_bigcurs_win;
-       t->wipe_hook = Term_wipe_win;
-       t->text_hook = Term_text_win;
-       t->pict_hook = Term_pict_win;
+       t->user_hook = term_user_win;
+       t->xtra_hook = term_xtra_win;
+       t->curs_hook = term_curs_win;
+       t->bigcurs_hook = term_bigcurs_win;
+       t->wipe_hook = term_wipe_win;
+       t->text_hook = term_text_win;
+       t->pict_hook = term_pict_win;
 
        /* Remember where we came from */
        t->data = (vptr)(td);
@@ -3361,7 +2813,7 @@ static void term_data_link(term_data *td)
  * to over-ride selected values, then create the windows, and fonts.
  *
  * Must use SW_SHOW not SW_SHOWNA, since on 256 color display
- * must make active to realize the palette.  
+ * must make active to realize the palette.
  */
 static void init_windows(void)
 {
@@ -3369,10 +2821,6 @@ static void init_windows(void)
 
        term_data *td;
 
-#if 0 /* #ifndef JP */
-       char buf[1024];
-#endif
-
        /* Main window */
        td = &data[0];
        WIPE(td, term_data);
@@ -3393,9 +2841,7 @@ static void init_windows(void)
        td->pos_x = 7 * 30;
        td->pos_y = 7 * 20;
        td->posfix = FALSE;
-#if 1 /* #ifdef JP */
        td->bizarre = TRUE;
-#endif
        /* Sub windows */
        for (i = 1; i < MAX_TERM_DATA; i++)
        {
@@ -3413,21 +2859,17 @@ static void init_windows(void)
                td->pos_x = (7 - i) * 30;
                td->pos_y = (7 - i) * 20;
                td->posfix = FALSE;
-#if 1 /* #ifdef JP */
-                       td->bizarre = TRUE;
-#endif
+               td->bizarre = TRUE;
        }
 
-
        /* Load prefs */
        load_prefs();
 
-
        /* Main window (need these before term_getsize gets called) */
        td = &data[0];
        td->dwStyle = (WS_OVERLAPPED | WS_THICKFRAME | WS_SYSMENU |
-                      WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CAPTION |
-                      WS_VISIBLE);
+               WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CAPTION |
+               WS_VISIBLE);
        td->dwExStyle = 0;
        td->visible = TRUE;
 
@@ -3445,35 +2887,13 @@ static void init_windows(void)
        {
                td = &data[i];
 
-#if 1 /* #ifdef JP */
                strncpy(td->lf.lfFaceName, td->font_want, LF_FACESIZE);
                td->lf.lfCharSet = DEFAULT_CHARSET;
                td->lf.lfPitchAndFamily = FIXED_PITCH | FF_DONTCARE;
                /* Activate the chosen font */
                term_force_font(td, NULL);
-               if(!td->tile_wid) td->tile_wid = td->font_wid;
-               if(!td->tile_hgt) td->tile_hgt = td->font_hgt;
-#else
-               /* Access the standard font file */
-               path_build(buf, sizeof(buf), ANGBAND_DIR_XTRA_FONT, td->font_want);
-
-               /* Activate the chosen font */
-               if (term_force_font(td, buf))
-               {
-                       /* Access the standard font file */
-                       path_build(buf, sizeof(buf), ANGBAND_DIR_XTRA_FONT, "8X13.FON");
-
-                       /* Force the use of that font */
-                       (void)term_force_font(td, buf);
-
-                       td->tile_wid = 8;
-                       td->tile_hgt = 13;
-
-                       /* Assume not bizarre */
-                       td->bizarre = FALSE;
-               }
-#endif
-
+               if (!td->tile_wid) td->tile_wid = td->font_wid;
+               if (!td->tile_hgt) td->tile_hgt = td->font_hgt;
 
                /* Analyze the font */
                term_getsize(td);
@@ -3490,10 +2910,10 @@ static void init_windows(void)
 
                my_td = td;
                td->w = CreateWindowEx(td->dwExStyle, AngList,
-                                      td->s, td->dwStyle,
-                                      td->pos_x, td->pos_y,
-                                      td->size_wid, td->size_hgt,
-                                      HWND_DESKTOP, NULL, hInstance, NULL);
+                       td->s, td->dwStyle,
+                       td->pos_x, td->pos_y,
+                       td->size_wid, td->size_hgt,
+                       HWND_DESKTOP, NULL, hInstance, NULL);
                my_td = NULL;
                if (!td->w) quit(_("サブウィンドウに作成に失敗しました", "Failed to create sub-window"));
 
@@ -3530,10 +2950,10 @@ static void init_windows(void)
        /* Main window */
        my_td = td;
        td->w = CreateWindowEx(td->dwExStyle, AppName,
-                              td->s, td->dwStyle,
-                              td->pos_x, td->pos_y,
-                              td->size_wid, td->size_hgt,
-                              HWND_DESKTOP, NULL, hInstance, NULL);
+               td->s, td->dwStyle,
+               td->pos_x, td->pos_y,
+               td->size_wid, td->size_hgt,
+               HWND_DESKTOP, NULL, hInstance, NULL);
        my_td = NULL;
        if (!td->w) quit(_("メインウィンドウの作成に失敗しました", "Failed to create Angband window"));
 
@@ -3559,7 +2979,7 @@ static void init_windows(void)
 
 
        /* Process pending messages */
-       (void)Term_xtra_win_flush();
+       (void)term_xtra_win_flush();
 }
 
 
@@ -3576,15 +2996,15 @@ static void setup_menus(void)
 
        /* Menu "File", Disable all */
        EnableMenuItem(hm, IDM_FILE_NEW,
-                      MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
        EnableMenuItem(hm, IDM_FILE_OPEN,
-                      MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
        EnableMenuItem(hm, IDM_FILE_SAVE,
-                      MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
        EnableMenuItem(hm, IDM_FILE_EXIT,
-                      MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
        EnableMenuItem(hm, IDM_FILE_SCORE,
-                      MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 
 
        /* No character available */
@@ -3602,40 +3022,40 @@ static void setup_menus(void)
        {
                /* Menu "File", Item "Save" */
                EnableMenuItem(hm, IDM_FILE_SAVE,
-                          MF_BYCOMMAND | MF_ENABLED);
+                       MF_BYCOMMAND | MF_ENABLED);
        }
 
        /* Menu "File", Item "Exit" */
        EnableMenuItem(hm, IDM_FILE_EXIT,
-                      MF_BYCOMMAND | MF_ENABLED);
+               MF_BYCOMMAND | MF_ENABLED);
 
        EnableMenuItem(hm, IDM_FILE_SCORE,
-                      MF_BYCOMMAND | MF_ENABLED);
+               MF_BYCOMMAND | MF_ENABLED);
 
 
        /* Menu "Window::Visibility" */
        for (i = 0; i < MAX_TERM_DATA; i++)
        {
                EnableMenuItem(hm, IDM_WINDOW_VIS_0 + i,
-                              MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+                       MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 
                CheckMenuItem(hm, IDM_WINDOW_VIS_0 + i,
-                             (data[i].visible ? MF_CHECKED : MF_UNCHECKED));
+                       (data[i].visible ? MF_CHECKED : MF_UNCHECKED));
 
                EnableMenuItem(hm, IDM_WINDOW_VIS_0 + i,
-                              MF_BYCOMMAND | MF_ENABLED);
+                       MF_BYCOMMAND | MF_ENABLED);
        }
 
        /* Menu "Window::Font" */
        for (i = 0; i < MAX_TERM_DATA; i++)
        {
                EnableMenuItem(hm, IDM_WINDOW_FONT_0 + i,
-                              MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+                       MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 
                if (data[i].visible)
                {
                        EnableMenuItem(hm, IDM_WINDOW_FONT_0 + i,
-                                      MF_BYCOMMAND | MF_ENABLED);
+                               MF_BYCOMMAND | MF_ENABLED);
                }
        }
 
@@ -3643,15 +3063,15 @@ static void setup_menus(void)
        for (i = 0; i < MAX_TERM_DATA; i++)
        {
                EnableMenuItem(hm, IDM_WINDOW_POS_0 + i,
-                              MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+                       MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 
                CheckMenuItem(hm, IDM_WINDOW_POS_0 + i,
-                             (data[i].posfix ? MF_CHECKED : MF_UNCHECKED));
+                       (data[i].posfix ? MF_CHECKED : MF_UNCHECKED));
 
                if (data[i].visible)
                {
                        EnableMenuItem(hm, IDM_WINDOW_POS_0 + i,
-                                      MF_BYCOMMAND | MF_ENABLED);
+                               MF_BYCOMMAND | MF_ENABLED);
                }
        }
 
@@ -3659,15 +3079,15 @@ static void setup_menus(void)
        for (i = 0; i < MAX_TERM_DATA; i++)
        {
                EnableMenuItem(hm, IDM_WINDOW_BIZ_0 + i,
-                              MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+                       MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 
                CheckMenuItem(hm, IDM_WINDOW_BIZ_0 + i,
-                             (data[i].bizarre ? MF_CHECKED : MF_UNCHECKED));
+                       (data[i].bizarre ? MF_CHECKED : MF_UNCHECKED));
 
                if (data[i].visible)
                {
                        EnableMenuItem(hm, IDM_WINDOW_BIZ_0 + i,
-                                  MF_BYCOMMAND | MF_ENABLED);
+                               MF_BYCOMMAND | MF_ENABLED);
 
                }
        }
@@ -3676,12 +3096,12 @@ static void setup_menus(void)
        for (i = 0; i < MAX_TERM_DATA; i++)
        {
                EnableMenuItem(hm, IDM_WINDOW_I_WID_0 + i,
-                              MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+                       MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 
                if (data[i].visible)
                {
                        EnableMenuItem(hm, IDM_WINDOW_I_WID_0 + i,
-                                  MF_BYCOMMAND | MF_ENABLED);
+                               MF_BYCOMMAND | MF_ENABLED);
 
                }
        }
@@ -3690,12 +3110,12 @@ static void setup_menus(void)
        for (i = 0; i < MAX_TERM_DATA; i++)
        {
                EnableMenuItem(hm, IDM_WINDOW_D_WID_0 + i,
-                              MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+                       MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 
                if (data[i].visible)
                {
                        EnableMenuItem(hm, IDM_WINDOW_D_WID_0 + i,
-                                  MF_BYCOMMAND | MF_ENABLED);
+                               MF_BYCOMMAND | MF_ENABLED);
 
                }
        }
@@ -3704,12 +3124,12 @@ static void setup_menus(void)
        for (i = 0; i < MAX_TERM_DATA; i++)
        {
                EnableMenuItem(hm, IDM_WINDOW_I_HGT_0 + i,
-                              MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+                       MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 
                if (data[i].visible)
                {
                        EnableMenuItem(hm, IDM_WINDOW_I_HGT_0 + i,
-                                  MF_BYCOMMAND | MF_ENABLED);
+                               MF_BYCOMMAND | MF_ENABLED);
 
                }
        }
@@ -3718,30 +3138,32 @@ static void setup_menus(void)
        for (i = 0; i < MAX_TERM_DATA; i++)
        {
                EnableMenuItem(hm, IDM_WINDOW_D_HGT_0 + i,
-                              MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+                       MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 
                if (data[i].visible)
                {
                        EnableMenuItem(hm, IDM_WINDOW_D_HGT_0 + i,
-                                  MF_BYCOMMAND | MF_ENABLED);
+                               MF_BYCOMMAND | MF_ENABLED);
 
                }
        }
 
        /* Menu "Options", disable all */
        EnableMenuItem(hm, IDM_OPTIONS_NO_GRAPHICS,
-                      MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
        EnableMenuItem(hm, IDM_OPTIONS_OLD_GRAPHICS,
-                      MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
        EnableMenuItem(hm, IDM_OPTIONS_NEW_GRAPHICS,
-                      MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
        EnableMenuItem(hm, IDM_OPTIONS_BIGTILE,
-                      MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
        EnableMenuItem(hm, IDM_OPTIONS_SOUND,
-                      MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
-#ifndef JP
+               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+#ifdef JP
+#else
+
        EnableMenuItem(hm, IDM_OPTIONS_SAVER,
-                      MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 #endif
 
        /* Menu "Options", Item "Map" */
@@ -3749,51 +3171,37 @@ static void setup_menus(void)
                EnableMenuItem(GetMenu(data[0].w), IDM_OPTIONS_MAP, MF_BYCOMMAND | MF_ENABLED);
        else
                EnableMenuItem(GetMenu(data[0].w), IDM_OPTIONS_MAP,
-                              MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+                       MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 
        /* Menu "Options", update all */
        CheckMenuItem(hm, IDM_OPTIONS_NO_GRAPHICS,
-                     (arg_graphics == GRAPHICS_NONE ? MF_CHECKED : MF_UNCHECKED));
+               (arg_graphics == GRAPHICS_NONE ? MF_CHECKED : MF_UNCHECKED));
        CheckMenuItem(hm, IDM_OPTIONS_OLD_GRAPHICS,
-                     (arg_graphics == GRAPHICS_ORIGINAL ? MF_CHECKED : MF_UNCHECKED));
+               (arg_graphics == GRAPHICS_ORIGINAL ? MF_CHECKED : MF_UNCHECKED));
        CheckMenuItem(hm, IDM_OPTIONS_NEW_GRAPHICS,
-                     (arg_graphics == GRAPHICS_ADAM_BOLT ? MF_CHECKED : MF_UNCHECKED));
+               (arg_graphics == GRAPHICS_ADAM_BOLT ? MF_CHECKED : MF_UNCHECKED));
        CheckMenuItem(hm, IDM_OPTIONS_NEW2_GRAPHICS,
-                     (arg_graphics == GRAPHICS_HENGBAND ? MF_CHECKED : MF_UNCHECKED));
+               (arg_graphics == GRAPHICS_HENGBAND ? MF_CHECKED : MF_UNCHECKED));
        CheckMenuItem(hm, IDM_OPTIONS_BIGTILE,
-                     (arg_bigtile ? MF_CHECKED : MF_UNCHECKED));
+               (arg_bigtile ? MF_CHECKED : MF_UNCHECKED));
        CheckMenuItem(hm, IDM_OPTIONS_MUSIC,
-                     (arg_music ? MF_CHECKED : MF_UNCHECKED));
+               (arg_music ? MF_CHECKED : MF_UNCHECKED));
        CheckMenuItem(hm, IDM_OPTIONS_SOUND,
-                     (arg_sound ? MF_CHECKED : MF_UNCHECKED));
+               (arg_sound ? MF_CHECKED : MF_UNCHECKED));
        CheckMenuItem(hm, IDM_OPTIONS_BG,
-                     (use_bg ? MF_CHECKED : MF_UNCHECKED));
-#ifndef JP
+               (use_bg ? MF_CHECKED : MF_UNCHECKED));
+#ifdef JP
+#else
        CheckMenuItem(hm, IDM_OPTIONS_SAVER,
-                     (hwndSaver ? MF_CHECKED : MF_UNCHECKED));
+               (hwndSaver ? MF_CHECKED : MF_UNCHECKED));
 #endif
-
-#ifdef USE_GRAPHICS
-       /* Menu "Options", Item "Graphics" */
        EnableMenuItem(hm, IDM_OPTIONS_NO_GRAPHICS, MF_ENABLED);
-       /* Menu "Options", Item "Graphics" */
        EnableMenuItem(hm, IDM_OPTIONS_OLD_GRAPHICS, MF_ENABLED);
-       /* Menu "Options", Item "Graphics" */
        EnableMenuItem(hm, IDM_OPTIONS_NEW_GRAPHICS, MF_ENABLED);
-       /* Menu "Options", Item "Graphics" */
        EnableMenuItem(hm, IDM_OPTIONS_BIGTILE, MF_ENABLED);
-#endif /* USE_GRAPHICS */
-
-#ifdef USE_SOUND
-       /* Menu "Options", Item "Sound" */
        EnableMenuItem(hm, IDM_OPTIONS_SOUND, MF_ENABLED);
-#endif /* USE_SOUND */
-
-#ifdef USE_SAVER
-       /* Menu "Options", Item "ScreenSaver" */
        EnableMenuItem(hm, IDM_OPTIONS_SAVER,
-                      MF_BYCOMMAND | MF_ENABLED);
-#endif /* USE_SAVER */
+               MF_BYCOMMAND | MF_ENABLED);
 }
 
 
@@ -3804,7 +3212,7 @@ static void setup_menus(void)
  * piece of the "command line string".  Perhaps we should extract
  * the "basename" of that filename and append it to the "save" dir.
  */
-static void check_for_save_file(LPSTR cmd_line)
+static void check_for_save_file(player_type *player_ptr, LPSTR cmd_line)
 {
        char *s;
 
@@ -3824,735 +3232,595 @@ static void check_for_save_file(LPSTR cmd_line)
        game_in_progress = TRUE;
 
        /* Play game */
-       play_game(p_ptr, FALSE);
+       play_game(player_ptr, FALSE);
 }
 
 
 /*
  * Process a menu command
  */
-static void process_menus(WORD wCmd)
+static void process_menus(player_type *player_ptr, WORD wCmd)
 {
-       int i;
-
        term_data *td;
-
        OPENFILENAME ofn;
-
-       /* Analyze */
        switch (wCmd)
        {
-               /* New game */
-               case IDM_FILE_NEW:
+       case IDM_FILE_NEW:
+       {
+               if (!initialized)
                {
-                       if (!initialized)
-                       {
-                               plog(_("まだ初期化中です...", "You cannot do that yet..."));
-                       }
-                       else if (game_in_progress)
-                       {
-                               plog(_("プレイ中は新しいゲームを始めることができません!", "You can't start a new game while you're still playing!"));
-                       }
-                       else
-                       {
-                               game_in_progress = TRUE;
-                               Term_flush();
-                               play_game(p_ptr, TRUE);
-                               quit(NULL);
-                       }
-                       break;
+                       plog(_("まだ初期化中です...", "You cannot do that yet..."));
                }
-
-               /* Open game */
-               case IDM_FILE_OPEN:
+               else if (game_in_progress)
                {
-                       if (!initialized)
-                       {
-                               plog(_("まだ初期化中です...", "You cannot do that yet..."));
-                       }
-                       else if (game_in_progress)
-                       {
-                               plog(_("プレイ中はゲームをロードすることができません!", "You can't open a new game while you're still playing!"));
-                       }
-                       else
-                       {
-                               memset(&ofn, 0, sizeof(ofn));
-                               ofn.lStructSize = sizeof(ofn);
-                               ofn.hwndOwner = data[0].w;
-                               ofn.lpstrFilter = "Save Files (*.)\0*\0";
-                               ofn.nFilterIndex = 1;
-                               ofn.lpstrFile = savefile;
-                               ofn.nMaxFile = 1024;
-                               ofn.lpstrInitialDir = ANGBAND_DIR_SAVE;
-                               ofn.Flags = OFN_FILEMUSTEXIST | OFN_NOCHANGEDIR | OFN_HIDEREADONLY;
-
-                               if (GetOpenFileName(&ofn))
-                               {
-                                       /* Load 'savefile' */
-                                       validate_file(savefile);
-                                       game_in_progress = TRUE;
-                                       Term_flush();
-                                       play_game(p_ptr, FALSE);
-                                       quit(NULL);
-                               }
-                       }
-                       break;
+                       plog(_("プレイ中は新しいゲームを始めることができません!", "You can't start a new game while you're still playing!"));
                }
-
-               /* Save game */
-               case IDM_FILE_SAVE:
+               else
                {
-                       if (game_in_progress && current_world_ptr->character_generated)
-                       {
-                               if (!can_save)
-                               {
-                                       plog(_("今はセーブすることは出来ません。", "You may not do that right now."));
-                                       break;
-                               }
-
-                               /* Hack -- Forget messages */
-                               msg_flag = FALSE;
+                       game_in_progress = TRUE;
+                       Term_flush();
+                       play_game(player_ptr, TRUE);
+                       quit(NULL);
+               }
+               break;
+       }
+       case IDM_FILE_OPEN:
+       {
+               if (!initialized)
+               {
+                       plog(_("まだ初期化中です...", "You cannot do that yet..."));
+               }
+               else if (game_in_progress)
+               {
+                       plog(_("プレイ中はゲームをロードすることができません!", "You can't open a new game while you're still playing!"));
+               }
+               else
+               {
+                       memset(&ofn, 0, sizeof(ofn));
+                       ofn.lStructSize = sizeof(ofn);
+                       ofn.hwndOwner = data[0].w;
+                       ofn.lpstrFilter = "Save Files (*.)\0*\0";
+                       ofn.nFilterIndex = 1;
+                       ofn.lpstrFile = savefile;
+                       ofn.nMaxFile = 1024;
+                       ofn.lpstrInitialDir = ANGBAND_DIR_SAVE;
+                       ofn.Flags = OFN_FILEMUSTEXIST | OFN_NOCHANGEDIR | OFN_HIDEREADONLY;
 
-                               /* Save the game */
-#ifdef ZANGBAND
-                               do_cmd_save_game(p_ptr, FALSE);
-#else /* ZANGBAND */
-                               do_cmd_save_game();
-#endif /* ZANGBAND */
-                       }
-                       else
+                       if (GetOpenFileName(&ofn))
                        {
-                               plog(_("今、セーブすることは出来ません。", "You may not do that right now."));
+                               validate_file(savefile);
+                               game_in_progress = TRUE;
+                               Term_flush();
+                               play_game(player_ptr, FALSE);
+                               quit(NULL);
                        }
-                       break;
                }
-
-               case IDM_FILE_EXIT:
+               break;
+       }
+       case IDM_FILE_SAVE:
+       {
+               if (game_in_progress && current_world_ptr->character_generated)
                {
-                       if (game_in_progress && current_world_ptr->character_generated)
+                       if (!can_save)
                        {
-                               if (!can_save)
-                               {
-                                       plog(_("今は終了できません。", "You may not do that right now."));
-                                       break;
-                               }
-
-                               /* Hack -- Forget messages */
-                               msg_flag = FALSE;
-
-                               forget_lite(p_ptr->current_floor_ptr);
-                               forget_view(p_ptr->current_floor_ptr);
-                               clear_mon_lite(p_ptr->current_floor_ptr);
-
-                               /* Save the game */
-#ifdef ZANGBAND
-                               /* do_cmd_save_game(FALSE); */
-#else /* ZANGBAND */
-                               /* do_cmd_save_game(); */
-#endif /* ZANGBAND */
-                               Term_key_push(SPECIAL_KEY_QUIT);
+                               plog(_("今はセーブすることは出来ません。", "You may not do that right now."));
                                break;
                        }
-                       quit(NULL);
-                       break;
-               }
 
-               /* Show scores */
-               case IDM_FILE_SCORE:
+                       msg_flag = FALSE;
+                       do_cmd_save_game(player_ptr, FALSE);
+               }
+               else
                {
-                       char buf[1024];
-                       path_build(buf, sizeof(buf), ANGBAND_DIR_APEX, "scores.raw");
-
-                       /* Open the binary high score file, for reading */
-                       highscore_fd = fd_open(buf, O_RDONLY);
+                       plog(_("今、セーブすることは出来ません。", "You may not do that right now."));
+               }
 
-                       /* Paranoia -- No score file */
-                       if (highscore_fd < 0)
+               break;
+       }
+       case IDM_FILE_EXIT:
+       {
+               if (game_in_progress && current_world_ptr->character_generated)
+               {
+                       if (!can_save)
                        {
-                               msg_print("Score file unavailable.");
+                               plog(_("今は終了できません。", "You may not do that right now."));
+                               break;
                        }
-                       else
-                       {
-                               screen_save();
-                               Term_clear();
-
-                               /* Display the scores */
-                               display_scores_aux(0, MAX_HISCORES, -1, NULL);
 
-                               /* Shut the high score file */
-                               (void)fd_close(highscore_fd);
-
-                               /* Forget the high score fd */
-                               highscore_fd = -1;
-                               screen_load();
-
-                               /* Hack - Flush it */
-                               Term_fresh();
-                       }
+                       msg_flag = FALSE;
+                       forget_lite(player_ptr->current_floor_ptr);
+                       forget_view(player_ptr->current_floor_ptr);
+                       clear_mon_lite(player_ptr->current_floor_ptr);
 
+                       Term_key_push(SPECIAL_KEY_QUIT);
                        break;
                }
 
-               /* Open game */
-               case IDM_FILE_MOVIE:
+               quit(NULL);
+               break;
+       }
+       case IDM_FILE_SCORE:
+       {
+               char buf[1024];
+               path_build(buf, sizeof(buf), ANGBAND_DIR_APEX, "scores.raw");
+               highscore_fd = fd_open(buf, O_RDONLY);
+               if (highscore_fd < 0)
                {
-                       if (!initialized)
-                       {
-                               plog(_("まだ初期化中です...", "You cannot do that yet..."));
-                       }
-                       else if (game_in_progress)
-                       {
-                               plog(_("プレイ中はムービーをロードすることができません!", "You can't open a movie while you're playing!"));
-                       }
-                       else
-                       {
-                               memset(&ofn, 0, sizeof(ofn));
-                               ofn.lStructSize = sizeof(ofn);
-                               ofn.hwndOwner = data[0].w;
-                               ofn.lpstrFilter = "Angband Movie Files (*.amv)\0*.amv\0";
-                               ofn.nFilterIndex = 1;
-                               ofn.lpstrFile = savefile;
-                               ofn.nMaxFile = 1024;
-                               ofn.lpstrInitialDir = ANGBAND_DIR_USER;
-                               ofn.Flags = OFN_FILEMUSTEXIST | OFN_NOCHANGEDIR;
-
-                               if (GetOpenFileName(&ofn))
-                               {
-                                       /* Load 'savefile' */
-                                       prepare_browse_movie_aux(savefile);
-                                       play_game(p_ptr, FALSE);
-                                       quit(NULL);
-                                       return;
-                               }
-                       }
-                       break;
+                       msg_print("Score file unavailable.");
                }
-
-
-               case IDM_WINDOW_VIS_0:
+               else
                {
-                       plog(_("メインウィンドウは非表示にできません!", "You are not allowed to do that!"));
-                       break;
+                       screen_save();
+                       Term_clear();
+                       display_scores_aux(0, MAX_HISCORES, -1, NULL);
+                       (void)fd_close(highscore_fd);
+                       highscore_fd = -1;
+                       screen_load();
+                       Term_fresh();
                }
 
-               /* Window visibility */
-               case IDM_WINDOW_VIS_1:
-               case IDM_WINDOW_VIS_2:
-               case IDM_WINDOW_VIS_3:
-               case IDM_WINDOW_VIS_4:
-               case IDM_WINDOW_VIS_5:
-               case IDM_WINDOW_VIS_6:
-               case IDM_WINDOW_VIS_7:
+               break;
+       }
+       case IDM_FILE_MOVIE:
+       {
+               if (!initialized)
                {
-                       i = wCmd - IDM_WINDOW_VIS_0;
-
-                       if ((i < 0) || (i >= MAX_TERM_DATA)) break;
-
-                       td = &data[i];
-
-                       if (!td->visible)
-                       {
-                               td->visible = TRUE;
-                               ShowWindow(td->w, SW_SHOW);
-                               term_data_redraw(td);
-                       }
-                       else
-                       {
-                               td->visible = FALSE;
-                               td->posfix = FALSE;
-                               ShowWindow(td->w, SW_HIDE);
-                       }
-
-                       break;
+                       plog(_("まだ初期化中です...", "You cannot do that yet..."));
                }
-
-               /* Window fonts */
-               case IDM_WINDOW_FONT_0:
-               case IDM_WINDOW_FONT_1:
-               case IDM_WINDOW_FONT_2:
-               case IDM_WINDOW_FONT_3:
-               case IDM_WINDOW_FONT_4:
-               case IDM_WINDOW_FONT_5:
-               case IDM_WINDOW_FONT_6:
-               case IDM_WINDOW_FONT_7:
+               else if (game_in_progress)
                {
-                       i = wCmd - IDM_WINDOW_FONT_0;
-
-                       if ((i < 0) || (i >= MAX_TERM_DATA)) break;
-
-                       td = &data[i];
-
-                       term_change_font(td);
-
-                       break;
+                       plog(_("プレイ中はムービーをロードすることができません!", "You can't open a movie while you're playing!"));
                }
-
-               /* Window Z Position */
-               case IDM_WINDOW_POS_1:
-               case IDM_WINDOW_POS_2:
-               case IDM_WINDOW_POS_3:
-               case IDM_WINDOW_POS_4:
-               case IDM_WINDOW_POS_5:
-               case IDM_WINDOW_POS_6:
-               case IDM_WINDOW_POS_7:
+               else
                {
-                       i = wCmd - IDM_WINDOW_POS_0;
-
-                       if ((i < 0) || (i >= MAX_TERM_DATA)) break;
-
-                       td = &data[i];
+                       memset(&ofn, 0, sizeof(ofn));
+                       ofn.lStructSize = sizeof(ofn);
+                       ofn.hwndOwner = data[0].w;
+                       ofn.lpstrFilter = "Angband Movie Files (*.amv)\0*.amv\0";
+                       ofn.nFilterIndex = 1;
+                       ofn.lpstrFile = savefile;
+                       ofn.nMaxFile = 1024;
+                       ofn.lpstrInitialDir = ANGBAND_DIR_USER;
+                       ofn.Flags = OFN_FILEMUSTEXIST | OFN_NOCHANGEDIR;
 
-                       if (!td->posfix && td->visible)
-                       {
-                               td->posfix = TRUE;
-                               term_window_pos(td, HWND_TOPMOST);
-                       }
-                       else
+                       if (GetOpenFileName(&ofn))
                        {
-                               td->posfix = FALSE;
-                               term_window_pos(td, data[0].w);
+                               prepare_browse_movie_aux(savefile);
+                               play_game(player_ptr, FALSE);
+                               quit(NULL);
+                               return;
                        }
-
-                       break;
                }
+               break;
+       }
+       case IDM_WINDOW_VIS_0:
+       {
+               plog(_("メインウィンドウは非表示にできません!", "You are not allowed to do that!"));
+               break;
+       }
+       case IDM_WINDOW_VIS_1:
+       case IDM_WINDOW_VIS_2:
+       case IDM_WINDOW_VIS_3:
+       case IDM_WINDOW_VIS_4:
+       case IDM_WINDOW_VIS_5:
+       case IDM_WINDOW_VIS_6:
+       case IDM_WINDOW_VIS_7:
+       {
+               int i = wCmd - IDM_WINDOW_VIS_0;
+               if ((i < 0) || (i >= MAX_TERM_DATA)) break;
 
-               /* Bizarre Display */
-               case IDM_WINDOW_BIZ_0:
-               case IDM_WINDOW_BIZ_1:
-               case IDM_WINDOW_BIZ_2:
-               case IDM_WINDOW_BIZ_3:
-               case IDM_WINDOW_BIZ_4:
-               case IDM_WINDOW_BIZ_5:
-               case IDM_WINDOW_BIZ_6:
-               case IDM_WINDOW_BIZ_7:
-               {
-                       i = wCmd - IDM_WINDOW_BIZ_0;
-
-                       if ((i < 0) || (i >= MAX_TERM_DATA)) break;
-
-                       td = &data[i];
+               td = &data[i];
 
-                       td->bizarre = !td->bizarre;
+               if (!td->visible)
+               {
+                       td->visible = TRUE;
+                       ShowWindow(td->w, SW_SHOW);
+                       term_data_redraw(player_ptr, td);
+               }
+               else
+               {
+                       td->visible = FALSE;
+                       td->posfix = FALSE;
+                       ShowWindow(td->w, SW_HIDE);
+               }
 
-                       term_getsize(td);
+               break;
+       }
+       case IDM_WINDOW_FONT_0:
+       case IDM_WINDOW_FONT_1:
+       case IDM_WINDOW_FONT_2:
+       case IDM_WINDOW_FONT_3:
+       case IDM_WINDOW_FONT_4:
+       case IDM_WINDOW_FONT_5:
+       case IDM_WINDOW_FONT_6:
+       case IDM_WINDOW_FONT_7:
+       {
+               int i = wCmd - IDM_WINDOW_FONT_0;
+               if ((i < 0) || (i >= MAX_TERM_DATA)) break;
 
-                       term_window_resize(td);
+               td = &data[i];
+               term_change_font(td);
+               break;
+       }
+       case IDM_WINDOW_POS_1:
+       case IDM_WINDOW_POS_2:
+       case IDM_WINDOW_POS_3:
+       case IDM_WINDOW_POS_4:
+       case IDM_WINDOW_POS_5:
+       case IDM_WINDOW_POS_6:
+       case IDM_WINDOW_POS_7:
+       {
+               int i = wCmd - IDM_WINDOW_POS_0;
+               if ((i < 0) || (i >= MAX_TERM_DATA)) break;
 
-                       break;
+               td = &data[i];
+               if (!td->posfix && td->visible)
+               {
+                       td->posfix = TRUE;
+                       term_window_pos(td, HWND_TOPMOST);
                }
-
-               /* Increase Tile Width */
-               case IDM_WINDOW_I_WID_0:
-               case IDM_WINDOW_I_WID_1:
-               case IDM_WINDOW_I_WID_2:
-               case IDM_WINDOW_I_WID_3:
-               case IDM_WINDOW_I_WID_4:
-               case IDM_WINDOW_I_WID_5:
-               case IDM_WINDOW_I_WID_6:
-               case IDM_WINDOW_I_WID_7:
+               else
                {
-                       i = wCmd - IDM_WINDOW_I_WID_0;
+                       td->posfix = FALSE;
+                       term_window_pos(td, data[0].w);
+               }
 
-                       if ((i < 0) || (i >= MAX_TERM_DATA)) break;
+               break;
+       }
+       case IDM_WINDOW_BIZ_0:
+       case IDM_WINDOW_BIZ_1:
+       case IDM_WINDOW_BIZ_2:
+       case IDM_WINDOW_BIZ_3:
+       case IDM_WINDOW_BIZ_4:
+       case IDM_WINDOW_BIZ_5:
+       case IDM_WINDOW_BIZ_6:
+       case IDM_WINDOW_BIZ_7:
+       {
+               int i = wCmd - IDM_WINDOW_BIZ_0;
+               if ((i < 0) || (i >= MAX_TERM_DATA)) break;
 
-                       td = &data[i];
+               td = &data[i];
+               td->bizarre = !td->bizarre;
+               term_getsize(td);
+               term_window_resize(td);
+               break;
+       }
+       case IDM_WINDOW_I_WID_0:
+       case IDM_WINDOW_I_WID_1:
+       case IDM_WINDOW_I_WID_2:
+       case IDM_WINDOW_I_WID_3:
+       case IDM_WINDOW_I_WID_4:
+       case IDM_WINDOW_I_WID_5:
+       case IDM_WINDOW_I_WID_6:
+       case IDM_WINDOW_I_WID_7:
+       {
+               int i = wCmd - IDM_WINDOW_I_WID_0;
+               if ((i < 0) || (i >= MAX_TERM_DATA)) break;
 
-                       td->tile_wid += 1;
+               td = &data[i];
+               td->tile_wid += 1;
+               term_getsize(td);
+               term_window_resize(td);
+               break;
+       }
+       case IDM_WINDOW_D_WID_0:
+       case IDM_WINDOW_D_WID_1:
+       case IDM_WINDOW_D_WID_2:
+       case IDM_WINDOW_D_WID_3:
+       case IDM_WINDOW_D_WID_4:
+       case IDM_WINDOW_D_WID_5:
+       case IDM_WINDOW_D_WID_6:
+       case IDM_WINDOW_D_WID_7:
+       {
+               int i = wCmd - IDM_WINDOW_D_WID_0;
+               if ((i < 0) || (i >= MAX_TERM_DATA)) break;
 
-                       term_getsize(td);
+               td = &data[i];
+               td->tile_wid -= 1;
+               term_getsize(td);
+               term_window_resize(td);
+               break;
+       }
+       case IDM_WINDOW_I_HGT_0:
+       case IDM_WINDOW_I_HGT_1:
+       case IDM_WINDOW_I_HGT_2:
+       case IDM_WINDOW_I_HGT_3:
+       case IDM_WINDOW_I_HGT_4:
+       case IDM_WINDOW_I_HGT_5:
+       case IDM_WINDOW_I_HGT_6:
+       case IDM_WINDOW_I_HGT_7:
+       {
+               int i = wCmd - IDM_WINDOW_I_HGT_0;
+               if ((i < 0) || (i >= MAX_TERM_DATA)) break;
 
-                       term_window_resize(td);
+               td = &data[i];
+               td->tile_hgt += 1;
+               term_getsize(td);
+               term_window_resize(td);
+               break;
+       }
+       case IDM_WINDOW_D_HGT_0:
+       case IDM_WINDOW_D_HGT_1:
+       case IDM_WINDOW_D_HGT_2:
+       case IDM_WINDOW_D_HGT_3:
+       case IDM_WINDOW_D_HGT_4:
+       case IDM_WINDOW_D_HGT_5:
+       case IDM_WINDOW_D_HGT_6:
+       case IDM_WINDOW_D_HGT_7:
+       {
+               int i = wCmd - IDM_WINDOW_D_HGT_0;
+               if ((i < 0) || (i >= MAX_TERM_DATA)) break;
 
+               td = &data[i];
+               td->tile_hgt -= 1;
+               term_getsize(td);
+               term_window_resize(td);
+               break;
+       }
+       case IDM_OPTIONS_NO_GRAPHICS:
+       {
+               if (!inkey_flag)
+               {
+                       plog("You may not do that right now.");
                        break;
                }
 
-               /* Decrease Tile Height */
-               case IDM_WINDOW_D_WID_0:
-               case IDM_WINDOW_D_WID_1:
-               case IDM_WINDOW_D_WID_2:
-               case IDM_WINDOW_D_WID_3:
-               case IDM_WINDOW_D_WID_4:
-               case IDM_WINDOW_D_WID_5:
-               case IDM_WINDOW_D_WID_6:
-               case IDM_WINDOW_D_WID_7:
+               if (arg_graphics != GRAPHICS_NONE)
                {
-                       i = wCmd - IDM_WINDOW_D_WID_0;
-
-                       if ((i < 0) || (i >= MAX_TERM_DATA)) break;
-
-                       td = &data[i];
-
-                       td->tile_wid -= 1;
-
-                       term_getsize(td);
-
-                       term_window_resize(td);
-
-                       break;
+                       arg_graphics = GRAPHICS_NONE;
+                       term_xtra_win_react(player_ptr);
+                       Term_key_push(KTRL('R'));
                }
 
-               /* Increase Tile Height */
-               case IDM_WINDOW_I_HGT_0:
-               case IDM_WINDOW_I_HGT_1:
-               case IDM_WINDOW_I_HGT_2:
-               case IDM_WINDOW_I_HGT_3:
-               case IDM_WINDOW_I_HGT_4:
-               case IDM_WINDOW_I_HGT_5:
-               case IDM_WINDOW_I_HGT_6:
-               case IDM_WINDOW_I_HGT_7:
+               break;
+       }
+       case IDM_OPTIONS_OLD_GRAPHICS:
+       {
+               if (!inkey_flag)
                {
-                       i = wCmd - IDM_WINDOW_I_HGT_0;
-
-                       if ((i < 0) || (i >= MAX_TERM_DATA)) break;
-
-                       td = &data[i];
-
-                       td->tile_hgt += 1;
-
-                       term_getsize(td);
-
-                       term_window_resize(td);
-
+                       plog("You may not do that right now.");
                        break;
                }
 
-               /* Decrease Tile Height */
-               case IDM_WINDOW_D_HGT_0:
-               case IDM_WINDOW_D_HGT_1:
-               case IDM_WINDOW_D_HGT_2:
-               case IDM_WINDOW_D_HGT_3:
-               case IDM_WINDOW_D_HGT_4:
-               case IDM_WINDOW_D_HGT_5:
-               case IDM_WINDOW_D_HGT_6:
-               case IDM_WINDOW_D_HGT_7:
+               if (arg_graphics != GRAPHICS_ORIGINAL)
                {
-                       i = wCmd - IDM_WINDOW_D_HGT_0;
-
-                       if ((i < 0) || (i >= MAX_TERM_DATA)) break;
-
-                       td = &data[i];
-
-                       td->tile_hgt -= 1;
-
-                       term_getsize(td);
-
-                       term_window_resize(td);
-
-                       break;
+                       arg_graphics = GRAPHICS_ORIGINAL;
+                       term_xtra_win_react(player_ptr);
+                       Term_key_push(KTRL('R'));
                }
 
-               case IDM_OPTIONS_NO_GRAPHICS:
+               break;
+       }
+       case IDM_OPTIONS_NEW_GRAPHICS:
+       {
+               if (!inkey_flag)
                {
-                       if (!inkey_flag)
-                       {
-                               plog("You may not do that right now.");
-                               break;
-                       }
-
-                       if (arg_graphics != GRAPHICS_NONE)
-                       {
-                               arg_graphics = GRAPHICS_NONE;
-                               Term_xtra_win_react();
-                               Term_key_push(KTRL('R'));
-                       }
-
+                       plog("You may not do that right now.");
                        break;
                }
 
-               case IDM_OPTIONS_OLD_GRAPHICS:
+               if (arg_graphics != GRAPHICS_ADAM_BOLT)
                {
-                       if (!inkey_flag)
-                       {
-                               plog("You may not do that right now.");
-                               break;
-                       }
-
-                       if (arg_graphics != GRAPHICS_ORIGINAL)
-                       {
-                               arg_graphics = GRAPHICS_ORIGINAL;
-                               Term_xtra_win_react();
-                               Term_key_push(KTRL('R'));
-                       }
-
-                       break;
+                       arg_graphics = GRAPHICS_ADAM_BOLT;
+                       term_xtra_win_react(player_ptr);
+                       Term_key_push(KTRL('R'));
                }
 
-               case IDM_OPTIONS_NEW_GRAPHICS:
+               break;
+       }
+       case IDM_OPTIONS_NEW2_GRAPHICS:
+       {
+               if (!inkey_flag)
                {
-                       if (!inkey_flag)
-                       {
-                               plog("You may not do that right now.");
-                               break;
-                       }
-
-                       if (arg_graphics != GRAPHICS_ADAM_BOLT)
-                       {
-                               arg_graphics = GRAPHICS_ADAM_BOLT;
-                               Term_xtra_win_react();
-                               Term_key_push(KTRL('R'));
-                       }
-
+                       plog("You may not do that right now.");
                        break;
                }
 
-               case IDM_OPTIONS_NEW2_GRAPHICS:
+               if (arg_graphics != GRAPHICS_HENGBAND)
                {
-                       if (!inkey_flag)
-                       {
-                               plog("You may not do that right now.");
-                               break;
-                       }
-
-                       if (arg_graphics != GRAPHICS_HENGBAND)
-                       {
-                               arg_graphics = GRAPHICS_HENGBAND;
-                               Term_xtra_win_react();
-                               Term_key_push(KTRL('R'));
-                       }
-
-                       break;
+                       arg_graphics = GRAPHICS_HENGBAND;
+                       term_xtra_win_react(player_ptr);
+                       Term_key_push(KTRL('R'));
                }
 
-               case IDM_OPTIONS_BIGTILE:
+               break;
+       }
+       case IDM_OPTIONS_BIGTILE:
+       {
+               td = &data[0];
+               if (!inkey_flag)
                {
-                       td = &data[0];
-                       if (!inkey_flag)
-                       {
-                               plog("You may not do that right now.");
-                               break;
-                       }
-
-                       arg_bigtile = !arg_bigtile;
-                       Term_activate(&td->t);
-                       Term_resize(td->cols, td->rows);
-                       InvalidateRect(td->w, NULL, TRUE);
+                       plog("You may not do that right now.");
                        break;
                }
 
-               case IDM_OPTIONS_MUSIC:
+               arg_bigtile = !arg_bigtile;
+               Term_activate(&td->t);
+               Term_resize(td->cols, td->rows);
+               InvalidateRect(td->w, NULL, TRUE);
+               break;
+       }
+       case IDM_OPTIONS_MUSIC:
+       {
+               if (!inkey_flag)
                {
-                       if (!inkey_flag)
-                       {
-                               plog("You may not do that right now.");
-                               break;
-                       }
-
-                       arg_music = !arg_music;
-                       Term_xtra_win_react();
-                       Term_key_push(KTRL('R'));
+                       plog("You may not do that right now.");
                        break;
                }
 
-               case IDM_OPTIONS_SOUND:
+               arg_music = !arg_music;
+               term_xtra_win_react(player_ptr);
+               Term_key_push(KTRL('R'));
+               break;
+       }
+       case IDM_OPTIONS_SOUND:
+       {
+               if (!inkey_flag)
                {
-                       if (!inkey_flag)
-                       {
-                               plog("You may not do that right now.");
-                               break;
-                       }
-
-                       arg_sound = !arg_sound;
-                       Term_xtra_win_react();
-                       Term_key_push(KTRL('R'));
+                       plog("You may not do that right now.");
                        break;
                }
 
-               /* bg */
-               case IDM_OPTIONS_BG:
+               arg_sound = !arg_sound;
+               term_xtra_win_react(player_ptr);
+               Term_key_push(KTRL('R'));
+               break;
+       }
+       case IDM_OPTIONS_BG:
+       {
+               if (!inkey_flag)
                {
-                       if (!inkey_flag)
-                       {
-                               plog("You may not do that right now.");
-                               break;
-                       }
-
-                       use_bg = !use_bg;
-                       init_bg();
-                       Term_xtra_win_react();
-                       Term_key_push(KTRL('R'));
+                       plog("You may not do that right now.");
                        break;
                }
 
-               /* bg */
-               case IDM_OPTIONS_OPEN_BG:
+               use_bg = !use_bg;
+               init_bg();
+               term_xtra_win_react(player_ptr);
+               Term_key_push(KTRL('R'));
+               break;
+       }
+       case IDM_OPTIONS_OPEN_BG:
+       {
+               if (!inkey_flag)
                {
-                       if (!inkey_flag)
-                       {
-                               plog("You may not do that right now.");
-                               break;
-                       }
-                       else
-                       {
-                               memset(&ofn, 0, sizeof(ofn));
-                               ofn.lStructSize = sizeof(ofn);
-                               ofn.hwndOwner = data[0].w;
-                               ofn.lpstrFilter = "Bitmap Files (*.bmp)\0*.bmp\0";
-                               ofn.nFilterIndex = 1;
-                               ofn.lpstrFile = bg_bitmap_file;
-                               ofn.nMaxFile = 1023;
-                               ofn.lpstrInitialDir = NULL;
-                               ofn.lpstrTitle = _("壁紙を選んでね。", "Choose wall paper.");
-                               ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
-
-                               if (GetOpenFileName(&ofn))
-                               {
-                                       /* Load 'savefile' */
-                                       use_bg = 1;
-                                       init_bg();
-                               }
-
-                               /* React to changes */
-                               Term_xtra_win_react();
-
-                               /* Hack -- Force redraw */
-                               Term_key_push(KTRL('R'));
-                       }
+                       plog("You may not do that right now.");
                        break;
                }
-
-               case IDM_DUMP_SCREEN_HTML:
+               else
                {
-                       static char buf[1024] = "";
                        memset(&ofn, 0, sizeof(ofn));
                        ofn.lStructSize = sizeof(ofn);
                        ofn.hwndOwner = data[0].w;
-                       ofn.lpstrFilter = "HTML Files (*.html)\0*.html\0";
+                       ofn.lpstrFilter = "Bitmap Files (*.bmp)\0*.bmp\0";
                        ofn.nFilterIndex = 1;
-                       ofn.lpstrFile = buf;
+                       ofn.lpstrFile = bg_bitmap_file;
                        ofn.nMaxFile = 1023;
-                       ofn.lpstrDefExt = "html";
                        ofn.lpstrInitialDir = NULL;
-                       ofn.lpstrTitle = _("HTMLでスクリーンダンプを保存", "Save screen dump as HTML.");
-                       ofn.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
+                       ofn.lpstrTitle = _("壁紙を選んでね。", "Choose wall paper.");
+                       ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
 
-                       if (GetSaveFileName(&ofn))
+                       if (GetOpenFileName(&ofn))
                        {
-                               do_cmd_save_screen_html_aux(buf, 0);
+                               use_bg = 1;
+                               init_bg();
                        }
-                       break;
-               }
 
-#ifdef USE_SAVER
+                       term_xtra_win_react(player_ptr);
+                       Term_key_push(KTRL('R'));
+               }
 
-               case IDM_OPTIONS_SAVER:
+               break;
+       }
+       case IDM_DUMP_SCREEN_HTML:
+       {
+               static char buf[1024] = "";
+               memset(&ofn, 0, sizeof(ofn));
+               ofn.lStructSize = sizeof(ofn);
+               ofn.hwndOwner = data[0].w;
+               ofn.lpstrFilter = "HTML Files (*.html)\0*.html\0";
+               ofn.nFilterIndex = 1;
+               ofn.lpstrFile = buf;
+               ofn.nMaxFile = 1023;
+               ofn.lpstrDefExt = "html";
+               ofn.lpstrInitialDir = NULL;
+               ofn.lpstrTitle = _("HTMLでスクリーンダンプを保存", "Save screen dump as HTML.");
+               ofn.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
+
+               if (GetSaveFileName(&ofn))
+               {
+                       do_cmd_save_screen_html_aux(buf, 0);
+               }
+               break;
+       }
+       case IDM_OPTIONS_SAVER:
+       {
+               if (hwndSaver)
+               {
+                       DestroyWindow(hwndSaver);
+                       hwndSaver = NULL;
+               }
+               else
                {
+                       hwndSaver = CreateWindowEx(WS_EX_TOPMOST, "WindowsScreenSaverClass",
+                               "Angband Screensaver",
+                               WS_POPUP | WS_MAXIMIZE | WS_VISIBLE,
+                               0, 0, GetSystemMetrics(SM_CXSCREEN),
+                               GetSystemMetrics(SM_CYSCREEN),
+                               NULL, NULL, hInstance, NULL);
+
                        if (hwndSaver)
                        {
-                               DestroyWindow(hwndSaver);
-                               hwndSaver = NULL;
+                               SetWindowPos(hwndSaver, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
                        }
                        else
                        {
-                               /* Create a screen scaver window */
-                               hwndSaver = CreateWindowEx(WS_EX_TOPMOST, "WindowsScreenSaverClass",
-                                                          "Angband Screensaver",
-                                                          WS_POPUP | WS_MAXIMIZE | WS_VISIBLE,
-                                                          0, 0, GetSystemMetrics(SM_CXSCREEN),
-                                                          GetSystemMetrics(SM_CYSCREEN),
-                                                          NULL, NULL, hInstance, NULL);
-
-                               if (hwndSaver)
-                               {
-                                       /* Push the window to the bottom */
-                                       SetWindowPos(hwndSaver, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
-                               }
-                               else
-                               {
-                                       plog(_("ウィンドウを作成出来ません", "Failed to create saver window"));
-                               }
+                               plog(_("ウィンドウを作成出来ません", "Failed to create saver window"));
                        }
-                       break;
                }
 
-#endif
+               break;
+       }
+       case IDM_OPTIONS_MAP:
+       {
+               windows_map(player_ptr);
+               break;
+       }
 
-               case IDM_OPTIONS_MAP:
+       case IDM_HELP_CONTENTS:
+       {
+               char buf[1024];
+               char tmp[1024];
+               path_build(tmp, sizeof(tmp), ANGBAND_DIR_XTRA_HELP, "zangband.hlp");
+               if (check_file(tmp))
                {
-                       windows_map();
-                       break;
+                       sprintf(buf, "winhelp.exe %s", tmp);
+                       WinExec(buf, SW_NORMAL);
                }
-
-               case IDM_HELP_CONTENTS:
+               else
                {
-#ifdef HTML_HELP
-                       char tmp[1024];
-                       path_build(tmp, sizeof(tmp), ANGBAND_DIR_XTRA_HELP, "zangband.chm");
-                       if (check_file(tmp))
-                       {
-                               HtmlHelp(data[0].w, tmp, HH_DISPLAY_TOPIC, 0);
-                       }
-                       else
-                       {
-                               plog_fmt(_("ヘルプファイル[%s]が見付かりません。", "Cannot find help file: %s"), tmp);
-                               plog(_("代わりにオンラインヘルプを使用してください。", "Use the online help files instead."));
-                       }
-                       break;
-#else /* HTML_HELP */
-                       char buf[1024];
-                       char tmp[1024];
-                       path_build(tmp, sizeof(tmp), ANGBAND_DIR_XTRA_HELP, "zangband.hlp");
-                       if (check_file(tmp))
-                       {
-                               sprintf(buf, "winhelp.exe %s", tmp);
-                               WinExec(buf, SW_NORMAL);
-                       }
-                       else
-                       {
-                               plog_fmt(_("ヘルプファイル[%s]が見付かりません。", "Cannot find help file: %s"), tmp);
-                               plog(_("代わりにオンラインヘルプを使用してください。", "Use the online help files instead."));
+                       plog_fmt(_("ヘルプファイル[%s]が見付かりません。", "Cannot find help file: %s"), tmp);
+                       plog(_("代わりにオンラインヘルプを使用してください。", "Use the online help files instead."));
 
-                       }
-                       break;
-#endif /* HTML_HELP */
                }
+               break;
+       }
        }
 }
 
 
 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;
+       if (GetKeyState(VK_SHIFT) & 0x8000) ms = TRUE;
+       if (GetKeyState(VK_MENU) & 0x8000) ma = TRUE;
 
-       Term_no_press = (ma) ? TRUE : FALSE;
+       term_no_press = (ma) ? TRUE : FALSE;
 
-       /* Handle "special" keys */
-       if (special_key[(byte)(wParam)] || (ma && !ignore_key[(byte)(wParam)]) )
+       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 */
+               int i = LOBYTE(HIWORD(lParam));
                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 */
+                       term_no_press = TRUE;
+               case VK_RETURN:
                        numpad = ext_key;
                        break;
-                       /* Other extended keys are on full keyboard */
                case VK_NUMPAD0:
                case VK_NUMPAD1:
                case VK_NUMPAD2:
@@ -4568,12 +3836,12 @@ static bool process_keydown(WPARAM wParam, LPARAM lParam)
                case VK_SUBTRACT:
                case VK_SEPARATOR:
                case VK_DECIMAL:
-                       Term_no_press = TRUE;
+                       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_PRIOR:
+               case VK_NEXT:
                case VK_INSERT:
                case VK_DELETE:
                case VK_UP:
@@ -4583,14 +3851,10 @@ static bool process_keydown(WPARAM wParam, LPARAM lParam)
                        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(hexsym[i / 16]);
+               Term_keypress(hexsym[i % 16]);
                Term_keypress(13);
 
                return 1;
@@ -4600,717 +3864,543 @@ static bool process_keydown(WPARAM wParam, LPARAM lParam)
 }
 
 
-#ifdef __MWERKS__
-LRESULT FAR PASCAL AngbandWndProc(HWND hWnd, UINT uMsg,
-                                 WPARAM wParam, LPARAM lParam);
-LRESULT FAR PASCAL AngbandWndProc(HWND hWnd, UINT uMsg,
-                                 WPARAM wParam, LPARAM lParam)
-#else /* __MWERKS__ */
-LRESULT FAR PASCAL AngbandWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
-#endif /* __MWERKS__ */
+/*!
+ * todo WNDCLASSに影響があるのでplayer_type*の追加は保留
+ */
+LRESULT PASCAL AngbandWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
        PAINTSTRUCT ps;
        HDC hdc;
        term_data *td;
-#if 0
-       MINMAXINFO FAR *lpmmi;
-       RECT rc;
-#endif
-       int i;
-
-
-       /* Acquire proper "term_data" info */
        td = (term_data *)GetWindowLong(hWnd, 0);
 
-       /* Handle message */
        switch (uMsg)
        {
-               case WM_NCCREATE:
-               {
-                       SetWindowLong(hWnd, 0, (LONG)(my_td));
-                       break;
-               }
-
-               case WM_CREATE:
-               {
-#ifdef USE_MUSIC
-                       mop.dwCallback=(DWORD)hWnd;
-#endif
-                       return 0;
-               }
-
-               case WM_GETMINMAXINFO:
-               {
-                       MINMAXINFO FAR *lpmmi;
-                       RECT rc;
-
-                       lpmmi = (MINMAXINFO FAR *)lParam;
-
-                       /* this message was sent before WM_NCCREATE */
-                       if (!td) return 1;
-
-                       /* Minimum window size is 80x24 */
-                       rc.left = rc.top = 0;
-                       rc.right = rc.left + 80 * td->tile_wid + td->size_ow1 + td->size_ow2;
-                       rc.bottom = rc.top + 24 * td->tile_hgt + td->size_oh1 + td->size_oh2 + 1;
-
-                       /* Adjust */
-                       AdjustWindowRectEx(&rc, td->dwStyle, TRUE, td->dwExStyle);
-
-                       /* Save minimum size */
-                       lpmmi->ptMinTrackSize.x = rc.right - rc.left;
-                       lpmmi->ptMinTrackSize.y = rc.bottom - rc.top;
+       case WM_NCCREATE:
+       {
+               SetWindowLong(hWnd, 0, (LONG)(my_td));
+               break;
+       }
+       case WM_CREATE:
+       {
+               mop.dwCallback = (DWORD)hWnd;
+               return 0;
+       }
+       case WM_GETMINMAXINFO:
+       {
+               MINMAXINFO *lpmmi;
+               RECT rc;
 
-                       return 0;
-               }
+               lpmmi = (MINMAXINFO*)lParam;
+               if (!td) return 1;
 
-               case WM_PAINT:
-               {
-                       BeginPaint(hWnd, &ps);
-                       if (td) term_data_redraw(td);
-                       EndPaint(hWnd, &ps);
-                       ValidateRect(hWnd, NULL);
-                       return 0;
-               }
+               rc.left = rc.top = 0;
+               rc.right = rc.left + 80 * td->tile_wid + td->size_ow1 + td->size_ow2;
+               rc.bottom = rc.top + 24 * td->tile_hgt + td->size_oh1 + td->size_oh2 + 1;
 
-#ifdef USE_MUSIC
-               case MM_MCINOTIFY:
-               {
-                       if(wParam == MCI_NOTIFY_SUCCESSFUL)
-                       {
-                               mciSendCommand(mop.wDeviceID, MCI_SEEK, MCI_SEEK_TO_START, 0);
-                               mciSendCommand(mop.wDeviceID, MCI_PLAY, MCI_NOTIFY, (DWORD)&mop);
-                       }
-                       return 0;
-               }
-#endif
+               AdjustWindowRectEx(&rc, td->dwStyle, TRUE, td->dwExStyle);
 
-               case WM_SYSKEYDOWN:
-               case WM_KEYDOWN:
-               {
-                       if (process_keydown(wParam, lParam))
-                               return 0;
-                       break;
-               }
+               lpmmi->ptMinTrackSize.x = rc.right - rc.left;
+               lpmmi->ptMinTrackSize.y = rc.bottom - rc.top;
 
-               case WM_CHAR:
+               return 0;
+       }
+       case WM_PAINT:
+       {
+               BeginPaint(hWnd, &ps);
+               if (td) term_data_redraw(p_ptr, td);
+               EndPaint(hWnd, &ps);
+               ValidateRect(hWnd, NULL);
+               return 0;
+       }
+       case MM_MCINOTIFY:
+       {
+               if (wParam == MCI_NOTIFY_SUCCESSFUL)
                {
-                       if (Term_no_press) Term_no_press = FALSE;
-                       else Term_keypress(wParam);
-                       return 0;
+                       mciSendCommand(mop.wDeviceID, MCI_SEEK, MCI_SEEK_TO_START, 0);
+                       mciSendCommand(mop.wDeviceID, MCI_PLAY, MCI_NOTIFY, (DWORD)&mop);
                }
 
-               case WM_LBUTTONDOWN:
-               {
-                       mousex = MIN(LOWORD(lParam) / td->tile_wid, td->cols - 1);
-                       mousey = MIN(HIWORD(lParam) / td->tile_hgt, td->rows - 1);
-                       mouse_down = TRUE;
-                       oldx = mousex;
-                       oldy = mousey;
+               return 0;
+       }
+       case WM_SYSKEYDOWN:
+       case WM_KEYDOWN:
+       {
+               if (process_keydown(wParam, lParam))
                        return 0;
-               }
-
-               case WM_LBUTTONUP:
-               {
-                       HGLOBAL hGlobal;
-                       LPSTR lpStr;
-                       int j, sz;
-                       TERM_LEN dx = abs(oldx - mousex) + 1;
-                       TERM_LEN dy = abs(oldy - mousey) + 1;
-                       TERM_LEN ox = (oldx > mousex) ? mousex : oldx;
-                       TERM_LEN oy = (oldy > mousey) ? mousey : oldy;
+               break;
+       }
+       case WM_CHAR:
+       {
+               if (term_no_press) term_no_press = FALSE;
+               else Term_keypress(wParam);
+               return 0;
+       }
+       case WM_LBUTTONDOWN:
+       {
+               mousex = MIN(LOWORD(lParam) / td->tile_wid, td->cols - 1);
+               mousey = MIN(HIWORD(lParam) / td->tile_hgt, td->rows - 1);
+               mouse_down = TRUE;
+               oldx = mousex;
+               oldy = mousey;
+               return 0;
+       }
+       case WM_LBUTTONUP:
+       {
+               HGLOBAL hGlobal;
+               LPSTR lpStr;
+               TERM_LEN dx = abs(oldx - mousex) + 1;
+               TERM_LEN dy = abs(oldy - mousey) + 1;
+               TERM_LEN ox = (oldx > mousex) ? mousex : oldx;
+               TERM_LEN oy = (oldy > mousey) ? mousey : oldy;
 
-                       mouse_down = FALSE;
-                       paint_rect = FALSE;
+               mouse_down = FALSE;
+               paint_rect = FALSE;
 
 #ifdef JP
-                       sz = (dx + 3) * dy;
+               int sz = (dx + 3) * dy;
 #else
-                       sz = (dx + 2) * dy;
+               int sz = (dx + 2) * dy;
 #endif
-                       hGlobal = GlobalAlloc(GHND, sz + 1);
-                       if (hGlobal == NULL) return 0;
-                       lpStr = (LPSTR)GlobalLock(hGlobal);
+               hGlobal = GlobalAlloc(GHND, sz + 1);
+               if (hGlobal == NULL) return 0;
+               lpStr = (LPSTR)GlobalLock(hGlobal);
 
-                       for (i = 0; i < dy; i++)
-                       {
+               for (int i = 0; i < dy; i++)
+               {
 #ifdef JP
-                               char *s;
-                               char **scr = data[0].t.scr->c;
-
-                               C_MAKE(s, (dx + 1), char);
-                               strncpy(s, &scr[oy + i][ox], dx);
+                       char *s;
+                       char **scr = data[0].t.scr->c;
 
-                               if (ox > 0)
-                               {
-                                       if (iskanji(scr[oy + i][ox - 1])) s[0] = ' ';
-                               }
-
-                               if (ox + dx < data[0].cols)
-                               {
-                                       if (iskanji(scr[oy + i][ox + dx - 1])) s[dx - 1] = ' ';
-                               }
+                       C_MAKE(s, (dx + 1), char);
+                       strncpy(s, &scr[oy + i][ox], dx);
 
-                               for (j = 0; j < dx; j++)
-                               {
-                                       if (s[j] == 127) s[j] = '#';
-                                       *lpStr++ = s[j];
-                               }
-#else
-                               for (j = 0; j < dx; j++)
-                               {
-                                       *lpStr++ = data[0].t.scr->c[oy + i][ox + j];
-                               }
-#endif
-                               if (dy > 1)
-                               {
-                                       *lpStr++ = '\r';
-                                       *lpStr++ = '\n';
-                               }
+                       if (ox > 0)
+                       {
+                               if (iskanji(scr[oy + i][ox - 1])) s[0] = ' ';
                        }
 
-                       GlobalUnlock(hGlobal);
-                       if (OpenClipboard(hWnd) == 0)
+                       if (ox + dx < data[0].cols)
                        {
-                               GlobalFree(hGlobal);
-                               return 0;
+                               if (iskanji(scr[oy + i][ox + dx - 1])) s[dx - 1] = ' ';
                        }
-                       EmptyClipboard();
-                       SetClipboardData(CF_TEXT, hGlobal);
-                       CloseClipboard();
-
-                       Term_redraw();
-
-                       return 0;
-               }
 
-               case WM_MOUSEMOVE:
-               {
-                       if (mouse_down)
+                       for (int j = 0; j < dx; j++)
                        {
-                               int dx, dy;
-                               int cx = MIN(LOWORD(lParam) / td->tile_wid, td->cols - 1);
-                               int cy = MIN(HIWORD(lParam) / td->tile_hgt, td->rows - 1);
-                               int ox, oy;
-
-                               if (paint_rect)
-                               {
-                                       dx = abs(oldx - mousex) + 1;
-                                       dy = abs(oldy - mousey) + 1;
-                                       ox = (oldx > mousex) ? mousex : oldx;
-                                       oy = (oldy > mousey) ? mousey : oldy;
-                                       Term_inversed_area(hWnd, ox, oy, dx, dy);
-                               }
-                               else
-                               {
-                                       paint_rect = TRUE;
-                               }
-
-                               dx = abs(cx - mousex) + 1;
-                               dy = abs(cy - mousey) + 1;
-                               ox = (cx > mousex) ? mousex : cx;
-                               oy = (cy > mousey) ? mousey : cy;
-                               Term_inversed_area(hWnd, ox, oy, dx, dy);
-
-                               oldx = cx;
-                               oldy = cy;
+                               if (s[j] == 127) s[j] = '#';
+                               *lpStr++ = s[j];
                        }
-                       return 0;
-               }
-
-               case WM_INITMENU:
-               {
-                       setup_menus();
-                       return 0;
-               }
-
-               case WM_CLOSE:
-               {
-                       if (game_in_progress && current_world_ptr->character_generated)
+#else
+                       for (int j = 0; j < dx; j++)
                        {
-                               if (!can_save)
-                               {
-                                       plog(_("今は終了できません。", "You may not do that right now."));
-                                       return 0;
-                               }
-
-                               /* Hack -- Forget messages */
-                               msg_flag = FALSE;
-
-                               forget_lite(p_ptr->current_floor_ptr);
-                               forget_view(p_ptr->current_floor_ptr);
-                               clear_mon_lite(p_ptr->current_floor_ptr);
-
-                               /* Save the game */
-#ifdef ZANGBAND
-                               /* do_cmd_save_game(FALSE); */
-#else /* ZANGBAND */
-                               /* do_cmd_save_game(); */
-#endif /* ZANGBAND */
-                               Term_key_push(SPECIAL_KEY_QUIT);
-                               return 0;
+                               *lpStr++ = data[0].t.scr->c[oy + i][ox + j];
                        }
-                       quit(NULL);
-                       return 0;
-               }
-
-               case WM_QUERYENDSESSION:
-               {
-                       if (game_in_progress && current_world_ptr->character_generated)
+#endif
+                       if (dy > 1)
                        {
-                               /* Hack -- Forget messages */
-                               msg_flag = FALSE;
-
-                               /* Mega-Hack -- Delay death */
-                               if (p_ptr->chp < 0) p_ptr->is_dead = FALSE;
-                               exe_write_diary(p_ptr, NIKKI_GAMESTART, 0, _("----ゲーム中断----", "---- Save and Exit Game ----"));
-
-                               /* Hardcode panic save */
-                               p_ptr->panic_save = 1;
-
-                               /* Forbid suspend */
-                               signals_ignore_tstp();
-
-                               /* Indicate panic save */
-                               (void)strcpy(p_ptr->died_from, _("(緊急セーブ)", "(panic save)"));
-
-                               /* Panic save */
-                               (void)save_player(p_ptr);
+                               *lpStr++ = '\r';
+                               *lpStr++ = '\n';
                        }
-                       quit(NULL);
-                       return 0;
                }
 
-               case WM_QUIT:
+               GlobalUnlock(hGlobal);
+               if (OpenClipboard(hWnd) == 0)
                {
-                       quit(NULL);
+                       GlobalFree(hGlobal);
                        return 0;
                }
+               EmptyClipboard();
+               SetClipboardData(CF_TEXT, hGlobal);
+               CloseClipboard();
 
-               case WM_COMMAND:
-               {
-                       process_menus(LOWORD(wParam));
-                       return 0;
-               }
+               Term_redraw();
 
-               case WM_SIZE:
+               return 0;
+       }
+       case WM_MOUSEMOVE:
+       {
+               if (mouse_down)
                {
-                       /* this message was sent before WM_NCCREATE */
-                       if (!td) return 1;
-
-                       /* it was sent from inside CreateWindowEx */
-                       if (!td->w) return 1;
-
-                       /* was sent from WM_SIZE */
-                       if (td->size_hack) return 1;
+                       int dx, dy;
+                       int cx = MIN(LOWORD(lParam) / td->tile_wid, td->cols - 1);
+                       int cy = MIN(HIWORD(lParam) / td->tile_hgt, td->rows - 1);
+                       int ox, oy;
 
-                       switch (wParam)
+                       if (paint_rect)
                        {
-                               case SIZE_MINIMIZED:
-                               {
-                                       /* Hide sub-windows */
-                                       for (i = 1; i < MAX_TERM_DATA; i++)
-                                       {
-                                               if (data[i].visible) ShowWindow(data[i].w, SW_HIDE);
-                                       }
-                                       return 0;
-                               }
-
-                               case SIZE_MAXIMIZED:
-                               {
-                                       /* fall through */
-                               }
-
-                               case SIZE_RESTORED:
-                               {
-                                       TERM_LEN cols = (LOWORD(lParam) - td->size_ow1) / td->tile_wid;
-                                       TERM_LEN rows = (HIWORD(lParam) - td->size_oh1) / td->tile_hgt;
-
-                                       /* New size */
-                                       if ((td->cols != cols) || (td->rows != rows))
-                                       {
-                                               /* Save the new size */
-                                               td->cols = cols;
-                                               td->rows = rows;
-
-                                               if (!IsZoomed(td->w) && !IsIconic(td->w))
-                                               {
-                                                       normsize.x = td->cols;
-                                                       normsize.y = td->rows;
-                                               }
-
-                                               /* Activate */
-                                               Term_activate(&td->t);
-
-                                               /* Resize the term */
-                                               Term_resize(td->cols, td->rows);
-
-                                               /* Redraw later */
-                                               InvalidateRect(td->w, NULL, TRUE);
-                                       }
-
-                                       td->size_hack = TRUE;
-
-                                       /* Show sub-windows */
-                                       for (i = 1; i < MAX_TERM_DATA; i++)
-                                       {
-                                               if (data[i].visible) ShowWindow(data[i].w, SW_SHOW);
-                                       }
-
-                                       td->size_hack = FALSE;
-
-                                       return 0;
-                               }
+                               dx = abs(oldx - mousex) + 1;
+                               dy = abs(oldy - mousey) + 1;
+                               ox = (oldx > mousex) ? mousex : oldx;
+                               oy = (oldy > mousey) ? mousey : oldy;
+                               term_inversed_area(hWnd, ox, oy, dx, dy);
+                       }
+                       else
+                       {
+                               paint_rect = TRUE;
                        }
-                       break;
-               }
-
-               case WM_PALETTECHANGED:
-               {
-                       /* Ignore if palette change caused by itself */
-                       if ((HWND)wParam == hWnd) return 0;
-
-                       /* Fall through... */
-               }
-
-               case WM_QUERYNEWPALETTE:
-               {
-                       if (!paletted) return 0;
-
-                       hdc = GetDC(hWnd);
-
-                       SelectPalette(hdc, hPal, FALSE);
-
-                       i = RealizePalette(hdc);
-
-                       /* if any palette entries changed, repaint the window. */
-                       if (i) InvalidateRect(hWnd, NULL, TRUE);
 
-                       ReleaseDC(hWnd, hdc);
+                       dx = abs(cx - mousex) + 1;
+                       dy = abs(cy - mousey) + 1;
+                       ox = (cx > mousex) ? mousex : cx;
+                       oy = (cy > mousey) ? mousey : cy;
+                       term_inversed_area(hWnd, ox, oy, dx, dy);
 
-                       return 0;
+                       oldx = cx;
+                       oldy = cy;
                }
 
-               case WM_ACTIVATE:
+               return 0;
+       }
+       case WM_INITMENU:
+       {
+               setup_menus();
+               return 0;
+       }
+       case WM_CLOSE:
+       {
+               if (game_in_progress && current_world_ptr->character_generated)
                {
-                       if (wParam && !HIWORD(lParam))
+                       if (!can_save)
                        {
-                               /* Do something to sub-windows */
-                               for (i = 1; i < MAX_TERM_DATA; i++)
-                               {
-                                       if (!data[i].posfix) term_window_pos(&data[i], hWnd);
-                               }
-
-                               /* Focus on main window */
-                               SetFocus(hWnd);
-
+                               plog(_("今は終了できません。", "You may not do that right now."));
                                return 0;
                        }
 
-                       break;
+                       msg_flag = FALSE;
+                       forget_lite(p_ptr->current_floor_ptr);
+                       forget_view(p_ptr->current_floor_ptr);
+                       clear_mon_lite(p_ptr->current_floor_ptr);
+                       Term_key_push(SPECIAL_KEY_QUIT);
+                       return 0;
                }
 
-               case WM_ACTIVATEAPP:
-               {
-                       if (IsIconic(td->w)) break;
-
-                       for (i = 1; i < MAX_TERM_DATA; i++)
-                       {
-                               if(data[i].visible)
-                               {
-                                       if (wParam == TRUE)
-                                       {
-                                               ShowWindow(data[i].w, SW_SHOW);
-                                       }
-                                       else
-                                       {
-                                               ShowWindow(data[i].w, SW_HIDE);
-                                       }
-                               }
-                       }
-               }
+               quit(NULL);
+               return 0;
        }
-
-       return DefWindowProc(hWnd, uMsg, wParam, lParam);
-}
-
-
-#ifdef __MWERKS__
-LRESULT FAR PASCAL AngbandListProc(HWND hWnd, UINT uMsg,
-                                          WPARAM wParam, LPARAM lParam);
-LRESULT FAR PASCAL AngbandListProc(HWND hWnd, UINT uMsg,
-                                          WPARAM wParam, LPARAM lParam)
-#else /* __MWERKS__ */
-LRESULT FAR PASCAL AngbandListProc(HWND hWnd, UINT uMsg,
-                                          WPARAM wParam, LPARAM lParam)
-#endif /* __MWERKS__ */
-{
-       term_data *td;
-#if 0
-       MINMAXINFO FAR *lpmmi;
-       RECT rc;
-#endif
-       PAINTSTRUCT ps;
-       HDC hdc;
-       int i;
-
-
-       /* Acquire proper "term_data" info */
-       td = (term_data *)GetWindowLong(hWnd, 0);
-
-       /* Process message */
-       switch (uMsg)
+       case WM_QUERYENDSESSION:
        {
-               case WM_NCCREATE:
+               if (game_in_progress && current_world_ptr->character_generated)
                {
-                       SetWindowLong(hWnd, 0, (LONG)(my_td));
-                       break;
+                       msg_flag = FALSE;
+                       if (p_ptr->chp < 0) p_ptr->is_dead = FALSE;
+                       exe_write_diary(p_ptr, DIARY_GAMESTART, 0, _("----ゲーム中断----", "---- Save and Exit Game ----"));
+
+                       p_ptr->panic_save = 1;
+                       signals_ignore_tstp();
+                       (void)strcpy(p_ptr->died_from, _("(緊急セーブ)", "(panic save)"));
+                       (void)save_player(p_ptr);
                }
 
-               case WM_CREATE:
-               {
-                       return 0;
-               }
+               quit(NULL);
+               return 0;
+       }
+       case WM_QUIT:
+       {
+               quit(NULL);
+               return 0;
+       }
+       case WM_COMMAND:
+       {
+               process_menus(p_ptr, LOWORD(wParam));
+               return 0;
+       }
+       case WM_SIZE:
+       {
+               if (!td) return 1;
+               if (!td->w) return 1;
+               if (td->size_hack) return 1;
 
-               case WM_GETMINMAXINFO:
+               switch (wParam)
                {
-                       MINMAXINFO FAR *lpmmi;
-                       RECT rc;
-
-                       lpmmi = (MINMAXINFO FAR *)lParam;
-
-                       /* this message was sent before WM_NCCREATE */
-                       if (!td) return 1;
-
-                       /* Minimum window size is 80x24 */
-                       rc.left = rc.top = 0;
-                       rc.right = rc.left + 20 * td->tile_wid + td->size_ow1 + td->size_ow2;
-                       rc.bottom = rc.top + 3 * td->tile_hgt + td->size_oh1 + td->size_oh2 + 1;
-
-                       /* Adjust */
-                       AdjustWindowRectEx(&rc, td->dwStyle, TRUE, td->dwExStyle);
-
-                       /* Save minimum size */
-                       lpmmi->ptMinTrackSize.x = rc.right - rc.left;
-                       lpmmi->ptMinTrackSize.y = rc.bottom - rc.top;
+               case SIZE_MINIMIZED:
+               {
+                       /* Hide sub-windows */
+                       for (int i = 1; i < MAX_TERM_DATA; i++)
+                       {
+                               if (data[i].visible) ShowWindow(data[i].w, SW_HIDE);
+                       }
 
                        return 0;
                }
-
-               case WM_SIZE:
+               case SIZE_MAXIMIZED:
                {
-                       TERM_LEN cols;
-                       TERM_LEN rows;
-                       
-                       /* this message was sent before WM_NCCREATE */
-                       if (!td) return 1;
-
-                       /* it was sent from inside CreateWindowEx */
-                       if (!td->w) return 1;
-
-                       /* was sent from inside WM_SIZE */
-                       if (td->size_hack) return 1;
-
-                       td->size_hack = TRUE;
-
-                       cols = (LOWORD(lParam) - td->size_ow1) / td->tile_wid;
-                       rows = (HIWORD(lParam) - td->size_oh1) / td->tile_hgt;
-
-                       /* New size */
+                       /* fall through */
+               }
+               case SIZE_RESTORED:
+               {
+                       TERM_LEN cols = (LOWORD(lParam) - td->size_ow1) / td->tile_wid;
+                       TERM_LEN rows = (HIWORD(lParam) - td->size_oh1) / td->tile_hgt;
                        if ((td->cols != cols) || (td->rows != rows))
                        {
-                               /* Save old term */
-                               term *old_term = Term;
-
-                               /* Save the new size */
                                td->cols = cols;
                                td->rows = rows;
+                               if (!IsZoomed(td->w) && !IsIconic(td->w))
+                               {
+                                       normsize.x = td->cols;
+                                       normsize.y = td->rows;
+                               }
 
-                               /* Activate */
                                Term_activate(&td->t);
-
-                               /* Resize the term */
                                Term_resize(td->cols, td->rows);
-
-                               /* Activate */
-                               Term_activate(old_term);
-
-                               /* Redraw later */
                                InvalidateRect(td->w, NULL, TRUE);
+                       }
 
-                               /* HACK - Redraw all windows */
-                               p_ptr->window = 0xFFFFFFFF;
-                               handle_stuff(p_ptr);
+                       td->size_hack = TRUE;
+                       for (int i = 1; i < MAX_TERM_DATA; i++)
+                       {
+                               if (data[i].visible) ShowWindow(data[i].w, SW_SHOW);
                        }
 
                        td->size_hack = FALSE;
 
                        return 0;
                }
-
-               case WM_PAINT:
-               {
-                       BeginPaint(hWnd, &ps);
-                       if (td) term_data_redraw(td);
-                       EndPaint(hWnd, &ps);
-                       return 0;
                }
 
-               case WM_SYSKEYDOWN:
-               case WM_KEYDOWN:
-               {
-                       if (process_keydown(wParam, lParam))
-                               return 0;
-                       break;
-               }
+               break;
+       }
+       case WM_PALETTECHANGED:
+       {
+               if ((HWND)wParam == hWnd) return 0;
+       }
+       case WM_QUERYNEWPALETTE:
+       {
+               if (!paletted) return 0;
 
-               case WM_CHAR:
-               {
-                       if (Term_no_press) Term_no_press = FALSE;
-                       else Term_keypress(wParam);
-                       return 0;
-               }
+               hdc = GetDC(hWnd);
+               SelectPalette(hdc, hPal, FALSE);
+               int i = RealizePalette(hdc);
+               if (i) InvalidateRect(hWnd, NULL, TRUE);
 
-               case WM_PALETTECHANGED:
+               ReleaseDC(hWnd, hdc);
+               return 0;
+       }
+       case WM_ACTIVATE:
+       {
+               if (wParam && !HIWORD(lParam))
                {
-                       /* ignore if palette change caused by itself */
-                       if ((HWND)wParam == hWnd) return FALSE;
-                       /* otherwise, fall through!!! */
-               }
+                       for (int i = 1; i < MAX_TERM_DATA; i++)
+                       {
+                               if (!data[i].posfix) term_window_pos(&data[i], hWnd);
+                       }
 
-               case WM_QUERYNEWPALETTE:
-               {
-                       if (!paletted) return 0;
-                       hdc = GetDC(hWnd);
-                       SelectPalette(hdc, hPal, FALSE);
-                       i = RealizePalette(hdc);
-                       /* if any palette entries changed, repaint the window. */
-                       if (i) InvalidateRect(hWnd, NULL, TRUE);
-                       ReleaseDC(hWnd, hdc);
+                       SetFocus(hWnd);
                        return 0;
                }
 
-               case WM_NCLBUTTONDOWN:
-               {
-
-#ifdef HTCLOSE
-                       if (wParam == HTCLOSE) wParam = HTSYSMENU;
-#endif /* HTCLOSE */
+               break;
+       }
+       case WM_ACTIVATEAPP:
+       {
+               if (IsIconic(td->w)) break;
 
-                       if (wParam == HTSYSMENU)
+               for (int i = 1; i < MAX_TERM_DATA; i++)
+               {
+                       if (data[i].visible)
                        {
-                               if (td->visible)
+                               if (wParam == TRUE)
                                {
-                                       td->visible = FALSE;
-                                       ShowWindow(td->w, SW_HIDE);
+                                       ShowWindow(data[i].w, SW_SHOW);
+                               }
+                               else
+                               {
+                                       ShowWindow(data[i].w, SW_HIDE);
                                }
-
-                               return 0;
                        }
-
-                       break;
                }
        }
+       }
 
        return DefWindowProc(hWnd, uMsg, wParam, lParam);
 }
 
 
-#ifdef USE_SAVER
+/*!
+ * todo WNDCLASSに影響があるのでplayer_type*の追加は保留
+ */
+LRESULT PASCAL AngbandListProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+       term_data *td;
+       PAINTSTRUCT ps;
+       HDC hdc;
+       td = (term_data *)GetWindowLong(hWnd, 0);
 
-#define MOUSE_SENS 40
+       switch (uMsg)
+       {
+       case WM_NCCREATE:
+       {
+               SetWindowLong(hWnd, 0, (LONG)(my_td));
+               break;
+       }
+       case WM_CREATE:
+       {
+               return 0;
+       }
+       case WM_GETMINMAXINFO:
+       {
+               MINMAXINFO *lpmmi;
+               RECT rc;
 
-#ifdef __MWERKS__
-LRESULT FAR PASCAL AngbandSaverProc(HWND hWnd, UINT uMsg,
-                                   WPARAM wParam, LPARAM lParam);
-LRESULT FAR PASCAL AngbandSaverProc(HWND hWnd, UINT uMsg,
-                                   WPARAM wParam, LPARAM lParam)
-#else /* __MWERKS__ */
-LRESULT FAR PASCAL AngbandSaverProc(HWND hWnd, UINT uMsg,
-                                           WPARAM wParam, LPARAM lParam)
-#endif /* __MWERKS__ */
-{
-       static int iMouse = 0;
-       static WORD xMouse = 0;
-       static WORD yMouse = 0;
+               lpmmi = (MINMAXINFO*)lParam;
+               if (!td) return 1;
 
-       int dx, dy;
+               rc.left = rc.top = 0;
+               rc.right = rc.left + 20 * td->tile_wid + td->size_ow1 + td->size_ow2;
+               rc.bottom = rc.top + 3 * td->tile_hgt + td->size_oh1 + td->size_oh2 + 1;
 
+               AdjustWindowRectEx(&rc, td->dwStyle, TRUE, td->dwExStyle);
+               lpmmi->ptMinTrackSize.x = rc.right - rc.left;
+               lpmmi->ptMinTrackSize.y = rc.bottom - rc.top;
 
-       /* Process */
-       switch (uMsg)
+               return 0;
+       }
+       case WM_SIZE:
        {
-               case WM_NCCREATE:
-               {
-                       break;
-               }
+               if (!td) return 1;
+               if (!td->w) return 1;
+               if (td->size_hack) return 1;
 
-               case WM_SETCURSOR:
-               {
-                       SetCursor(NULL);
-                       return 0;
-               }
+               td->size_hack = TRUE;
 
-#if 0
-               case WM_ACTIVATE:
+               TERM_LEN cols = (LOWORD(lParam) - td->size_ow1) / td->tile_wid;
+               TERM_LEN rows = (HIWORD(lParam) - td->size_oh1) / td->tile_hgt;
+               if ((td->cols != cols) || (td->rows != rows))
                {
-                       if (LOWORD(wParam) == WA_INACTIVE) break;
-
-                       /* else fall through */
+                       term *old_term = Term;
+                       td->cols = cols;
+                       td->rows = rows;
+                       Term_activate(&td->t);
+                       Term_resize(td->cols, td->rows);
+                       Term_activate(old_term);
+                       InvalidateRect(td->w, NULL, TRUE);
+                       p_ptr->window = 0xFFFFFFFF;
+                       handle_stuff(p_ptr);
                }
-#endif
 
-               case WM_LBUTTONDOWN:
-               case WM_MBUTTONDOWN:
-               case WM_RBUTTONDOWN:
-               case WM_KEYDOWN:
-               {
-                       SendMessage(hWnd, WM_CLOSE, 0, 0);
+               td->size_hack = FALSE;
+
+               return 0;
+       }
+       case WM_PAINT:
+       {
+               BeginPaint(hWnd, &ps);
+               if (td) term_data_redraw(p_ptr, td);
+               EndPaint(hWnd, &ps);
+               return 0;
+       }
+       case WM_SYSKEYDOWN:
+       case WM_KEYDOWN:
+       {
+               if (process_keydown(wParam, lParam))
                        return 0;
-               }
+               break;
+       }
+       case WM_CHAR:
+       {
+               if (term_no_press) term_no_press = FALSE;
+               else Term_keypress(wParam);
+               return 0;
+       }
+       case WM_PALETTECHANGED:
+       {
+               if ((HWND)wParam == hWnd) return FALSE;
+       }
+       case WM_QUERYNEWPALETTE:
+       {
+               if (!paletted) return 0;
+               hdc = GetDC(hWnd);
+               SelectPalette(hdc, hPal, FALSE);
+               int i = RealizePalette(hdc);
+               if (i) InvalidateRect(hWnd, NULL, TRUE);
+               ReleaseDC(hWnd, hdc);
+               return 0;
+       }
+       case WM_NCLBUTTONDOWN:
+       {
+#ifdef HTCLOSE
+               if (wParam == HTCLOSE) wParam = HTSYSMENU;
+#endif /* HTCLOSE */
 
-               case WM_MOUSEMOVE:
+               if (wParam == HTSYSMENU)
                {
-                       if (iMouse)
+                       if (td->visible)
                        {
-                               dx = LOWORD(lParam) - xMouse;
-                               dy = HIWORD(lParam) - yMouse;
-
-                               if (dx < 0) dx = -dx;
-                               if (dy < 0) dy = -dy;
-
-                               if ((dx > MOUSE_SENS) || (dy > MOUSE_SENS))
-                               {
-                                       SendMessage(hWnd, WM_CLOSE, 0, 0);
-                               }
+                               td->visible = FALSE;
+                               ShowWindow(td->w, SW_HIDE);
                        }
 
-                       /* Save last location */
-                       iMouse = 1;
-                       xMouse = LOWORD(lParam);
-                       yMouse = HIWORD(lParam);
-
                        return 0;
                }
 
-               case WM_CLOSE:
-               {
-                       DestroyWindow(hwndSaver);
-                       hwndSaver = NULL;
-                       return 0;
-               }
+               break;
+       }
        }
 
        return DefWindowProc(hWnd, uMsg, wParam, lParam);
 }
 
-#endif /* USE_SAVER */
 
+#define MOUSE_SENS 40
+
+LRESULT PASCAL AngbandSaverProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+       static int iMouse = 0;
+       static WORD xMouse = 0;
+       static WORD yMouse = 0;
+
+       switch (uMsg)
+       {
+       case WM_NCCREATE:
+       {
+               break;
+       }
+
+       case WM_SETCURSOR:
+       {
+               SetCursor(NULL);
+               return 0;
+       }
+
+       case WM_LBUTTONDOWN:
+       case WM_MBUTTONDOWN:
+       case WM_RBUTTONDOWN:
+       case WM_KEYDOWN:
+       {
+               SendMessage(hWnd, WM_CLOSE, 0, 0);
+               return 0;
+       }
+       case WM_MOUSEMOVE:
+       {
+               if (iMouse)
+               {
+                       int dx = LOWORD(lParam) - xMouse;
+                       int dy = HIWORD(lParam) - yMouse;
+
+                       if (dx < 0) dx = -dx;
+                       if (dy < 0) dy = -dy;
 
+                       if ((dx > MOUSE_SENS) || (dy > MOUSE_SENS))
+                       {
+                               SendMessage(hWnd, WM_CLOSE, 0, 0);
+                       }
+               }
 
+               iMouse = 1;
+               xMouse = LOWORD(lParam);
+               yMouse = HIWORD(lParam);
 
+               return 0;
+       }
+       case WM_CLOSE:
+       {
+               DestroyWindow(hwndSaver);
+               hwndSaver = NULL;
+               return 0;
+       }
+       }
 
-/*** Temporary Hooks ***/
+       return DefWindowProc(hWnd, uMsg, wParam, lParam);
+}
 
 
 /*
@@ -5318,15 +4408,14 @@ LRESULT FAR PASCAL AngbandSaverProc(HWND hWnd, UINT uMsg,
  */
 static void hack_plog(concptr str)
 {
-       /* Give a warning */
        if (str)
        {
 #ifdef JP
                MessageBox(NULL, str, "警告!",
-                          MB_ICONEXCLAMATION | MB_OK);
+                       MB_ICONEXCLAMATION | MB_OK);
 #else
                MessageBox(NULL, str, "Warning",
-                          MB_ICONEXCLAMATION | MB_OK);
+                       MB_ICONEXCLAMATION | MB_OK);
 #endif
 
        }
@@ -5338,47 +4427,38 @@ static void hack_plog(concptr str)
  */
 static void hack_quit(concptr str)
 {
-       /* Give a warning */
        if (str)
        {
 #ifdef JP
                MessageBox(NULL, str, "エラー!",
-                          MB_ICONEXCLAMATION | MB_OK | MB_ICONSTOP);
+                       MB_ICONEXCLAMATION | MB_OK | MB_ICONSTOP);
 #else
                MessageBox(NULL, str, "Error",
-                          MB_ICONEXCLAMATION | MB_OK | MB_ICONSTOP);
+                       MB_ICONEXCLAMATION | MB_OK | MB_ICONSTOP);
 #endif
 
        }
 
-       /* Unregister the classes */
        UnregisterClass(AppName, hInstance);
-
-       /* Destroy the icon */
        if (hIcon) DestroyIcon(hIcon);
 
        exit(0);
 }
 
 
-
-/*** Various hooks ***/
-
-
 /*
  * Display warning message (see "z-util.c")
  */
 static void hook_plog(concptr str)
 {
-       /* Warning */
        if (str)
        {
 #ifdef JP
                MessageBox(data[0].w, str, "警告!",
-                          MB_ICONEXCLAMATION | MB_OK);
+                       MB_ICONEXCLAMATION | MB_OK);
 #else
                MessageBox(data[0].w, str, "Warning",
-                          MB_ICONEXCLAMATION | MB_OK);
+                       MB_ICONEXCLAMATION | MB_OK);
 #endif
 
        }
@@ -5390,31 +4470,19 @@ static void hook_plog(concptr str)
  */
 static void hook_quit(concptr str)
 {
-       int i;
-
-
-       /* Give a warning */
        if (str)
        {
 #ifdef JP
                MessageBox(data[0].w, str, "エラー!",
-                          MB_ICONEXCLAMATION | MB_OK | MB_ICONSTOP);
+                       MB_ICONEXCLAMATION | MB_OK | MB_ICONSTOP);
 #else
                MessageBox(data[0].w, str, "Error",
-                          MB_ICONEXCLAMATION | MB_OK | MB_ICONSTOP);
+                       MB_ICONEXCLAMATION | MB_OK | MB_ICONSTOP);
 #endif
-
        }
 
-
-       /* Save the preferences */
        save_prefs();
-
-
-       /*** Could use 'Term_nuke_win()' */
-
-       /* Destroy all windows */
-       for (i = MAX_TERM_DATA - 1; i >= 0; --i)
+       for (int i = MAX_TERM_DATA - 1; i >= 0; --i)
        {
                term_force_font(&data[i], NULL);
                if (data[i].font_want) string_free(data[i].font_want);
@@ -5422,94 +4490,54 @@ static void hook_quit(concptr str)
                data[i].w = 0;
        }
 
-       /* Free the bitmap stuff */
-#ifdef USE_GRAPHICS
        if (infGraph.hPalette) DeleteObject(infGraph.hPalette);
        if (infGraph.hBitmap) DeleteObject(infGraph.hBitmap);
-
        if (infMask.hPalette) DeleteObject(infMask.hPalette);
        if (infMask.hBitmap) DeleteObject(infMask.hBitmap);
 
-#endif /* USE_GRAPHICS */
-
-       /*** Free some other stuff ***/
-
        DeleteObject(hbrYellow);
-
-       /* bg */
        delete_bg();
 
        if (hPal) DeleteObject(hPal);
 
        UnregisterClass(AppName, hInstance);
-
        if (hIcon) DestroyIcon(hIcon);
 
        exit(0);
 }
 
 
-
-/*** Initialize ***/
-
-
 /*
  * Init some stuff
  */
 static void init_stuff(void)
 {
-       int i;
-
        char path[1024];
-
-
-       /* Get program name with full path */
        GetModuleFileName(hInstance, path, 512);
-
-       /* Save the "program name" */
        argv0 = path;
-
-       /* Get the name of the "*.ini" file */
        strcpy(path + strlen(path) - 4, ".INI");
-
-       /* Save the the name of the ini-file */
        ini_file = string_make(path);
+       int i = strlen(path);
 
-       /* Analyze the path */
-       i = strlen(path);
-
-       /* Get the path */
        for (; i > 0; i--)
        {
                if (path[i] == '\\')
                {
-                       /* End of path */
                        break;
                }
        }
 
-       /* Add "lib" to the path */
        strcpy(path + i + 1, "lib\\");
-
-       /* Validate the path */
        validate_dir(path, TRUE);
-
-       /* Init the file paths */
        init_file_paths(path);
-
-       /* Hack -- Validate the paths */
        validate_dir(ANGBAND_DIR_APEX, FALSE);
        validate_dir(ANGBAND_DIR_BONE, FALSE);
-
-       /* Allow missing 'edit' directory */
        if (!check_dir(ANGBAND_DIR_EDIT))
        {
-               /* Must have 'data'! */
                validate_dir(ANGBAND_DIR_DATA, TRUE);
        }
        else
        {
-               /* Don't need 'data' */
                validate_dir(ANGBAND_DIR_DATA, FALSE);
        }
 
@@ -5522,221 +4550,134 @@ static void init_stuff(void)
        validate_dir(ANGBAND_DIR_XTRA, TRUE);
        path_build(path, sizeof(path), ANGBAND_DIR_FILE, _("news_j.txt", "news.txt"));
 
-       /* Hack -- Validate the "news.txt" file */
-       validate_file(path);
-
-
-#if 0 /* #ifndef JP */
-       /* Build the "font" path */
-       path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "font");
-
-       /* Allocate the path */
-       ANGBAND_DIR_XTRA_FONT = string_make(path);
-
-       /* Validate the "font" directory */
-       validate_dir(ANGBAND_DIR_XTRA_FONT, TRUE);
-       path_build(path, sizeof(path), ANGBAND_DIR_XTRA_FONT, "8X13.FON");
-
-       /* Hack -- Validate the basic font */
        validate_file(path);
-#endif
-
-
-#ifdef USE_GRAPHICS
-
-       /* Build the "graf" path */
        path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "graf");
-
-       /* Allocate the path */
        ANGBAND_DIR_XTRA_GRAF = string_make(path);
-
-       /* Validate the "graf" directory */
        validate_dir(ANGBAND_DIR_XTRA_GRAF, TRUE);
 
-#endif /* USE_GRAPHICS */
-
-
-#ifdef USE_SOUND
-
-       /* Build the "sound" path */
        path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "sound");
-
-       /* Allocate the path */
        ANGBAND_DIR_XTRA_SOUND = string_make(path);
-
-       /* Validate the "sound" directory */
        validate_dir(ANGBAND_DIR_XTRA_SOUND, FALSE);
 
-#endif /* USE_SOUND */
-
-#ifdef USE_MUSIC
-
-       /* Build the "music" path */
        path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "music");
-
-       /* Allocate the path */
        ANGBAND_DIR_XTRA_MUSIC = string_make(path);
-
-       /* Validate the "music" directory */
        validate_dir(ANGBAND_DIR_XTRA_MUSIC, FALSE);
 
-#endif /* USE_MUSIC */
-
-       /* Build the "help" path */
        path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "help");
-
-       /* Allocate the path */
        ANGBAND_DIR_XTRA_HELP = string_make(path);
-
-       /* Validate the "help" directory */
-       /* validate_dir(ANGBAND_DIR_XTRA_HELP); */
 }
 
+
 /*!
+ * todo よく見るとhMutexはちゃんと使われていない……?
  * @brief (Windows固有)変愚蛮怒が起動済かどうかのチェック
  */
 static bool is_already_running(void)
 {
-       bool result = FALSE;
        HANDLE hMutex;
-
        hMutex = CreateMutex(NULL, TRUE, VERSION_NAME);
        if (GetLastError() == ERROR_ALREADY_EXISTS)
        {
-               result = TRUE;
+               return TRUE;
        }
-       return result;
+
+       return FALSE;
 }
 
 
 /*!
  * @brief (Windows固有)Windowsアプリケーションとしてのエントリポイント
  */
-int FAR PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrevInst,
-                      LPSTR lpCmdLine, int nCmdShow)
+int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow)
 {
-       int i;
-
        WNDCLASS wc;
        HDC hdc;
        MSG msg;
 
-       setlocale(LC_ALL, "ja_JP.utf8");
-
-       /* Unused */
+       setlocale(LC_ALL, "ja_JP");
        (void)nCmdShow;
-
-       /* Save globally */
        hInstance = hInst;
-       
-       
-       /* Prevent multiple run */
        if (is_already_running())
        {
                MessageBox(NULL,
-                               _("変愚蛮怒はすでに起動しています。", "Hengband is already running."), 
-                               _("エラー!", "Error") ,
-                               MB_ICONEXCLAMATION | MB_OK | MB_ICONSTOP);
+                       _("変愚蛮怒はすでに起動しています。", "Hengband is already running."),
+                       _("エラー!", "Error"),
+                       MB_ICONEXCLAMATION | MB_OK | MB_ICONSTOP);
                return FALSE;
        }
 
        if (hPrevInst == NULL)
        {
-               wc.style         = CS_CLASSDC;
-               wc.lpfnWndProc   = AngbandWndProc;
-               wc.cbClsExtra    = 0;
-               wc.cbWndExtra    = 4; /* one long pointer to term_data */
-               wc.hInstance     = hInst;
-               wc.hIcon         = hIcon = LoadIcon(hInst, AppName);
-               wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
+               wc.style = CS_CLASSDC;
+               wc.lpfnWndProc = AngbandWndProc;
+               wc.cbClsExtra = 0;
+               wc.cbWndExtra = 4;
+               wc.hInstance = hInst;
+               wc.hIcon = hIcon = LoadIcon(hInst, AppName);
+               wc.hCursor = LoadCursor(NULL, IDC_ARROW);
                wc.hbrBackground = GetStockObject(BLACK_BRUSH);
-               wc.lpszMenuName  = AppName;
+               wc.lpszMenuName = AppName;
                wc.lpszClassName = AppName;
 
                if (!RegisterClass(&wc)) exit(1);
 
-               wc.lpfnWndProc   = AngbandListProc;
-               wc.lpszMenuName  = NULL;
+               wc.lpfnWndProc = AngbandListProc;
+               wc.lpszMenuName = NULL;
                wc.lpszClassName = AngList;
 
                if (!RegisterClass(&wc)) exit(2);
 
-#ifdef USE_SAVER
-
-               wc.style          = CS_VREDRAW | CS_HREDRAW | CS_SAVEBITS | CS_DBLCLKS;
-               wc.lpfnWndProc    = AngbandSaverProc;
-               wc.hCursor        = NULL;
-               wc.lpszMenuName   = NULL;
-               wc.lpszClassName  = "WindowsScreenSaverClass";
+               wc.style = CS_VREDRAW | CS_HREDRAW | CS_SAVEBITS | CS_DBLCLKS;
+               wc.lpfnWndProc = AngbandSaverProc;
+               wc.hCursor = NULL;
+               wc.lpszMenuName = NULL;
+               wc.lpszClassName = "WindowsScreenSaverClass";
 
                if (!RegisterClass(&wc)) exit(3);
-
-#endif
-
        }
 
-       /* Temporary hooks */
        plog_aux = hack_plog;
        quit_aux = hack_quit;
        core_aux = hack_quit;
 
-       /* Prepare the filepaths */
        init_stuff();
-
-       /* Initialize the keypress analyzer */
-       for (i = 0; special_key_list[i]; ++i)
+       for (int i = 0; special_key_list[i]; ++i)
        {
                special_key[special_key_list[i]] = TRUE;
        }
-       /* Initialize the keypress analyzer */
-       for (i = 0; ignore_key_list[i]; ++i)
+
+       for (int i = 0; ignore_key_list[i]; ++i)
        {
                ignore_key[ignore_key_list[i]] = TRUE;
        }
 
-       /* Determine if display is 16/256/true color */
        hdc = GetDC(NULL);
        colors16 = (GetDeviceCaps(hdc, BITSPIXEL) == 4);
        paletted = ((GetDeviceCaps(hdc, RASTERCAPS) & RC_PALETTE) ? TRUE : FALSE);
        ReleaseDC(NULL, hdc);
 
-       /* Initialize the colors */
-       for (i = 0; i < 256; i++)
+       for (int i = 0; i < 256; i++)
        {
-               byte rv, gv, bv;
-
-               /* Extract desired values */
-               rv = angband_color_table[i][1];
-               gv = angband_color_table[i][2];
-               bv = angband_color_table[i][3];
-
-               /* Extract the "complex" code */
+               byte rv = angband_color_table[i][1];
+               byte gv = angband_color_table[i][2];
+               byte bv = angband_color_table[i][3];
                win_clr[i] = PALETTERGB(rv, gv, bv);
-
-               /* Save the "simple" code */
                angband_color_table[i][0] = win_pal[i];
        }
 
-       /* Prepare the windows */
        init_windows();
-
-       /* bg */
        init_bg();
 
-       /* Activate hooks */
        plog_aux = hook_plog;
        quit_aux = hook_quit;
        core_aux = hook_quit;
 
-       /* Set the system suffix */
        ANGBAND_SYS = "win";
-
-       /* Set the keyboard suffix */
        if (7 != GetKeyboardType(0))
                ANGBAND_KEYBOARD = "0";
        else
        {
-               /* Japanese keyboard */
+               /* todo PC-98のサポートは打ち切ったので削除したい */
                switch (GetKeyboardType(1))
                {
                case 0x0D01: case 0x0D02:
@@ -5751,78 +4692,66 @@ int FAR PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrevInst,
                }
        }
 
-       /* Catch nasty signals */
        signals_init();
-
        Term_activate(term_screen);
        init_angband(p_ptr);
-
-       /* We are now initialized */
        initialized = TRUE;
 #ifdef CHUUKEI
-       if(lpCmdLine[0] == '-'){
-         switch(lpCmdLine[1])
-         {
-         case 'p':
-         case 'P':
-           {
-             if (!lpCmdLine[2]) break;
-             chuukei_server = TRUE;
-             if(connect_chuukei_server(&lpCmdLine[2])<0){
-               msg_print("connect fail");
-               return 0;
-             }
-             msg_print("connect");
-             msg_print(NULL);
-             break;
-           }
-
-         case 'c':
-         case 'C':
-           {
-             if (!lpCmdLine[2]) break;
-             chuukei_client = TRUE;
-             connect_chuukei_server(&lpCmdLine[2]);
-             play_game(p_ptr, FALSE);
-             quit(NULL);
-             return 0;
-           }
-         case 'X':
-         case 'x':
-           {
-             if (!lpCmdLine[2]) break;
-             prepare_browse_movie(&lpCmdLine[2]);
-             play_game(p_ptr, FALSE);
-             quit(NULL);
-             return 0;
-           }
-         }
+       if (lpCmdLine[0] == '-') {
+               switch (lpCmdLine[1])
+               {
+               case 'p':
+               case 'P':
+               {
+                       if (!lpCmdLine[2]) break;
+                       chuukei_server = TRUE;
+                       if (connect_chuukei_server(&lpCmdLine[2]) < 0) {
+                               msg_print("connect fail");
+                               return 0;
+                       }
+                       msg_print("connect");
+                       msg_print(NULL);
+                       break;
+               }
+
+               case 'c':
+               case 'C':
+               {
+                       if (!lpCmdLine[2]) break;
+                       chuukei_client = TRUE;
+                       connect_chuukei_server(&lpCmdLine[2]);
+                       play_game(player_ptr, FALSE);
+                       quit(NULL);
+                       return 0;
+               }
+               case 'X':
+               case 'x':
+               {
+                       if (!lpCmdLine[2]) break;
+                       prepare_browse_movie(&lpCmdLine[2]);
+                       play_game(player_ptr, FALSE);
+                       quit(NULL);
+                       return 0;
+               }
+               }
        }
 #endif
 
 #ifdef CHUUKEI
-       /* Did the user double click on a save file? */
-       if(!chuukei_server) check_for_save_file(lpCmdLine);
+       if (!chuukei_server) check_for_save_file(lpCmdLine);
 #else
-       /* Did the user double click on a save file? */
-       check_for_save_file(lpCmdLine);
+       check_for_save_file(p_ptr, lpCmdLine);
 #endif
 
-       /* Prompt the user */
        prt(_("[ファイル] メニューの [新規] または [開く] を選択してください。", "[Choose 'New' or 'Open' from the 'File' menu]"), 23, _(8, 17));
-
        Term_fresh();
-
-       /* Process messages forever */
        while (GetMessage(&msg, NULL, 0, 0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
+
        quit(NULL);
-       return (0);
+       return 0;
 }
-
-
 #endif /* WINDOWS */
-