OpenTTD Source 20241224-master-gf74b0cf984
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#include "../core/endian_type.hpp"
11
12#define M(r, g, b) Colour(r, g, b)
13
15static const Palette _palette = {
16 {
17 /* transparent */
18 Colour(0, 0, 0, 0),
19 /* grey scale */
20 M( 16, 16, 16), M( 32, 32, 32), M( 48, 48, 48),
21 M( 65, 64, 65), M( 82, 80, 82), M( 98, 101, 98), M(115, 117, 115),
22 /* regular colours */
23 M(131, 133, 131), M(148, 149, 148), M(168, 168, 168), M(184, 184, 184),
24 M(200, 200, 200), M(216, 216, 216), M(232, 232, 232), M(252, 252, 252),
25 M( 52, 60, 72), M( 68, 76, 92), M( 88, 96, 112), M(108, 116, 132),
26 M(132, 140, 152), M(156, 160, 172), M(176, 184, 196), M(204, 208, 220),
27 M( 48, 44, 4), M( 64, 60, 12), M( 80, 76, 20), M( 96, 92, 28),
28 M(120, 120, 64), M(148, 148, 100), M(176, 176, 132), M(204, 204, 168),
29 M( 72, 44, 4), M( 88, 60, 20), M(104, 80, 44), M(124, 104, 72),
30 M(152, 132, 92), M(184, 160, 120), M(212, 188, 148), M(244, 220, 176),
31 M( 64, 0, 4), M( 88, 4, 16), M(112, 16, 32), M(136, 32, 52),
32 M(160, 56, 76), M(188, 84, 108), M(204, 104, 124), M(220, 132, 144),
33 M(236, 156, 164), M(252, 188, 192), M(252, 212, 0), M(252, 232, 60),
34 M(252, 248, 128), M( 76, 40, 0), M( 96, 60, 8), M(116, 88, 28),
35 M(136, 116, 56), M(156, 136, 80), M(176, 156, 108), M(196, 180, 136),
36 M( 68, 24, 0), M( 96, 44, 4), M(128, 68, 8), M(156, 96, 16),
37 M(184, 120, 24), M(212, 156, 32), M(232, 184, 16), M(252, 212, 0),
38 M(252, 248, 128), M(252, 252, 192), M( 32, 4, 0), M( 64, 20, 8),
39 M( 84, 28, 16), M(108, 44, 28), M(128, 56, 40), M(148, 72, 56),
40 M(168, 92, 76), M(184, 108, 88), M(196, 128, 108), M(212, 148, 128),
41 M( 8, 52, 0), M( 16, 64, 0), M( 32, 80, 4), M( 48, 96, 4),
42 M( 64, 112, 12), M( 84, 132, 20), M(104, 148, 28), M(128, 168, 44),
43 M( 28, 52, 24), M( 44, 68, 32), M( 60, 88, 48), M( 80, 104, 60),
44 M(104, 124, 76), M(128, 148, 92), M(152, 176, 108), M(180, 204, 124),
45 M( 16, 52, 24), M( 32, 72, 44), M( 56, 96, 72), M( 76, 116, 88),
46 M( 96, 136, 108), M(120, 164, 136), M(152, 192, 168), M(184, 220, 200),
47 M( 32, 24, 0), M( 56, 28, 0), M( 72, 40, 4), M( 88, 52, 12),
48 M(104, 64, 24), M(124, 84, 44), M(140, 108, 64), M(160, 128, 88),
49 M( 76, 40, 16), M( 96, 52, 24), M(116, 68, 40), M(136, 84, 56),
50 M(164, 96, 64), M(184, 112, 80), M(204, 128, 96), M(212, 148, 112),
51 M(224, 168, 128), M(236, 188, 148), M( 80, 28, 4), M(100, 40, 20),
52 M(120, 56, 40), M(140, 76, 64), M(160, 100, 96), M(184, 136, 136),
53 M( 36, 40, 68), M( 48, 52, 84), M( 64, 64, 100), M( 80, 80, 116),
54 M(100, 100, 136), M(132, 132, 164), M(172, 172, 192), M(212, 212, 224),
55 M( 40, 20, 112), M( 64, 44, 144), M( 88, 64, 172), M(104, 76, 196),
56 M(120, 88, 224), M(140, 104, 252), M(160, 136, 252), M(188, 168, 252),
57 M( 0, 24, 108), M( 0, 36, 132), M( 0, 52, 160), M( 0, 72, 184),
58 M( 0, 96, 212), M( 24, 120, 220), M( 56, 144, 232), M( 88, 168, 240),
59 M(128, 196, 252), M(188, 224, 252), M( 16, 64, 96), M( 24, 80, 108),
60 M( 40, 96, 120), M( 52, 112, 132), M( 80, 140, 160), M(116, 172, 192),
61 M(156, 204, 220), M(204, 240, 252), M(172, 52, 52), M(212, 52, 52),
62 M(252, 52, 52), M(252, 100, 88), M(252, 144, 124), M(252, 184, 160),
63 M(252, 216, 200), M(252, 244, 236), M( 72, 20, 112), M( 92, 44, 140),
64 M(112, 68, 168), M(140, 100, 196), M(168, 136, 224), M(204, 180, 252),
65 M(204, 180, 252), M(232, 208, 252), M( 60, 0, 0), M( 92, 0, 0),
66 M(128, 0, 0), M(160, 0, 0), M(196, 0, 0), M(224, 0, 0),
67 M(252, 0, 0), M(252, 80, 0), M(252, 108, 0), M(252, 136, 0),
68 M(252, 164, 0), M(252, 192, 0), M(252, 220, 0), M(252, 252, 0),
69 M(204, 136, 8), M(228, 144, 4), M(252, 156, 0), M(252, 176, 48),
70 M(252, 196, 100), M(252, 216, 152), M( 8, 24, 88), M( 12, 36, 104),
71 M( 20, 52, 124), M( 28, 68, 140), M( 40, 92, 164), M( 56, 120, 188),
72 M( 72, 152, 216), M(100, 172, 224), M( 92, 156, 52), M(108, 176, 64),
73 M(124, 200, 76), M(144, 224, 92), M(224, 244, 252), M(204, 240, 252),
74 M(180, 220, 236), M(132, 188, 216), M( 88, 152, 172),
75 /* unused pink */
76 M(212, 0, 212),
77 M(212, 0, 212), M(212, 0, 212), M(212, 0, 212), M(212, 0, 212),
78 M(212, 0, 212), M(212, 0, 212), M(212, 0, 212), M(212, 0, 212),
79 M(212, 0, 212), M(212, 0, 212), M(212, 0, 212),
80 /* Palette animated colours (filled with data from #ExtraPaletteValues) */
81 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), M( 0, 0, 0),
87 M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0),
88 M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0),
89 /* pure white */
90 M(252, 252, 252)
91 },
92 0, // First dirty
93 256 // Dirty count
94};
95
97static const uint EPV_CYCLES_DARK_WATER = 5;
98static const uint EPV_CYCLES_LIGHTHOUSE = 4;
99static const uint EPV_CYCLES_OIL_REFINERY = 7;
100static const uint EPV_CYCLES_FIZZY_DRINK = 5;
101static const uint EPV_CYCLES_GLITTER_WATER = 15;
102
113
116 /* dark blue water */
117 { M( 32, 68, 112), M( 36, 72, 116), M( 40, 76, 120), M( 44, 80, 124),
118 M( 48, 84, 128) },
119
120 /* dark blue water Toyland */
121 { M( 28, 108, 124), M( 32, 112, 128), M( 36, 116, 132), M( 40, 120, 136),
122 M( 44, 124, 140) },
123
124 /* lighthouse & stadium */
125 { M(240, 208, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0) },
126
127 /* oil refinery */
128 { M(252, 60, 0), M(252, 84, 0), M(252, 108, 0), M(252, 124, 0),
129 M(252, 148, 0), M(252, 172, 0), M(252, 196, 0) },
130
131 /* fizzy drinks */
132 { M( 76, 24, 8), M(108, 44, 24), M(144, 72, 52), M(176, 108, 84),
133 M(212, 148, 128) },
134
135 /* glittery water */
136 { M(216, 244, 252), M(172, 208, 224), M(132, 172, 196), M(100, 132, 168),
137 M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144),
138 M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144),
139 M(100, 132, 168), M(132, 172, 196), M(172, 208, 224) },
140
141 /* glittery water Toyland */
142 { M(216, 244, 252), M(180, 220, 232), M(148, 200, 216), M(116, 180, 196),
143 M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184),
144 M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184),
145 M(116, 180, 196), M(148, 200, 216), M(180, 220, 232) }
146};
147#undef M
static const Palette _palette
Colour palette (DOS)
Definition palettes.h:15
static const uint EPV_CYCLES_DARK_WATER
Description of the length of the palette cycle animations.
Definition palettes.h:97
static const uint EPV_CYCLES_OIL_REFINERY
length of the oil refinery's fire animation
Definition palettes.h:99
static const uint EPV_CYCLES_LIGHTHOUSE
length of the lighthouse/stadium animation
Definition palettes.h:98
static const uint EPV_CYCLES_GLITTER_WATER
length of the glittery water animation
Definition palettes.h:101
static const ExtraPaletteValues _extra_palette_values
Actual palette animation tables.
Definition palettes.h:115
static const uint EPV_CYCLES_FIZZY_DRINK
length of the fizzy drinks animation
Definition palettes.h:100
#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:104
Colour dark_water[EPV_CYCLES_DARK_WATER]
dark blue water
Definition palettes.h:105
Colour fizzy_drink[EPV_CYCLES_FIZZY_DRINK]
fizzy drinks
Definition palettes.h:109
Colour lighthouse[EPV_CYCLES_LIGHTHOUSE]
lighthouse & stadium
Definition palettes.h:107
Colour dark_water_toyland[EPV_CYCLES_DARK_WATER]
dark blue water Toyland
Definition palettes.h:106
Colour glitter_water_toyland[EPV_CYCLES_GLITTER_WATER]
glittery water Toyland
Definition palettes.h:111
Colour oil_refinery[EPV_CYCLES_OIL_REFINERY]
oil refinery
Definition palettes.h:108
Colour glitter_water[EPV_CYCLES_GLITTER_WATER]
glittery water
Definition palettes.h:110
Information about the currently used palette.
Definition gfx_type.h:328
Structure to access the alpha, red, green, and blue channels from a 32 bit number.
Definition gfx_type.h:165