palettes.h

Go to the documentation of this file.
00001 /* $Id$ */
00002 
00003 /*
00004  * This file is part of OpenTTD.
00005  * 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.
00006  * 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.
00007  * 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/>.
00008  */
00009 
00012 #include "../core/endian_type.hpp"
00013 
00014 #define M(r, g, b) { 0xff << 24 | (r) << 16 | (g) << 8 | (b) }
00015 
00017 static const Colour _palette[256] = {
00018     /* transparent */
00019     {             0},
00020     /* grey scale */
00021                       M( 16,  16,  16), M( 32,  32,  32), M( 48,  48,  48),
00022     M( 65,  64,  65), M( 82,  80,  82), M( 98, 101,  98), M(115, 117, 115),
00023     /* regular colours */
00024     M(131, 133, 131), M(148, 149, 148), M(168, 168, 168), M(184, 184, 184),
00025     M(200, 200, 200), M(216, 216, 216), M(232, 232, 232), M(252, 252, 252),
00026     M( 52,  60,  72), M( 68,  76,  92), M( 88,  96, 112), M(108, 116, 132),
00027     M(132, 140, 152), M(156, 160, 172), M(176, 184, 196), M(204, 208, 220),
00028     M( 48,  44,   4), M( 64,  60,  12), M( 80,  76,  20), M( 96,  92,  28),
00029     M(120, 120,  64), M(148, 148, 100), M(176, 176, 132), M(204, 204, 168),
00030     M( 72,  44,   4), M( 88,  60,  20), M(104,  80,  44), M(124, 104,  72),
00031     M(152, 132,  92), M(184, 160, 120), M(212, 188, 148), M(244, 220, 176),
00032     M( 64,   0,   4), M( 88,   4,  16), M(112,  16,  32), M(136,  32,  52),
00033     M(160,  56,  76), M(188,  84, 108), M(204, 104, 124), M(220, 132, 144),
00034     M(236, 156, 164), M(252, 188, 192), M(252, 212,   0), M(252, 232,  60),
00035     M(252, 248, 128), M( 76,  40,   0), M( 96,  60,   8), M(116,  88,  28),
00036     M(136, 116,  56), M(156, 136,  80), M(176, 156, 108), M(196, 180, 136),
00037     M( 68,  24,   0), M( 96,  44,   4), M(128,  68,   8), M(156,  96,  16),
00038     M(184, 120,  24), M(212, 156,  32), M(232, 184,  16), M(252, 212,   0),
00039     M(252, 248, 128), M(252, 252, 192), M( 32,   4,   0), M( 64,  20,   8),
00040     M( 84,  28,  16), M(108,  44,  28), M(128,  56,  40), M(148,  72,  56),
00041     M(168,  92,  76), M(184, 108,  88), M(196, 128, 108), M(212, 148, 128),
00042     M(  8,  52,   0), M( 16,  64,   0), M( 32,  80,   4), M( 48,  96,   4),
00043     M( 64, 112,  12), M( 84, 132,  20), M(104, 148,  28), M(128, 168,  44),
00044     M( 28,  52,  24), M( 44,  68,  32), M( 60,  88,  48), M( 80, 104,  60),
00045     M(104, 124,  76), M(128, 148,  92), M(152, 176, 108), M(180, 204, 124),
00046     M( 16,  52,  24), M( 32,  72,  44), M( 56,  96,  72), M( 76, 116,  88),
00047     M( 96, 136, 108), M(120, 164, 136), M(152, 192, 168), M(184, 220, 200),
00048     M( 32,  24,   0), M( 56,  28,   0), M( 72,  40,   4), M( 88,  52,  12),
00049     M(104,  64,  24), M(124,  84,  44), M(140, 108,  64), M(160, 128,  88),
00050     M( 76,  40,  16), M( 96,  52,  24), M(116,  68,  40), M(136,  84,  56),
00051     M(164,  96,  64), M(184, 112,  80), M(204, 128,  96), M(212, 148, 112),
00052     M(224, 168, 128), M(236, 188, 148), M( 80,  28,   4), M(100,  40,  20),
00053     M(120,  56,  40), M(140,  76,  64), M(160, 100,  96), M(184, 136, 136),
00054     M( 36,  40,  68), M( 48,  52,  84), M( 64,  64, 100), M( 80,  80, 116),
00055     M(100, 100, 136), M(132, 132, 164), M(172, 172, 192), M(212, 212, 224),
00056     M( 40,  20, 112), M( 64,  44, 144), M( 88,  64, 172), M(104,  76, 196),
00057     M(120,  88, 224), M(140, 104, 252), M(160, 136, 252), M(188, 168, 252),
00058     M(  0,  24, 108), M(  0,  36, 132), M(  0,  52, 160), M(  0,  72, 184),
00059     M(  0,  96, 212), M( 24, 120, 220), M( 56, 144, 232), M( 88, 168, 240),
00060     M(128, 196, 252), M(188, 224, 252), M( 16,  64,  96), M( 24,  80, 108),
00061     M( 40,  96, 120), M( 52, 112, 132), M( 80, 140, 160), M(116, 172, 192),
00062     M(156, 204, 220), M(204, 240, 252), M(172,  52,  52), M(212,  52,  52),
00063     M(252,  52,  52), M(252, 100,  88), M(252, 144, 124), M(252, 184, 160),
00064     M(252, 216, 200), M(252, 244, 236), M( 72,  20, 112), M( 92,  44, 140),
00065     M(112,  68, 168), M(140, 100, 196), M(168, 136, 224), M(204, 180, 252),
00066     M(204, 180, 252), M(232, 208, 252), M( 60,   0,   0), M( 92,   0,   0),
00067     M(128,   0,   0), M(160,   0,   0), M(196,   0,   0), M(224,   0,   0),
00068     M(252,   0,   0), M(252,  80,   0), M(252, 108,   0), M(252, 136,   0),
00069     M(252, 164,   0), M(252, 192,   0), M(252, 220,   0), M(252, 252,   0),
00070     M(204, 136,   8), M(228, 144,   4), M(252, 156,   0), M(252, 176,  48),
00071     M(252, 196, 100), M(252, 216, 152), M(  8,  24,  88), M( 12,  36, 104),
00072     M( 20,  52, 124), M( 28,  68, 140), M( 40,  92, 164), M( 56, 120, 188),
00073     M( 72, 152, 216), M(100, 172, 224), M( 92, 156,  52), M(108, 176,  64),
00074     M(124, 200,  76), M(144, 224,  92), M(224, 244, 252), M(204, 240, 252),
00075     M(180, 220, 236), M(132, 188, 216), M( 88, 152, 172),
00076     /* unused pink */
00077                                                           M(212,   0, 212),
00078     M(212,   0, 212), M(212,   0, 212), M(212,   0, 212), M(212,   0, 212),
00079     M(212,   0, 212), M(212,   0, 212), M(212,   0, 212), M(212,   0, 212),
00080     M(212,   0, 212), M(212,   0, 212), M(212,   0, 212),
00081     /* Palette animated colours (filled with data from #ExtraPaletteValues) */
00082                                                           M(  0,   0,   0),
00083     M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0),
00084     M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0),
00085     M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0),
00086     M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0),
00087     M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0),
00088     M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0),
00089     M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0),
00090     /* pure white */
00091                                                           M(252, 252, 252)
00092 };
00093 
00095 static const uint EPV_CYCLES_DARK_WATER    =  5; 
00096 static const uint EPV_CYCLES_LIGHTHOUSE    =  4; 
00097 static const uint EPV_CYCLES_OIL_REFINERY  =  7; 
00098 static const uint EPV_CYCLES_FIZZY_DRINK   =  5; 
00099 static const uint EPV_CYCLES_GLITTER_WATER = 15; 
00100 
00102 struct ExtraPaletteValues {
00103   Colour dark_water[EPV_CYCLES_DARK_WATER];               
00104   Colour dark_water_toyland[EPV_CYCLES_DARK_WATER];       
00105   Colour lighthouse[EPV_CYCLES_LIGHTHOUSE];               
00106   Colour oil_refinery[EPV_CYCLES_OIL_REFINERY];           
00107   Colour fizzy_drink[EPV_CYCLES_FIZZY_DRINK];             
00108   Colour glitter_water[EPV_CYCLES_GLITTER_WATER];         
00109   Colour glitter_water_toyland[EPV_CYCLES_GLITTER_WATER]; 
00110 };
00111 
00113 static const ExtraPaletteValues _extra_palette_values = {
00114   /* dark blue water */
00115   { M( 32,  68, 112), M( 36,  72, 116), M( 40,  76, 120), M( 44,  80, 124),
00116     M( 48,  84, 128) },
00117 
00118   /* dark blue water Toyland */
00119   { M( 28, 108, 124), M( 32, 112, 128), M( 36, 116, 132), M( 40, 120, 136),
00120     M( 44, 124, 140) },
00121 
00122   /* lighthouse & stadium */
00123   { M(240, 208,   0), M(  0,   0,   0), M(  0,   0,   0), M(  0,   0,   0) },
00124 
00125   /* oil refinery */
00126   { M(252,  60,   0), M(252,  84,   0), M(252, 108,   0), M(252, 124,   0),
00127     M(252, 148,   0), M(252, 172,   0), M(252, 196,   0) },
00128 
00129   /* fizzy drinks */
00130   { M( 76,  24,   8), M(108,  44,  24), M(144,  72,  52), M(176, 108,  84),
00131     M(212, 148, 128) },
00132 
00133   /* glittery water */
00134   { M(216, 244, 252), M(172, 208, 224), M(132, 172, 196), M(100, 132, 168),
00135     M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144),
00136     M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144),
00137     M(100, 132, 168), M(132, 172, 196), M(172, 208, 224) },
00138 
00139   /* glittery water Toyland */
00140   { M(216, 244, 252), M(180, 220, 232), M(148, 200, 216), M(116, 180, 196),
00141     M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184),
00142     M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184),
00143     M(116, 180, 196), M(148, 200, 216), M(180, 220, 232) }
00144 };
00145 #undef M
00146 
00148 static const byte _string_colourmap[17] = {
00149     150, // TC_BLUE
00150      12, // TC_SILVER
00151     189, // TC_GOLD
00152     184, // TC_RED
00153     174, // TC_PURPLE
00154      30, // TC_LIGHT_BROWN
00155     195, // TC_ORANGE
00156     209, // TC_GREEN
00157      68, // TC_YELLOW
00158      95, // TC_DARK_GREEN
00159      79, // TC_CREAM
00160     116, // TC_BROWN
00161      15, // TC_WHITE
00162     152, // TC_LIGHT_BLUE
00163       6, // TC_GREY
00164     133, // TC_DARK_BLUE
00165       1, // TC_BLACK
00166 };

Generated on Mon May 9 05:19:01 2011 for OpenTTD by  doxygen 1.6.1