mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-23 16:50:27 +00:00
rogueviz:: improved highlighting
This commit is contained in:
parent
f4f6d2c028
commit
cbe6a7f827
28
rogueviz.cpp
28
rogueviz.cpp
@ -40,7 +40,7 @@ const transmatrix centralsym = {{{-1,0,0}, {0,-1,0}, {0,0,-1}}};
|
|||||||
|
|
||||||
using namespace hr;
|
using namespace hr;
|
||||||
|
|
||||||
edgetype default_edgetype = { .1, DEFAULT_COLOR, "default" };
|
edgetype default_edgetype = { .1, .1, .1, DEFAULT_COLOR, 0xFF0000FF, "default" };
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
@ -1092,7 +1092,7 @@ void rogueviz_help(int id, int pagenumber) {
|
|||||||
hex.key = 'a' + i;
|
hex.key = 'a' + i;
|
||||||
|
|
||||||
edgeinfo *ei = alledges[pagenumber + i];
|
edgeinfo *ei = alledges[pagenumber + i];
|
||||||
if(ei->weight < ei->type->visible_from) continue;
|
if(ei->weight < ei->type->visible_from_help) continue;
|
||||||
int k = ei->i ^ ei->j ^ id;
|
int k = ei->i ^ ei->j ^ id;
|
||||||
hex.text = vdata[k].name;
|
hex.text = vdata[k].name;
|
||||||
hex.color = vdata[k].cp.color1 >> 8;
|
hex.color = vdata[k].cp.color1 >> 8;
|
||||||
@ -1298,7 +1298,6 @@ bool drawVertex(const transmatrix &V, cell *c, shmup::monster *m) {
|
|||||||
|
|
||||||
if(!leftclick) for(int j=0; j<isize(vd.edges); j++) {
|
if(!leftclick) for(int j=0; j<isize(vd.edges); j++) {
|
||||||
edgeinfo *ei = vd.edges[j].second;
|
edgeinfo *ei = vd.edges[j].second;
|
||||||
if(ei->weight < ei->type->visible_from) continue;
|
|
||||||
vertexdata& vd1 = vdata[ei->i];
|
vertexdata& vd1 = vdata[ei->i];
|
||||||
vertexdata& vd2 = vdata[ei->j];
|
vertexdata& vd2 = vdata[ei->j];
|
||||||
|
|
||||||
@ -1310,6 +1309,8 @@ bool drawVertex(const transmatrix &V, cell *c, shmup::monster *m) {
|
|||||||
else if(vd2.m == shmup::lmousetarget) hilite = true;
|
else if(vd2.m == shmup::lmousetarget) hilite = true;
|
||||||
else if(oi == lid || oj == lid) hilite = true;
|
else if(oi == lid || oj == lid) hilite = true;
|
||||||
|
|
||||||
|
if(ei->weight < (hilite ? ei->type->visible_from_hi : ei->type->visible_from)) continue;
|
||||||
|
|
||||||
if(hilite) ghilite = true;
|
if(hilite) ghilite = true;
|
||||||
|
|
||||||
bool multidraw = quotient || euwrap;
|
bool multidraw = quotient || euwrap;
|
||||||
@ -1317,14 +1318,14 @@ bool drawVertex(const transmatrix &V, cell *c, shmup::monster *m) {
|
|||||||
if(ei->lastdraw < frameid || multidraw) {
|
if(ei->lastdraw < frameid || multidraw) {
|
||||||
ei->lastdraw = frameid;
|
ei->lastdraw = frameid;
|
||||||
|
|
||||||
color_t col = ei->type->color;
|
color_t col = (hilite ? ei->type->color_hi : ei->type->color);
|
||||||
auto& alpha = part(col, 0);
|
auto& alpha = part(col, 0);
|
||||||
|
|
||||||
if(kind == kSAG) {
|
if(kind == kSAG) {
|
||||||
if(ei->weight2 > maxweight) maxweight = ei->weight2;
|
if(ei->weight2 > maxweight) maxweight = ei->weight2;
|
||||||
alpha *= pow(ei->weight2 / maxweight, ggamma);
|
alpha *= pow(ei->weight2 / maxweight, ggamma);
|
||||||
}
|
}
|
||||||
if(hilite || hiliteclick) alpha = (alpha + 256) / 2;
|
// if(hilite || hiliteclick) alpha = (alpha + 256) / 2;
|
||||||
|
|
||||||
if(svg::in && alpha < 16) continue;
|
if(svg::in && alpha < 16) continue;
|
||||||
|
|
||||||
@ -1367,12 +1368,7 @@ bool drawVertex(const transmatrix &V, cell *c, shmup::monster *m) {
|
|||||||
display(shmup::calc_gmatrix(vd2.m->base));
|
display(shmup::calc_gmatrix(vd2.m->base));
|
||||||
} */
|
} */
|
||||||
|
|
||||||
if(hilite) {
|
if((col >> 8) == (DEFAULT_COLOR >> 8)) {
|
||||||
col &= 0xFF;
|
|
||||||
col |= 0xFF000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
else if((col >> 8) == (DEFAULT_COLOR >> 8)) {
|
|
||||||
col &= 0xFF;
|
col &= 0xFF;
|
||||||
col |= (forecolor << 8);
|
col |= (forecolor << 8);
|
||||||
}
|
}
|
||||||
@ -1448,7 +1444,7 @@ bool drawVertex(const transmatrix &V, cell *c, shmup::monster *m) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!vd.virt) {
|
if(!vd.virt) {
|
||||||
queuedisk(V * m->at, ghilite ? colorpair(0xFF0000FF) : vd.cp, false, vd.info, i);
|
queuedisk(V * m->at, vd.cp, false, vd.info, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1796,6 +1792,14 @@ int readArgs() {
|
|||||||
}
|
}
|
||||||
else if(argis("-sagmin")) {
|
else if(argis("-sagmin")) {
|
||||||
shift_arg_formula(default_edgetype.visible_from);
|
shift_arg_formula(default_edgetype.visible_from);
|
||||||
|
default_edgetype.visible_from_hi = default_edgetype.visible_from;
|
||||||
|
default_edgetype.visible_from_help = default_edgetype.visible_from;
|
||||||
|
}
|
||||||
|
else if(argis("-sagminhi")) {
|
||||||
|
shift_arg_formula(default_edgetype.visible_from_hi);
|
||||||
|
}
|
||||||
|
else if(argis("-sagminhelp")) {
|
||||||
|
shift_arg_formula(default_edgetype.visible_from_help);
|
||||||
}
|
}
|
||||||
// (2) read the edge data
|
// (2) read the edge data
|
||||||
else if(argis("-sagpar")) {
|
else if(argis("-sagpar")) {
|
||||||
|
@ -14,7 +14,9 @@ namespace rogueviz {
|
|||||||
|
|
||||||
struct edgetype {
|
struct edgetype {
|
||||||
double visible_from;
|
double visible_from;
|
||||||
unsigned color;
|
double visible_from_hi;
|
||||||
|
double visible_from_help;
|
||||||
|
unsigned color, color_hi;
|
||||||
string name;
|
string name;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user