mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-01-22 23:17:04 +00:00
Fix Clang error where lambdas can't capture structured bindings until C++20
./rogueviz/nil-compass.cpp:98:10: error: reference to local binding 'i' declared in enclosing function 'rogueviz::nilcompass::draw_compass' if(i == _i && is == _is) return col; ^
This commit is contained in:
parent
2ec10ff7f2
commit
1b8296a1f8
@ -90,22 +90,22 @@ bool draw_compass(cell *c, const shiftmatrix& V) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
poly_outline = 0;
|
poly_outline = 0;
|
||||||
for(auto& [col, i, is, sh]: shapes) {
|
for(const auto& s: shapes) {
|
||||||
|
|
||||||
ld t = 36 + (ticks - zeroticks) / 1000.;
|
ld t = 36 + (ticks - zeroticks) / 1000.;
|
||||||
|
|
||||||
auto remap = [&] (int _i, int _is) {
|
auto remap = [&] (int _i, int _is) {
|
||||||
if(i == _i && is == _is) return col;
|
if(s.i == _i && s.is == _is) return col;
|
||||||
int c = part(col, 1) + part(col, 2) + part(col, 3);
|
int c = part(s.col, 1) + part(s.col, 2) + part(s.col, 3);
|
||||||
c += 1; c /= 12;
|
c += 1; c /= 12;
|
||||||
color_t col1 = col;
|
color_t col1 = s.col;
|
||||||
part(col1, 1) = part(col1, 2) = part(col1, 3) = c;
|
part(col1, 1) = part(col1, 2) = part(col1, 3) = c;
|
||||||
return gradient(col, col1, 0, 0.9, 1);
|
return gradient(s.col, col1, 0, 0.9, 1);
|
||||||
};
|
};
|
||||||
|
|
||||||
vector<pair<ld, color_t>> clist = {
|
vector<pair<ld, color_t>> clist = {
|
||||||
{36, col},
|
{36, s.col},
|
||||||
{42.5, col},
|
{42.5, s.col},
|
||||||
{42.7, remap(1, -1)},
|
{42.7, remap(1, -1)},
|
||||||
{43.9, remap(1, -1)},
|
{43.9, remap(1, -1)},
|
||||||
{44.1, remap(0, +1)},
|
{44.1, remap(0, +1)},
|
||||||
@ -118,8 +118,8 @@ bool draw_compass(cell *c, const shiftmatrix& V) {
|
|||||||
{48.1, remap(2, -1)},
|
{48.1, remap(2, -1)},
|
||||||
{48.3, remap(2, +1)},
|
{48.3, remap(2, +1)},
|
||||||
{49.1, remap(2, +1)},
|
{49.1, remap(2, +1)},
|
||||||
{49.3, col},
|
{49.3, s.col},
|
||||||
{99, col}
|
{99, s.col}
|
||||||
};
|
};
|
||||||
|
|
||||||
int step = 0;
|
int step = 0;
|
||||||
@ -128,7 +128,7 @@ bool draw_compass(cell *c, const shiftmatrix& V) {
|
|||||||
auto t1 = ilerp(clist[step].first, clist[step+1].first, t);
|
auto t1 = ilerp(clist[step].first, clist[step+1].first, t);
|
||||||
auto col1 = gradient(clist[step].second, clist[step+1].second, 0, smoothen(t1), 1);
|
auto col1 = gradient(clist[step].second, clist[step+1].second, 0, smoothen(t1), 1);
|
||||||
|
|
||||||
queuepoly(V, sh, col1);
|
queuepoly(V, s.sh, col1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user