1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-10-16 22:57:38 +00:00

ASCII/3D mode, also reacts to neon settings

This commit is contained in:
Zeno Rogue
2020-01-30 17:45:05 +01:00
parent 34d5ec2242
commit 8005b39f6f
5 changed files with 104 additions and 8 deletions

View File

@@ -2228,6 +2228,39 @@ EX void queuestr(const transmatrix& V, double size, const string& chr, color_t c
queuestr(xc, yc, sc, scale_in_pixels(V) * size, chr, col, frame, align);
}
EX void queuestrn(const transmatrix& V, double size, const string& chr, color_t col, int frame IS(0), int align IS(8)) {
switch(neon_mode) {
case 0:
queuestr(V, size, chr, col, frame, align);
break;
case 1: {
dynamicval<color_t> c(poly_outline, col << 8);
queuestr(V, size, chr, 0, frame, align);
break;
}
case 2: {
queuestr(V, size, chr, col, 0, align);
break;
}
case 3: {
dynamicval<color_t> c(poly_outline, (col << 8) | 0xFF);
queuestr(V, size, chr, (col & 0xFEFEFE) >> 1, frame, align);
break;
}
case 4: {
dynamicval<color_t> c(poly_outline, poly_outline);
if(poly_outline > 0xFF) {
col = magentize(col << 8) >> 8;
poly_outline = 0xFF;
}
else {
col = monochromatize(col << 8) >> 8;
}
queuestr(V, size, chr, col, frame, align);
}
}
}
EX void queuecircle(const transmatrix& V, double size, color_t col) {
int xc, yc, sc;
if(!getcoord0_checked(tC0(V), xc, yc, sc)) return;