 52134822b8
			
		
	
	52134822b8
	
	
	
		
			
			Please read the Readme for further information. There are some minor graphical glitches when you use the DOS files. E.g. the autorail button is a bit screwed up.
		
			
				
	
	
		
			193 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			193 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| byte _palettes[4][256 * 3] = {
 | |
| /* palette 1 (TTD Windows) */
 | |
| {
 | |
|   0,   0,   0,   212,   0, 212,   212,   0, 212,   212,   0, 212,
 | |
| 212,   0, 212,   212,   0, 212,   212,   0, 212,   212,   0, 212,
 | |
| 212,   0, 212,   212,   0, 212,   168, 168, 168,   184, 184, 184,
 | |
| 200, 200, 200,   216, 216, 216,   232, 232, 232,   252, 252, 252,
 | |
|  52,  60,  72,    68,  76,  92,    88,  96, 112,   108, 116, 132,
 | |
| 132, 140, 152,   156, 160, 172,   176, 184, 196,   204, 208, 220,
 | |
|  48,  44,   4,    64,  60,  12,    80,  76,  20,    96,  92,  28,
 | |
| 120, 120,  64,   148, 148, 100,   176, 176, 132,   204, 204, 168,
 | |
| 100, 100, 100,   116, 116, 116,   104,  80,  44,   124, 104,  72,
 | |
| 152, 132,  92,   184, 160, 120,   212, 188, 148,   244, 220, 176,
 | |
| 132, 132, 132,    88,   4,  16,   112,  16,  32,   136,  32,  52,
 | |
| 160,  56,  76,   188,  84, 108,   204, 104, 124,   220, 132, 144,
 | |
| 236, 156, 164,   252, 188, 192,   252, 212,   0,   252, 232,  60,
 | |
| 252, 248, 128,    76,  40,   0,    96,  60,   8,   116,  88,  28,
 | |
| 136, 116,  56,   156, 136,  80,   176, 156, 108,   196, 180, 136,
 | |
|  68,  24,   0,    96,  44,   4,   128,  68,   8,   156,  96,  16,
 | |
| 184, 120,  24,   212, 156,  32,   232, 184,  16,   252, 212,   0,
 | |
| 252, 248, 128,   252, 252, 192,    32,   4,   0,    64,  20,   8,
 | |
|  84,  28,  16,   108,  44,  28,   128,  56,  40,   148,  72,  56,
 | |
| 168,  92,  76,   184, 108,  88,   196, 128, 108,   212, 148, 128,
 | |
|   8,  52,   0,    16,  64,   0,    32,  80,   4,    48,  96,   4,
 | |
|  64, 112,  12,    84, 132,  20,   104, 148,  28,   128, 168,  44,
 | |
|  64,  64,  64,    44,  68,  32,    60,  88,  48,    80, 104,  60,
 | |
| 104, 124,  76,   128, 148,  92,   152, 176, 108,   180, 204, 124,
 | |
|  16,  52,  24,    32,  72,  44,    56,  96,  72,    76, 116,  88,
 | |
|  96, 136, 108,   120, 164, 136,   152, 192, 168,   184, 220, 200,
 | |
|  32,  24,   0,    56,  28,   0,    80,  80,  80,    88,  52,  12,
 | |
| 104,  64,  24,   124,  84,  44,   140, 108,  64,   160, 128,  88,
 | |
|  76,  40,  16,    96,  52,  24,   116,  68,  40,   136,  84,  56,
 | |
| 164,  96,  64,   184, 112,  80,   204, 128,  96,   212, 148, 112,
 | |
| 224, 168, 128,   236, 188, 148,    80,  28,   4,   100,  40,  20,
 | |
| 120,  56,  40,   140,  76,  64,   160, 100,  96,   184, 136, 136,
 | |
|  36,  40,  68,    48,  52,  84,    64,  64, 100,    80,  80, 116,
 | |
| 100, 100, 136,   132, 132, 164,   172, 172, 192,   212, 212, 224,
 | |
|  48,  48,  48,    64,  44, 144,    88,  64, 172,   104,  76, 196,
 | |
| 120,  88, 224,   140, 104, 252,   160, 136, 252,   188, 168, 252,
 | |
|   0,  24, 108,     0,  36, 132,     0,  52, 160,     0,  72, 184,
 | |
|   0,  96, 212,    24, 120, 220,    56, 144, 232,    88, 168, 240,
 | |
| 128, 196, 252,   188, 224, 252,    16,  64,  96,    24,  80, 108,
 | |
|  40,  96, 120,    52, 112, 132,    80, 140, 160,   116, 172, 192,
 | |
| 156, 204, 220,   204, 240, 252,   172,  52,  52,   212,  52,  52,
 | |
| 252,  52,  52,   252, 100,  88,   252, 144, 124,   252, 184, 160,
 | |
| 252, 216, 200,   252, 244, 236,    72,  20, 112,    92,  44, 140,
 | |
| 112,  68, 168,   140, 100, 196,   168, 136, 224,   204, 180, 252,
 | |
| 204, 180, 252,   232, 208, 252,    60,   0,   0,    92,   0,   0,
 | |
| 128,   0,   0,   160,   0,   0,   196,   0,   0,   224,   0,   0,
 | |
| 252,   0,   0,   252,  80,   0,   252, 108,   0,   252, 136,   0,
 | |
| 252, 164,   0,   252, 192,   0,   252, 220,   0,   252, 252,   0,
 | |
| 204, 136,   8,   228, 144,   4,   252, 156,   0,   252, 176,  48,
 | |
| 252, 196, 100,   252, 216, 152,     8,  24,  88,    12,  36, 104,
 | |
|  20,  52, 124,    28,  68, 140,    40,  92, 164,    56, 120, 188,
 | |
|  72, 152, 216,   100, 172, 224,    92, 156,  52,   108, 176,  64,
 | |
| 124, 200,  76,   144, 224,  92,   224, 244, 252,   204, 240, 252,
 | |
| 180, 220, 236,   132, 188, 216,    88, 152, 172,    16,  16,  16,
 | |
|  32,  32,  32,     8,  92, 104,    16, 100, 112,    24, 108, 120,
 | |
|  32, 116, 128,    44, 124, 140,    92, 164, 184,   116, 180, 196,
 | |
| 148, 200, 216,   180, 220, 232,   216, 244, 252,     0,   0,   0,
 | |
|   0,   0,   0,     0,   0,   0,     0,   0,   0,     0,   0,   0,
 | |
| 252,  60,   0,   252,  80,   0,   252, 104,   0,   252, 128,   0,
 | |
| 252, 148,   0,   252, 172,   0,   252, 196,   0,   252,   0,   0,
 | |
| 252,   0,   0,     0,   0,   0,     0,   0,   0,     0,   0,   0,
 | |
| 252, 228,   0,   148, 148, 148,   212,   0, 212,   212,   0, 212,
 | |
| 212,   0, 212,   212,   0, 212,   212,   0, 212,   212,   0, 212,
 | |
| 212,   0, 212,   212,   0, 212,   212,   0, 212,   252, 252, 252,
 | |
| },
 | |
| 
 | |
| /* palette 2 (mixed TTD DOS + TTD Windows palette */
 | |
| {
 | |
|   0,   0,   0,    16,  16,  16,    32,  32,  32,    48,  48,  48,
 | |
|  65,  64,  65,    82,  80,  82,    98, 101,  98,   115, 117, 115,
 | |
| 131, 133, 131,   148, 149, 148,   168, 168, 168,   184, 184, 184,
 | |
| 200, 200, 200,   216, 216, 216,   232, 232, 232,   252, 252, 252,
 | |
|  52,  60,  72,    68,  76,  92,    88,  96, 112,   108, 116, 132,
 | |
| 132, 140, 152,   156, 160, 172,   176, 184, 196,   204, 208, 220,
 | |
|  48,  44,   4,    64,  60,  12,    80,  76,  20,    96,  92,  28,
 | |
| 120, 120,  64,   148, 148, 100,   176, 176, 132,   204, 204, 168,
 | |
|  72,  44,   4,    88,  60,  20,   104,  80,  44,   124, 104,  72,
 | |
| 152, 132,  92,   184, 160, 120,   212, 188, 148,   244, 220, 176,
 | |
|  64,   0,   4,    88,   4,  16,   112,  16,  32,   136,  32,  52,
 | |
| 160,  56,  76,   188,  84, 108,   204, 104, 124,   220, 132, 144,
 | |
| 236, 156, 164,   252, 188, 192,   252, 212,   0,   252, 232,  60,
 | |
| 252, 248, 128,    76,  40,   0,    96,  60,   8,   116,  88,  28,
 | |
| 136, 116,  56,   156, 136,  80,   176, 156, 108,   196, 180, 136,
 | |
|  68,  24,   0,    96,  44,   4,   128,  68,   8,   156,  96,  16,
 | |
| 184, 120,  24,   212, 156,  32,   232, 184,  16,   252, 212,   0,
 | |
| 252, 248, 128,   252, 252, 192,    32,   4,   0,    64,  20,   8,
 | |
|  84,  28,  16,   108,  44,  28,   128,  56,  40,   148,  72,  56,
 | |
| 168,  92,  76,   184, 108,  88,   196, 128, 108,   212, 148, 128,
 | |
|   8,  52,   0,    16,  64,   0,    32,  80,   4,    48,  96,   4,
 | |
|  64, 112,  12,    84, 132,  20,   104, 148,  28,   128, 168,  44,
 | |
|  28,  52,  24,    44,  68,  32,    60,  88,  48,    80, 104,  60,
 | |
| 104, 124,  76,   128, 148,  92,   152, 176, 108,   180, 204, 124,
 | |
|  16,  52,  24,    32,  72,  44,    56,  96,  72,    76, 116,  88,
 | |
|  96, 136, 108,   120, 164, 136,   152, 192, 168,   184, 220, 200,
 | |
|  32,  24,   0,    56,  28,   0,    72,  40,   0,    88,  52,  12,
 | |
| 104,  64,  24,   124,  84,  44,   140, 108,  64,   160, 128,  88,
 | |
|  76,  40,  16,    96,  52,  24,   116,  68,  40,   136,  84,  56,
 | |
| 164,  96,  64,   184, 112,  80,   204, 128,  96,   212, 148, 112,
 | |
| 224, 168, 128,   236, 188, 148,    80,  28,   4,   100,  40,  20,
 | |
| 120,  56,  40,   140,  76,  64,   160, 100,  96,   184, 136, 136,
 | |
|  36,  40,  68,    48,  52,  84,    64,  64, 100,    80,  80, 116,
 | |
| 100, 100, 136,   132, 132, 164,   172, 172, 192,   212, 212, 224,
 | |
|  40,  20, 112,    64,  44, 144,    88,  64, 172,   104,  76, 196,
 | |
| 120,  88, 224,   140, 104, 252,   160, 136, 252,   188, 168, 252,
 | |
|   0,  24, 108,     0,  36, 132,     0,  52, 160,     0,  72, 184,
 | |
|   0,  96, 212,    24, 120, 220,    56, 144, 232,    88, 168, 240,
 | |
| 128, 196, 252,   188, 224, 252,    16,  64,  96,    24,  80, 108,
 | |
|  40,  96, 120,    52, 112, 132,    80, 140, 160,   116, 172, 192,
 | |
| 156, 204, 220,   204, 240, 252,   172,  52,  52,   212,  52,  52,
 | |
| 252,  52,  52,   252, 100,  88,   252, 144, 124,   252, 184, 160,
 | |
| 252, 216, 200,   252, 244, 236,    72,  20, 112,    92,  44, 140,
 | |
| 112,  68, 168,   140, 100, 196,   168, 136, 224,   204, 180, 252,
 | |
| 204, 180, 252,   232, 208, 252,    60,   0,   0,    92,   0,   0,
 | |
| 128,   0,   0,   160,   0,   0,   196,   0,   0,   224,   0,   0,
 | |
| 252,   0,   0,   252,  80,   0,   252, 108,   0,   252, 136,   0,
 | |
| 252, 164,   0,   252, 192,   0,   252, 220,   0,   252, 252,   0,
 | |
| 204, 136,   8,   228, 144,   4,   252, 156,   0,   252, 176,  48,
 | |
| 252, 196, 100,   252, 216, 152,     8,  24,  88,    12,  36, 104,
 | |
|  20,  52, 124,    28,  68, 140,    40,  92, 164,    56, 120, 188,
 | |
|  72, 152, 216,   100, 172, 224,    92, 156,  52,   108, 176,  64,
 | |
| 124, 200,  76,   144, 224,  92,   224, 244, 252,   204, 240, 252,
 | |
| 180, 220, 236,   132, 188, 216,    88, 152, 172,    16,  16,  16,
 | |
|  32,  32,  32,     8,  92, 104,    16, 100, 112,    24, 108, 120,
 | |
|  32, 116, 128,    44, 124, 140,    92, 164, 184,   116, 180, 196,
 | |
| 148, 200, 216,   180, 220, 232,   216, 244, 252,     0,   0,   0,
 | |
|   0,   0,   0,     0,   0,   0,     0,   0,   0,     0,   0,   0,
 | |
| 252,  60,   0,   252,  80,   0,   252, 104,   0,   252, 128,   0,
 | |
| 252, 148,   0,   252, 172,   0,   252, 196,   0,   252,   0,   0,
 | |
| 252,   0,   0,     0,   0,   0,     0,   0,   0,     0,   0,   0,
 | |
| 252, 228,   0,   148, 148, 148,    16, 101, 115,    24, 109, 123,
 | |
|  32, 117, 131,    41, 125, 139,    90, 165, 189,   115, 182, 197,
 | |
| 148, 202, 222,   180, 222, 238,   222, 246, 255,   252, 252, 252,
 | |
| }
 | |
| 
 | |
| 
 | |
| };
 | |
