mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-04-15 15:23:14 +00:00
color change in rogueviz
This commit is contained in:
parent
ce825db2c0
commit
43a3e8f030
@ -46,8 +46,7 @@ void run_sb() {
|
||||
crystal::set_crystal(6);
|
||||
set_variation(eVariation::pure);
|
||||
enable_canvas();
|
||||
patterns::whichCanvas = 'g';
|
||||
patterns::canvasback = 0x101010;
|
||||
ccolor::set_plain(0x101010);
|
||||
check_cgi();
|
||||
start_game();
|
||||
|
||||
|
@ -325,6 +325,8 @@ bool view_labels = true, view_lines = true;
|
||||
|
||||
namespace hr {
|
||||
|
||||
extern ccolor::data grigorchuk_coloring;
|
||||
|
||||
struct hrmap_grigorchuk : hrmap_standard {
|
||||
|
||||
heptagon *origin;
|
||||
@ -411,8 +413,8 @@ struct hrmap_grigorchuk : hrmap_standard {
|
||||
|
||||
if(grigorchuk::view_labels) queuestr(V, 0.3, grigorchuk::deform(dec[c->master]), 0xFFFFFF);
|
||||
|
||||
if(patterns::whichCanvas == 'G' && c->landparam == 0)
|
||||
c->landparam = 0x102008 * (1 + ((hrmap_grigorchuk*)currentmap)->dec[c->master]->len);
|
||||
if(ccolor::which == &grigorchuk_coloring && c->landparam == 0)
|
||||
c->landparam = grigorchuk_coloring(c);
|
||||
|
||||
drawcell(c, V * currentmap->master_relative(c, false));
|
||||
|
||||
@ -436,6 +438,10 @@ struct hrmap_grigorchuk : hrmap_standard {
|
||||
|
||||
eGeometry gGrigorchuk(eGeometry(-1));
|
||||
|
||||
ccolor::data grigorchuk_coloring = ccolor::data("Grigorchuk", [] { return geometry == gGrigorchuk; }, [] (cell *c, ccolor::data& cco) {
|
||||
return 0x102008 * (1 + ((hrmap_grigorchuk*)currentmap)->dec[c->master]->len);
|
||||
}, {});
|
||||
|
||||
void create_grigorchuk_geometry() {
|
||||
if(gGrigorchuk != eGeometry(-1)) return;
|
||||
ginf.push_back(ginf[gNormal]);
|
||||
@ -449,6 +455,7 @@ void create_grigorchuk_geometry() {
|
||||
gi.menu_displayed_name = "Grigorchuk group";
|
||||
gi.shortname = "Grig";
|
||||
gi.default_variation = eVariation::pure;
|
||||
ccolor::all.push_back(&grigorchuk_coloring);
|
||||
}
|
||||
|
||||
int readArgsG() {
|
||||
@ -483,11 +490,6 @@ int readArgsG() {
|
||||
|
||||
auto hook = addHook(hooks_args, 100, readArgsG)
|
||||
+ addHook(hooks_newmap, 100, [] { return geometry == gGrigorchuk ? new hrmap_grigorchuk : nullptr; })
|
||||
+ addHook(patterns::hooks_generate_canvas, 100, [] (cell* c) {
|
||||
if(patterns::whichCanvas == 'G' && geometry == gGrigorchuk)
|
||||
return 0x102008 * (1 + ((hrmap_grigorchuk*)currentmap)->dec[c->master]->len);
|
||||
return -1;
|
||||
})
|
||||
+ addHook(dialog::hooks_display_dialog, 100, [] () {
|
||||
if(current_screen_cfunction() == showEuclideanMenu && geometry == gGrigorchuk) {
|
||||
dialog::addBoolItem_action(XLAT("Grigorchuk lines"), grigorchuk::view_lines, 'L');
|
||||
@ -516,7 +518,7 @@ auto hook = addHook(hooks_args, 100, readArgsG)
|
||||
if(mode == pmStart) {
|
||||
grigorchuk::grig_limit = 10000;
|
||||
gamestack::push();
|
||||
slide_backup(patterns::whichCanvas, 'G');
|
||||
slide_backup(ccolor::which, &grigorchuk_coloring);
|
||||
slide_backup(firstland, laCanvas);
|
||||
slide_backup(specialland, laCanvas);
|
||||
set_geometry(gGrigorchuk);
|
||||
|
@ -74,8 +74,7 @@ void run_cpick() {
|
||||
crystal::set_crystal(6);
|
||||
set_variation(eVariation::pure);
|
||||
enable_canvas();
|
||||
patterns::whichCanvas = 'g';
|
||||
patterns::canvasback = 0;
|
||||
ccolor::set_plain(0);
|
||||
check_cgi();
|
||||
start_game();
|
||||
current_center = currentmap->gamestart();
|
||||
@ -208,8 +207,7 @@ void run_sb() {
|
||||
crystal::set_crystal(6);
|
||||
set_variation(eVariation::pure);
|
||||
enable_canvas();
|
||||
patterns::whichCanvas = 'g';
|
||||
patterns::canvasback = 0;
|
||||
ccolor::set_plain(0);
|
||||
check_cgi();
|
||||
rv_hook(hooks_drawcell, 100, sokomap);
|
||||
start_game();
|
||||
@ -394,7 +392,7 @@ int mycanvas(cell *c) {
|
||||
}
|
||||
|
||||
void enable() {
|
||||
rv_hook(patterns::hooks_generate_canvas, 100, mycanvas);
|
||||
rv_hook(ccolor::hooks_generate_canvas, 100, mycanvas);
|
||||
}
|
||||
|
||||
auto explore_structure(int _shapeid) {
|
||||
@ -407,7 +405,7 @@ auto explore_structure(int _shapeid) {
|
||||
stop_game();
|
||||
set_geometry(geometry == gCrystal534 ? gCrystal534 : gCrystal344);
|
||||
enable_canvas();
|
||||
patterns::whichCanvas = ' ';
|
||||
ccolor::which = &ccolor::plain;
|
||||
shapeid = _shapeid;
|
||||
enable();
|
||||
crystal::crystal_period = 4;
|
||||
@ -444,7 +442,7 @@ void house(int sides, int shape = 10) {
|
||||
crystal::set_crystal(sides);
|
||||
set_variation(eVariation::pure);
|
||||
enable_canvas();
|
||||
patterns::whichCanvas = ' ';
|
||||
ccolor::which = &ccolor::plain;
|
||||
shapeid = shape;
|
||||
check_cgi();
|
||||
enable();
|
||||
@ -466,7 +464,7 @@ tour::slide *gen_high_demo() {
|
||||
sync(mode, VC);
|
||||
if(mode == pmStart) {
|
||||
crystal::set_crystal(6);
|
||||
patterns::whichCanvas = 'K';
|
||||
ccolor::which = &ccolor::crystal_colors;
|
||||
start_game();
|
||||
}
|
||||
}
|
||||
@ -479,7 +477,7 @@ tour::slide *gen_high_demo() {
|
||||
sync(mode, VC);
|
||||
if(mode == pmStart) {
|
||||
crystal::set_crystal(8);
|
||||
patterns::whichCanvas = 'K';
|
||||
ccolor::which = &ccolor::crystal_colors;
|
||||
start_game();
|
||||
}
|
||||
}
|
||||
@ -563,10 +561,7 @@ tour::slide *gen_high_demo() {
|
||||
sync(mode, NO_VC | PLAYER);
|
||||
if(mode == pmStart) {
|
||||
crystal::set_crystal(6);
|
||||
patterns::whichCanvas = 'c';
|
||||
colortables['c'][0] = 0x208020;
|
||||
colortables['c'][1] = 0x105010;
|
||||
patterns::canvasback = 0x101010;
|
||||
ccolor::set_colors(ccolor::chessboard, {0x208020, 0x105010});
|
||||
start_game();
|
||||
auto & us = vid.cs;
|
||||
us.charid = 4;
|
||||
|
@ -374,10 +374,8 @@ void enable() {
|
||||
|
||||
vid.linequality = 4;
|
||||
enable_canvas();
|
||||
patterns::whichCanvas = 'F';
|
||||
|
||||
colortables['F'][0] = 0x80C080;
|
||||
colortables['F'][1] = 0x80A080;
|
||||
ccolor::set_colors(ccolor::football, {0x80C080, 0x80A080});
|
||||
pconf.scale = .3;
|
||||
|
||||
vid.use_smart_range = 2;
|
||||
|
@ -246,7 +246,7 @@ vector<cell*> current_list;
|
||||
|
||||
void mine_slide(tour::presmode mode, reaction_t set_geom, function<vector<cell*>()> celllister, function<void(cell*)> assigner) {
|
||||
using namespace tour;
|
||||
patterns::canvasback = 0;
|
||||
ccolor::plain.ctab = {0};
|
||||
setCanvas(mode, '0');
|
||||
if(mode == pmStart) {
|
||||
slide_backup(mapeditor::drawplayer, false);
|
||||
@ -334,7 +334,7 @@ void enable_earth() {
|
||||
stop_game();
|
||||
set_geometry(gSphere);
|
||||
enable_canvas();
|
||||
patterns::whichCanvas = 'F';
|
||||
ccolor::which = &ccolor::football;
|
||||
start_game();
|
||||
texture::config.configname = "textures/earth.txc";
|
||||
texture::config.load();
|
||||
@ -543,8 +543,8 @@ slide sweeper_slides[] = {
|
||||
stop_game();
|
||||
set_geometry(g45);
|
||||
set_variation(eVariation::pure);
|
||||
tour::slide_backup(colortables['c'][0], 0x104010);
|
||||
tour::slide_backup(colortables['c'][1], 0x10F010);
|
||||
tour::slide_backup(ccolor::chessboard.ctab[0], 0x104010);
|
||||
tour::slide_backup(ccolor::chessboard.ctab[1], 0x10F010);
|
||||
tour::slide_backup(vid.use_smart_range, 2);
|
||||
tour::slide_backup(vid.smart_range_detail, 1);
|
||||
start_game();
|
||||
@ -562,7 +562,7 @@ slide sweeper_slides[] = {
|
||||
setCanvas(mode, 'g');
|
||||
non_game_slide_scroll(mode);
|
||||
if(mode == pmStart) {
|
||||
tour::slide_backup(patterns::canvasback, 0x10A010);
|
||||
tour::slide_backup(ccolor::plain.ctab[0], 0x10A010);
|
||||
stop_game();
|
||||
set_geometry(gBinary4);
|
||||
set_variation(eVariation::pure);
|
||||
@ -840,7 +840,7 @@ slide sweeper_slides[] = {
|
||||
setCanvas(mode, 'g');
|
||||
non_game_slide_scroll(mode);
|
||||
if(mode == pmStart) {
|
||||
tour::slide_backup(patterns::canvasback, 0x10A010);
|
||||
tour::slide_backup(ccolor::plain.ctab[0], 0x10A010);
|
||||
stop_game();
|
||||
set_geometry(gBinary4);
|
||||
set_variation(eVariation::pure);
|
||||
|
@ -217,8 +217,7 @@ void create_intra_solv() {
|
||||
}
|
||||
|
||||
void create_intra_120() {
|
||||
patterns::whichCanvas = 'r';
|
||||
patterns::rwalls = 0;
|
||||
ccolor::set_random(0);
|
||||
if(intra::in) intra::become();
|
||||
else stop_game();
|
||||
arcm::current.parse("8,4,6");
|
||||
@ -261,8 +260,7 @@ void create_intra_120() {
|
||||
}
|
||||
|
||||
void create_intra_1440() {
|
||||
patterns::whichCanvas = 'r';
|
||||
patterns::rwalls = 0;
|
||||
ccolor::set_random(0);
|
||||
if(intra::in) intra::become();
|
||||
else stop_game();
|
||||
set_geometry(gCell8);
|
||||
@ -330,8 +328,7 @@ vector<reaction_t> portals;
|
||||
|
||||
void create_intra_bxe() {
|
||||
println(hlog, "called create_intra_bxe");
|
||||
patterns::whichCanvas = 'r';
|
||||
patterns::rwalls = 100;
|
||||
ccolor::set_random(100);
|
||||
if(intra::in) intra::become();
|
||||
else stop_game();
|
||||
hybrid::csteps = 0;
|
||||
@ -404,8 +401,7 @@ void recurse_portal_solv2(int r, cell *cl, cell *cr) {
|
||||
|
||||
void create_intra_sol() {
|
||||
println(hlog, "called create_intra_sol");
|
||||
patterns::whichCanvas = 'r';
|
||||
patterns::rwalls = 100;
|
||||
ccolor::set_random(100);
|
||||
if(intra::in) intra::become();
|
||||
else stop_game();
|
||||
|
||||
|
@ -144,8 +144,7 @@ void magic(int sides) {
|
||||
crystal::set_crystal(sides);
|
||||
set_variation(eVariation::pure);
|
||||
enable_canvas();
|
||||
patterns::whichCanvas = 'g';
|
||||
patterns::canvasback = back;
|
||||
ccolor::set_plain(back);
|
||||
check_cgi();
|
||||
start_game();
|
||||
|
||||
|
@ -559,7 +559,7 @@ void pick_pattern() {
|
||||
dialog::add_action([] {
|
||||
chg_pattern([] {
|
||||
enable_canvas();
|
||||
patterns::whichCanvas = 'B';
|
||||
ccolor::which = &ccolor::sides;
|
||||
});
|
||||
});
|
||||
|
||||
@ -570,7 +570,7 @@ void pick_pattern() {
|
||||
gp::param.second = 0;
|
||||
set_variation(eVariation::goldberg);
|
||||
enable_canvas();
|
||||
patterns::whichCanvas = 'F';
|
||||
ccolor::which = &ccolor::football;
|
||||
});
|
||||
});
|
||||
|
||||
@ -579,7 +579,7 @@ void pick_pattern() {
|
||||
chg_pattern([] {
|
||||
set_geometry(gOctagon);
|
||||
enable_canvas();
|
||||
patterns::whichCanvas = 'T';
|
||||
ccolor::which = &ccolor::zebra_stripes;
|
||||
});
|
||||
});
|
||||
|
||||
@ -612,7 +612,7 @@ void pick_pattern() {
|
||||
arcm::current.parse("4^5");
|
||||
set_geometry(gArchimedean);
|
||||
enable_canvas();
|
||||
patterns::whichCanvas = 'A';
|
||||
ccolor::which = &ccolor::shape;
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -26,10 +26,10 @@ auto geoslide(eGeometry g, char canvas, int jhole, int jblock) {
|
||||
tour::slide_backup<ld>(sightranges[gSol], 7);
|
||||
tour::slide_backup<ld>(sightranges[gSpace435], 7);
|
||||
vid.texture_step = 4;
|
||||
tour::slide_backup(patterns::jhole, jhole);
|
||||
tour::slide_backup(patterns::rwalls, jhole);
|
||||
tour::slide_backup(patterns::jblock, jblock);
|
||||
tour::slide_backup(patterns::whichCanvas, canvas);
|
||||
tour::slide_backup(ccolor::jhole, jhole);
|
||||
tour::slide_backup(ccolor::rwalls, jhole);
|
||||
tour::slide_backup(ccolor::jblock, jblock);
|
||||
tour::slide_backup(ccolor::which, ccolor::legacy(canvas));
|
||||
tour::slide_backup(vid.linewidth, vid.linewidth / 10);
|
||||
start_game();
|
||||
if(jblock < 0) {
|
||||
@ -45,7 +45,7 @@ auto geoslide(eGeometry g, char canvas, int jhole, int jblock) {
|
||||
if(in_special && among(mode, pmGeometrySpecial, pmStop)) {
|
||||
in_special = false;
|
||||
gamestack::pop();
|
||||
patterns::whichCanvas = canvas;
|
||||
ccolor::which = ccolor::legacy(canvas);
|
||||
vid.grid = false;
|
||||
fat_edges = false;
|
||||
sightranges[gSpace435] = 7;
|
||||
@ -54,7 +54,7 @@ auto geoslide(eGeometry g, char canvas, int jhole, int jblock) {
|
||||
else if(mode == pmGeometrySpecial && !in_special) {
|
||||
in_special = true;
|
||||
gamestack::push();
|
||||
patterns::whichCanvas = 'g';
|
||||
ccolor::set_plain(0);
|
||||
vid.grid = true;
|
||||
stdgridcolor = 0xFFFF00FF;
|
||||
fat_edges = true;
|
||||
|
@ -114,7 +114,7 @@ void run_snub(int v, int w) {
|
||||
check_cgi();
|
||||
cgi.require_basics();
|
||||
specialland = laCanvas;
|
||||
patterns::whichCanvas = 'A';
|
||||
ccolor::which = &ccolor::shape;
|
||||
// vid.wallmode = 1;
|
||||
printf("start game\n");
|
||||
printf("distlimit = %d\n", cgi.base_distlimit);
|
||||
|
@ -591,7 +591,7 @@ void enable_earth() {
|
||||
stop_game();
|
||||
set_geometry(gSphere);
|
||||
enable_canvas();
|
||||
patterns::whichCanvas = 'F';
|
||||
ccolor::which = &ccolor::football;
|
||||
start_game();
|
||||
texture::config.configname = "textures/earth.txc";
|
||||
texture::config.load();
|
||||
@ -635,8 +635,8 @@ slide dmv_slides[] = {
|
||||
set_geometry(gArchimedean); arcm::current.parse("3^6");
|
||||
set_variation(eVariation::pure);
|
||||
|
||||
slide_backup(colortables['F'][0], 0xC0FFC0);
|
||||
slide_backup(colortables['F'][1], 0x80FF80);
|
||||
slide_backup(ccolor::football.ctab[0], 0xC0FFC0);
|
||||
slide_backup(ccolor::football.ctab[1], 0x80FF80);
|
||||
slide_backup(pconf.alpha, 1);
|
||||
slide_backup(pconf.scale, 1);
|
||||
start_game();
|
||||
@ -708,8 +708,8 @@ slide dmv_slides[] = {
|
||||
slide_backup(specialland, laCanvas);
|
||||
set_geometry(gNormal);
|
||||
set_variation(eVariation::bitruncated);
|
||||
slide_backup(colortables['F'][0], 0xC0FFC0);
|
||||
slide_backup(colortables['F'][1], 0x80FF80);
|
||||
slide_backup(ccolor::football.ctab[0], 0xC0FFC0);
|
||||
slide_backup(ccolor::football.ctab[1], 0x80FF80);
|
||||
slide_backup(pconf.alpha, 1);
|
||||
slide_backup(pconf.scale, 1);
|
||||
slide_backup(rug::mouse_control_rug, true);
|
||||
@ -755,7 +755,7 @@ slide dmv_slides[] = {
|
||||
|
||||
[] (presmode mode) {
|
||||
if(mode == pmStart) {
|
||||
slide_backup(patterns::rwalls, 10);
|
||||
slide_backup(ccolor::rwalls, 10);
|
||||
slide_backup(vid.fov, 120);
|
||||
}
|
||||
|
||||
|
@ -108,7 +108,7 @@ bool labeller(cell* c, const shiftmatrix& V) {
|
||||
if(m) {
|
||||
string s = m->asg[c->master].second;
|
||||
cgi.scalefactor = 1;
|
||||
queuestr(V, 0.5, s, colortables['j'][c->master->distance+1]);
|
||||
queuestr(V, 0.5, s, ccolor::jmap.ctab[c->master->distance+1]);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -179,7 +179,7 @@ namespace rogueviz {
|
||||
template<class T, class U> function<void(presmode)> roguevizslide(char c, const T& t, const U& f) {
|
||||
return [c,t,f] (presmode mode) {
|
||||
f(mode);
|
||||
patterns::canvasback = 0x101010;
|
||||
ccolor::plain.ctab = {0x101010};
|
||||
setCanvas(mode, c);
|
||||
if(mode == 1 || mode == pmGeometryStart) t();
|
||||
|
||||
@ -201,7 +201,7 @@ template<class T> function<void(presmode)> roguevizslide(char c, const T& t) { r
|
||||
template<class T, class U>
|
||||
function<void(presmode)> roguevizslide_action(char c, const T& t, const U& act) {
|
||||
return [c,t,act] (presmode mode) {
|
||||
patterns::canvasback = 0x101010;
|
||||
ccolor::plain.ctab = {0x101010};
|
||||
setCanvas(mode, c);
|
||||
if(mode == pmStart || mode == pmGeometryStart) t();
|
||||
|
||||
|
@ -1097,7 +1097,7 @@ namespace sag {
|
||||
create_viz();
|
||||
|
||||
for(int i=0; i<DN; i++) {
|
||||
color_t col = patterns::compute_cell_color(sagcells[sagid[i]]);
|
||||
color_t col = ccolor::formula.f(sagcells[sagid[i]], ccolor::formula);
|
||||
col <<= 8;
|
||||
col |= 0xFF;
|
||||
vdata[i].cp.color1 = vdata[i].cp.color2 = col;
|
||||
|
Loading…
x
Reference in New Issue
Block a user