OpenTTD Source 20250205-master-gfd85ab1e2c
palettes.h
Go to the documentation of this file.
1/*
2 * This file is part of OpenTTD.
3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
6 */
7
10#define M(r, g, b) Colour(r, g, b)
11
13static const Palette _palette = {
14 {
15 /* transparent */
16 Colour(0, 0, 0, 0),
17 /* grey scale */
18 M( 16, 16, 16), M( 32, 32, 32), M( 48, 48, 48),
19 M( 65, 64, 65), M( 82, 80, 82), M( 98, 101, 98), M(115, 117, 115),
20 /* regular colours */
21 M(131, 133, 131), M(148, 149, 148), M(168, 168, 168), M(184, 184, 184),
22 M(200, 200, 200), M(216, 216, 216), M(232, 232, 232), M(252, 252, 252),
23 M( 52, 60, 72), M( 68, 76, 92), M( 88, 96, 112), M(108, 116, 132),
24 M(132, 140, 152), M(156, 160, 172), M(176, 184, 196), M(204, 208, 220),
25 M( 48, 44, 4), M( 64, 60, 12), M( 80, 76, 20), M( 96, 92, 28),
26 M(120, 120, 64), M(148, 148, 100), M(176, 176, 132), M(204, 204, 168),
27 M( 72, 44, 4), M( 88, 60, 20), M(104, 80, 44), M(124, 104, 72),
28 M(152, 132, 92), M(184, 160, 120), M(212, 188, 148), M(244, 220, 176),
29 M( 64, 0, 4), M( 88, 4, 16), M(112, 16, 32), M(136, 32, 52),
30 M(160, 56, 76), M(188, 84, 108), M(204, 104, 124), M(220, 132, 144),
31 M(236, 156, 164), M(252, 188, 192), M(252, 212, 0), M(252, 232, 60),
32 M(252, 248, 128), M( 76, 40, 0), M( 96, 60, 8), M(116, 88, 28),
33 M(136, 116, 56), M(156, 136, 80), M(176, 156, 108), M(196, 180, 136),
34 M( 68, 24, 0), M( 96, 44, 4), M(128, 68, 8), M(156, 96, 16),
35 M(184, 120, 24), M(212, 156, 32), M(232, 184, 16), M(252, 212, 0),
36 M(252, 248, 128), M(252, 252, 192), M( 32, 4, 0), M( 64, 20, 8),
37 M( 84, 28, 16), M(108, 44, 28), M(128, 56, 40), M(148, 72, 56),
38 M(168, 92, 76), M(184, 108, 88), M(196, 128, 108), M(212, 148, 128),
39 M( 8, 52, 0), M( 16, 64, 0), M( 32, 80, 4), M( 48, 96, 4),
40 M( 64, 112, 12), M( 84, 132, 20), M(104, 148, 28), M(128, 168, 44),
41 M( 28, 52, 24), M( 44, 68, 32), M( 60, 88, 48), M( 80, 104, 60),
42 M(104, 124, 76), M(128, 148, 92), M(152, 176, 108), M(180, 204, 124),
43 M( 16, 52, 24), M( 32, 72, 44), M( 56, 96, 72), M( 76, 116, 88),
44 M( 96, 136, 108), M(120, 164, 136), M(152, 192, 168), M(184, 220, 200),
45 M( 32, 24, 0), M( 56, 28, 0), M( 72, 40, 4), M( 88, 52, 12),
46 M(104, 64, 24), M(124, 84, 44), M(140, 108, 64), M(160, 128, 88),
47 M( 76, 40, 16), M( 96, 52, 24), M(116, 68, 40), M(136, 84, 56),
48 M(164, 96, 64), M(184, 112, 80), M(204, 128, 96), M(212, 148, 112),
49 M(224, 168, 128), M(236, 188, 148), M( 80, 28, 4), M(100, 40, 20),
50 M(120, 56, 40), M(140, 76, 64), M(160, 100, 96), M(184, 136, 136),
51 M( 36, 40, 68), M( 48, 52, 84), M( 64, 64, 100), M( 80, 80, 116),
52 M(100, 100, 136), M(132, 132, 164), M(172, 172, 192), M(212, 212, 224),
53 M( 40, 20, 112), M( 64, 44, 144), M( 88, 64, 172), M(104, 76, 196),
54 M(120, 88, 224), M(140, 104, 252), M(160, 136, 252), M(188, 168, 252),
55 M( 0, 24, 108), M( 0, 36, 132), M( 0, 52, 160), M( 0, 72, 184),
56 M( 0, 96, 212), M( 24, 120, 220), M( 56, 144, 232), M( 88, 168, 240),
57 M(128, 196, 252), M(188, 224, 252), M( 16, 64, 96), M( 24, 80, 108),
58 M( 40, 96, 120), M( 52, 112, 132), M( 80, 140, 160), M(116, 172, 192),
59 M(156, 204, 220), M(204, 240, 252), M(172, 52, 52), M(212, 52, 52),
60 M(252, 52, 52), M(252, 100, 88), M(252, 144, 124), M(252, 184, 160),
61 M(252, 216, 200), M(252, 244, 236), M( 72, 20, 112), M( 92, 44, 140),
62 M(112, 68, 168), M(140, 100, 196), M(168, 136, 224), M(204, 180, 252),
63 M(204, 180, 252), M(232, 208, 252), M( 60, 0, 0), M( 92, 0, 0),
64 M(128, 0, 0), M(160, 0, 0), M(196, 0, 0), M(224, 0, 0),
65 M(252, 0, 0), M(252, 80, 0), M(252, 108, 0), M(252, 136, 0),
66 M(252, 164, 0), M(252, 192, 0), M(252, 220, 0), M(252, 252, 0),
67 M(204, 136, 8), M(228, 144, 4), M(252, 156, 0), M(252, 176, 48),
68 M(252, 196, 100), M(252, 216, 152), M( 8, 24, 88), M( 12, 36, 104),
69 M( 20, 52, 124), M( 28, 68, 140), M( 40, 92, 164), M( 56, 120, 188),
70 M( 72, 152, 216), M(100, 172, 224), M( 92, 156, 52), M(108, 176, 64),
71 M(124, 200, 76), M(144, 224, 92), M(224, 244, 252), M(204, 240, 252),
72 M(180, 220, 236), M(132, 188, 216), M( 88, 152, 172),
73 /* unused pink */
74 M(212, 0, 212),
75 M(212, 0, 212), M(212, 0, 212), M(212, 0, 212), M(212, 0, 212),
76 M(212, 0, 212), M(212, 0, 212), M(212, 0, 212), M(212, 0, 212),
77 M(212, 0, 212), M(212, 0, 212), M(212, 0, 212),
78 /* Palette animated colours (filled with data from #ExtraPaletteValues) */
79 M( 0, 0, 0),
80 M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0),
81 M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0),
82 M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0),
83 M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0),
84 M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0),
85 M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0),
86 M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0),
87 /* pure white */
88 M(252, 252, 252)
89 },
90 0, // First dirty
91 256 // Dirty count
92};
93
95static const uint EPV_CYCLES_DARK_WATER = 5;
96static const uint EPV_CYCLES_LIGHTHOUSE = 4;
97static const uint EPV_CYCLES_OIL_REFINERY = 7;
98static const uint EPV_CYCLES_FIZZY_DRINK = 5;
99static const uint EPV_CYCLES_GLITTER_WATER = 15;
100
111
114 /* dark blue water */
115 { M( 32, 68, 112), M( 36, 72, 116), M( 40, 76, 120), M( 44, 80, 124),
116 M( 48, 84, 128) },
117
118 /* dark blue water Toyland */
119 { M( 28, 108, 124), M( 32, 112, 128), M( 36, 116, 132), M( 40, 120, 136),
120 M( 44, 124, 140) },
121
122 /* lighthouse & stadium */
123 { M(240, 208, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0) },
124
125 /* oil refinery */
126 { M(252, 60, 0), M(252, 84, 0), M(252, 108, 0), M(252, 124, 0),
127 M(252, 148, 0), M(252, 172, 0), M(252, 196, 0) },
128
129 /* fizzy drinks */
130 { M( 76, 24, 8), M(108, 44, 24), M(144, 72, 52), M(176, 108, 84),
131 M(212, 148, 128) },
132
133 /* glittery water */
134 { M(216, 244, 252), M(172, 208, 224), M(132, 172, 196), M(100, 132, 168),
135 M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144),
136 M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144),
137 M(100, 132, 168), M(132, 172, 196), M(172, 208, 224) },
138
139 /* glittery water Toyland */
140 { M(216, 244, 252), M(180, 220, 232), M(148, 200, 216), M(116, 180, 196),
141 M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184),
142 M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184),
143 M(116, 180, 196), M(148, 200, 216), M(180, 220, 232) }
144};
145#undef M
static const Palette _palette
Colour palette (DOS)
Definition palettes.h:13
static const uint EPV_CYCLES_DARK_WATER
Description of the length of the palette cycle animations.
Definition palettes.h:95
static const uint EPV_CYCLES_OIL_REFINERY
length of the oil refinery's fire animation
Definition palettes.h:97
static const uint EPV_CYCLES_LIGHTHOUSE
length of the lighthouse/stadium animation
Definition palettes.h:96
static const uint EPV_CYCLES_GLITTER_WATER
length of the glittery water animation
Definition palettes.h:99
static const ExtraPaletteValues _extra_palette_values
Actual palette animation tables.
Definition palettes.h:113
static const uint EPV_CYCLES_FIZZY_DRINK
length of the fizzy drinks animation
Definition palettes.h:98
#define M(x)
Helper for creating a bitset of slopes.
Definition slope_type.h:84
Description of tables for the palette animation.
Definition palettes.h:102
Colour dark_water[EPV_CYCLES_DARK_WATER]
dark blue water
Definition palettes.h:103
Colour fizzy_drink[EPV_CYCLES_FIZZY_DRINK]
fizzy drinks
Definition palettes.h:107
Colour lighthouse[EPV_CYCLES_LIGHTHOUSE]
lighthouse & stadium
Definition palettes.h:105
Colour dark_water_toyland[EPV_CYCLES_DARK_WATER]
dark blue water Toyland
Definition palettes.h:104
Colour glitter_water_toyland[EPV_CYCLES_GLITTER_WATER]
glittery water Toyland
Definition palettes.h:109
Colour oil_refinery[EPV_CYCLES_OIL_REFINERY]
oil refinery
Definition palettes.h:106
Colour glitter_water[EPV_CYCLES_GLITTER_WATER]
glittery water
Definition palettes.h:108
Information about the currently used palette.
Definition gfx_type.h:360