| 
 | |
| #define GET_PALETTE(x) _palettes[x]
 | |
| 
 | |
| typedef struct {
 | |
| 	byte a[15];  // dark blue water
 | |
| 	byte ac[15]; // dark blue water Toyland
 | |
| 	byte lighthouse[12]; // lighthouse & stadium
 | |
| 	byte oil_ref[21];    // oil refinery
 | |
| 	byte e[15];  // ???
 | |
| 	byte b[45];  // glittery water
 | |
| 	byte bc[45]; // glittery water Toyland
 | |
| } ExtraPaletteValues;
 | |
| 
 | |
| static const ExtraPaletteValues _extra_palette_values = {
 | |
| 	{32, 68,112, 36, 72,116, 40, 76,120, 44, 80,124, 48, 84,128},
 | |
| 	{28,108,124, 32,112,128, 36,116,132, 40,120,136, 44,124,140},
 | |
| 	{240,208,  0,  0,  0,  0,  0,  0,	0,  0,  0,  0},
 | |
| 	{252, 60,  0,252, 84,  0,252,108,  0,252,124,  0,252,148,  0,
 | |
| 	 252,172,  0,252,196,  0},
 | |
| 	{ 76, 24,  8,108, 44, 24,144, 72, 52,176,108, 84,212,148,128},
 | |
| 	{216,244,252,172,208,224,132,172,196,100,132,168, 72,100,144,
 | |
| 	  72,100,144, 72,100,144, 72,100,144, 72,100,144, 72,100,144,
 | |
| 		72,100,144, 72,100,144,100,132,168,132,172,196,172,208,224},
 | |
| 	{216,244,252,180,220,232,148,200,216,116,180,196, 92,164,184,
 | |
| 	  92,164,184, 92,164,184, 92,164,184, 92,164,184, 92,164,184,
 | |
| 		92,164,184, 92,164,184,116,180,196,148,200,216,180,220,232},
 | |
| };
 | |
