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