mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-01-20 06:03:01 +00:00
11.2v and adjust to older compilers
This commit is contained in:
parent
d79c06e9d1
commit
3500d67af6
@ -3770,3 +3770,13 @@ Geometries:
|
||||
- extended 'linewidth' settings: illustration mode, hint about Alt, disable shadows, bright mode, colorblind simulation
|
||||
- fixed the direction reflected monsters face in the Hall of Mirrors
|
||||
- mixed infinite order
|
||||
|
||||
2020-01-28 19:48 Update 11.2v:
|
||||
- added dual geometry puzzle generator
|
||||
- added a comma in shmup help text
|
||||
- Temple rings are now displayed in the mouseover text
|
||||
- in the patterns menu (in map editor), you can now set the default wall type
|
||||
- Camelot no longer generates trivially in {even,x} tessellations
|
||||
- added {4,3,6} honeycomb
|
||||
- Compact hyperbolic honeycombs are now implemented using canonical paths. Improved CPU/RAM efficiency and reliability. (Horo)cyclic lands (e.g. Camelot) work correctly now. Also improved Graveyard and Zebra.
|
||||
- underlying/horocycle tree patterns now can display fat edges in 3D geometries
|
||||
|
13
dpgen.cpp
13
dpgen.cpp
@ -51,7 +51,7 @@ void solve(cpos at) {
|
||||
if(ca1->wall != waNone) continue;
|
||||
|
||||
int s = (c1->c.spin((d+k)%4) - c0->c.spin(k)) & 3;
|
||||
enqueue({ca0, ca1, s}, dist+1, i);
|
||||
enqueue(make_tuple(ca0, ca1, s), dist+1, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -99,7 +99,7 @@ void launch(int seed, int elimit, int hlimit) {
|
||||
}
|
||||
println(hlog, "c1 size = ", isize(cl.lst));
|
||||
}
|
||||
cpos start = {c0, c1, 0};
|
||||
cpos start = make_tuple(c0, c1, 0);
|
||||
solve(start);
|
||||
println(hlog, "queue size = ", isize(all));
|
||||
|
||||
@ -110,7 +110,9 @@ void launch(int seed, int elimit, int hlimit) {
|
||||
int wdist = -1, wdcount;
|
||||
for(cell* x0: cl0) for(cell *x1: cl1) {
|
||||
int x = 9999;
|
||||
for(int d=0; d<4; d++) if(visited.count({x0, x1, d})) x = min(x, visited[{x0, x1, d}]);
|
||||
for(int d=0; d<4; d++)
|
||||
if(visited.count(make_tuple(x0, x1, d)))
|
||||
x = min(x, visited[make_tuple(x0, x1, d)]);
|
||||
if(x == 9999) continue;
|
||||
if(x > wdist) wdist = x, wdcount = 0;
|
||||
if(wdist == x) { wdcount++; if(hrand(wdcount) == 0) worst = {x0, x1}; }
|
||||
@ -128,7 +130,9 @@ void launch(int seed, int elimit, int hlimit) {
|
||||
solve(start);
|
||||
c->wall = waNone;
|
||||
int x = 9999;
|
||||
for(int d=0; d<4; d++) if(visited.count({worst.first, worst.second, d})) x = min(x, visited[{worst.first, worst.second, d}]);
|
||||
for(int d=0; d<4; d++)
|
||||
if(visited.count(make_tuple(worst.first, worst.second, d)))
|
||||
x = min(x, visited[make_tuple(worst.first, worst.second, d)]);
|
||||
if(x == 9999) continue;
|
||||
if(x > wdist) wdist = x, wdcount = 0;
|
||||
if(wdist == x) { wdcount++; if(hrand(wdcount) == 0) worst_block = c; }
|
||||
@ -139,7 +143,6 @@ void launch(int seed, int elimit, int hlimit) {
|
||||
}
|
||||
|
||||
solve(start);
|
||||
for(int d=0; d<4; d++) if(visited.count({worst.first, worst.second, d})) println(hlog, "D = ", d);
|
||||
|
||||
println(hlog, "worst = ", worst);
|
||||
for(int i=0; i<isize(all); i++) if(get<0>(all[i]) == worst.first && get<1>(all[i]) == worst.second) {
|
||||
|
Loading…
Reference in New Issue
Block a user