From 41faa43f652be97de0ace1fc452acd88c70e4e52 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Fri, 9 Jul 2021 14:04:04 +0200 Subject: [PATCH] pattern I, and fixed the possible crashes in nearest_map and furthest_map --- pattern2.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/pattern2.cpp b/pattern2.cpp index 177d5131..efd83536 100644 --- a/pattern2.cpp +++ b/pattern2.cpp @@ -1608,12 +1608,12 @@ EX namespace patterns { cell *sc = currentmap->gamestart(); auto ac = currentmap->allcells(); - vector bydist(20, 0); - vector bynei(S7+1, 0); + vector bydist(100, 0); + vector bynei(FULL_EDGE+1, 0); int maxd = 0; for(cell *d: ac) { int di = celldistance(sc, d); - bydist[di]++; + if(di<100) bydist[di]++; maxd = max(maxd, di); } @@ -1649,12 +1649,12 @@ EX namespace patterns { cell *sc = currentmap->gamestart(); auto ac = currentmap->allcells(); - vector bydist(20, 0); - vector bynei(S7+1, 0); + vector bydist(100, 0); + vector bynei(FULL_EDGE+1, 0); int maxd = 0; for(cell *d: ac) { int di = celldistance(sc, d); - bydist[di]++; + if(di<100) bydist[di]++; maxd = max(maxd, di); } @@ -1842,6 +1842,11 @@ EX namespace patterns { if(c == cwt.at && rwalls <= 100) r &= 0xFFFFFF; return r; } + case 'I': { + color_t r = 0xFFD500; + if(c->type != (variation == eVariation::dual_subcubes ? 6 : 14)) r |= 0x1000000; + return r; + } case '^': { int x = c->master->fieldval & 4095; int y = (c->master->fieldval >> 12) & 4095;