Files @ r4603:3b159d0db197
Branch filter:

Location: cpp/openttd-patchpack/source/table/palettes.h - annotation

peter1138
(svn r6455) - Feature: Add 2cc (two company colours) livery schemes. This replaces the original colour selection window and bumps the saveload version. Liveries are supported for all vehicles, not just those with 2cc support. Thanks to lakie for GUI inspiration.
r2186:5ee653b1b5e1
r2186:5ee653b1b5e1
r1991:24313d1020cd
r2025:e7181b8db360
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r614:5ada491fc357
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r614:5ada491fc357
r0:d63b455452f6
r0:d63b455452f6
r0:d63b455452f6
r0:d63b455452f6
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r0:d63b455452f6
r0:d63b455452f6
r0:d63b455452f6
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r4434:c817458d470e
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r1991:24313d1020cd
r0:d63b455452f6
r1991:24313d1020cd
r0:d63b455452f6
r509:2c1dbe160cfb
r510:5755fc6bcbdd
r510:5755fc6bcbdd
r510:5755fc6bcbdd
r510:5755fc6bcbdd
r510:5755fc6bcbdd
r510:5755fc6bcbdd
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
r509:2c1dbe160cfb
/* $Id$ */

#define M(r, g, b) { r, g, b }
static const Colour _palettes[][256] = {
	/* palette 1 (TTD Windows) */
	{
		M(  0,   0,   0), M(212,   0, 212), M(212,   0, 212), M(212,   0, 212),
		M(212,   0, 212), M(212,   0, 212), M(212,   0, 212), M(212,   0, 212),
		M(212,   0, 212), M(212,   0, 212), M(168, 168, 168), M(184, 184, 184),
		M(200, 200, 200), M(216, 216, 216), M(232, 232, 232), M(252, 252, 252),
		M( 52,  60,  72), M( 68,  76,  92), M( 88,  96, 112), M(108, 116, 132),
		M(132, 140, 152), M(156, 160, 172), M(176, 184, 196), M(204, 208, 220),
		M( 48,  44,   4), M( 64,  60,  12), M( 80,  76,  20), M( 96,  92,  28),
		M(120, 120,  64), M(148, 148, 100), M(176, 176, 132), M(204, 204, 168),
		M(100, 100, 100), M(116, 116, 116), M(104,  80,  44), M(124, 104,  72),
		M(152, 132,  92), M(184, 160, 120), M(212, 188, 148), M(244, 220, 176),
		M(132, 132, 132), M( 88,   4,  16), M(112,  16,  32), M(136,  32,  52),
		M(160,  56,  76), M(188,  84, 108), M(204, 104, 124), M(220, 132, 144),
		M(236, 156, 164), M(252, 188, 192), M(252, 212,   0), M(252, 232,  60),
		M(252, 248, 128), M( 76,  40,   0), M( 96,  60,   8), M(116,  88,  28),
		M(136, 116,  56), M(156, 136,  80), M(176, 156, 108), M(196, 180, 136),
		M( 68,  24,   0), M( 96,  44,   4), M(128,  68,   8), M(156,  96,  16),
		M(184, 120,  24), M(212, 156,  32), M(232, 184,  16), M(252, 212,   0),
		M(252, 248, 128), M(252, 252, 192), M( 32,   4,   0), M( 64,  20,   8),
		M( 84,  28,  16), M(108,  44,  28), M(128,  56,  40), M(148,  72,  56),
		M(168,  92,  76), M(184, 108,  88), M(196, 128, 108), M(212, 148, 128),
		M(  8,  52,   0), M( 16,  64,   0), M( 32,  80,   4), M( 48,  96,   4),
		M( 64, 112,  12), M( 84, 132,  20), M(104, 148,  28), M(128, 168,  44),
		M( 64,  64,  64), M( 44,  68,  32), M( 60,  88,  48), M( 80, 104,  60),
		M(104, 124,  76), M(128, 148,  92), M(152, 176, 108), M(180, 204, 124),
		M( 16,  52,  24), M( 32,  72,  44), M( 56,  96,  72), M( 76, 116,  88),
		M( 96, 136, 108), M(120, 164, 136), M(152, 192, 168), M(184, 220, 200),
		M( 32,  24,   0), M( 56,  28,   0), M( 80,  80,  80), M( 88,  52,  12),
		M(104,  64,  24), M(124,  84,  44), M(140, 108,  64), M(160, 128,  88),
		M( 76,  40,  16), M( 96,  52,  24), M(116,  68,  40), M(136,  84,  56),
		M(164,  96,  64), M(184, 112,  80), M(204, 128,  96), M(212, 148, 112),
		M(224, 168, 128), M(236, 188, 148), M( 80,  28,   4), M(100,  40,  20),
		M(120,  56,  40), M(140,  76,  64), M(160, 100,  96), M(184, 136, 136),
		M( 36,  40,  68), M( 48,  52,  84), M( 64,  64, 100), M( 80,  80, 116),
		M(100, 100, 136), M(132, 132, 164), M(172, 172, 192), M(212, 212, 224),
		M( 48,  48,  48), M( 64,  44, 144), M( 88,  64, 172), M(104,  76, 196),
		M(120,  88, 224), M(140, 104, 252), M(160, 136, 252), M(188, 168, 252),
		M(  0,  24, 108), M(  0,  36, 132), M(  0,  52, 160), M(  0,  72, 184),
		M(  0,  96, 212), M( 24, 120, 220), M( 56, 144, 232), M( 88, 168, 240),
		M(128, 196, 252), M(188, 224, 252), M( 16,  64,  96), M( 24,  80, 108),
		M( 40,  96, 120), M( 52, 112, 132), M( 80, 140, 160), M(116, 172, 192),
		M(156, 204, 220), M(204, 240, 252), M(172,  52,  52), M(212,  52,  52),
		M(252,  52,  52), M(252, 100,  88), M(252, 144, 124), M(252, 184, 160),
		M(252, 216, 200), M(252, 244, 236), M( 72,  20, 112), M( 92,  44, 140),
		M(112,  68, 168), M(140, 100, 196), M(168, 136, 224), M(204, 180, 252),
		M(204, 180, 252), M(232, 208, 252), M( 60,   0,   0), M( 92,   0,   0),
		M(128,   0,   0), M(160,   0,   0), M(196,   0,   0), M(224,   0,   0),
		M(252,   0,   0), M(252,  80,   0), M(252, 108,   0), M(252, 136,   0),
		M(252, 164,   0), M(252, 192,   0), M(252, 220,   0), M(252, 252,   0),
		M(204, 136,   8), M(228, 144,   4), M(252, 156,   0), M(252, 176,  48),
		M(252, 196, 100), M(252, 216, 152), M(  8,  24,  88), M( 12,  36, 104),
		M( 20,  52, 124), M( 28,  68, 140), M( 40,  92, 164), M( 56, 120, 188),
		M( 72, 152, 216), M(100, 172, 224), M( 92, 156,  52), M(108, 176,  64),
		M(124, 200,  76), M(144, 224,  92), M(224, 244, 252), M(204, 240, 252),
		M(180, 220, 236), M(132, 188, 216), M( 88, 152, 172), M( 16,  16,  16),
		M( 32,  32,  32), M(  8,  92, 104), M( 16, 100, 112), M( 24, 108, 120),
		M( 32, 116, 128), M( 44, 124, 140), M( 92, 164, 184), M(116, 180, 196),
		M(148, 200, 216), M(180, 220, 232), M(216, 244, 252), M(  0,   0,   0),
		M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0),
		M(252,  60,   0), M(252,  80,   0), M(252, 104,   0), M(252, 128,   0),
		M(252, 148,   0), M(252, 172,   0), M(252, 196,   0), M(252,   0,   0),
		M(252,   0,   0), M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0),
		M(252, 228,   0), M(148, 148, 148), M(212,   0, 212), M(212,   0, 212),
		M(212,   0, 212), M(212,   0, 212), M(212,   0, 212), M(212,   0, 212),
		M(212,   0, 212), M(212,   0, 212), M(212,   0, 212), M(252, 252, 252)
	},

	/* palette 2 (mixed TTD DOS + TTD Windows palette */
	{
		M(  0,   0,   0), M( 16,  16,  16), M( 32,  32,  32), M( 48,  48,  48),
		M( 65,  64,  65), M( 82,  80,  82), M( 98, 101,  98), M(115, 117, 115),
		M(131, 133, 131), M(148, 149, 148), M(168, 168, 168), M(184, 184, 184),
		M(200, 200, 200), M(216, 216, 216), M(232, 232, 232), M(252, 252, 252),
		M( 52,  60,  72), M( 68,  76,  92), M( 88,  96, 112), M(108, 116, 132),
		M(132, 140, 152), M(156, 160, 172), M(176, 184, 196), M(204, 208, 220),
		M( 48,  44,   4), M( 64,  60,  12), M( 80,  76,  20), M( 96,  92,  28),
		M(120, 120,  64), M(148, 148, 100), M(176, 176, 132), M(204, 204, 168),
		M( 72,  44,   4), M( 88,  60,  20), M(104,  80,  44), M(124, 104,  72),
		M(152, 132,  92), M(184, 160, 120), M(212, 188, 148), M(244, 220, 176),
		M( 64,   0,   4), M( 88,   4,  16), M(112,  16,  32), M(136,  32,  52),
		M(160,  56,  76), M(188,  84, 108), M(204, 104, 124), M(220, 132, 144),
		M(236, 156, 164), M(252, 188, 192), M(252, 212,   0), M(252, 232,  60),
		M(252, 248, 128), M( 76,  40,   0), M( 96,  60,   8), M(116,  88,  28),
		M(136, 116,  56), M(156, 136,  80), M(176, 156, 108), M(196, 180, 136),
		M( 68,  24,   0), M( 96,  44,   4), M(128,  68,   8), M(156,  96,  16),
		M(184, 120,  24), M(212, 156,  32), M(232, 184,  16), M(252, 212,   0),
		M(252, 248, 128), M(252, 252, 192), M( 32,   4,   0), M( 64,  20,   8),
		M( 84,  28,  16), M(108,  44,  28), M(128,  56,  40), M(148,  72,  56),
		M(168,  92,  76), M(184, 108,  88), M(196, 128, 108), M(212, 148, 128),
		M(  8,  52,   0), M( 16,  64,   0), M( 32,  80,   4), M( 48,  96,   4),
		M( 64, 112,  12), M( 84, 132,  20), M(104, 148,  28), M(128, 168,  44),
		M( 28,  52,  24), M( 44,  68,  32), M( 60,  88,  48), M( 80, 104,  60),
		M(104, 124,  76), M(128, 148,  92), M(152, 176, 108), M(180, 204, 124),
		M( 16,  52,  24), M( 32,  72,  44), M( 56,  96,  72), M( 76, 116,  88),
		M( 96, 136, 108), M(120, 164, 136), M(152, 192, 168), M(184, 220, 200),
		M( 32,  24,   0), M( 56,  28,   0), M( 72,  40,   0), M( 88,  52,  12),
		M(104,  64,  24), M(124,  84,  44), M(140, 108,  64), M(160, 128,  88),
		M( 76,  40,  16), M( 96,  52,  24), M(116,  68,  40), M(136,  84,  56),
		M(164,  96,  64), M(184, 112,  80), M(204, 128,  96), M(212, 148, 112),
		M(224, 168, 128), M(236, 188, 148), M( 80,  28,   4), M(100,  40,  20),
		M(120,  56,  40), M(140,  76,  64), M(160, 100,  96), M(184, 136, 136),
		M( 36,  40,  68), M( 48,  52,  84), M( 64,  64, 100), M( 80,  80, 116),
		M(100, 100, 136), M(132, 132, 164), M(172, 172, 192), M(212, 212, 224),
		M( 40,  20, 112), M( 64,  44, 144), M( 88,  64, 172), M(104,  76, 196),
		M(120,  88, 224), M(140, 104, 252), M(160, 136, 252), M(188, 168, 252),
		M(  0,  24, 108), M(  0,  36, 132), M(  0,  52, 160), M(  0,  72, 184),
		M(  0,  96, 212), M( 24, 120, 220), M( 56, 144, 232), M( 88, 168, 240),
		M(128, 196, 252), M(188, 224, 252), M( 16,  64,  96), M( 24,  80, 108),
		M( 40,  96, 120), M( 52, 112, 132), M( 80, 140, 160), M(116, 172, 192),
		M(156, 204, 220), M(204, 240, 252), M(172,  52,  52), M(212,  52,  52),
		M(252,  52,  52), M(252, 100,  88), M(252, 144, 124), M(252, 184, 160),
		M(252, 216, 200), M(252, 244, 236), M( 72,  20, 112), M( 92,  44, 140),
		M(112,  68, 168), M(140, 100, 196), M(168, 136, 224), M(204, 180, 252),
		M(204, 180, 252), M(232, 208, 252), M( 60,   0,   0), M( 92,   0,   0),
		M(128,   0,   0), M(160,   0,   0), M(196,   0,   0), M(224,   0,   0),
		M(252,   0,   0), M(252,  80,   0), M(252, 108,   0), M(252, 136,   0),
		M(252, 164,   0), M(252, 192,   0), M(252, 220,   0), M(252, 252,   0),
		M(204, 136,   8), M(228, 144,   4), M(252, 156,   0), M(252, 176,  48),
		M(252, 196, 100), M(252, 216, 152), M(  8,  24,  88), M( 12,  36, 104),
		M( 20,  52, 124), M( 28,  68, 140), M( 40,  92, 164), M( 56, 120, 188),
		M( 72, 152, 216), M(100, 172, 224), M( 92, 156,  52), M(108, 176,  64),
		M(124, 200,  76), M(144, 224,  92), M(224, 244, 252), M(204, 240, 252),
		M(180, 220, 236), M(132, 188, 216), M( 88, 152, 172), M( 16,  16,  16),
		M( 32,  32,  32), M(  8,  92, 104), M( 16, 100, 112), M( 24, 108, 120),
		M( 32, 116, 128), M( 44, 124, 140), M( 92, 164, 184), M(116, 180, 196),
		M(148, 200, 216), M(180, 220, 232), M(216, 244, 252), M(  0,   0,   0),
		M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0),
		M(252,  60,   0), M(252,  80,   0), M(252, 104,   0), M(252, 128,   0),
		M(252, 148,   0), M(252, 172,   0), M(252, 196,   0), M(252,   0,   0),
		M(252,   0,   0), M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0),
		M(252, 228,   0), M(148, 148, 148), M( 16, 101, 115), M( 24, 109, 123),
		M( 32, 117, 131), M( 41, 125, 139), M( 90, 165, 189), M(115, 182, 197),
		M(148, 202, 222), M(180, 222, 238), M(222, 246, 255), M(252, 252, 252)
	}
};

