00001
00002
00003
00004
00005
00006
00007
00008
00009
00012 #include "../core/endian_type.hpp"
00013
00014 #define M(r, g, b) { 0xFF000000U | (r) << 16 | (g) << 8 | (b) }
00015
00017 static const Colour _palette[256] = {
00018
00019 { 0},
00020
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
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
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
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
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
00115 { M( 32, 68, 112), M( 36, 72, 116), M( 40, 76, 120), M( 44, 80, 124),
00116 M( 48, 84, 128) },
00117
00118
00119 { M( 28, 108, 124), M( 32, 112, 128), M( 36, 116, 132), M( 40, 120, 136),
00120 M( 44, 124, 140) },
00121
00122
00123 { M(240, 208, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0) },
00124
00125
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
00130 { M( 76, 24, 8), M(108, 44, 24), M(144, 72, 52), M(176, 108, 84),
00131 M(212, 148, 128) },
00132
00133
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
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,
00150 12,
00151 189,
00152 184,
00153 174,
00154 30,
00155 195,
00156 209,
00157 68,
00158 95,
00159 79,
00160 116,
00161 15,
00162 152,
00163 6,
00164 133,
00165 1,
00166 };