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