11.2v and adjust to older compilers

This commit is contained in:
Zeno Rogue 2020-01-28 20:21:23 +01:00
parent d79c06e9d1
commit 3500d67af6
3 changed files with 20 additions and 7 deletions

View File

@ -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

View File

@ -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) {

View File

@ -13,8 +13,8 @@
#define _HYPER_H_
// version numbers
#define VER "11.2u"
#define VERNUM_HEX 0xA815
#define VER "11.2v"
#define VERNUM_HEX 0xA816
#include "sysconfig.h"