mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-27 06:27:17 +00:00
refer to color by HTML name in commandline arguments
This commit is contained in:
parent
9d26e98fcd
commit
839ca440ea
33
colors.cpp
33
colors.cpp
@ -273,5 +273,38 @@ EX int weakfirecolor(int phase) {
|
||||
return gradient(0xFF8000, 0xFF0000, -1, sintick(500, phase/1000./M_PI), 1);
|
||||
}
|
||||
|
||||
/* HTML color names */
|
||||
|
||||
EX vector<pair<const char*, color_t>> color_names = {
|
||||
{"aliceblue", 0xf0f8ff}, {"antiquewhite", 0xfaebd7}, {"aqua", 0x00ffff}, {"aquamarine", 0x7fffd4}, {"azure", 0xf0ffff},
|
||||
{"beige", 0xf5f5dc}, {"bisque", 0xffe4c4}, {"black", 0x000000}, {"blanchedalmond", 0xffebcd}, {"blue", 0x0000ff}, {"blueviolet", 0x8a2be2}, {"brown", 0xa52a2a}, {"burlywood", 0xdeb887},
|
||||
{"cadetblue", 0x5f9ea0}, {"chartreuse", 0x7fff00}, {"chocolate", 0xd2691e}, {"coral", 0xff7f50}, {"cornflowerblue", 0x6495ed}, {"cornsilk", 0xfff8dc}, {"crimson", 0xdc143c}, {"cyan", 0x00ffff},
|
||||
{"darkblue", 0x00008b}, {"darkcyan", 0x008b8b}, {"darkgoldenrod", 0xb8860b}, {"darkgray", 0xa9a9a9}, {"darkgreen", 0x006400}, {"darkkhaki", 0xbdb76b}, {"darkmagenta", 0x8b008b}, {"darkolivegreen", 0x556b2f},
|
||||
{"darkorange", 0xff8c00}, {"darkorchid", 0x9932cc}, {"darkred", 0x8b0000}, {"darksalmon", 0xe9967a}, {"darkseagreen", 0x8fbc8f}, {"darkslateblue", 0x483d8b}, {"darkslategray", 0x2f4f4f}, {"darkturquoise", 0x00ced1},
|
||||
{"darkviolet", 0x9400d3}, {"deeppink", 0xff1493}, {"deepskyblue", 0x00bfff}, {"dimgray", 0x696969}, {"dodgerblue", 0x1e90ff},
|
||||
{"firebrick", 0xb22222}, {"floralwhite", 0xfffaf0}, {"forestgreen", 0x228b22}, {"fuchsia", 0xff00ff},
|
||||
{"gainsboro", 0xdcdcdc}, {"ghostwhite", 0xf8f8ff}, {"gold", 0xffd700}, {"goldenrod", 0xdaa520}, {"gray", 0x808080}, {"green", 0x008000}, {"greenyellow", 0xadff2f},
|
||||
{"honeydew", 0xf0fff0}, {"hotpink", 0xff69b4},
|
||||
{"indianred ", 0xcd5c5c}, {"indigo", 0x4b0082}, {"ivory", 0xfffff0}, {"khaki", 0xf0e68c},
|
||||
{"lavender", 0xe6e6fa}, {"lavenderblush", 0xfff0f5}, {"lawngreen", 0x7cfc00}, {"lemonchiffon", 0xfffacd}, {"lightblue", 0xadd8e6}, {"lightcoral", 0xf08080}, {"lightcyan", 0xe0ffff}, {"lightgoldenrodyellow", 0xfafad2},
|
||||
{"lightgrey", 0xd3d3d3}, {"lightgreen", 0x90ee90}, {"lightpink", 0xffb6c1}, {"lightsalmon", 0xffa07a}, {"lightseagreen", 0x20b2aa}, {"lightskyblue", 0x87cefa}, {"lightslategray", 0x778899}, {"lightsteelblue", 0xb0c4de},
|
||||
{"lightyellow", 0xffffe0}, {"lime", 0x00ff00}, {"limegreen", 0x32cd32}, {"linen", 0xfaf0e6},
|
||||
{"magenta", 0xff00ff}, {"maroon", 0x800000}, {"mediumaquamarine", 0x66cdaa}, {"mediumblue", 0x0000cd}, {"mediumorchid", 0xba55d3}, {"mediumpurple", 0x9370d8}, {"mediumseagreen", 0x3cb371}, {"mediumslateblue", 0x7b68ee},
|
||||
{"mediumspringgreen", 0x00fa9a}, {"mediumturquoise", 0x48d1cc}, {"mediumvioletred", 0xc71585}, {"midnightblue", 0x191970}, {"mintcream", 0xf5fffa}, {"mistyrose", 0xffe4e1}, {"moccasin", 0xffe4b5},
|
||||
{"navajowhite", 0xffdead}, {"navy", 0x000080},
|
||||
{"oldlace", 0xfdf5e6}, {"olive", 0x808000}, {"olivedrab", 0x6b8e23}, {"orange", 0xffa500}, {"orangered", 0xff4500}, {"orchid", 0xda70d6},
|
||||
{"palegoldenrod", 0xeee8aa}, {"palegreen", 0x98fb98}, {"paleturquoise", 0xafeeee}, {"palevioletred", 0xd87093}, {"papayawhip", 0xffefd5}, {"peachpuff", 0xffdab9}, {"peru", 0xcd853f}, {"pink", 0xffc0cb}, {"plum", 0xdda0dd}, {"powderblue", 0xb0e0e6}, {"purple", 0x800080},
|
||||
{"rebeccapurple", 0x663399}, {"red", 0xff0000}, {"rosybrown", 0xbc8f8f}, {"royalblue", 0x4169e1},
|
||||
{"saddlebrown", 0x8b4513}, {"salmon", 0xfa8072}, {"sandybrown", 0xf4a460}, {"seagreen", 0x2e8b57}, {"seashell", 0xfff5ee}, {"sienna", 0xa0522d}, {"silver", 0xc0c0c0}, {"skyblue", 0x87ceeb}, {"slateblue", 0x6a5acd}, {"slategray", 0x708090}, {"snow", 0xfffafa}, {"springgreen", 0x00ff7f}, {"steelblue", 0x4682b4},
|
||||
{"tan", 0xd2b48c}, {"teal", 0x008080}, {"thistle", 0xd8bfd8}, {"tomato", 0xff6347}, {"turquoise", 0x40e0d0},
|
||||
{"violet", 0xee82ee},
|
||||
{"wheat", 0xf5deb3}, {"white", 0xffffff}, {"whitesmoke", 0xf5f5f5},
|
||||
{"yellow", 0xffff00}, {"yellowgreen", 0x9acd32}
|
||||
};
|
||||
|
||||
EX pair<const char*, color_t>* find_color_by_name(const string& s) {
|
||||
for(auto& c: color_names) if(c.first == s) return &c;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -102,6 +102,14 @@ EX namespace arg {
|
||||
}
|
||||
}
|
||||
EX bool argis(const string& s) { if(args()[0] == '-' && args()[1] == '-') return args().substr(1) == s; return args() == s; }
|
||||
|
||||
EX color_t argcolor(int bits) {
|
||||
string s = args();
|
||||
auto p = find_color_by_name(s);
|
||||
if(p && bits == 24) return p->second;
|
||||
if(p && bits == 32) return (p->second << 8) | 0xFF;
|
||||
return strtoll(argcs(), NULL, 16);
|
||||
}
|
||||
|
||||
EX void shift_arg_formula(ld& x, const reaction_t& r IS(reaction_t())) {
|
||||
shift(); ld old = x; x = argf();
|
||||
|
18
config.cpp
18
config.cpp
@ -2951,38 +2951,38 @@ EX int read_color_args() {
|
||||
using namespace arg;
|
||||
|
||||
if(argis("-back")) {
|
||||
PHASEFROM(2); shift(); backcolor = arghex();
|
||||
PHASEFROM(2); shift(); backcolor = argcolor(24);
|
||||
}
|
||||
else if(argis("-fillmodel")) {
|
||||
PHASEFROM(2); shift(); modelcolor = arghex();
|
||||
PHASEFROM(2); shift(); modelcolor = argcolor(32);
|
||||
}
|
||||
else if(argis("-ring")) {
|
||||
PHASEFROM(2); shift(); ringcolor = arghex();
|
||||
PHASEFROM(2); shift(); ringcolor = argcolor(32);
|
||||
}
|
||||
else if(argis("-ringw")) {
|
||||
PHASEFROM(2); shift_arg_formula(vid.multiplier_ring);
|
||||
}
|
||||
else if(argis("-stdgrid")) {
|
||||
PHASEFROM(2); shift(); stdgridcolor = arghex();
|
||||
PHASEFROM(2); shift(); stdgridcolor = argcolor(32);
|
||||
}
|
||||
else if(argis("-gridw")) {
|
||||
PHASEFROM(2); shift_arg_formula(vid.multiplier_grid);
|
||||
}
|
||||
else if(argis("-period")) {
|
||||
PHASEFROM(2); shift(); periodcolor = arghex();
|
||||
PHASEFROM(2); shift(); periodcolor = argcolor(32);
|
||||
}
|
||||
else if(argis("-crosshair")) {
|
||||
PHASEFROM(2); shift(); crosshair_color = arghex();
|
||||
PHASEFROM(2); shift(); crosshair_color = argcolor(32);
|
||||
shift_arg_formula(crosshair_size);
|
||||
}
|
||||
else if(argis("-borders")) {
|
||||
PHASEFROM(2); shift(); bordcolor = arghex();
|
||||
PHASEFROM(2); shift(); bordcolor = argcolor(24);
|
||||
}
|
||||
else if(argis("-fore")) {
|
||||
PHASEFROM(2); shift(); forecolor = arghex();
|
||||
PHASEFROM(2); shift(); forecolor = argcolor(24);
|
||||
}
|
||||
else if(argis("-dialog")) {
|
||||
PHASEFROM(2); shift(); dialog::dialogcolor = arghex();
|
||||
PHASEFROM(2); shift(); dialog::dialogcolor = argcolor(24);
|
||||
}
|
||||
else if(argis("-d:color"))
|
||||
launch_dialog(show_color_dialog);
|
||||
|
@ -1406,7 +1406,7 @@ int readArgs() {
|
||||
launch_dialog(show);
|
||||
else if(argis("-cvcol")) {
|
||||
shift(); int d = argi();
|
||||
shift(); coordcolors[d] = arghex();
|
||||
shift(); coordcolors[d] = argcolor(24);
|
||||
}
|
||||
else return 1;
|
||||
return 0;
|
||||
|
@ -934,7 +934,7 @@ int expansion_readArgs() {
|
||||
|
||||
else if(argis("-expansion-labelcolor")) {
|
||||
dist_label_colored = false;
|
||||
shift(); dist_label_color = arghex();
|
||||
shift(); dist_label_color = argcolor(24);
|
||||
}
|
||||
|
||||
else if(argis("-expansion-off")) {
|
||||
|
10
pattern2.cpp
10
pattern2.cpp
@ -3072,7 +3072,7 @@ int read_pattern_args() {
|
||||
shift();
|
||||
for(auto& lp: linepatterns::patterns)
|
||||
if(appears(lp->lpname, ss))
|
||||
lp->color = arghex();
|
||||
lp->color = argcolor(32);
|
||||
}
|
||||
|
||||
else if(argis("-fat-edges")) {
|
||||
@ -3102,10 +3102,10 @@ int read_pattern_args() {
|
||||
if(c == 't') ct = &nestcolors;
|
||||
else if(c == 'd') ct = &distcolors;
|
||||
else if(c == 'm') ct = &minecolors;
|
||||
else if(c == 'E') { shift(); int d = argi(); shift(); expcolors[d] = arghex(); return 0; }
|
||||
else if(c == 'E') { shift(); int d = argi(); shift(); expcolors[d] = argcolor(24); return 0; }
|
||||
else if(c == 'P') {
|
||||
shift(); int d = argi(); shift();
|
||||
color_t h = arghex();
|
||||
color_t h = argcolor(32);
|
||||
if(d >= 0 && d < 7)
|
||||
((color_t*)(&vid.cs.skincolor)) [d] = h;
|
||||
return 0;
|
||||
@ -3115,7 +3115,7 @@ int read_pattern_args() {
|
||||
}
|
||||
int d = argi();
|
||||
ct->allocate(d+1);
|
||||
shift(); (*ct)[d] = arghex();
|
||||
shift(); (*ct)[d] = argcolor(24);
|
||||
}
|
||||
else if(argis("-canvas")) {
|
||||
PHASEFROM(2);
|
||||
@ -3124,7 +3124,7 @@ int read_pattern_args() {
|
||||
shift();
|
||||
if(args() == "i") canvas_default_wall = waInvisibleFloor;
|
||||
else if(args().size() == 1) patterns::whichCanvas = args()[0];
|
||||
else patterns::canvasback = arghex();
|
||||
else patterns::canvasback = argcolor(24);
|
||||
stop_game_and_switch_mode(rg::nothing);
|
||||
}
|
||||
else if(argis("-canvas-random")) {
|
||||
|
@ -2904,7 +2904,7 @@ int readArgs() {
|
||||
shift_arg_formula(hard_limit);
|
||||
}
|
||||
else if(argis("-ray-out")) {
|
||||
PHASEFROM(2); shift(); color_out_of_range = arghex();
|
||||
PHASEFROM(2); shift(); color_out_of_range = argcolor(32);
|
||||
}
|
||||
else if(argis("-ray-comp")) {
|
||||
PHASEFROM(2);
|
||||
@ -2947,7 +2947,7 @@ int readArgs() {
|
||||
else if(argis("-ray-cursor")) {
|
||||
start_game();
|
||||
volumetric::enable();
|
||||
shift(); volumetric::vmap[centerover] = arghex();
|
||||
shift(); volumetric::vmap[centerover] = argcolor(32);
|
||||
}
|
||||
else return 1;
|
||||
return 0;
|
||||
|
@ -1762,7 +1762,7 @@ int readArgs() {
|
||||
rotation_center_View = View;
|
||||
shift_arg_formula(circle_spins);
|
||||
shift_arg_formula(circle_radius);
|
||||
shift(); circle_display_color = arghex();
|
||||
shift(); circle_display_color = argcolor(24);
|
||||
}
|
||||
else if(argis("-animmove")) {
|
||||
ma = maTranslation;
|
||||
|
Loading…
Reference in New Issue
Block a user