#define GET_PALETTE(x) _palettes[x]

typedef struct {
	Colour a[15];  // dark blue water
	Colour ac[15]; // dark blue water Toyland
	Colour lighthouse[12]; // lighthouse & stadium
	Colour oil_ref[21];    // oil refinery
	Colour e[15];  // ???
	Colour b[45];  // glittery water
	Colour bc[45]; // glittery water Toyland
} ExtraPaletteValues;

static const ExtraPaletteValues _extra_palette_values = {
	{ M( 32,  68, 112), M( 36,  72, 116), M( 40,  76, 120), M( 44,  80, 124),
		M( 48,  84, 128) },
	{ M( 28, 108, 124), M( 32, 112, 128), M( 36, 116, 132), M( 40, 120, 136),
		M( 44, 124, 140) },
	{ M(240, 208,   0), M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0) },
	{ M(252,  60,   0), M(252,  84,   0), M(252, 108,   0), M(252, 124,   0),
		M(252, 148,   0), M(252, 172,   0), M(252, 196,   0) },
	{ M( 76,  24,   8), M(108,  44,  24), M(144,  72,  52), M(176, 108,  84),
		M(212, 148, 128) },
	{ M(216, 244, 252), M(172, 208, 224), M(132, 172, 196), M(100, 132, 168),
		M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144),
		M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144),
		M(100, 132, 168), M(132, 172, 196), M(172, 208, 224) },
	{ M(216, 244, 252), M(180, 220, 232), M(148, 200, 216), M(116, 180, 196),
		M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184),
		M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184),
		M(116, 180, 196), M(148, 200, 216), M(180, 220, 232) }
};
#undef M

// 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
};