6 return pow((x + 0.055) / 1.055, 2.4)
10 def __init__(self, name, r, g, b, a=1.0):
14 self.
r = gammaToLinear( r )
15 self.
g = gammaToLinear( g )
16 self.
b = gammaToLinear( b )
19 def write_header(self, f):
20 f.write(f
"extern const glColour c{self.name};\n")
22 def write_source(self, f):
23 f.write(f
"const glColour c{self.name} = {{ .r={self.r}, .g={self.g}, .b={self.b}, .a={self.a} }};\n")
25 def __lt__(self, other):
26 return self.
name < other.name
30 Colour(
"Transparent", 0.00, 0.00, 0.00, 0.00 ),
31 Colour(
"White", 1.00, 1.00, 1.00 ),
32 Colour(
"Grey90", 0.90, 0.90, 0.90 ),
33 Colour(
"Grey80", 0.80, 0.80, 0.80 ),
34 Colour(
"Grey70", 0.70, 0.70, 0.70 ),
35 Colour(
"Grey60", 0.60, 0.60, 0.60 ),
36 Colour(
"Grey50", 0.50, 0.50, 0.50 ),
37 Colour(
"Grey45", 0.45, 0.45, 0.45 ),
38 Colour(
"Grey40", 0.40, 0.40, 0.40 ),
39 Colour(
"Grey35", 0.35, 0.35, 0.35 ),
40 Colour(
"Grey30", 0.30, 0.30, 0.30 ),
41 Colour(
"Grey25", 0.25, 0.25, 0.25 ),
42 Colour(
"Grey20", 0.20, 0.20, 0.20 ),
43 Colour(
"Grey15", 0.15, 0.15, 0.15 ),
44 Colour(
"Grey10", 0.10, 0.10, 0.10 ),
45 Colour(
"Grey5", 0.05, 0.05, 0.05 ),
46 Colour(
"Black", 0.00, 0.00, 0.00 ),
49 Colour(
"DarkGreen", 0.10, 0.50, 0.10 ),
50 Colour(
"Green", 0.20, 0.80, 0.20 ),
51 Colour(
"PrimeGreen", 0.00, 1.00, 0.00 ),
53 Colour(
"DarkRed", 0.60, 0.10, 0.10 ),
54 Colour(
"Red", 0.80, 0.20, 0.20 ),
55 Colour(
"PrimeRed", 1.00, 0.00, 0.00 ),
56 Colour(
"BrightRed", 1.00, 0.60, 0.60 ),
58 Colour(
"Orange", 0.90, 0.70, 0.10 ),
60 Colour(
"Gold", 1.00, 0.84, 0.00 ),
61 Colour(
"Yellow", 0.80, 0.80, 0.00 ),
63 Colour(
"MidnightBlue", 0.10, 0.10, 0.4 ),
64 Colour(
"DarkBlue", 0.10, 0.10, 0.60 ),
65 Colour(
"Blue", 0.20, 0.20, 0.80 ),
66 Colour(
"AquaBlue", 0.30, 0.30, 0.90 ),
67 Colour(
"LightBlue", 0.40, 0.40, 1.00 ),
68 Colour(
"PrimeBlue", 0.00, 0.00, 1.00 ),
69 Colour(
"Cyan", 0.00, 1.00, 1.00 ),
71 Colour(
"Purple", 0.90, 0.10, 0.90 ),
72 Colour(
"DarkPurple", 0.68, 0.18, 0.64 ),
74 Colour(
"Brown", 0.59, 0.28, 0.00 ),
76 Colour(
"Silver", 0.75, 0.75, 0.75 ),
77 Colour(
"Aqua", 0.00, 0.75, 1.00 ),
79 Colour(
"BlackHilight", 0.0, 0.0, 0.0, 0.4 ),
83 Colour(
"OutfitHeavy", 0.8, 0.4, 0.46 ),
84 Colour(
"OutfitMedium", 0.16, 0.63, 0.81 ),
86 Colour(
"OutfitLight", 0.75, 0.7, 0.40 ),
88 Colour(
"Inert", 221./255., 221./255., 221./255. ),
89 Colour(
"Neutral", 221./255., 204./255., 119./255. ),
90 Colour(
"Friend", 68./255., 170./255., 153./255. ),
91 Colour(
"Hostile", 204./255., 68./255., 153./255. ),
92 Colour(
"Restricted", 221./255., 153./255., 51./255. ),
95 Colour(
"MarkerNew", 0x33/255., 0xBB/255., 0xEE/255. ),
96 Colour(
"MarkerComputer", 0x33/255., 0xBB/255., 0xEE/255. ),
97 Colour(
"MarkerLow", 0x00/255., 0x99/255., 0x88/255. ),
98 Colour(
"MarkerHigh", 0xEE/255., 0x77/255., 0x33/255. ),
99 Colour(
"MarkerPlot", 0xEE/255., 0x33/255., 0x77/255. ),
101 Colour(
"Radar_player", 0.9, 0.1, 0.9 ),
102 Colour(
"Radar_tPilot", 1.0, 1.0, 1.0 ),
103 Colour(
"Radar_tSpob", 1.0, 1.0, 1.0 ),
104 Colour(
"Radar_weap", 0.8, 0.2, 0.2 ),
105 Colour(
"Radar_hilight", 0.6, 1.0, 1.0 ),
107 Colour(
"Shield", 0.2, 0.2, 0.8 ),
108 Colour(
"Armour", 0.5, 0.5, 0.5 ),
109 Colour(
"Energy", 0.2, 0.8, 0.2 ),
110 Colour(
"Fuel", 0.9, 0.1, 0.4 ),
113 Colour(
"FontRed", 1.0, 0.4, 0.4 ),
114 Colour(
"FontGreen", 0.6, 1.0, 0.4 ),
115 Colour(
"FontBlue", 0.4, 0.6, 1.0 ),
116 Colour(
"FontYellow", 1.0, 1.0, 0.5 ),
117 Colour(
"FontGrey", 0.7, 0.7, 0.7 ),
118 Colour(
"FontPurple", 1.0, 0.3, 1.0 ),
119 Colour(
"FontOrange", 1.0, 0.7, 0.3 ),
120 Colour(
"FontWhite", 0.95, 0.95, 0.95 ),
125 f.write(f
"/* FILE GENERATED BY {__file__} */")
127def generate_h_file(f):
135 col.write_header( f )
137const glColour* col_fromName( const char* name );
140def generate_c_file(f):
148#define NUM_COLOURS {num_colours}
152 col.write_source( f )
155typedef struct ColourSort_s {
159const ColourSort_t col_list[NUM_COLOURS] = {
162 f.write(f
" {{ .name=\"{col.name}\", .c=&c{col.name} }},\n")
168static int colour_cmp( const void *p1, const void *p2 )
170 const ColourSort_t *c1, *c2;
171 c1 = (const ColourSort_t*) p1;
172 c2 = (const ColourSort_t*) p2;
173 return strcasecmp( c1->name, c2->name );
176const glColour* col_fromName( const char* name )
178 const ColourSort_t k = { .name = name };
179 const ColourSort_t *q = bsearch( &k, col_list, NUM_COLOURS, sizeof(ColourSort_t), colour_cmp );
181 WARN(_("Unknown colour '%s'!"),name);
187with open(
"colours.gen.h",
"w")
as colours_ggen_h:
188 generate_h_file(colours_ggen_h)
190with open(
"colours.gen.c",
"w")
as colours_ggen_c:
191 generate_c_file(colours_ggen_c)