85,93d84
< #ifndef GetWindowLongPtr
< #define GetWindowLongPtr GetWindowLong
< #endif
< #ifndef SetWindowLongPtr
< #define SetWindowLongPtr SetWindowLong
< #endif
< #ifndef GWLP_USERDATA
< #define GWLP_USERDATA GWL_USERDATA
< #endif
111a103
> 
200,204c192,194
< #define IDM_OPTIONS_GRAPHICS_SHOCK  406
< #define IDM_OPTIONS_GRAPHICS_EXTRA  407
< //#define IDM_OPTIONS_TRPTILE         407
< //#define IDM_OPTIONS_DBLTILE         408
< //#define IDM_OPTIONS_BIGTILE         409
---
> #define IDM_OPTIONS_TRPTILE         407
> #define IDM_OPTIONS_DBLTILE         408
> #define IDM_OPTIONS_BIGTILE         409
209,222d198
< #define IDM_OPTIONS_TILE_1x1        447
< #define IDM_OPTIONS_TILE_2x1        448
< #define IDM_OPTIONS_TILE_4x2        449
< #define IDM_OPTIONS_TILE_2x2        450
< #define IDM_OPTIONS_TILE_3x1        451
< #define IDM_OPTIONS_TILE_3x3        452
< #define IDM_OPTIONS_TILE_4x4        453
< #define IDM_OPTIONS_TILE_6x3        454
< #define IDM_OPTIONS_TILE_6x6        455
< #define IDM_OPTIONS_TILE_8x4        456
< #define IDM_OPTIONS_TILE_8x8        457
< #define IDM_OPTIONS_TILE_16x8       458
< #define IDM_OPTIONS_TILE_16x16      459
< 
226,241d201
< /* Specifications for graphics modes.  */
< static const struct {
<  	const char *file;			// Base name of png file (if any)
< 	const char *name;			// Value of ANGBAND_GRAF variable
< 	int menuItem;			// Menu item to select the fileset
< 	int grafID;			// id of tile set should be >0 and unique for anything new
< } graphics_modes[] = {
< 	{ "8x8.png",     "old", IDM_OPTIONS_GRAPHICS_OLD,   1},
< 	{ "16x16.png",   "new", IDM_OPTIONS_GRAPHICS_ADAM,  2},
< 	{ "32x32.png", "david", IDM_OPTIONS_GRAPHICS_DAVID, 3},
< 	{ "8x16.png",  "nomad", IDM_OPTIONS_GRAPHICS_NOMAD, 4},
< 	{ "64x64.png", "david", IDM_OPTIONS_GRAPHICS_SHOCK, 6},
< 	{ "32x32.png", "david", IDM_OPTIONS_GRAPHICS_EXTRA, 7},
< 	{ NULL,           NULL, IDM_OPTIONS_GRAPHICS_NONE,  0}
< };
< 
551,553d510
< static char tileset[32] = "";
< static char tilegraf[8] = "";
< 
786,797c743,785
<             if (tileset[0])
<             {
<               char *end;
<               td->tile_wid = strtol(tileset,&end,10);
<               td->tile_hgt = strtol(end+1,&end,10);
<             }
<             else
<             {
<               /* Reset the tile info */
<               td->tile_wid = td->font_wid;
<               td->tile_hgt = td->font_hgt;
<             }
---
>             switch (use_graphics)
>               {
>               case GRAPHICS_DAVID_GERVAIS:
>                 {
>                   /* Reset the tile info */
>                   td->tile_wid = 32;
>                   td->tile_hgt = 32;
>                   break;
>                 }
>                 
>               case GRAPHICS_ADAM_BOLT:
>                 {
>                   /* Reset the tile info */
>                   td->tile_wid = 16;
>                   td->tile_hgt = 16;
>                   break;
>                 }
> 
>               case GRAPHICS_NOMAD:
>                 {
>                   /* Reset the tile info */
>                   td->tile_wid = 8;
>                   td->tile_hgt = 16;
>                   break;
>                 }
>                 
>               case GRAPHICS_ORIGINAL:
>                 {
>                   /* Reset the tile info */
>                   td->tile_wid = 8;
>                   td->tile_hgt = 8;
>                   break;
>                 }
>                 
>               case GRAPHICS_NONE:
>                 {
>                   /* Reset the tile info */
>                   td->tile_wid = td->font_wid;
>                   td->tile_hgt = td->font_hgt;
>                   break;
>                 }
>                 
>               }
954,958d941
<         /* Save the tile file name */
<         WritePrivateProfileString("Angband", "TileSet", tileset, ini_file);
<         /* Save the tile "type" used in pref files */
<         WritePrivateProfileString("Angband", "TileType", tilegraf, ini_file);
< 
1025c1008
< 	tile_width = GetPrivateProfileInt("Angband", "TileWidth", 1, ini_file);
---
> 	tile_width = GetPrivateProfileInt("Angband", "TileWidth", FALSE, ini_file);
1028,1034c1011
< 	tile_height = GetPrivateProfileInt("Angband", "TileHeight", 1, ini_file);
< 
< 	/* Extract the tile set file name */
< 	i = GetPrivateProfileString("Angband", "TileSet", "",tileset, 32, ini_file);
< 
< 	/* Extract the tile set pref type */
< 	i = GetPrivateProfileString("Angband", "TileType", "none",tilegraf, 8, ini_file);
---
> 	tile_height = GetPrivateProfileInt("Angband", "TileHeight", FALSE, ini_file);
1036c1013
<   /* Extract the "arg_wizard" flag */
---
> 	/* Extract the "arg_wizard" flag */
1312,1326c1289,1293
<     
< 		 if (tileset[0] && arg_graphics) {
<       char *end;
<       if (!tilegraf[0]) {
< 			  plog_fmt("invalid tile name '%s'", tilegraf);
< 			  return FALSE;
<       }
<       wid = strtol(tileset,&end,10);
<       hgt = strtol(end+1,&end,10);
<       if ((wid < 2) || (hgt < 2)) {
< 			  plog_fmt("invalid tile dimensions in tileset name: '%s'", tileset);
< 			  return FALSE;
<       }
<       name = tileset;
<       ANGBAND_GRAF = tilegraf;
---
> 		if (arg_graphics == GRAPHICS_DAVID_GERVAIS) {
> 			wid = 32;
> 			hgt = 32;
> 			name = "32x32.png";
> 			ANGBAND_GRAF = "david";
1328c1295,1307
<     } else {
---
> 		} else if (arg_graphics == GRAPHICS_ADAM_BOLT){
> 			wid = 16;
> 			hgt = 16;
> 			name = "16x16.png";
> 			ANGBAND_GRAF = "new";
> 			use_transparency = TRUE;
> 		} else if (arg_graphics == GRAPHICS_NOMAD) {
> 			wid = 16;
> 			hgt = 16;
> 			name = "8x16.png";
> 			ANGBAND_GRAF = "nomad";
> 			use_transparency = TRUE;
> 		} else {
2171c2150
< static byte Term_xchar_win(byte c)
---
>  static byte Term_xchar_win(byte c)
2311c2290
<     th2 = h2;
---
>                 th2 = h2;
2318c2297
<     /* Large tile mode */
---
>                 /* Large tile mode */
2334c2313,2315
<   if (infMask.hBitmap)
---
> 	if ((arg_graphics == GRAPHICS_ADAM_BOLT) ||
> 		(arg_graphics == GRAPHICS_NOMAD) ||
> 	    (arg_graphics == GRAPHICS_DAVID_GERVAIS))
2345c2326
<   for (i = n-1; i >= 0; i--, x2 -= w2)
---
>         for (i = n-1; i >= 0; i--, x2 -= w2)
2358c2339,2341
<     if (hdcMask)
---
> 		if ((arg_graphics == GRAPHICS_ADAM_BOLT) ||
> 			(arg_graphics == GRAPHICS_NOMAD) ||
> 		    (arg_graphics == GRAPHICS_DAVID_GERVAIS))
2369,2370c2352,2353
<         /* Only draw if terrain and overlay are different */
<         if ((x1 != x3) || (y1 != y3))
---
>                                 /* Only draw if terrain and overlay are different */
>                                 if ((x1 != x3) || (y1 != y3))
2372,2373c2355,2356
< 				  /* Mask out the tile */
< 				  BitBlt(hdc, x2, y2, tw2, th2, hdcMask, x1, y1, SRCAND);
---
> 				        /* Mask out the tile */
> 				        BitBlt(hdc, x2, y2, tw2, th2, hdcMask, x1, y1, SRCAND);
2425c2408,2410
< 	if (hdcMask)
---
> 	if ((arg_graphics == GRAPHICS_ADAM_BOLT) ||
> 		(arg_graphics == GRAPHICS_NOMAD) ||
> 	    (arg_graphics == GRAPHICS_DAVID_GERVAIS))
2912,2921c2897,2915
<   i=0;
<   do {
< 	  EnableMenuItem(hm, graphics_modes[i].menuItem,
< 	                 MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
<   } while (graphics_modes[i++].grafID != 0); 
< 
<   EnableMenuItem(hm, IDM_OPTIONS_GRAPHICS_NICE,
<                  MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
< 
<   EnableMenuItem(hm, IDM_OPTIONS_SAVER,
---
> 	EnableMenuItem(hm, IDM_OPTIONS_GRAPHICS_NONE,
> 	               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
> 	EnableMenuItem(hm, IDM_OPTIONS_GRAPHICS_OLD,
> 	               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
> 	EnableMenuItem(hm, IDM_OPTIONS_GRAPHICS_ADAM,
> 	               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
> 	EnableMenuItem(hm, IDM_OPTIONS_GRAPHICS_NOMAD,
> 	               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
> 	EnableMenuItem(hm, IDM_OPTIONS_GRAPHICS_DAVID,
> 	               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
>         EnableMenuItem(hm, IDM_OPTIONS_GRAPHICS_NICE,
>                        MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
>         EnableMenuItem(hm, IDM_OPTIONS_TRPTILE,
>                        MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
>         EnableMenuItem(hm, IDM_OPTIONS_DBLTILE,
>                        MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
> 	EnableMenuItem(hm, IDM_OPTIONS_BIGTILE,
> 	               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
> 	EnableMenuItem(hm, IDM_OPTIONS_SAVER,
2926,2949d2919
<   EnableMenuItem(hm, IDM_OPTIONS_TILE_1x1,
<                  MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
<   EnableMenuItem(hm, IDM_OPTIONS_TILE_2x1,
<                  MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
<   EnableMenuItem(hm, IDM_OPTIONS_TILE_2x2,
<                  MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
<   EnableMenuItem(hm, IDM_OPTIONS_TILE_3x1,
<                  MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
<   EnableMenuItem(hm, IDM_OPTIONS_TILE_3x3,
<                  MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
<   EnableMenuItem(hm, IDM_OPTIONS_TILE_4x2,
<                  MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
<   EnableMenuItem(hm, IDM_OPTIONS_TILE_4x4,
<                  MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
<   EnableMenuItem(hm, IDM_OPTIONS_TILE_8x4,
<                  MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
<   EnableMenuItem(hm, IDM_OPTIONS_TILE_8x8,
<                  MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
<   EnableMenuItem(hm, IDM_OPTIONS_TILE_16x8,
<                  MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
<   EnableMenuItem(hm, IDM_OPTIONS_TILE_16x16,
<                  MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
< 
< 
2958,3031c2928,2946
<   i=0;
<   do {
< 	  EnableMenuItem(hm, graphics_modes[i].menuItem,MF_ENABLED );
< 	  CheckMenuItem(hm, graphics_modes[i].menuItem,
< 	                (arg_graphics == graphics_modes[i].grafID ? MF_CHECKED : MF_UNCHECKED));
<   } while (graphics_modes[i++].grafID != 0); 
< 
<   CheckMenuItem(hm, IDM_OPTIONS_GRAPHICS_NICE,
<                 (arg_graphics_nice ? MF_CHECKED : MF_UNCHECKED));
< 
<   if ((tile_width == 1) && (tile_height == 1))
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_1x1, MF_CHECKED);
<   else
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_1x1, MF_UNCHECKED);
< 
<   if ((tile_width == 2) && (tile_height == 1))
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_2x1, MF_CHECKED);
<   else
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_2x1, MF_UNCHECKED);
< 
<   if ((tile_width == 2) && (tile_height == 2))
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_2x2, MF_CHECKED);
<   else
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_2x2, MF_UNCHECKED);
< 
<   if ((tile_width == 3) && (tile_height == 1))
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_3x1, MF_CHECKED);
<   else
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_3x1, MF_UNCHECKED);
< 
<   if ((tile_width == 3) && (tile_height == 3))
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_3x3, MF_CHECKED);
<   else
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_3x3, MF_UNCHECKED);
< 
<   if ((tile_width == 4) && (tile_height == 2))
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_4x2, MF_CHECKED);
<   else
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_4x2, MF_UNCHECKED);
< 
<   if ((tile_width == 4) && (tile_height == 4))
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_4x4, MF_CHECKED);
<   else
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_4x4, MF_UNCHECKED);
< 
<   if ((tile_width == 6) && (tile_height == 3))
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_6x3, MF_CHECKED);
<   else
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_6x3, MF_UNCHECKED);
< 
<   if ((tile_width == 6) && (tile_height == 6))
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_6x6, MF_CHECKED);
<   else
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_6x6, MF_UNCHECKED);
< 
<   if ((tile_width == 8) && (tile_height == 4))
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_8x4, MF_CHECKED);
<   else
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_8x4, MF_UNCHECKED);
< 
<   if ((tile_width == 8) && (tile_height == 8))
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_8x8, MF_CHECKED);
<   else
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_8x8, MF_UNCHECKED);
< 
<   if ((tile_width == 16) && (tile_height == 8))
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_16x8, MF_CHECKED);
<   else
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_16x8, MF_UNCHECKED);
< 
<   if ((tile_width == 16) && (tile_height == 16))
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_16x16, MF_CHECKED);
<   else
<     CheckMenuItem(hm, IDM_OPTIONS_TILE_16x16, MF_UNCHECKED);
---
> 	CheckMenuItem(hm, IDM_OPTIONS_GRAPHICS_NONE,
> 	              (arg_graphics == GRAPHICS_NONE ? MF_CHECKED : MF_UNCHECKED));
> 	CheckMenuItem(hm, IDM_OPTIONS_GRAPHICS_OLD,
> 	              (arg_graphics == GRAPHICS_ORIGINAL ? MF_CHECKED : MF_UNCHECKED));
> 	CheckMenuItem(hm, IDM_OPTIONS_GRAPHICS_ADAM,
> 	              (arg_graphics == GRAPHICS_ADAM_BOLT ? MF_CHECKED : MF_UNCHECKED));
> 	CheckMenuItem(hm, IDM_OPTIONS_GRAPHICS_NOMAD,
> 	              (arg_graphics == GRAPHICS_NOMAD ? MF_CHECKED : MF_UNCHECKED));
> 	CheckMenuItem(hm, IDM_OPTIONS_GRAPHICS_DAVID,
> 	              (arg_graphics == GRAPHICS_DAVID_GERVAIS ? MF_CHECKED : MF_UNCHECKED));
> 
>         CheckMenuItem(hm, IDM_OPTIONS_GRAPHICS_NICE,
>                       (arg_graphics_nice ? MF_CHECKED : MF_UNCHECKED));
>         CheckMenuItem(hm, IDM_OPTIONS_TRPTILE,
>                       (tile_height == 3 ? MF_CHECKED : MF_UNCHECKED));
>         CheckMenuItem(hm, IDM_OPTIONS_DBLTILE,
>                       (tile_height == 2 ? MF_CHECKED : MF_UNCHECKED));
> 	CheckMenuItem(hm, IDM_OPTIONS_BIGTILE,
> 	              (tile_width == (2 * tile_height) ? MF_CHECKED : MF_UNCHECKED));
3045,3049c2960,2964
<     i=0;
<     do {
< 	    EnableMenuItem(hm, graphics_modes[i].menuItem,MF_ENABLED );
<     } while (graphics_modes[i++].grafID != 0); 
< 
---
> 		EnableMenuItem(hm, IDM_OPTIONS_GRAPHICS_NONE, MF_ENABLED);
> 		EnableMenuItem(hm, IDM_OPTIONS_GRAPHICS_OLD, MF_ENABLED);
> 		EnableMenuItem(hm, IDM_OPTIONS_GRAPHICS_ADAM, MF_ENABLED);
> 		EnableMenuItem(hm, IDM_OPTIONS_GRAPHICS_NOMAD, MF_ENABLED);
> 		EnableMenuItem(hm, IDM_OPTIONS_GRAPHICS_DAVID, MF_ENABLED);
3051,3066c2966,2969
< 
<     EnableMenuItem(hm, IDM_OPTIONS_TILE_1x1, MF_ENABLED);
< 		EnableMenuItem(hm, IDM_OPTIONS_TILE_2x1, MF_ENABLED);
< 		EnableMenuItem(hm, IDM_OPTIONS_TILE_2x2, MF_ENABLED);
<     EnableMenuItem(hm, IDM_OPTIONS_TILE_3x1, MF_ENABLED);
<     EnableMenuItem(hm, IDM_OPTIONS_TILE_3x3, MF_ENABLED);
<     EnableMenuItem(hm, IDM_OPTIONS_TILE_4x2, MF_ENABLED);
<     EnableMenuItem(hm, IDM_OPTIONS_TILE_4x4, MF_ENABLED);
<     EnableMenuItem(hm, IDM_OPTIONS_TILE_6x3, MF_ENABLED);
<     EnableMenuItem(hm, IDM_OPTIONS_TILE_6x6, MF_ENABLED);
<     EnableMenuItem(hm, IDM_OPTIONS_TILE_8x4, MF_ENABLED);
<     EnableMenuItem(hm, IDM_OPTIONS_TILE_8x8, MF_ENABLED);
<     EnableMenuItem(hm, IDM_OPTIONS_TILE_16x8, MF_ENABLED);
<     EnableMenuItem(hm, IDM_OPTIONS_TILE_16x16, MF_ENABLED);
< 
<   }
---
> 		EnableMenuItem(hm, IDM_OPTIONS_TRPTILE, MF_ENABLED);
> 		EnableMenuItem(hm, IDM_OPTIONS_DBLTILE, MF_ENABLED);
> 		EnableMenuItem(hm, IDM_OPTIONS_BIGTILE, MF_ENABLED);
> 	}
3581,3585c3484,3487
< 
<     case IDM_OPTIONS_GRAPHICS_NICE:
<     {
<       /* Paranoia */
<       if (!inkey_flag || !initialized)
---
> 		case IDM_OPTIONS_GRAPHICS_NONE:
> 		{
> 			/* Paranoia */
> 			if (!inkey_flag || !initialized)
3588,3589c3490,3491
<         break;
<       }
---
> 				break;
> 			}
3591,3592c3493,3496
<       /* Toggle "arg_graphics_nice" */
<       arg_graphics_nice = !arg_graphics_nice;
---
> 			/* Toggle "arg_graphics" */
> 			if (arg_graphics != GRAPHICS_NONE)
> 			{
> 				arg_graphics = GRAPHICS_NONE;
3594,3595c3498,3499
<       /* React to changes */
<       Term_xtra_win_react();
---
> 				/* React to changes */
> 				Term_xtra_win_react();
3597,3598c3501,3503
<       /* Hack -- Force redraw */
<       Term_key_push(KTRL('R'));
---
> 				/* Hack -- Force redraw */
> 				Term_key_push(KTRL('R'));
> 			}
3600,3601c3505,3506
<       break;
<     }
---
> 			break;
> 		}
3603d3507
<     case IDM_OPTIONS_GRAPHICS_NONE:
3604a3509,3531
> 		{
> 			/* Paranoia */
> 			if (!inkey_flag || !initialized)
> 			{
> 				plog("You may not do that right now.");
> 				break;
> 			}
> 
> 			/* Toggle "arg_graphics" */
> 			if (arg_graphics != GRAPHICS_ORIGINAL)
> 			{
> 				arg_graphics = GRAPHICS_ORIGINAL;
> 
> 				/* React to changes */
> 				Term_xtra_win_react();
> 
> 				/* Hack -- Force redraw */
> 				Term_key_push(KTRL('R'));
> 			}
> 
> 			break;
> 		}
> 
3605a3533,3555
> 		{
> 			/* Paranoia */
> 			if (!inkey_flag || !initialized)
> 			{
> 				plog("You may not do that right now.");
> 				break;
> 			}
> 
> 			/* Toggle "arg_graphics" */
> 			if (arg_graphics != GRAPHICS_ADAM_BOLT)
> 			{
> 				arg_graphics = GRAPHICS_ADAM_BOLT;
> 
> 				/* React to changes */
> 				Term_xtra_win_react();
> 
> 				/* Hack -- Force redraw */
> 				Term_key_push(KTRL('R'));
> 			}
> 
> 			break;
> 		}
> 
3607,3609d3556
< 		case IDM_OPTIONS_GRAPHICS_DAVID:
< 		case IDM_OPTIONS_GRAPHICS_SHOCK:
< 		case IDM_OPTIONS_GRAPHICS_EXTRA:
3611d3557
<       int selected_mode = 0;
3618,3634d3563
<       i=0;
<       do {
<         if (graphics_modes[i].menuItem == wCmd) {
< 			    selected_mode = graphics_modes[i].grafID;
<           if (graphics_modes[i].file) {
<             strncpy(tileset,graphics_modes[i].file,32);
<           } else {
<             tileset[0] = 0;
<           }
<           if (graphics_modes[i].file) {
<             strncpy(tilegraf,graphics_modes[i].name,8);
<           } else {
<             tilegraf[0] = 0;
<           }
<           break;
<         }
<       } while (graphics_modes[i++].grafID != 0); 
3637c3566
< 			if (arg_graphics != selected_mode)
---
> 			if (arg_graphics != GRAPHICS_NOMAD)
3639c3568
< 				arg_graphics = selected_mode;
---
> 				arg_graphics = GRAPHICS_NOMAD;
3650,3750d3578
<     case IDM_OPTIONS_TILE_1x1:
<     case IDM_OPTIONS_TILE_2x1:
<     case IDM_OPTIONS_TILE_2x2:
<     case IDM_OPTIONS_TILE_3x1:
<     case IDM_OPTIONS_TILE_3x3:
<     case IDM_OPTIONS_TILE_4x2:
<     case IDM_OPTIONS_TILE_4x4:
<     case IDM_OPTIONS_TILE_6x3:
<     case IDM_OPTIONS_TILE_6x6:
<     case IDM_OPTIONS_TILE_8x4:
<     case IDM_OPTIONS_TILE_8x8:
<     case IDM_OPTIONS_TILE_16x8:
<     case IDM_OPTIONS_TILE_16x16:
<     {
<       /* Paranoia */
<       if (!inkey_flag || !initialized)
<       {
<               plog("You may not do that right now.");
<               break;
<       }
< 	    switch (wCmd)
< 	    {
<         case IDM_OPTIONS_TILE_1x1:
<           {
< 			      tile_width = 1;
< 			      tile_height = 1;
<             break;
<           }
<         case IDM_OPTIONS_TILE_2x1:
<           {
< 			      tile_width = 2;
< 			      tile_height = 1;
<             break;
<           }
<         case IDM_OPTIONS_TILE_2x2:
<           {
< 			      tile_width = 2;
< 			      tile_height = 2;
<             break;
<           }
<         case IDM_OPTIONS_TILE_3x1:
<           {
< 			      tile_width = 3;
< 			      tile_height = 1;
<             break;
<           }
<         case IDM_OPTIONS_TILE_3x3:
<           {
< 			      tile_width = 3;
< 			      tile_height = 3;
<             break;
<           }
<         case IDM_OPTIONS_TILE_4x2:
<           {
< 			      tile_width = 4;
< 			      tile_height = 2;
<             break;
<           }
<         case IDM_OPTIONS_TILE_4x4:
<           {
< 			      tile_width = 4;
< 			      tile_height = 4;
<             break;
<           }
<         case IDM_OPTIONS_TILE_6x3:
<           {
< 			      tile_width = 6;
< 			      tile_height = 3;
<             break;
<           }
<         case IDM_OPTIONS_TILE_6x6:
<           {
< 			      tile_width = 6;
< 			      tile_height = 6;
<             break;
<           }
<         case IDM_OPTIONS_TILE_8x4:
<           {
< 			      tile_width = 8;
< 			      tile_height = 4;
<             break;
<           }
<         case IDM_OPTIONS_TILE_8x8:
<           {
< 			      tile_width = 8;
< 			      tile_height = 8;
<             break;
<           }
<         case IDM_OPTIONS_TILE_16x8:
<           {
< 			      tile_width = 16;
< 			      tile_height = 8;
<             break;
<           }
<         case IDM_OPTIONS_TILE_16x16:
<           {
< 			      tile_width = 16;
< 			      tile_height = 16;
<             break;
<           }
<       }
3752,3753c3580,3587
<       /* Set flag */
<       change_tilesize = TRUE;
---
> 		case IDM_OPTIONS_GRAPHICS_DAVID:
> 		{
> 			/* Paranoia */
> 			if (!inkey_flag || !initialized)
> 			{
> 				plog("You may not do that right now.");
> 				break;
> 			}
3755,3756c3589,3592
<       /* React to changes */
<       Term_xtra_win_react();
---
> 			/* Toggle "arg_graphics" */
> 			if (arg_graphics != GRAPHICS_DAVID_GERVAIS)
> 			{
> 				arg_graphics = GRAPHICS_DAVID_GERVAIS;
3758,3759c3594,3599
<       /* Hack -- Force redraw */
<       Term_key_push(KTRL('R'));
---
> 				/* React to changes */
> 				Term_xtra_win_react();
> 
> 				/* Hack -- Force redraw */
> 				Term_key_push(KTRL('R'));
> 			}
3763a3604,3729
>                 case IDM_OPTIONS_GRAPHICS_NICE:
>                 {
>                         /* Paranoia */
>                         if (!inkey_flag || !initialized)
> 			{
> 				plog("You may not do that right now.");
>                                 break;
>                         }
> 
>                         /* Toggle "arg_graphics_nice" */
>                         arg_graphics_nice = !arg_graphics_nice;
> 
>                         /* React to changes */
>                         Term_xtra_win_react();
> 
>                         /* Hack -- Force redraw */
>                         Term_key_push(KTRL('R'));
> 
>                         break;
>                 }
> 
>                 case IDM_OPTIONS_TRPTILE:
>                 {
>                         /* Paranoia */
>                         if (!inkey_flag || !initialized)
>                         {
>                                 plog("You may not do that right now.");
>                                 break;
>                         }
> 
>                         /* Reduce... */
> 			if (tile_height == 3)
> 			{
> 			        tile_width /= 3;
> 			        tile_height /= 3;
> 			}
> 
>                         /* ...or increase */
> 			else
> 			{
> 			        tile_width /= tile_height;
> 			        tile_width *= 3;
> 			        tile_height = 3;
> 			}
> 
> 
>                         /* Set flag */
>                         change_tilesize = TRUE;
> 
>                         /* React to changes */
>                         Term_xtra_win_react();
> 
>                         /* Hack -- Force redraw */
>                         Term_key_push(KTRL('R'));
> 
>                         break;
>                         }
> 
>                 case IDM_OPTIONS_DBLTILE:
>                                 {
>                         /* Paranoia */
>                         if (!inkey_flag || !initialized)
>                                         {
>                                 plog("You may not do that right now.");
>                                 break;
>                                 }
> 
>                         /* Reduce... */
> 			if (tile_height == 2)
> 			{
> 			        tile_width /= 2;
> 			        tile_height /= 2;
> 			}
> 
>                         /* ...or increase */
> 			else
> 			{
> 			        tile_width /= tile_height;
> 			        tile_height = 2;
> 			        tile_width *= tile_height;
> 			}
> 
>                         /* Set flag */
>                         change_tilesize = TRUE;
> 
>                         /* React to changes */
>                         Term_xtra_win_react();
> 
>                         /* Hack -- Force redraw */
>                         Term_key_push(KTRL('R'));
> 
>                         break;
>                                                 }
> 
> 		case IDM_OPTIONS_BIGTILE:
> 		{
> 			/* Paranoia */
> 			if (!inkey_flag || !initialized)
> 			{
> 				plog("You may not do that right now.");
> 				break;
> 			}
> 
>                         /* Reduce... */
> 			if (tile_height != tile_width)
> 			{
> 			        tile_width = tile_height;
> 			}
> 
>                         /* ...or increase */
> 			else
> 			{
> 			        tile_width *= 2;
> 			}
> 
>                        /* Set flag */
>                         change_tilesize = TRUE;
> 
>                         /* React to changes */
>                         Term_xtra_win_react();
> 
>  			/* Mega-Hack : Redraw screen */
> 			Term_key_push(KTRL('R'));
> 
> 			break;
> 		}
4336,4338d4301
< #ifdef _WIN64
< 	td = (term_data *)GetWindowLongPtr(hWnd, GWLP_USERDATA);
< #else
4340d4302
< #endif
4794,4797c4756,4759
< 	//string_free(ANGBAND_DIR_XTRA_FONT);
< 	//string_free(ANGBAND_DIR_XTRA_GRAF);
< 	//string_free(ANGBAND_DIR_XTRA_SOUND);
< 	//string_free(ANGBAND_DIR_XTRA_HELP);
---
> 	string_free(ANGBAND_DIR_XTRA_FONT);
> 	string_free(ANGBAND_DIR_XTRA_GRAF);
> 	string_free(ANGBAND_DIR_XTRA_SOUND);
> 	string_free(ANGBAND_DIR_XTRA_HELP);
4927,4934c4889,4894
<   if (ANGBAND_DIR_XTRA_FONT == NULL)
<   {
< 	  /* Build the "font" path */
< 	  path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "font");
< 
< 	  /* Allocate the path */
< 	  ANGBAND_DIR_XTRA_FONT = string_make(path);
<   }
---
> 	/* Build the "font" path */
> 	path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "font");
> 
> 	/* Allocate the path */
> 	ANGBAND_DIR_XTRA_FONT = string_make(path);
> 
4947,4954c4907,4912
<   if (ANGBAND_DIR_XTRA_GRAF == NULL)
<   {
< 	  /* Build the "graf" path */
< 	  path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "graf");
< 
< 	  /* Allocate the path */
< 	  ANGBAND_DIR_XTRA_GRAF = string_make(path);
<   }
---
> 	/* Build the "graf" path */
> 	path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "graf");
> 
> 	/* Allocate the path */
> 	ANGBAND_DIR_XTRA_GRAF = string_make(path);
> 
4963,4970c4921,4926
<   if (ANGBAND_DIR_XTRA_SOUND == NULL)
<   {
< 	  /* Build the "sound" path */
< 	  path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "sound");
< 
< 	  /* Allocate the path */
< 	  ANGBAND_DIR_XTRA_SOUND = string_make(path);
<   }
---
> 	/* Build the "sound" path */
> 	path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "sound");
> 
> 	/* Allocate the path */
> 	ANGBAND_DIR_XTRA_SOUND = string_make(path);
> 
4976,4983c4932,4937
<   if (ANGBAND_DIR_XTRA_HELP == NULL)
<   {
< 	  /* Build the "help" path */
< 	  path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "help");
< 
< 	  /* Allocate the path */
< 	  ANGBAND_DIR_XTRA_HELP = string_make(path);
<   }
---
> 	/* Build the "help" path */
> 	path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "help");
> 
> 	/* Allocate the path */
> 	ANGBAND_DIR_XTRA_HELP = string_make(path);
> 