| 
 | |
| // Color table for colors in lang files (e.g. {BLACK})
 | |
| typedef struct StringColor {
 | |
| 	byte text;
 | |
| 	byte shadow;
 | |
| } StringColor;
 | |
| 
 | |
| static const StringColor _string_colormap[] = {
 | |
| 	{ 150, 215 }, // BLUE
 | |
| 	{  12, 215 }, // SILVER
 | |
| 	{ 189, 215 }, // GOLD
 | |
| 	{ 184, 215 }, // RED
 | |
| 	{ 174, 215 }, // PURPLE
 | |
| 	{  30, 215 }, // LTBROWN
 | |
| 	{ 195, 215 }, // ORANGE
 | |
| 	{ 209, 215 }, // GREEN
 | |
| 	{  68, 215 }, // YELLOW
 | |
| 	{  95, 215 }, // DKGREEN
 | |
| 	{  79, 215 }, // CREAM
 | |
| 	{ 116, 215 }, // BROWN
 | |
| 	{  15, 215 }, // WHITE
 | |
| 	{ 152, 215 }, // LTBLUE
 | |
| 	{  32, 215 }, // GRAY
 | |
| 	{ 133, 215 }, // DKBLUE
 | |
| 	{ 215,   0 }, // BLACK
 | |
| };
 |