mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-28 11:00:34 +00:00
mapfontscale setting
This commit is contained in:
parent
9430c26970
commit
04c15fc9c6
@ -1634,7 +1634,7 @@ void celldrawer::draw_features() {
|
||||
if(numerical_minefield) {
|
||||
if(mines) {
|
||||
string label = its(mines);
|
||||
queuestr(V, mines >= 10 ? .5 : 1, label, darkened(minecolors[mines]), 8);
|
||||
queuestr(V, (mines >= 10 ? .5 : 1) * mapfontscale / 100, label, darkened(minecolors[mines]), 8);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -2079,7 +2079,7 @@ void celldrawer::draw_cellstat() {
|
||||
|
||||
if(c->land == laMirrored || c->land == laMirrorWall2 || c->land == laMirrored2) {
|
||||
string label = its(c->landparam);
|
||||
queuestr(V, 1 * .2, label, 0xFFFFFFFF, 1);
|
||||
queuestr(V, mapfontscale / 500, label, 0xFFFFFFFF, 1);
|
||||
}
|
||||
|
||||
if(debug_tiles && mod_allowed()) {
|
||||
@ -2105,22 +2105,22 @@ void celldrawer::draw_cellstat() {
|
||||
#endif
|
||||
else
|
||||
label = its(shvid(c));
|
||||
queuestr(V, .5, label, 0xFFFFFFFF, 1);
|
||||
queuestr(V, mapfontscale / 200, label, 0xFFFFFFFF, 1);
|
||||
for(int i=0; i<c->type; i++) {
|
||||
queuestr(V * rgpushxto0(currentmap->get_corner(c, i, 4)), .2, its(i), 0xFFFFFFFF, 1);
|
||||
queuestr(V * rgpushxto0(mid(currentmap->get_corner(c, i, 4), currentmap->get_corner(c, i+1, 5))), .2, its(i), 0xFFFFFFFF, 1);
|
||||
queuestr(V * rgpushxto0(currentmap->get_corner(c, i, 4)), mapfontscale / 500, its(i), 0xFFFFFFFF, 1);
|
||||
queuestr(V * rgpushxto0(mid(currentmap->get_corner(c, i, 4), currentmap->get_corner(c, i+1, 5))), mapfontscale / 500, its(i), 0xFFFFFFFF, 1);
|
||||
}
|
||||
}
|
||||
|
||||
if(debug_voronoi && ls::voronoi_structure() && mod_allowed()) {
|
||||
auto p = get_voronoi_winner(c);
|
||||
queuestr(V, .2, its(p.second), index_pointer_int(p.first) * 0x7F3015, 1);
|
||||
queuestr(V, mapfontscale / 500, its(p.second), index_pointer_int(p.first) * 0x7F3015, 1);
|
||||
}
|
||||
|
||||
if(cmode & sm::TORUSCONFIG) {
|
||||
auto p = euc::coord_display(V, c);
|
||||
if(p.second != "")
|
||||
queuestr(V, p.first ? .2 : .6, p.second, p.first ? 0xFFFFFFD0 : 0xFFFF0040, 1);
|
||||
queuestr(V, (p.first ? .2 : .6) * mapfontscale / 100, p.second, p.first ? 0xFFFFFFD0 : 0xFFFF0040, 1);
|
||||
}
|
||||
|
||||
#if CAP_EDIT
|
||||
@ -2135,13 +2135,13 @@ void celldrawer::draw_cellstat() {
|
||||
|
||||
string label = its(si.id & 255);
|
||||
color_t col = forecolor ^ colorhash(si.id >> 8);
|
||||
queuestr(V, .5, label, 0xFF000000 + col);
|
||||
queuestr(V, mapfontscale / 200, label, 0xFF000000 + col);
|
||||
}
|
||||
#endif
|
||||
|
||||
if(debug_cellnames && pointer_indices.count(c)) {
|
||||
shstream ss; print(ss, c);
|
||||
queuestr(V, .5, ss.s, 0xFFFFFFFF);
|
||||
queuestr(V, mapfontscale / 200, ss.s, 0xFFFFFFFF);
|
||||
queuepoly(V * ddspin(c, 0), cgi.shAsymmetric, darkena(0x000000, 0, 0xC0));
|
||||
}
|
||||
}
|
||||
@ -2962,7 +2962,7 @@ void celldrawer::draw() {
|
||||
string s = s0+asciichar;
|
||||
dynamicval<color_t> p(poly_outline, asciiborder << 8);
|
||||
if(!wmascii3)
|
||||
queuestrn(V, 1, s, darkenedby(asciicol, darken), 2);
|
||||
queuestrn(V, mapfontscale / 100, s, darkenedby(asciicol, darken), 2);
|
||||
else if(highwall(c) && conegraph(c)) {
|
||||
const int layers = 1 << detaillevel;
|
||||
string s1 = s0+asciichar1;
|
||||
@ -2970,7 +2970,7 @@ void celldrawer::draw() {
|
||||
for(int z=0; z<layers; z++)
|
||||
queuestrn(orthogonal_move_fol(V, zgrad0(0, geom3::actual_wall_height(), z, layers)), 1. - z * .5 / layers, s1, darkenedby(gradient(bordcolor, asciicol1, -layers, z, layers), darken), 1);
|
||||
poly_outline = asciiborder << 8;
|
||||
queuestrn(orthogonal_move_fol(V, cgi.WALL), asciicol == asciicol1 && asciichar == asciichar1 ? .5 : 1, s, darkenedby(asciicol, darken), 2);
|
||||
queuestrn(orthogonal_move_fol(V, cgi.WALL), (asciicol == asciicol1 && asciichar == asciichar1 ? .5 : 1) * mapfontscale / 100, s, darkenedby(asciicol, darken), 2);
|
||||
}
|
||||
else if(highwall(c)) {
|
||||
const int layers = 1 << detaillevel;
|
||||
@ -2979,15 +2979,15 @@ void celldrawer::draw() {
|
||||
for(int z=0; z<layers; z++)
|
||||
queuestrn(orthogonal_move_fol(V, zgrad0(0, geom3::actual_wall_height(), z, layers)), 1, s1, darkenedby(gradient(bordcolor, asciicol1, -layers, z, layers), darken), 1);
|
||||
poly_outline = asciiborder << 8;
|
||||
queuestrn(orthogonal_move_fol(V, cgi.WALL), 1, s, darkenedby(asciicol, darken), 2);
|
||||
queuestrn(orthogonal_move_fol(V, cgi.WALL), mapfontscale / 100, s, darkenedby(asciicol, darken), 2);
|
||||
}
|
||||
else if((sl = snakelevel(c))) {
|
||||
string s1 = s0+asciichar1;
|
||||
poly_outline = bordcolor << 8;
|
||||
for(int z=0; z<sl*4; z++) if(z%4 == 0)
|
||||
queuestrn(orthogonal_move_fol(V, zgrad0(0, cgi.slev * sl, z, sl*4)), 1, s1, darkenedby(gradient(bordcolor, asciicol1, -sl, z, sl*4), darken), 1);
|
||||
queuestrn(orthogonal_move_fol(V, zgrad0(0, cgi.slev * sl, z, sl*4)), mapfontscale / 100, s1, darkenedby(gradient(bordcolor, asciicol1, -sl, z, sl*4), darken), 1);
|
||||
poly_outline = asciiborder << 8;
|
||||
queuestrn(orthogonal_move_fol(V, cgi.SLEV[sl]), 1, s, darkenedby(asciicol, darken), 2);
|
||||
queuestrn(orthogonal_move_fol(V, cgi.SLEV[sl]), mapfontscale / 100, s, darkenedby(asciicol, darken), 2);
|
||||
}
|
||||
// else if(c->wall == waChasm) {
|
||||
// const int layers = 1 << detaillevel;
|
||||
@ -2996,12 +2996,12 @@ void celldrawer::draw() {
|
||||
else if(chasmgraph(c)) {
|
||||
string s1 = s0+asciichar1;
|
||||
poly_outline = bordcolor << 8;
|
||||
queuestrn(orthogonal_move_fol(V, cgi.BOTTOM), 1, s1, darkenedby(gradient(bordcolor, asciicol1, 0, 0.3, 1), darken), 2);
|
||||
queuestrn(orthogonal_move_fol(V, cgi.BOTTOM), mapfontscale / 100, s1, darkenedby(gradient(bordcolor, asciicol1, 0, 0.3, 1), darken), 2);
|
||||
poly_outline = asciiborder << 8;
|
||||
queuestrn(V, 1, s, darkenedby(asciicol, darken), 2);
|
||||
queuestrn(V, mapfontscale / 100, s, darkenedby(asciicol, darken), 2);
|
||||
}
|
||||
else
|
||||
queuestrn(V, 1, s, darkenedby(asciicol, darken), 2);
|
||||
queuestrn(V, mapfontscale / 100, s, darkenedby(asciicol, darken), 2);
|
||||
}
|
||||
|
||||
draw_grid();
|
||||
|
10
config.cpp
10
config.cpp
@ -1028,6 +1028,8 @@ EX void savecolortable(colortable& ct, string name) {
|
||||
|
||||
EX purehookset hooks_configfile;
|
||||
|
||||
EX ld mapfontscale = 100;
|
||||
|
||||
EX void initConfig() {
|
||||
|
||||
// basic config
|
||||
@ -1080,6 +1082,13 @@ EX void initConfig() {
|
||||
-> set_reaction(compute_fsize)
|
||||
-> set_sets([] { dialog::bound_low(0); });
|
||||
|
||||
param_f(mapfontscale, "mapfontscale", 100)
|
||||
-> editable(-400, 400, 10, "map font scale",
|
||||
"This affects the size of the characters on the ASCII map. This includes ASCII walls/monster display mode, the minimap, minefield values, and various debug features.", 'B')
|
||||
->set_extra([] {
|
||||
dialog::get_di().extra_options = [] () { draw_radar(true); };
|
||||
});
|
||||
|
||||
param_i(vid.abs_fsize, "fsize", 12)
|
||||
-> editable(1, 72, 1, "font size", "", 'b')
|
||||
-> set_reaction(compute_fsize)
|
||||
@ -2236,6 +2245,7 @@ EX void showGraphConfig() {
|
||||
add_edit(vid.fontscale);
|
||||
else
|
||||
add_edit(vid.abs_fsize);
|
||||
add_edit(mapfontscale);
|
||||
|
||||
dialog::addSelItem(XLAT("vector settings"), XLAT("width") + " " + fts(vid.linewidth), 'w');
|
||||
dialog::add_action_push(show_vector_settings);
|
||||
|
@ -655,7 +655,7 @@ void celldrawer::do_viewdist() {
|
||||
if(!dist_label_colored) dc = dist_label_color;
|
||||
|
||||
if(label != "")
|
||||
queuestr(V, (isize(label) > 1 ? .6 : 1), label, 0xFF000000 + dc, 1);
|
||||
queuestr(V, (isize(label) > 1 ? .6 : 1) * mapfontscale / 100, label, 0xFF000000 + dc, 1);
|
||||
}
|
||||
|
||||
EX void viewdist_configure_dialog() {
|
||||
|
24
graph.cpp
24
graph.cpp
@ -846,9 +846,9 @@ EX void draw_ascii(const shiftmatrix& V, char glyph, color_t col, ld size) {
|
||||
string s = s0 + glyph;
|
||||
int id = isize(ptds);
|
||||
if(WDIM == 2 && GDIM == 3)
|
||||
queuestrn(V * lzpush(cgi.FLOOR - cgi.scalefactor * size / 4), size, s, darkenedby(col, darken), 0);
|
||||
queuestrn(V * lzpush(cgi.FLOOR - cgi.scalefactor * size / 4), size * mapfontscale / 100, s, darkenedby(col, darken), 0);
|
||||
else
|
||||
queuestrn(V, 1, s, darkenedby(col, darken), GDIM == 3 ? 0 : 2);
|
||||
queuestrn(V, mapfontscale / 100, s, darkenedby(col, darken), GDIM == 3 ? 0 : 2);
|
||||
while(id < isize(ptds)) ptds[id++]->prio = PPR::MONSTER_BODY;
|
||||
}
|
||||
|
||||
@ -3103,15 +3103,15 @@ EX bool drawMonster(const shiftmatrix& Vparam, int ct, cell *c, color_t col, col
|
||||
col = mirrorcolor(geometry == gElliptic ? det(Vs.T) < 0 : mirr);
|
||||
if(!mouseout() && !nospins && GDIM == 2) {
|
||||
shiftpoint P2 = Vs * inverse_shift(inmirrorcount ? ocwtV : cwtV, mouseh);
|
||||
queuestr(P2, 10, "x", 0xFF00);
|
||||
}
|
||||
queuestr(P2, 10*mapfontscale/100, "x", 0xFF00);
|
||||
}
|
||||
if(!nospins && flipplayer) Vs = Vs * lpispin();
|
||||
|
||||
|
||||
res = res && drawMonsterType(moMimic, c, Vs, col, footphase, asciicol);
|
||||
drawPlayerEffects(Vs, Vparam, c, c->monst);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// illusions face randomly
|
||||
|
||||
else if(c->monst == moIllusion) {
|
||||
@ -3235,7 +3235,7 @@ EX bool drawMonster(const shiftmatrix& Vparam, int ct, cell *c, color_t col, col
|
||||
hyperpoint h = inverse_shift(ocwtV, mouseh);
|
||||
if(flipplayer) h = lpispin() * h;
|
||||
shiftpoint P2 = Vs * h;
|
||||
queuestr(P2, 10, "x", 0xFF00);
|
||||
queuestr(P2, mapfontscale / 10, "x", 0xFF00);
|
||||
}
|
||||
|
||||
if(hide_player()) {
|
||||
@ -3573,7 +3573,7 @@ void draw_movement_arrows(cell *c, const transmatrix& V, int df) {
|
||||
transmatrix T = iso_inverse(Centered) * rgpushxto0(Centered * tC0(V)) * lrspintox(Centered*tC0(V)) * spin(-sd * M_PI/S7) * xpush(0.2);
|
||||
|
||||
if(vid.axes >= 5)
|
||||
queuestr(shiftless(T), keysize, s0 + key, col >> 8, 1);
|
||||
queuestr(shiftless(T), keysize * mapfontscale / 100, s0 + key, col >> 8, 1);
|
||||
|
||||
else
|
||||
queuepoly(shiftless(T), cgi.shArrow, col);
|
||||
@ -3581,7 +3581,7 @@ void draw_movement_arrows(cell *c, const transmatrix& V, int df) {
|
||||
else if(!confusingGeometry()) break;
|
||||
}
|
||||
}
|
||||
if(keylist != "") queuestr(shiftless(V), keysize, keylist, col >> 8, 1);
|
||||
if(keylist != "") queuestr(shiftless(V), keysize * mapfontscale / 100, keylist, col >> 8, 1);
|
||||
}
|
||||
|
||||
EX int celldistAltPlus(cell *c) { return 1000000 + celldistAlt(c); }
|
||||
@ -4761,7 +4761,7 @@ EX void drawMarkers() {
|
||||
#if CAP_QUEUE
|
||||
if(haveMount())
|
||||
for (const shiftmatrix& V : hr::span_at(current_display->all_drawn_copies, dragon::target)) {
|
||||
queuestr(V, 1, "X",
|
||||
queuestr(V, mapfontscale/100, "X",
|
||||
gradient(0, iinf[itOrbDomination].color, -1, sintick(dragon::whichturn == turncount ? 75 : 150), 1));
|
||||
}
|
||||
#endif
|
||||
@ -4994,12 +4994,12 @@ EX void draw_flash(struct flashdata& f, const shiftmatrix& V, bool& kill) {
|
||||
int r = 2;
|
||||
apply_neon(col, r);
|
||||
if(GDIM == 3 || sphere)
|
||||
queuestr(V, (1 - tim * 1. / f.size) * f.angle, f.text, col, r);
|
||||
queuestr(V, (1 - tim * 1. / f.size) * f.angle * mapfontscale / 100, f.text, col, r);
|
||||
else if(!kill) {
|
||||
shiftpoint h = tC0(V);
|
||||
if(hdist0(h) > .1) {
|
||||
transmatrix V2 = rspintox(h.h) * xpush(hdist0(h.h) * (1 / (1 - tim * 1. / f.size)));
|
||||
queuestr(shiftless(V2, h.shift), f.angle, f.text, col, r);
|
||||
queuestr(shiftless(V2, h.shift), f.angle * mapfontscale / 100, f.text, col, r);
|
||||
}
|
||||
}
|
||||
if(static_bubbles) {
|
||||
|
@ -2358,7 +2358,7 @@ EX namespace rots {
|
||||
ptds.clear();
|
||||
drawthemap();
|
||||
drawqueue();
|
||||
displaychr(current_display->xcenter, current_display->ycenter, 0, 24, '+', 0xFFFFFFFF);
|
||||
displaychr(current_display->xcenter, current_display->ycenter, 0, 24 * mapfontscale / 100, '+', 0xFFFFFFFF);
|
||||
glflush();
|
||||
});
|
||||
gmatrix = std::move(g);
|
||||
|
@ -146,7 +146,7 @@ EX void draw_radar(bool cornermode) {
|
||||
auto compassdir = [&] (char dirname, hyperpoint h) {
|
||||
h = NLP * h * .8;
|
||||
queueline(sId*atscreenpos(cx+rad * h[0], cy - rad * h[2] * si + rad * h[1] * co, 0)*C0, sId*atscreenpos(cx+rad*h[0], cy - rad*h[2] * si, 0)*C0, 0xA0401040, -1);
|
||||
displaychr(int(cx+rad * h[0]), int(cy - rad * h[2] * si + rad * h[1] * co), 0, 8, dirname, 0xA04010);
|
||||
displaychr(int(cx+rad * h[0]), int(cy - rad * h[2] * si + rad * h[1] * co), 0, 8 * mapfontscale / 100, dirname, 0xA04010);
|
||||
};
|
||||
compassdir('E', point3(+1, 0, 0));
|
||||
compassdir('N', point3(0, +1, 0));
|
||||
@ -180,10 +180,10 @@ EX void draw_radar(bool cornermode) {
|
||||
glflush();
|
||||
|
||||
for(auto& r: cd->radarpoints) {
|
||||
if(d3) displaychr(int(cx + rad * r.h[0]), int(cy - rad * r.h[2] * si + rad * r.h[1] * co), 0, 8, r.glyph, r.color);
|
||||
if(d3) displaychr(int(cx + rad * r.h[0]), int(cy - rad * r.h[2] * si + rad * r.h[1] * co), 0, 8 * mapfontscale / 100, r.glyph, r.color);
|
||||
else {
|
||||
hyperpoint h = locate(r.h);
|
||||
displaychr(int(h[0]), int(h[1]), 0, int(h[2]) / divby, r.glyph, r.color);
|
||||
displaychr(int(h[0]), int(h[1]), 0, int(h[2]) * mapfontscale / divby / 100, r.glyph, r.color);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user