1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-01-11 18:00:34 +00:00

renamed whirl to goldberg

This commit is contained in:
Zeno Rogue 2018-04-09 17:40:12 +02:00
parent 039e56edfe
commit 830785990c
27 changed files with 150 additions and 150 deletions

View File

@ -85,7 +85,7 @@ bool wrongMode(char flags) {
if(cheater) return true; if(cheater) return true;
if(flags == 'x') return false; if(flags == 'x') return false;
if(nonbitrunc != (flags == '7')) return true; if(nonbitrunc != (flags == '7')) return true;
if(whirl::whirl) return true; if(gp::on) return true;
switch(flags) { switch(flags) {
case 'e': case 'e':
@ -622,7 +622,7 @@ void achievement_final(bool really_final) {
if(shmup::on) specials++; if(shmup::on) specials++;
if(chaosmode) specials++; if(chaosmode) specials++;
if(nonbitrunc) specials++; if(nonbitrunc) specials++;
if(whirl::whirl) specials++; if(gp::on) specials++;
if(inv::on) specials++; if(inv::on) specials++;
if(specials > 1) return; if(specials > 1) return;

View File

@ -743,7 +743,7 @@ bool buildBarrierNowall(cell *c, eLand l2, bool force) {
for(int i=0; i<c->type; i++) { for(int i=0; i<c->type; i++) {
int d = ds[i]; int d = ds[i];
/* if(warpv && whirl::whirl) { /* if(warpv && gp::on) {
d = hrand(c->type); */ d = hrand(c->type); */
if(warpv && c->mov[d] && c->mov[d]->mpdist < c->mpdist) continue; if(warpv && c->mov[d] && c->mov[d]->mpdist < c->mpdist) continue;
/* } /* }

View File

@ -105,7 +105,7 @@ void generateAlts(heptagon *h, int levs, bool link_cdata) {
if(!h->alt) return; if(!h->alt) return;
preventbarriers(h->c7); preventbarriers(h->c7);
for(int i=0; i<S7; i++) preventbarriers(h->c7->mov[i]); for(int i=0; i<S7; i++) preventbarriers(h->c7->mov[i]);
if(whirl::whirl) if(gp::on)
for(int i=0; i<S7; i++) preventbarriers(createStep(h, i)->c7); for(int i=0; i<S7; i++) preventbarriers(createStep(h, i)->c7);
for(int i=0; i<S7; i++) for(int i=0; i<S7; i++)
createStep(h->alt, i)->alt = h->alt->alt; createStep(h->alt, i)->alt = h->alt->alt;
@ -957,8 +957,8 @@ bool mouse_reachability_test(cell *c) {
bool horo_ok() { bool horo_ok() {
if(!hyperbolic) return false; if(!hyperbolic) return false;
if(!whirl::whirl) return true; if(!gp::on) return true;
if(whirl::param.second) return false; if(gp::param.second) return false;
return true; return true;
} }
@ -995,7 +995,7 @@ void buildBigStuff(cell *c, cell *from) {
// buildgreatwalls // buildgreatwalls
if(celldist(c) < 3 && !whirl::whirl) { if(celldist(c) < 3 && !gp::on) {
if(top_land && c == cwt.c->master->move[3]->c7) { if(top_land && c == cwt.c->master->move[3]->c7) {
buildBarrierStrong(c, 6, true, top_land); buildBarrierStrong(c, 6, true, top_land);
} }
@ -1085,7 +1085,7 @@ void buildBigStuff(cell *c, cell *from) {
createAlternateMap(c, 2, hsA); createAlternateMap(c, 2, hsA);
if(c->land == laOvergrown && ctof(c) && if(c->land == laOvergrown && ctof(c) &&
(quickfind(laClearing) || (hrand(I2000) < 25 && !whirl::whirl && (quickfind(laClearing) || (hrand(I2000) < 25 && !gp::on &&
!randomPatternsMode && items[itMutant] >= U5 && !randomPatternsMode && items[itMutant] >= U5 &&
isLandIngame(laClearing) && isLandIngame(laClearing) &&
!tactic::on && !yendor::on))) { !tactic::on && !yendor::on))) {

View File

@ -4,7 +4,7 @@
double randd() { return (rand() + .5) / (RAND_MAX + 1.); } double randd() { return (rand() + .5) / (RAND_MAX + 1.); }
double cellgfxdist(cell *c, int i) { double cellgfxdist(cell *c, int i) {
return nonbitrunc ? tessf * whirl::scale : (c->type == 6 && (i&1)) ? hexhexdist : crossf; return nonbitrunc ? tessf * gp::scale : (c->type == 6 && (i&1)) ? hexhexdist : crossf;
} }
transmatrix cellrelmatrix(cell *c, int i) { transmatrix cellrelmatrix(cell *c, int i) {

View File

@ -739,8 +739,8 @@ cell *createMov(cell *c, int d) {
} }
if(c->mov[d]) return c->mov[d]; if(c->mov[d]) return c->mov[d];
else if(nonbitrunc && whirl::whirl) { else if(nonbitrunc && gp::on) {
whirl::extend_map(c, d); gp::extend_map(c, d);
if(!c->mov[d]) { if(!c->mov[d]) {
printf("extend failed to create for %p/%d\n", c, d); printf("extend failed to create for %p/%d\n", c, d);
exit(1); exit(1);
@ -935,7 +935,7 @@ void verifycell(cell *c) {
} }
void verifycells(heptagon *at) { void verifycells(heptagon *at) {
if(whirl::whirl) return; if(gp::on) return;
for(int i=0; i<S7; i++) if(at->move[i] && at->move[i]->move[at->spin(i)] && at->move[i]->move[at->spin(i)] != at) { for(int i=0; i<S7; i++) if(at->move[i] && at->move[i]->move[at->spin(i)] && at->move[i]->move[at->spin(i)] != at) {
printf("hexmix error %p [%d s=%d] %p %p\n", at, i, at->spin(i), at->move[i], at->move[i]->move[at->spin(i)]); printf("hexmix error %p [%d s=%d] %p %p\n", at, i, at->spin(i), at->move[i], at->move[i]->move[at->spin(i)]);
} }
@ -983,7 +983,7 @@ int celldist(cell *c) {
} }
if(sphere) return celldistance(c, currentmap->gamestart()); if(sphere) return celldistance(c, currentmap->gamestart());
if(ctof(c)) return c->master->distance; if(ctof(c)) return c->master->distance;
if(whirl::whirl) return whirl::compute_dist(c, celldist); if(gp::on) return gp::compute_dist(c, celldist);
int dx[MAX_S3]; int dx[MAX_S3];
for(int u=0; u<S3; u++) for(int u=0; u<S3; u++)
dx[u] = createMov(c, u+u)->master->distance; dx[u] = createMov(c, u+u)->master->distance;
@ -1010,7 +1010,7 @@ int celldistAlt(cell *c) {
} }
if(!c->master->alt) return 0; if(!c->master->alt) return 0;
if(ctof(c)) return c->master->alt->distance; if(ctof(c)) return c->master->alt->distance;
if(whirl::whirl) return whirl::compute_dist(c, celldistAlt); if(gp::on) return gp::compute_dist(c, celldistAlt);
int dx[MAX_S3]; dx[0] = 0; int dx[MAX_S3]; dx[0] = 0;
for(int u=0; u<S3; u++) if(createMov(c, u+u)->master->alt == NULL) for(int u=0; u<S3; u++) if(createMov(c, u+u)->master->alt == NULL)
return ALTDIST_UNKNOWN; return ALTDIST_UNKNOWN;
@ -1370,7 +1370,7 @@ int celldistance(cell *c1, cell *c2) {
return eudist(decodeId(c1->master) - decodeId(c2->master)); return eudist(decodeId(c1->master) - decodeId(c2->master));
} }
if(sphere || quotient == 1 || whirl::whirl) { if(sphere || quotient == 1 || gp::on) {
celllister cl(c1, 64, 1000, c2); celllister cl(c1, 64, 1000, c2);
for(int i=0; i<size(cl.lst); i++) for(int i=0; i<size(cl.lst); i++)
if(cl.lst[i] == c2) return cl.dists[i]; if(cl.lst[i] == c2) return cl.dists[i];

View File

@ -386,11 +386,11 @@ else if(args()[0] == '-' && args()[1] == x && args()[2] == '0') { showstartmenu
quantum = true; quantum = true;
autocheat = true; autocheat = true;
} }
else if(argis("-whirl")) { else if(argis("-gp")) {
PHASE(3); PHASE(3);
if(nonbitrunc) restartGame('7'); if(nonbitrunc) restartGame('7');
shift(); whirl::param.first = argi(); shift(); gp::param.first = argi();
shift(); whirl::param.second = argi(); shift(); gp::param.second = argi();
restartGame('w'); restartGame('w');
} }
else if(argis("-P")) { else if(argis("-P")) {

View File

@ -30,7 +30,7 @@
#include "heptagon.cpp" #include "heptagon.cpp"
#include "language.cpp" #include "language.cpp"
#include "cell.cpp" #include "cell.cpp"
#include "whirl.cpp" #include "goldberg.cpp"
#include "pattern2.cpp" #include "pattern2.cpp"
#include "flags.cpp" #include "flags.cpp"
#include "yendor.cpp" #include "yendor.cpp"

View File

@ -3055,7 +3055,7 @@ namespace windmap {
cell *c = samples[k]; cell *c = samples[k];
neighbors.emplace_back(); neighbors.emplace_back();
auto &v = neighbors.back(); auto &v = neighbors.back();
if(whirl::whirl) if(gp::on)
for(int l=0; l<S7; l++) v.push_back(getId(createStep(c->master, l)->c7)); for(int l=0; l<S7; l++) v.push_back(getId(createStep(c->master, l)->c7));
else else
for(int l=0; l<c->type; l++) v.push_back(getId(createMov(c, l))); for(int l=0; l<c->type; l++) v.push_back(getId(createMov(c, l)));

View File

@ -323,8 +323,8 @@ void debugScreen() {
dialog::addSelItem("pathdist", its(mouseover->pathdist), 0); dialog::addSelItem("pathdist", its(mouseover->pathdist), 0);
dialog::addSelItem("celldistAlt", mouseover->master->alt ? its(celldistAlt(mouseover)) : "--", 0); dialog::addSelItem("celldistAlt", mouseover->master->alt ? its(celldistAlt(mouseover)) : "--", 0);
dialog::addSelItem("temporary", its(mouseover->aitmp), 0); dialog::addSelItem("temporary", its(mouseover->aitmp), 0);
if(whirl::whirl) if(gp::on)
dialog::addSelItem("whirl", whirl::disp(whirl::get_local_info(mouseover).relative), 0); dialog::addSelItem("whirl", gp::disp(gp::get_local_info(mouseover).relative), 0);
dialog::addBreak(50); dialog::addBreak(50);
dialog::addSelItem("monster", dnameof2(mouseover->monst, mouseover->mondir), 0); dialog::addSelItem("monster", dnameof2(mouseover->monst, mouseover->mondir), 0);
dialog::addSelItem("stuntime/hitpoints", its(mouseover->stuntime)+"/"+its(mouseover->hitpoints), 0); dialog::addSelItem("stuntime/hitpoints", its(mouseover->stuntime)+"/"+its(mouseover->hitpoints), 0);

View File

@ -3139,7 +3139,7 @@ void toggleGates(cell *ct, eWall type, int rad) {
void toggleGates(cell *ct, eWall type) { void toggleGates(cell *ct, eWall type) {
playSound(ct, "click"); playSound(ct, "click");
numgates = 0; numgates = 0;
if(type == waClosePlate && nonbitrunc && !whirl::whirl) if(type == waClosePlate && nonbitrunc && !gp::on)
toggleGates(ct, type, 2); toggleGates(ct, type, 2);
else else
toggleGates(ct, type, 3); toggleGates(ct, type, 3);

View File

@ -236,7 +236,7 @@ void showEuclideanMenu() {
landvisited[laCA] = true; landvisited[laCA] = true;
// for(int i=2; i<lt; i++) landvisited[i] = true; // for(int i=2; i<lt; i++) landvisited[i] = true;
if((geometry == gNormal && !whirl::whirl) || ewhichscreen == 2) { if((geometry == gNormal && !gp::on) || ewhichscreen == 2) {
dialog::init(XLAT("experiment with geometry")); dialog::init(XLAT("experiment with geometry"));
int ts = ginf[geometry].sides; int ts = ginf[geometry].sides;
int tv = ginf[geometry].vertex; int tv = ginf[geometry].vertex;
@ -244,9 +244,9 @@ void showEuclideanMenu() {
int nom = (nonbitrunc ? tv : tv+ts) * ((tq & qELLIP) ? 2 : 4); int nom = (nonbitrunc ? tv : tv+ts) * ((tq & qELLIP) ? 2 : 4);
int denom = (2*ts + 2*tv - ts * tv); int denom = (2*ts + 2*tv - ts * tv);
if(whirl::whirl) { if(gp::on) {
denom *= 2; denom *= 2;
nom = nom / tv * (2*tv + ts * (whirl::area-1)); nom = nom / tv * (2*tv + ts * (gp::area-1));
if(nom % 2 == 0) nom /= 2, denom /= 2; if(nom % 2 == 0) nom /= 2, denom /= 2;
} }
@ -264,7 +264,7 @@ void showEuclideanMenu() {
dialog::addBoolItem(XLAT("bitruncated"), !nonbitrunc, 't'); dialog::addBoolItem(XLAT("bitruncated"), !nonbitrunc, 't');
else { else {
dialog::addBoolItem(XLAT("operation"), nonbitrunc, 't'); dialog::addBoolItem(XLAT("operation"), nonbitrunc, 't');
dialog::lastItem().value = whirl::operation_name(); dialog::lastItem().value = gp::operation_name();
} }
dialog::addBreak(50); dialog::addBreak(50);
@ -272,12 +272,12 @@ void showEuclideanMenu() {
int worldsize = denom ? nom/denom : 0; int worldsize = denom ? nom/denom : 0;
if(tq & qTORUS) worldsize = torusconfig::qty; if(tq & qTORUS) worldsize = torusconfig::qty;
if(tq & qZEBRA) worldsize = if(tq & qZEBRA) worldsize =
whirl::whirl ? 12 + 14 * (whirl::area - 1) : gp::on ? 12 + 14 * (gp::area - 1) :
nonbitrunc ? 12 : nonbitrunc ? 12 :
40; 40;
if(tq & qFIELD) { if(tq & qFIELD) {
worldsize = size(currfp.matrices) / ts; worldsize = size(currfp.matrices) / ts;
if(whirl::whirl) worldsize = worldsize * (2*tv + ts * (whirl::area-1)) / tv / 2; if(gp::on) worldsize = worldsize * (2*tv + ts * (gp::area-1)) / tv / 2;
else if(!nonbitrunc) worldsize = ((ts+tv)*worldsize) / tv; else if(!nonbitrunc) worldsize = ((ts+tv)*worldsize) / tv;
} }
@ -335,7 +335,7 @@ void showEuclideanMenu() {
else if(uni == 't') { else if(uni == 't') {
if(euclid6) ; if(euclid6) ;
else if(S3 == 3) else if(S3 == 3)
whirl::configure(); gp::configure();
else { else {
restartGame('7'); restartGame('7');
pushScreen(showEuclideanMenu); pushScreen(showEuclideanMenu);

View File

@ -164,7 +164,7 @@ void precalc() {
base_distlimit = ginf[geometry].distlimit[nonbitrunc]; base_distlimit = ginf[geometry].distlimit[nonbitrunc];
whirl::compute_geometry(); gp::compute_geometry();
} }
transmatrix ddi(ld dir, ld dist) { transmatrix ddi(ld dir, ld dist) {

View File

@ -157,7 +157,7 @@ void drawSpeed(const transmatrix& V) {
} }
int ctof(cell *c) { int ctof(cell *c) {
if(nonbitrunc && !whirl::whirl) return 1; if(nonbitrunc && !gp::on) return 1;
// if(euclid) return 0; // if(euclid) return 0;
return ishept(c) ? 1 : 0; return ishept(c) ? 1 : 0;
// c->type == 6 ? 0 : 1; // c->type == 6 ? 0 : 1;
@ -290,11 +290,11 @@ void drawPlayerEffects(const transmatrix& V, cell *c, bool onplayer) {
if(!euclid) for(int a=0; a<S42; a++) { if(!euclid) for(int a=0; a<S42; a++) {
int dda = S42 + (-1-2*a); int dda = S42 + (-1-2*a);
if(a == ang && items[itOrbSword]) continue; if(a == ang && items[itOrbSword]) continue;
if(nonbitrunc && !whirl::whirl && a%3 != ang%3) continue; if(nonbitrunc && !gp::on && a%3 != ang%3) continue;
if((a+S21)%S42 == ang && items[itOrbSword2]) continue; if((a+S21)%S42 == ang && items[itOrbSword2]) continue;
bool longer = sword::pos(cwt.c, a-1) != sword::pos(cwt.c, a+1); bool longer = sword::pos(cwt.c, a-1) != sword::pos(cwt.c, a+1);
int col = darkena(0xC0C0C0, 0, 0xFF); int col = darkena(0xC0C0C0, 0, 0xFF);
queueline(Vnow*ddi0(dda, nonbitrunc ? 0.6 * whirl::scale : longer ? 0.36 : 0.4), Vnow*ddi0(dda, nonbitrunc ? 0.7 * whirl::scale : longer ? 0.44 : 0.42), col, 1); queueline(Vnow*ddi0(dda, nonbitrunc ? 0.6 * gp::scale : longer ? 0.36 : 0.4), Vnow*ddi0(dda, nonbitrunc ? 0.7 * gp::scale : longer ? 0.44 : 0.42), col, 1);
} }
#endif #endif
@ -2087,7 +2087,7 @@ bool drawMonster(const transmatrix& Vparam, int ct, cell *c, int col) {
Vb = Vb * pispin; Vb = Vb * pispin;
} }
else Vb = Vb * ddspin(c, c->mondir, S42); else Vb = Vb * ddspin(c, c->mondir, S42);
if(whirl::whirl) Vb = Vb * xpush(crossf * .6); if(gp::on) Vb = Vb * xpush(crossf * .6);
else { else {
if(weirdhyperbolic || sphere) Vb = Vb * xpush(-(hexhexdist - hcrossf7)); if(weirdhyperbolic || sphere) Vb = Vb * xpush(-(hexhexdist - hcrossf7));
if(ctof(c) && !euclid) Vb = Vb * xpush(hexhexdist - hcrossf); if(ctof(c) && !euclid) Vb = Vb * xpush(hexhexdist - hcrossf);
@ -2508,7 +2508,7 @@ void drawEmeraldFloor(const transmatrix& V, cell *c, int col) {
int ct6 = ctof(c); int ct6 = ctof(c);
int xct6 = ct6; int xct6 = ct6;
if(whirl::whirl && has_nice_dual() && pseudohept(c) && !ishept(c)) xct6 = 2; if(gp::on && has_nice_dual() && pseudohept(c) && !ishept(c)) xct6 = 2;
qfloor(c, V, CAVEFLOOR, col); qfloor(c, V, CAVEFLOOR, col);
} }
@ -3050,8 +3050,8 @@ bool noAdjacentChasms(cell *c) {
// does the current geometry allow nice duals // does the current geometry allow nice duals
bool has_nice_dual() { bool has_nice_dual() {
if(!nonbitrunc) return true; if(!nonbitrunc) return true;
if(!whirl::whirl) return false; if(!gp::on) return false;
return (whirl::param.first + whirl::param.second * 2) % 3 == 0; return (gp::param.first + gp::param.second * 2) % 3 == 0;
} }
// does the current geometry allow nice duals // does the current geometry allow nice duals
@ -3060,7 +3060,7 @@ bool is_nice_dual(cell *c) {
} }
bool use_swapped_duals() { bool use_swapped_duals() {
return (euclid && !a4) || whirl::whirl; return (euclid && !a4) || gp::on;
} }
void floorShadow(cell *c, const transmatrix& V, int col, bool warp) { void floorShadow(cell *c, const transmatrix& V, int col, bool warp) {
@ -3194,7 +3194,7 @@ void placeSidewall(cell *c, int i, int sidepar, const transmatrix& V, bool warp,
bool b = !(i&1); bool b = !(i&1);
if(use_swapped_duals()) { if(use_swapped_duals()) {
if(!ishex1(c)) b = !b; if(!ishex1(c)) b = !b;
if(whirl::whirl) b = !b; if(gp::on) b = !b;
} }
if(b) return; if(b) return;
} }
@ -3344,7 +3344,7 @@ static const int trapcol[4] = {0x904040, 0xA02020, 0xD00000, 0x303030};
static const int terracol[8] = {0xD000, 0xE25050, 0xD0D0D0, 0x606060, 0x303030, 0x181818, 0x0080, 0x8080}; static const int terracol[8] = {0xD000, 0xE25050, 0xD0D0D0, 0x606060, 0x303030, 0x181818, 0x0080, 0x8080};
void qfloor_eswap(cell *c, const transmatrix& V, const hpcshape& sh, int col) { void qfloor_eswap(cell *c, const transmatrix& V, const hpcshape& sh, int col) {
if((euclid || whirl::whirl) && ishex1(c)) if((euclid || gp::on) && ishex1(c))
qfloor(c, V, pispin, sh, col); qfloor(c, V, pispin, sh, col);
else else
qfloor(c, V, sh, col); qfloor(c, V, sh, col);
@ -3491,7 +3491,7 @@ void draw_wall(cell *c, const transmatrix& V, int wcol, int& zcol, int ct6, int
} }
void qfloor_caves(cell* c, const transmatrix& Vf, int col, int ct6, int xct6) { void qfloor_caves(cell* c, const transmatrix& Vf, int col, int ct6, int xct6) {
/* if(whirl::whirl) { /* if(gp::on) {
if(pseudohept(c)) if(pseudohept(c))
qfloor(c, Vf, shCaveFloor[ishept(c) ? 1 : 2], col); qfloor(c, Vf, shCaveFloor[ishept(c) ? 1 : 2], col);
else if(ishex1(c)) else if(ishex1(c))
@ -3785,7 +3785,7 @@ void drawcell(cell *c, transmatrix V, int spinv, bool mirrored) {
int ctype = c->type; int ctype = c->type;
int ct6 = ctof(c); int ct6 = ctof(c);
int xct6 = ct6; int xct6 = ct6;
if(whirl::whirl && has_nice_dual() && pseudohept(c) && !ishept(c)) xct6 = 2; if(gp::on && has_nice_dual() && pseudohept(c) && !ishept(c)) xct6 = 2;
bool error = false; bool error = false;
@ -4102,7 +4102,7 @@ void drawcell(cell *c, transmatrix V, int spinv, bool mirrored) {
break; break;
case laTrollheim: case laTrollheim:
if(!eoh && !whirl::whirl) if(!eoh && !gp::on)
qfloor_eswap(c, Vf, TROLLFLOOR, darkena(fcol, fd, 0xFF)); qfloor_eswap(c, Vf, TROLLFLOOR, darkena(fcol, fd, 0xFF));
else else
qfloor_caves(c, Vf, darkena(fcol, fd, 0xFF), ct6, xct6); qfloor_caves(c, Vf, darkena(fcol, fd, 0xFF), ct6, xct6);

View File

@ -96,7 +96,7 @@ heptagon *buildHeptagon(heptagon *parent, int d, hstate s, int pard = 0, int fix
if(pard == 0) { if(pard == 0) {
h->dm4 = parent->dm4+1; h->dm4 = parent->dm4+1;
if(fixdistance != COMPUTE) h->distance = fixdistance; if(fixdistance != COMPUTE) h->distance = fixdistance;
else if(whirl::whirl) h->distance = parent->distance + whirl::param.first; else if(gp::on) h->distance = parent->distance + gp::param.first;
else if(nonbitrunc) h->distance = parent->distance + 1; else if(nonbitrunc) h->distance = parent->distance + 1;
else if(parent->s == hsOrigin) h->distance = parent->distance + 2; else if(parent->s == hsOrigin) h->distance = parent->distance + 2;
else if(S3 == 4) { else if(S3 == 4) {
@ -129,7 +129,7 @@ heptagon *buildHeptagon(heptagon *parent, int d, hstate s, int pard = 0, int fix
else h->distance = parent->distance + 2; else h->distance = parent->distance + 2;
} }
else { else {
h->distance = parent->distance - (whirl::whirl?whirl::param.first:nonbitrunc?1:2); h->distance = parent->distance - (gp::on?gp::param.first:nonbitrunc?1:2);
if(S3 == 4 && S7 == 5) { if(S3 == 4 && S7 == 5) {
if(h->s == hsOrigin) { if(h->s == hsOrigin) {
printf("had to cheat!\n"); printf("had to cheat!\n");

View File

@ -348,7 +348,7 @@ void drawStats() {
int d = celldistance(ac[i], cwt.c); int d = celldistance(ac[i], cwt.c);
if(d >= 0 && d < 64) qty[d]++; if(d >= 0 && d < 64) qty[d]++;
} }
if(geometry == gNormal && !whirl::whirl) if(geometry == gNormal && !gp::on)
for(int i=nonbitrunc?6:8; i<=15; i++) for(int i=nonbitrunc?6:8; i<=15; i++)
qty[i] = qty[i] =
nonbitrunc ? nonbitrunc ?
@ -363,7 +363,7 @@ void drawStats() {
dialog::addHelp("a(d+4) = a(d+3) + a(d+2) + a(d+1) - a(d)"); dialog::addHelp("a(d+4) = a(d+3) + a(d+2) + a(d+1) - a(d)");
dialog::addInfo("a(d) ~ 1.72208ᵈ", forecolor); dialog::addInfo("a(d) ~ 1.72208ᵈ", forecolor);
} }
if(geometry == gNormal && nonbitrunc && !whirl::whirl) { if(geometry == gNormal && nonbitrunc && !gp::on) {
dialog::addBreak(200); dialog::addBreak(200);
dialog::addHelp("a(d+2) = 3a(d+1) - a(d+2)"); dialog::addHelp("a(d+2) = 3a(d+1) - a(d+2)");
dialog::addInfo("a(d) ~ 2.61803ᵈ", forecolor); dialog::addInfo("a(d) ~ 2.61803ᵈ", forecolor);

View File

@ -2953,9 +2953,9 @@ string XLAT(string x, stringpar p1, stringpar p2, stringpar p3);
string XLAT(string x, stringpar p1, stringpar p2, stringpar p3, stringpar p4); string XLAT(string x, stringpar p1, stringpar p2, stringpar p3, stringpar p4);
string XLAT(string x, stringpar p1, stringpar p2, stringpar p3, stringpar p4, stringpar p5); string XLAT(string x, stringpar p1, stringpar p2, stringpar p3, stringpar p4, stringpar p5);
namespace whirl { namespace gp {
typedef pair<int, int> loc; typedef pair<int, int> loc;
extern bool whirl; extern bool on;
void compute_geometry(); void compute_geometry();
void extend_map(cell *c, int d); void extend_map(cell *c, int d);
extern ld scale; extern ld scale;

View File

@ -453,14 +453,14 @@ bool confusingGeometry() {
} }
transmatrix actualV(const heptspin& hs, const transmatrix& V) { transmatrix actualV(const heptspin& hs, const transmatrix& V) {
return (hs.spin || nonbitrunc) ? V * spin(hs.spin*2*M_PI/S7 + (nonbitrunc ? M_PI:0) + whirl::alpha) : V; return (hs.spin || nonbitrunc) ? V * spin(hs.spin*2*M_PI/S7 + (nonbitrunc ? M_PI:0) + gp::alpha) : V;
} }
transmatrix applyspin(const heptspin& hs, const transmatrix& V) { transmatrix applyspin(const heptspin& hs, const transmatrix& V) {
return (hs.spin || nonbitrunc) ? V * spin(hs.spin*2*M_PI/S7) : V; return (hs.spin || nonbitrunc) ? V * spin(hs.spin*2*M_PI/S7) : V;
} }
namespace whirl { namespace gp {
/* /*
void drawrec(cell *c, const transmatrix& V) { void drawrec(cell *c, const transmatrix& V) {
@ -476,7 +476,7 @@ void drawrec(cell *c, const transmatrix& V) {
} }
} */ } */
void drawrec(cell *c, const transmatrix& V, whirl::loc at, int dir, int maindir) { void drawrec(cell *c, const transmatrix& V, gp::loc at, int dir, int maindir) {
if(dodrawcell(c)) { if(dodrawcell(c)) {
/* auto li = get_local_info(c); /* auto li = get_local_info(c);
if(fix6(dir) != fix6(li.total_dir)) printf("totaldir %d/%d\n", dir, li.total_dir); if(fix6(dir) != fix6(li.total_dir)) printf("totaldir %d/%d\n", dir, li.total_dir);
@ -501,7 +501,7 @@ void drawrec(cell *c, const transmatrix& V) {
if(!c2) continue; if(!c2) continue;
if(c2->mov[0] != c) continue; if(c2->mov[0] != c) continue;
if(c2 == c2->master->c7) continue; if(c2 == c2->master->c7) continue;
drawrec(c2, V, whirl::loc(1,0), 3, i); drawrec(c2, V, gp::loc(1,0), 3, i);
} }
} }
} }
@ -515,8 +515,8 @@ void drawrec(const heptspin& hs, int lev, hstate s, const transmatrix& V) {
transmatrix V10; transmatrix V10;
const transmatrix& V1 = hs.mirrored ? (V10 = V * Mirror) : V; const transmatrix& V1 = hs.mirrored ? (V10 = V * Mirror) : V;
if(whirl::whirl) { if(gp::on) {
whirl::drawrec(c, actualV(hs, V1)); gp::drawrec(c, actualV(hs, V1));
} }
else if(dodrawcell(c)) { else if(dodrawcell(c)) {

View File

@ -388,8 +388,8 @@ void addMessage(string s, char spamtype = 0);
#define S7 ginf[geometry].sides #define S7 ginf[geometry].sides
#define S3 ginf[geometry].vertex #define S3 ginf[geometry].vertex
#define hyperbolic_not37 ((S7 > 7 || S3 > 3) && hyperbolic) #define hyperbolic_not37 ((S7 > 7 || S3 > 3) && hyperbolic)
#define weirdhyperbolic ((S7 > 7 || S3 > 3 || whirl::whirl) && hyperbolic) #define weirdhyperbolic ((S7 > 7 || S3 > 3 || gp::on) && hyperbolic)
#define stdhyperbolic (S7 == 7 && S3 == 3 && !whirl::whirl) #define stdhyperbolic (S7 == 7 && S3 == 3 && !gp::on)
#define cgclass (ginf[geometry].cclass) #define cgclass (ginf[geometry].cclass)
#define euclid (cgclass == gcEuclid) #define euclid (cgclass == gcEuclid)

View File

@ -1299,7 +1299,7 @@ void giantLandSwitch(cell *c, int d, cell *from) {
case laHive: case laHive:
if(d == 9) { if(d == 9) {
if(hrand(2000) < (chaosmode ? 1000 : (nonbitrunc && !whirl::whirl) ?200:2) && !safety) if(hrand(2000) < (chaosmode ? 1000 : (nonbitrunc && !gp::on) ?200:2) && !safety)
hive::createBugArmy(c); hive::createBugArmy(c);
if(hrand(2000) < 100 && !c->wall && !c->item && !c->monst) { if(hrand(2000) < 100 && !c->wall && !c->item && !c->monst) {
int nww = 0; int nww = 0;
@ -2084,11 +2084,11 @@ void giantLandSwitch(cell *c, int d, cell *from) {
ONEMPTY { ONEMPTY {
if(nonbitrunc && c->land == laCrossroads5 && hrand(100) < 60) if(nonbitrunc && c->land == laCrossroads5 && hrand(100) < 60)
c->wall = waBarrier; c->wall = waBarrier;
else if(!ctof(c) && !inv::on && items[itShard] >= 10 && hrand(8000) < 120*orbcrossfun(items[itShard]) && !whirl::whirl) else if(!ctof(c) && !inv::on && items[itShard] >= 10 && hrand(8000) < 120*orbcrossfun(items[itShard]) && !gp::on)
c->wall = hrand(2) ? waMirror : waCloud; c->wall = hrand(2) ? waMirror : waCloud;
else if(!ctof(c) && hyperstonesUnlocked() && hrand(8000) < 100 && !whirl::whirl) else if(!ctof(c) && hyperstonesUnlocked() && hrand(8000) < 100 && !gp::on)
c->wall = hrand(2) ? waMirror : waCloud; c->wall = hrand(2) ? waMirror : waCloud;
else if(!ctof(c) && tactic::on && isCrossroads(tactic::lasttactic) && hrand(8000) < 120 && !whirl::whirl) else if(!ctof(c) && tactic::on && isCrossroads(tactic::lasttactic) && hrand(8000) < 120 && !gp::on)
c->wall = hrand(2) ? waMirror : waCloud; c->wall = hrand(2) ? waMirror : waCloud;
else if(c->land == laCrossroads4 && hrand(24000) < 10 && tactic::on) else if(c->land == laCrossroads4 && hrand(24000) < 10 && tactic::on)
c->wall = waRose; c->wall = waRose;

View File

@ -807,7 +807,7 @@ void setAppropriateOverview() {
pushScreen(yendor::showMenu); pushScreen(yendor::showMenu);
else if(peace::on) else if(peace::on)
pushScreen(peace::showMenu); pushScreen(peace::showMenu);
else if((geometry != gNormal || whirl::whirl) && !chaosmode && !(geometry == gEuclid && isCrossroads(specialland)) && !(weirdhyperbolic && specialland == laCrossroads4)) { else if((geometry != gNormal || gp::on) && !chaosmode && !(geometry == gEuclid && isCrossroads(specialland)) && !(weirdhyperbolic && specialland == laCrossroads4)) {
runGeometryExperiments(); runGeometryExperiments();
} }
else { else {

View File

@ -381,7 +381,7 @@ ld orbcrossfun(int tr) {
bool buildPrizeMirror(cell *c, int freq) { bool buildPrizeMirror(cell *c, int freq) {
if(inv::on) return false; if(inv::on) return false;
if(whirl::whirl) return false; if(gp::on) return false;
if(c->type == 7 && !nonbitrunc) return false; if(c->type == 7 && !nonbitrunc) return false;
if(items[itShard] < 25) return false; if(items[itShard] < 25) return false;
if(freq && hrand(freq * 100 / orbprizefun(items[itShard])) >= 100) if(freq && hrand(freq * 100 / orbprizefun(items[itShard])) >= 100)

View File

@ -30,21 +30,21 @@ bool ishept(cell *c) {
bool ishex1(cell *c) { bool ishex1(cell *c) {
// EUCLIDEAN // EUCLIDEAN
if(euclid) return eupattern(c) == 1; if(euclid) return eupattern(c) == 1;
else if(whirl::whirl) return c->master->c7 != c && !pseudohept(c->mov[0]); else if(gp::on) return c->master->c7 != c && !pseudohept(c->mov[0]);
else return c->type != S6; else return c->type != S6;
} }
bool ishex2(cell *c) { bool ishex2(cell *c) {
// EUCLIDEAN // EUCLIDEAN
if(euclid) return eupattern(c) == 1; if(euclid) return eupattern(c) == 1;
else if(whirl::whirl) return c->master->c7 != c && whirl::pseudohept_val(c) == 1; else if(gp::on) return c->master->c7 != c && gp::pseudohept_val(c) == 1;
else return c->type != S6; else return c->type != S6;
} }
int emeraldval(cell *c) { int emeraldval(cell *c) {
if(euclid) return eupattern(c); if(euclid) return eupattern(c);
if(sphere) return 0; if(sphere) return 0;
if(ctof(c) || whirl::whirl) if(ctof(c) || gp::on)
return c->master->emeraldval >> 3; return c->master->emeraldval >> 3;
else { else {
return emerald_hexagon( return emerald_hexagon(
@ -100,7 +100,7 @@ int cdist50(cell *c) {
else return "012333321112322232222321123"[eufifty(c)] - '0'; else return "012333321112322232222321123"[eufifty(c)] - '0';
} }
if(c->type != 6) return cdist50(fiftyval(c)); if(c->type != 6) return cdist50(fiftyval(c));
if(whirl::whirl) return cdist50(c->master->c7); if(gp::on) return cdist50(c->master->c7);
int a0 = cdist50(createMov(c,0)); int a0 = cdist50(createMov(c,0));
int a1 = cdist50(createMov(c,2)); int a1 = cdist50(createMov(c,2));
int a2 = cdist50(createMov(c,4)); int a2 = cdist50(createMov(c,4));
@ -162,7 +162,7 @@ int fiftyval049(cell *c) {
// printf("%d,%d: %d\n", allcodes[0], allcodes[1], allcodes[0] + 7); // printf("%d,%d: %d\n", allcodes[0], allcodes[1], allcodes[0] + 7);
return allcodes[0] + 7; return allcodes[0] + 7;
} }
else if(whirl::whirl) return fiftyval049(c->master->c7); else if(gp::on) return fiftyval049(c->master->c7);
else if(sphere) return 0; else if(sphere) return 0;
else { else {
int a[3], qa=0; int a[3], qa=0;
@ -323,7 +323,7 @@ int fieldval_uniq(cell *c) {
auto p = cell_to_pair(c); auto p = cell_to_pair(c);
return gmod(p.first * torusconfig::dx + p.second * torusconfig::dy, torusconfig::qty); return gmod(p.first * torusconfig::dx + p.second * torusconfig::dy, torusconfig::qty);
} }
if(ctof(c) || whirl::whirl) return c->master->fieldval/S7; if(ctof(c) || gp::on) return c->master->fieldval/S7;
else { else {
int z = 0; int z = 0;
for(int u=0; u<S6; u+=2) for(int u=0; u<S6; u+=2)
@ -551,7 +551,7 @@ namespace patterns {
si.id = (c->master->fiftyval >> 1) & 3; si.id = (c->master->fiftyval >> 1) & 3;
else else
si.id = 0; si.id = 0;
if(nonbitrunc && !whirl::whirl) if(nonbitrunc && !gp::on)
si.id *= 4; si.id *= 4;
else else
si.id += 4; si.id += 4;
@ -565,12 +565,12 @@ namespace patterns {
} }
else { else {
int sp = c->spin(0); int sp = c->spin(0);
if(whirl::whirl) { if(gp::on) {
sp = whirl::last_dir(c); sp = gp::last_dir(c);
sp ^= ishex2(c); sp ^= ishex2(c);
} }
si.id = 8 * ((c->master->fiftyval & 1) ^ (sp & 1)); si.id = 8 * ((c->master->fiftyval & 1) ^ (sp & 1));
if(whirl::whirl && pseudohept(c)) si.id = 4; if(gp::on && pseudohept(c)) si.id = 4;
bool dock = false; bool dock = false;
for(int i=0; i<c->type; i+=2) { for(int i=0; i<c->type; i+=2) {
int fiv = createMov(c, i)->master->fiftyval; int fiv = createMov(c, i)->master->fiftyval;
@ -583,14 +583,14 @@ namespace patterns {
if(symRotation) si.symmetries = 2; if(symRotation) si.symmetries = 2;
si.id += 8; si.id += 8;
si.id %= 12; si.id %= 12;
if(whirl::whirl && pat == PAT_COLORING) if(gp::on && pat == PAT_COLORING)
for(int i=0; i<c->type; i++) { for(int i=0; i<c->type; i++) {
cell *c2 = createMov(c, i); cell *c2 = createMov(c, i);
int id2 = 4; int id2 = 4;
if(!pseudohept(c2)) { if(!pseudohept(c2)) {
int sp2 = c2->spin(0); int sp2 = c2->spin(0);
if(whirl::whirl) { if(gp::on) {
sp2 = whirl::last_dir(c2); sp2 = gp::last_dir(c2);
sp2 ^= ishex2(c2); sp2 ^= ishex2(c2);
} }
id2 = 8 * ((c2->master->fiftyval & 1) ^ (sp2 & 1)); id2 = 8 * ((c2->master->fiftyval & 1) ^ (sp2 & 1));
@ -650,7 +650,7 @@ namespace patterns {
if(u == 8 && qhex == 2) u = 12; if(u == 8 && qhex == 2) u = 12;
else if(u == 2 && qhex == 1) u = 8; else if(u == 2 && qhex == 1) u = 8;
else if(u == 6 && qhex == 2) u = 10; else if(u == 6 && qhex == 2) u = 10;
if(whirl::whirl && pseudohept(c) && !ishept(c)) if(gp::on && pseudohept(c) && !ishept(c))
u = 13; u = 13;
si.id = u; si.id = u;
@ -709,7 +709,7 @@ namespace patterns {
val_all(c, si, 0, 0); val_all(c, si, 0, 0);
// get id: // get id:
if((whirl::whirl? (S3==3) : !weirdhyperbolic) && isWarped(c)) if((gp::on? (S3==3) : !weirdhyperbolic) && isWarped(c))
val_warped(c, si); val_warped(c, si);
else { else {
si.id = ishept(c) ? 1 : 0; si.id = ishept(c) ? 1 : 0;
@ -737,7 +737,7 @@ namespace patterns {
} }
} }
if(whirl::whirl && has_nice_dual() && !ishept(c) && ishex1(c)) si.dir = fix6(si.dir+3); if(gp::on && has_nice_dual() && !ishept(c) && ishex1(c)) si.dir = fix6(si.dir+3);
} }
char whichPattern = 0; char whichPattern = 0;
@ -945,7 +945,7 @@ int pattern_threecolor(cell *c) {
if(a38) { if(a38) {
patterns::patterninfo si; patterns::patterninfo si;
patterns::val38(c, si, nonbitrunc ? 0 : patterns::SPF_ROT, patterns::PAT_COLORING); patterns::val38(c, si, nonbitrunc ? 0 : patterns::SPF_ROT, patterns::PAT_COLORING);
if(whirl::whirl && pseudohept(c)) return 0; if(gp::on && pseudohept(c)) return 0;
return si.id >> 2; return si.id >> 2;
} }
if(a46 && !nonbitrunc) { if(a46 && !nonbitrunc) {
@ -960,8 +960,8 @@ int pattern_threecolor(cell *c) {
} }
if(S7 == 4 && S3 == 3) { if(S7 == 4 && S3 == 3) {
int codesN[6] = {0,1,2,1,2,0}; int codesN[6] = {0,1,2,1,2,0};
if(whirl::whirl) { if(gp::on) {
auto li = whirl::get_local_info(c); auto li = gp::get_local_info(c);
int sp = (MODFIXER + li.relative.first + 2 * li.relative.second) % 3; int sp = (MODFIXER + li.relative.first + 2 * li.relative.second) % 3;
if(sp != 0) { if(sp != 0) {
if(li.last_dir & 1) if(li.last_dir & 1)
@ -1009,7 +1009,7 @@ int pattern_threecolor(cell *c) {
// in the 'pure heptagonal' tiling, returns true for a set of cells // in the 'pure heptagonal' tiling, returns true for a set of cells
// which roughly corresponds to the heptagons in the normal tiling // which roughly corresponds to the heptagons in the normal tiling
bool pseudohept(cell *c) { bool pseudohept(cell *c) {
if(whirl::whirl) return whirl::pseudohept_val(c) == 0; if(gp::on) return gp::pseudohept_val(c) == 0;
return pattern_threecolor(c) == 0; return pattern_threecolor(c) == 0;
} }
@ -1020,7 +1020,7 @@ bool warptype(cell *c) {
else else
return c->master->distance & 1; return c->master->distance & 1;
} }
else if(whirl::whirl) else if(gp::on)
return pseudohept(c); return pseudohept(c);
else else
return pattern_threecolor(c) == 0; return pattern_threecolor(c) == 0;
@ -1682,7 +1682,7 @@ namespace linepatterns {
break; break;
case patTriNet: case patTriNet:
if(whirl::whirl) { if(gp::on) {
if(c->master->c7 != c) if(gmatrix.count(c->mov[0])) if(c->master->c7 != c) if(gmatrix.count(c->mov[0]))
queueline(tC0(V), gmatrix[c->mov[0]]*C0, queueline(tC0(V), gmatrix[c->mov[0]]*C0,
darkena(backcolor ^ 0xFFFFFF, 0, col), darkena(backcolor ^ 0xFFFFFF, 0, col),

View File

@ -1098,7 +1098,7 @@ struct usershape {
usershape *usershapes[USERSHAPEGROUPS][USERSHAPEIDS]; usershape *usershapes[USERSHAPEGROUPS][USERSHAPEIDS];
void drawTentacle(hpcshape &h, ld rad, ld var, ld divby) { void drawTentacle(hpcshape &h, ld rad, ld var, ld divby) {
double tlength = max(crossf, hexhexdist * whirl::scale); double tlength = max(crossf, hexhexdist * gp::scale);
for(int i=0; i<=20; i++) for(int i=0; i<=20; i++)
hpcpush(ddi(S21, rad + var * sin(i * M_PI/divby)) * ddi(0, tlength * i/20.) * C0); hpcpush(ddi(S21, rad + var * sin(i * M_PI/divby)) * ddi(0, tlength * i/20.) * C0);
for(int i=20; i>=0; i--) for(int i=20; i>=0; i--)
@ -1215,9 +1215,9 @@ void bshape(hpcshape& sh, int p, double shzoom, int shapeid, double bonus = 0, f
hpcpush(ipoint(0, 1)); hpcpush(ipoint(0, 1));
} }
void bshape_whirl(hpcshape sh[3], int p, double shzoom, int shapeid, double bonus = 0) { void bshape_goldberg(hpcshape sh[3], int p, double shzoom, int shapeid, double bonus = 0) {
ld bonus2 = bonus; ld bonus2 = bonus;
if(S7 == 8 && whirl::whirl) if(S7 == 8 && gp::on)
bonus2 += M_PI / 8, bonus += M_PI / 6 + .4; bonus2 += M_PI / 8, bonus += M_PI / 6 + .4;
bshape(sh[1], p, shzoom, shapeid, bonus2); bshape(sh[1], p, shzoom, shapeid, bonus2);
bshape(sh[2], p, shzoom * .8, shapeid, bonus + M_PI/S7 - (a38? .25 : .15), 1); bshape(sh[2], p, shzoom * .8, shapeid, bonus + M_PI/S7 - (a38? .25 : .15), 1);
@ -1366,16 +1366,16 @@ void buildpolys() {
{double x = hexvdist; {double x = hexvdist;
bshape(shFullFloor[0], PPR_FLOOR); bshape(shFullFloor[0], PPR_FLOOR);
x *= bscale6; x *= bscale6;
x *= whirl::scale; x *= gp::scale;
if(whirl::scale != 1) x *= 1.6; if(gp::scale != 1) x *= 1.6;
// if(whirl::whirl::coords == whirl::euc_coord(2,0)) x /= 1.2; // if(gp::gp::coords == gp::euc_coord(2,0)) x /= 1.2;
// if(whirl::whirl::coords == whirl::euc_coord(3,0)) x /= 2; // if(gp::gp::coords == gp::euc_coord(3,0)) x /= 2;
for(int t=0; t<=S6; t++) hpcpush(ddi(S7 + t*S14, x) * C0); for(int t=0; t<=S6; t++) hpcpush(ddi(S7 + t*S14, x) * C0);
x = rhexf; x = rhexf;
x *= bscale7; x *= bscale7;
x *= whirl::scale; x *= gp::scale;
if(whirl::scale != 1) x *= 1.6; if(gp::scale != 1) x *= 1.6;
bshape(shFullFloor[1], PPR_FLOOR); bshape(shFullFloor[1], PPR_FLOOR);
for(int t=0; t<=S7; t++) hpcpush(ddi(t*S12+td, x) * C0); for(int t=0; t<=S7; t++) hpcpush(ddi(t*S12+td, x) * C0);
} }
@ -1383,13 +1383,13 @@ void buildpolys() {
{double x = hexvdist; {double x = hexvdist;
bshape(shFullCross[0], PPR_FLOOR); bshape(shFullCross[0], PPR_FLOOR);
x *= bscale6; x *= bscale6;
x *= whirl::scale; x *= gp::scale;
if(whirl::scale != 1) x /= 2; if(gp::scale != 1) x /= 2;
for(int t=0; t<=S6; t++) { hpcpush(C0); if(t) hpcpush(ddi(S7 + t*S14, x) * C0); } for(int t=0; t<=S6; t++) { hpcpush(C0); if(t) hpcpush(ddi(S7 + t*S14, x) * C0); }
x = rhexf; x = rhexf;
x *= bscale7; x *= bscale7;
x *= whirl::scale; x *= gp::scale;
bshape(shFullCross[1], PPR_FLOOR); bshape(shFullCross[1], PPR_FLOOR);
for(int t=0; t<=S7; t++) { hpcpush(C0); if(t) hpcpush(ddi(t*S12+td, x) * C0); } for(int t=0; t<=S7; t++) { hpcpush(C0); if(t) hpcpush(ddi(t*S12+td, x) * C0); }
} }
@ -1404,7 +1404,7 @@ void buildpolys() {
double floorrad1 = strict ? hcrossf : euclid ? shexf*fac80*spzoom : shexf*fac94; double floorrad1 = strict ? hcrossf : euclid ? shexf*fac80*spzoom : shexf*fac94;
double triangleside = hcrossf*.94 * (whirl::whirl ? 1.5 * whirl::scale : 1); double triangleside = hcrossf*.94 * (gp::on ? 1.5 * gp::scale : 1);
if(euclid4) { if(euclid4) {
if(nonbitrunc) if(nonbitrunc)
@ -1626,7 +1626,7 @@ void buildpolys() {
else if(a38) disksize *= 1.5; else if(a38) disksize *= 1.5;
else if(nonbitrunc && S6 == 8) disksize *= 1.5; else if(nonbitrunc && S6 == 8) disksize *= 1.5;
if(a38 && whirl::whirl) disksize /= 2; if(a38 && gp::on) disksize /= 2;
bshape(shDisk, PPR_ITEM); bshape(shDisk, PPR_ITEM);
for(int i=0; i<=S84; i+=S3) for(int i=0; i<=S84; i+=S3)
@ -1844,11 +1844,11 @@ void buildpolys() {
if(a46 && !nonbitrunc) spzoom6 *= .9; if(a46 && !nonbitrunc) spzoom6 *= .9;
if(a47 && !nonbitrunc) spzoom6 *= .85; if(a47 && !nonbitrunc) spzoom6 *= .85;
ld whirlf = 1; ld goldbf = 1;
if(whirl::scale != 1) whirlf = whirl::scale * 1.6; if(gp::scale != 1) goldbf = gp::scale * 1.6;
ld whirlf2 = whirl::scale; ld goldbf2 = gp::scale;
double espzoom6 = spzoom6, espzoomd7 = spzoomd7; double espzoom6 = spzoom6, espzoomd7 = spzoomd7;
@ -1874,9 +1874,9 @@ void buildpolys() {
bshape(shCloudFloor[2], PPR_FLOOR, euclid ? scalef2 : scalef2*spzoom6*.9, 3); bshape(shCloudFloor[2], PPR_FLOOR, euclid ? scalef2 : scalef2*spzoom6*.9, 3);
bshape(shCrossFloor[0], PPR_FLOOR, scalef*espzoom6*gsca(sphere,.9)*ffscale2, 5, ffspin2); bshape(shCrossFloor[0], PPR_FLOOR, scalef*espzoom6*gsca(sphere,.9)*ffscale2, 5, ffspin2);
bshape_whirl(shCrossFloor, PPR_FLOOR, scalef*espzoomd7*gsca(sphere,.9)*ffscale2 * gsca(a47,1.3), 6, octroll); bshape_goldberg(shCrossFloor, PPR_FLOOR, scalef*espzoomd7*gsca(sphere,.9)*ffscale2 * gsca(a47,1.3), 6, octroll);
double ntscale = gsca(nonbitrunc, gsca(a38, 1.4, a47, 2, a46, 1.525)) * whirl::scale; double ntscale = gsca(nonbitrunc, gsca(a38, 1.4, a47, 2, a46, 1.525)) * gp::scale;
double ntrot = grot(a46&&nonbitrunc, .25, a38&&nonbitrunc, -.2); double ntrot = grot(a46&&nonbitrunc, .25, a38&&nonbitrunc, -.2);
bshape(shChargedFloor[0], PPR_FLOOR, scalef*espzoom6*gsca(sphere,.9)*ffscale2, 7, ffspin2); bshape(shChargedFloor[0], PPR_FLOOR, scalef*espzoom6*gsca(sphere,.9)*ffscale2, 7, ffspin2);
@ -1885,34 +1885,34 @@ void buildpolys() {
bshape(shChargedFloor[3], 12, spzoomd7 * gsca(a4 && euclid, .4, a4,1.2,sphere&&nonbitrunc,.9)* ntscale, 10, ntrot + grot(euclid4 && nonbitrunc, M_PI/4 + .1)); // nonbitrunc variant bshape(shChargedFloor[3], 12, spzoomd7 * gsca(a4 && euclid, .4, a4,1.2,sphere&&nonbitrunc,.9)* ntscale, 10, ntrot + grot(euclid4 && nonbitrunc, M_PI/4 + .1)); // nonbitrunc variant
bshape(shSStarFloor[0], PPR_FLOOR, scalef*spzoom6*gsca(sphere,.8)*ffscale2, 11, grot(a4,.775)); bshape(shSStarFloor[0], PPR_FLOOR, scalef*spzoom6*gsca(sphere,.8)*ffscale2, 11, grot(a4,.775));
bshape_whirl(shSStarFloor, PPR_FLOOR, scalef*spzoomd7*gsca(a4,.85), 12, octroll); bshape_goldberg(shSStarFloor, PPR_FLOOR, scalef*spzoomd7*gsca(a4,.85), 12, octroll);
bshape(shOverFloor[0], PPR_FLOOR, scalef*spzoom * gsca(a47,1.3, a45,1.3, a46,1.1), 13, grot(a47,-.75, a45,-.7, a46,.9)); bshape(shOverFloor[0], PPR_FLOOR, scalef*spzoom * gsca(a47,1.3, a45,1.3, a46,1.1), 13, grot(a47,-.75, a45,-.7, a46,.9));
if(nonbitrunc) { if(nonbitrunc) {
if(a4) bshape(shOverFloor[1], PPR_FLOOR, whirlf2, 368 + S7 - 5, 0); if(a4) bshape(shOverFloor[1], PPR_FLOOR, goldbf2, 368 + S7 - 5, 0);
else bshape(shOverFloor[1], PPR_FLOOR, whirlf2 * gsca(a38,1.3, sphere, .83), 14, octroll + grot(a38,.4)); else bshape(shOverFloor[1], PPR_FLOOR, goldbf2 * gsca(a38,1.3, sphere, .83), 14, octroll + grot(a38,.4));
} }
else bshape(shOverFloor[1], PPR_FLOOR, scalef*spzoom7, 15); else bshape(shOverFloor[1], PPR_FLOOR, scalef*spzoom7, 15);
bshape(shOverFloor[2], PPR_FLOOR, euclid?scalef*1.2:spzoom7, 16); bshape(shOverFloor[2], PPR_FLOOR, euclid?scalef*1.2:spzoom7, 16);
bshape(shTriFloor[0], PPR_FLOOR, scalef*espzoom6*gsca(sphere,.9, a4,.9)*ffscale2, 17, ffspin2 + grot(a47,.1)); bshape(shTriFloor[0], PPR_FLOOR, scalef*espzoom6*gsca(sphere,.9, a4,.9)*ffscale2, 17, ffspin2 + grot(a47,.1));
bshape_whirl(shTriFloor, PPR_FLOOR, scalef*espzoomd7*ffscale2*gsca(a4,1.2, a47,1.5), 18, octroll + grot(a4,.25, a47,-.1, sphere4,.7) + grot(euclid&&a4, M_PI/8)); bshape_goldberg(shTriFloor, PPR_FLOOR, scalef*espzoomd7*ffscale2*gsca(a4,1.2, a47,1.5), 18, octroll + grot(a4,.25, a47,-.1, sphere4,.7) + grot(euclid&&a4, M_PI/8));
bshape(shFeatherFloor[0], PPR_FLOOR, scalef*spzoom6*ffscale2, 19, ffspin2); bshape(shFeatherFloor[0], PPR_FLOOR, scalef*spzoom6*ffscale2, 19, ffspin2);
if(nonbitrunc) bshape(shFeatherFloor[1], PPR_FLOOR, sphere ? .83 : gsca(ap4,1.1) * ntscale, 20, ntrot); if(nonbitrunc) bshape(shFeatherFloor[1], PPR_FLOOR, sphere ? .83 : gsca(ap4,1.1) * ntscale, 20, ntrot);
else bshape(shFeatherFloor[1], PPR_FLOOR, scalef*spzoom7*gsca(sphere,1.1,a4,1.1)*ffscale2*ntscale, 21, sphere?1.3:ntrot); else bshape(shFeatherFloor[1], PPR_FLOOR, scalef*spzoom7*gsca(sphere,1.1,a4,1.1)*ffscale2*ntscale, 21, sphere?1.3:ntrot);
bshape(shFeatherFloor[2], PPR_FLOOR, scalef*1.1, 22); // Euclidean variant bshape(shFeatherFloor[2], PPR_FLOOR, scalef*1.1, 22); // Euclidean variant
bshape(shBarrowFloor[0], PPR_FLOOR, whirlf * gsca(euclid,.9) * spzoom6 * gsca(a467,1.7, a46,.8, a38,1.4) * gsca(euclid&&a4, .7), 23); bshape(shBarrowFloor[0], PPR_FLOOR, goldbf * gsca(euclid,.9) * spzoom6 * gsca(a467,1.7, a46,.8, a38,1.4) * gsca(euclid&&a4, .7), 23);
bshape(shBarrowFloor[1], PPR_FLOOR, whirlf * spzoomd7 * gsca(a4,1.15, a467,1.9, a46,.8, a38,1.5, sphere&&nonbitrunc,.9) * gsca(euclid&&a4, .5), 24, octroll - grot(a47,.1)); bshape(shBarrowFloor[1], PPR_FLOOR, goldbf * spzoomd7 * gsca(a4,1.15, a467,1.9, a46,.8, a38,1.5, sphere&&nonbitrunc,.9) * gsca(euclid&&a4, .5), 24, octroll - grot(a47,.1));
bshape(shBarrowFloor[2], PPR_FLOOR, ntscale*gsca(sphere||euclid,.9) * gsca(euclid&&a4&&nonbitrunc, .5), 25, ntrot + grot(euclid&&a4&&nonbitrunc, M_PI/4)); bshape(shBarrowFloor[2], PPR_FLOOR, ntscale*gsca(sphere||euclid,.9) * gsca(euclid&&a4&&nonbitrunc, .5), 25, ntrot + grot(euclid&&a4&&nonbitrunc, M_PI/4));
bshape(shNewFloor[0], PPR_FLOOR, scalef*espzoom6 * ffscale2, 26, ffspin2); bshape(shNewFloor[0], PPR_FLOOR, scalef*espzoom6 * ffscale2, 26, ffspin2);
bshape_whirl(shNewFloor, PPR_FLOOR, scalef*espzoomd7 * ffscale2, 27, octroll); bshape_goldberg(shNewFloor, PPR_FLOOR, scalef*espzoomd7 * ffscale2, 27, octroll);
bshape(shTrollFloor[0], PPR_FLOOR, spzoom6*gsca(a38,1.4, a467,1.6, a46,.8), 28); bshape(shTrollFloor[0], PPR_FLOOR, spzoom6*gsca(a38,1.4, a467,1.6, a46,.8), 28);
bshape(shTrollFloor[1], PPR_FLOOR, spzoomd7*gsca(a38, 1.6, a467,2.4, a46,.8), 29, octroll); bshape(shTrollFloor[1], PPR_FLOOR, spzoomd7*gsca(a38, 1.6, a467,2.4, a46,.8), 29, octroll);
bshape(shButterflyFloor[0], PPR_FLOOR, scalef*espzoom6*gsca(sphere,.9)*ffscale2, 325, ffspin2); bshape(shButterflyFloor[0], PPR_FLOOR, scalef*espzoom6*gsca(sphere,.9)*ffscale2, 325, ffspin2);
bshape_whirl(shButterflyFloor, PPR_FLOOR, scalef*espzoomd7*ffscale2, 326, sphere?.7:0); bshape_goldberg(shButterflyFloor, PPR_FLOOR, scalef*espzoomd7*ffscale2, 326, sphere?.7:0);
bshape(shLavaFloor[0], PPR_FLOOR, scalef*espzoom6 * ffscale2, 359, ffspin2); bshape(shLavaFloor[0], PPR_FLOOR, scalef*espzoom6 * ffscale2, 359, ffspin2);
bshape_whirl(shLavaFloor, PPR_FLOOR, scalef*espzoomd7 * ffscale2 * gsca(a467,1.4), 360, octroll); bshape_goldberg(shLavaFloor, PPR_FLOOR, scalef*espzoomd7 * ffscale2 * gsca(a467,1.4), 360, octroll);
bshape(shHalfFloor[0], PPR_FLOOR, scalef*spzoom6, 329); bshape(shHalfFloor[0], PPR_FLOOR, scalef*spzoom6, 329);
bshape(shHalfFloor[1], PPR_FLOOR, scalef*spzoom6, 327); bshape(shHalfFloor[1], PPR_FLOOR, scalef*spzoom6, 327);
@ -1927,7 +1927,7 @@ void buildpolys() {
bshape(shCloudSeabed[1], PPR_FLOOR, scalef*spzoom6 * gsca(a46,.5, a47,.6, a38,1.25, a45,.35), 337, grot(a46,-.2, a38,.2)); bshape(shCloudSeabed[1], PPR_FLOOR, scalef*spzoom6 * gsca(a46,.5, a47,.6, a38,1.25, a45,.35), 337, grot(a46,-.2, a38,.2));
bshape(shCloudSeabed[2], PPR_FLOOR, scalef*espzoom6, 337); bshape(shCloudSeabed[2], PPR_FLOOR, scalef*espzoom6, 337);
bshape(shCaveSeabed[0], PPR_FLOOR, scalef*spzoom6 * gsca(a45,.65, a46,.7, a47,.675), 338); bshape(shCaveSeabed[0], PPR_FLOOR, scalef*spzoom6 * gsca(a45,.65, a46,.7, a47,.675), 338);
bshape_whirl(shCaveSeabed, PPR_FLOOR, scalef*spzoom6 * gsca(a45,.5, a46,.6, a47,.725), 339, grot(a46,-.3)); bshape_goldberg(shCaveSeabed, PPR_FLOOR, scalef*spzoom6 * gsca(a45,.5, a46,.6, a47,.725), 339, grot(a46,-.3));
bshape(shCaveSeabed[3], PPR_FLOOR, scalef*spzoom6 * gsca(euclid,1.2), 54); bshape(shCaveSeabed[3], PPR_FLOOR, scalef*spzoom6 * gsca(euclid,1.2), 54);
if(false) for(int i=0; i<8; i++) { if(false) for(int i=0; i<8; i++) {
@ -1963,7 +1963,7 @@ void buildpolys() {
bshape(shTriheptaEucShadow[1], PPR_FLOOR, scalef*SHADMUL, 43); bshape(shTriheptaEucShadow[1], PPR_FLOOR, scalef*SHADMUL, 43);
bshape(shTriheptaEucShadow[2], PPR_FLOOR, scalef*SHADMUL, 44); bshape(shTriheptaEucShadow[2], PPR_FLOOR, scalef*SHADMUL, 44);
bshape(shPalaceFloor[0], PPR_FLOOR, scalef*espzoom6*ffscale2, 45, grot(a4,.775)); bshape(shPalaceFloor[0], PPR_FLOOR, scalef*espzoom6*ffscale2, 45, grot(a4,.775));
bshape_whirl(shPalaceFloor, PPR_FLOOR, scalef*espzoomd7*gsca(a4,.85), 46, grot(a46,-.3, a38, -.6) + grot(euclid&&a4, M_PI/4)); bshape_goldberg(shPalaceFloor, PPR_FLOOR, scalef*espzoomd7*gsca(a4,.85), 46, grot(a46,-.3, a38, -.6) + grot(euclid&&a4, M_PI/4));
bshape(shMercuryBridge[0], PPR_FLOOR, scalef*spzoom6, 365); bshape(shMercuryBridge[0], PPR_FLOOR, scalef*spzoom6, 365);
bshape(shMercuryBridge[1], PPR_FLOOR, scalef*spzoomd7, 366); bshape(shMercuryBridge[1], PPR_FLOOR, scalef*spzoomd7, 366);
@ -1972,20 +1972,20 @@ void buildpolys() {
bshape(shPalaceGate, PPR_STRUCT1, scalef, 47); bshape(shPalaceGate, PPR_STRUCT1, scalef, 47);
bshape(shSemiFeatherFloor[0], PPR_FLOOR, scalef*spzoom6, 48); bshape(shSemiFeatherFloor[0], PPR_FLOOR, scalef*spzoom6, 48);
bshape(shSemiFeatherFloor[1], PPR_FLOOR, scalef*spzoom6, 49); bshape(shSemiFeatherFloor[1], PPR_FLOOR, scalef*spzoom6, 49);
bshape_whirl(shDemonFloor, PPR_FLOOR, scalef*espzoomd7 * ffscale2 * gsca(ap4,1.6, sphere,.9), 50, grot(sphere,M_PI, a38, .2)); bshape_goldberg(shDemonFloor, PPR_FLOOR, scalef*espzoomd7 * ffscale2 * gsca(ap4,1.6, sphere,.9), 50, grot(sphere,M_PI, a38, .2));
bshape(shDemonFloor[0], PPR_FLOOR, scalef*espzoom6*gsca(sphere,.9) * ffscale2, 51, ffspin2); bshape(shDemonFloor[0], PPR_FLOOR, scalef*espzoom6*gsca(sphere,.9) * ffscale2, 51, ffspin2);
bshape(shCaveFloor[0], PPR_FLOOR, scalef*spzoom6 * ffscale2, 52, ffspin2); bshape(shCaveFloor[0], PPR_FLOOR, scalef*spzoom6 * ffscale2, 52, ffspin2);
bshape_whirl(shCaveFloor, PPR_FLOOR, scalef*spzoomd7 * ffscale2 * gsca(sphere,.9, ap4,1.6), 53, octroll); bshape_goldberg(shCaveFloor, PPR_FLOOR, scalef*spzoomd7 * ffscale2 * gsca(sphere,.9, ap4,1.6), 53, octroll);
bshape(shCaveFloor[3], PPR_FLOOR, scalef*1.1, 54); // Euclidean variant bshape(shCaveFloor[3], PPR_FLOOR, scalef*1.1, 54); // Euclidean variant
bshape(shDesertFloor[0], PPR_FLOOR, scalef*espzoom6*ffscale6, 55, ffspin6); bshape(shDesertFloor[0], PPR_FLOOR, scalef*espzoom6*ffscale6, 55, ffspin6);
bshape_whirl(shDesertFloor, PPR_FLOOR, scalef*espzoomd7*gsca(sphere,.9), 56, octroll+ffspin7); bshape_goldberg(shDesertFloor, PPR_FLOOR, scalef*espzoomd7*gsca(sphere,.9), 56, octroll+ffspin7);
for(int i=1; i<=3; i++) for(int j=0; j<3; j++) for(int i=1; i<=3; i++) for(int j=0; j<3; j++)
zoomShape(shDesertFloor[j], shRedRockFloor[i-1][j], 1 - .1 * i, PPR_FLOORa+i); zoomShape(shDesertFloor[j], shRedRockFloor[i-1][j], 1 - .1 * i, PPR_FLOORa+i);
bshape(shPowerFloor[0], PPR_FLOOR_DRAGON, scalef*espzoom6*gsca(sphere,.8)*ffscale2, 57, ffspin2); bshape(shPowerFloor[0], PPR_FLOOR_DRAGON, scalef*espzoom6*gsca(sphere,.8)*ffscale2, 57, ffspin2);
bshape_whirl(shPowerFloor, PPR_FLOOR_DRAGON, scalef*espzoomd7*ffscale2, 58, octroll); bshape_goldberg(shPowerFloor, PPR_FLOOR_DRAGON, scalef*espzoomd7*ffscale2, 58, octroll);
bshape(shRoseFloor[2], PPR_FLOOR, whirlf, 173); // nonbitrunc bshape(shRoseFloor[2], PPR_FLOOR, goldbf, 173); // nonbitrunc
bshape(shRoseFloor[0], PPR_FLOOR, whirlf * gsca(euclid,.9), 174); bshape(shRoseFloor[0], PPR_FLOOR, goldbf * gsca(euclid,.9), 174);
bshape(shRoseFloor[1], PPR_FLOOR, whirlf * gsca(euclid,.9) * scalef * gsca(ap4,.85), 175, grot(ap4, M_PI/8)); bshape(shRoseFloor[1], PPR_FLOOR, goldbf * gsca(euclid,.9) * scalef * gsca(ap4,.85), 175, grot(ap4, M_PI/8));
bshape(shSwitchFloor[0], PPR_FLOOR, scalef*spzoom6*ffscale2, 377, ffspin2); bshape(shSwitchFloor[0], PPR_FLOOR, scalef*spzoom6*ffscale2, 377, ffspin2);
bshape(shSwitchFloor[1], PPR_FLOOR, scalef*spzoomd7*ffscale2, 378, ffspin2); bshape(shSwitchFloor[1], PPR_FLOOR, scalef*spzoomd7*ffscale2, 378, ffspin2);
@ -1993,8 +1993,8 @@ void buildpolys() {
bshape(shSwitchDisk, PPR_FLOOR); for(int i=0; i<=S84; i+=S3) hpcpush(ddi(i, .06) * C0); bshape(shSwitchDisk, PPR_FLOOR); for(int i=0; i<=S84; i+=S3) hpcpush(ddi(i, .06) * C0);
bshape(shTurtleFloor[0], PPR_FLOOR, whirlf * gsca(euclid,.9, sphere, .9*1.3, a4, 1.6, a38, 1.3, a467, 1.4) * gsca(euclid&&a4, .9), 176); bshape(shTurtleFloor[0], PPR_FLOOR, goldbf * gsca(euclid,.9, sphere, .9*1.3, a4, 1.6, a38, 1.3, a467, 1.4) * gsca(euclid&&a4, .9), 176);
bshape(shTurtleFloor[1], PPR_FLOOR, whirlf * scalef * gsca(euclid,.9, a4, .9, a47,1.3) * gsca(euclid&&a4, .8), 177, octroll - grot(a47,.1)); bshape(shTurtleFloor[1], PPR_FLOOR, goldbf * scalef * gsca(euclid,.9, a4, .9, a47,1.3) * gsca(euclid&&a4, .8), 177, octroll - grot(a47,.1));
bshape(shTurtleFloor[2], PPR_FLOOR, ntscale * gsca(sphere && nonbitrunc, .9) * gsca(euclid&&a4&&nonbitrunc, .5), 178, ntrot + grot(euclid&&a4&&nonbitrunc, M_PI/4)); // nonbitrunc bshape(shTurtleFloor[2], PPR_FLOOR, ntscale * gsca(sphere && nonbitrunc, .9) * gsca(euclid&&a4&&nonbitrunc, .5), 178, ntrot + grot(euclid&&a4&&nonbitrunc, M_PI/4)); // nonbitrunc
bshape(shDragonFloor[0], PPR_FLOOR_DRAGON, gsca(a4,1.6, a38, 1.3) * gsca(euclid&&a4, .5), 181, ffspin2); bshape(shDragonFloor[0], PPR_FLOOR_DRAGON, gsca(a4,1.6, a38, 1.3) * gsca(euclid&&a4, .5), 181, ffspin2);
@ -2063,17 +2063,17 @@ void buildpolys() {
bshape(shWormTail, PPR_TENTACLE1, scalef, 383); bshape(shWormTail, PPR_TENTACLE1, scalef, 383);
bshape(shSmallWormTail, PPR_TENTACLE1, scalef, 384); bshape(shSmallWormTail, PPR_TENTACLE1, scalef, 384);
if(nonbitrunc) bshape(shDragonSegment, PPR_TENTACLE1, whirl::scale, 233); if(nonbitrunc) bshape(shDragonSegment, PPR_TENTACLE1, gp::scale, 233);
else bshape(shDragonSegment, PPR_TENTACLE1, scalef, 234); else bshape(shDragonSegment, PPR_TENTACLE1, scalef, 234);
bshape(shDragonWings, PPR_ONTENTACLE, scalef, 237); bshape(shDragonWings, PPR_ONTENTACLE, scalef, 237);
bshape(shDragonLegs, PPR_TENTACLE0, scalef, 238); bshape(shDragonLegs, PPR_TENTACLE0, scalef, 238);
if(nonbitrunc) bshape(shDragonTail, PPR_TENTACLE1, whirl::scale, 239); if(nonbitrunc) bshape(shDragonTail, PPR_TENTACLE1, gp::scale, 239);
else bshape(shDragonTail, PPR_TENTACLE1, scalef, 240); else bshape(shDragonTail, PPR_TENTACLE1, scalef, 240);
bshape(shDragonNostril, PPR_ONTENTACLE_EYES, scalef, 241); bshape(shDragonNostril, PPR_ONTENTACLE_EYES, scalef, 241);
bshape(shDragonHead, PPR_ONTENTACLE, scalef, 242); bshape(shDragonHead, PPR_ONTENTACLE, scalef, 242);
if(nonbitrunc) bshape(shSeaTentacle, PPR_TENTACLE1, whirl::scale, 245); if(nonbitrunc) bshape(shSeaTentacle, PPR_TENTACLE1, gp::scale, 245);
else bshape(shSeaTentacle, PPR_TENTACLE1, 1, 246); else bshape(shSeaTentacle, PPR_TENTACLE1, 1, 246);
ld ksc = (nonbitrunc ? 1.8 : 1.5) * whirl::scale; ld ksc = (nonbitrunc ? 1.8 : 1.5) * gp::scale;
bshape(shKrakenHead, PPR_ONTENTACLE, ksc, 247); bshape(shKrakenHead, PPR_ONTENTACLE, ksc, 247);
bshape(shKrakenEye, PPR_ONTENTACLE_EYES, ksc, 248); bshape(shKrakenEye, PPR_ONTENTACLE_EYES, ksc, 248);
bshape(shKrakenEye2, PPR_ONTENTACLE_EYES2, ksc, 249); bshape(shKrakenEye2, PPR_ONTENTACLE_EYES2, ksc, 249);
@ -2304,10 +2304,10 @@ void buildpolys() {
for(int v=0; v<13; v++) for(int z=0; z<2; z++) for(int v=0; v<13; v++) for(int z=0; z<2; z++)
copyshape(shTortoise[v][4+z], shTortoise[v][2+z], shTortoise[v][2+z].prio + (PPR_CARRIED-PPR_ITEM)); copyshape(shTortoise[v][4+z], shTortoise[v][2+z], shTortoise[v][2+z].prio + (PPR_CARRIED-PPR_ITEM));
if(nonbitrunc) bshape(shMagicSword, PPR_MAGICSWORD, whirl::scale, 243); if(nonbitrunc) bshape(shMagicSword, PPR_MAGICSWORD, gp::scale, 243);
else bshape(shMagicSword, PPR_MAGICSWORD, 1, 244); else bshape(shMagicSword, PPR_MAGICSWORD, 1, 244);
if(nonbitrunc) bshape(shMagicShovel, PPR_MAGICSWORD, whirl::scale, 333); if(nonbitrunc) bshape(shMagicShovel, PPR_MAGICSWORD, gp::scale, 333);
else bshape(shMagicShovel, PPR_MAGICSWORD, 1, 333); else bshape(shMagicShovel, PPR_MAGICSWORD, 1, 333);
bshape(shBead0, 20, 1, 250); bshape(shBead0, 20, 1, 250);
@ -3520,7 +3520,7 @@ NEWSHAPE
/* floors */ /* floors */
// need eswap // need eswap
#define nbtplain (nonbitrunc && !whirl::whirl) #define nbtplain (nonbitrunc && !gp::on)
#define nbtnice (!has_nice_dual()) #define nbtnice (!has_nice_dual())

View File

@ -3388,9 +3388,9 @@ transmatrix calc_relative_matrix_help(cell *c, heptagon *h1) {
transmatrix gm = Id; transmatrix gm = Id;
heptagon *h2 = c->master; heptagon *h2 = c->master;
transmatrix where = Id; transmatrix where = Id;
if(whirl::whirl && c != c->master->c7) { if(gp::on && c != c->master->c7) {
auto li = whirl::get_local_info(c); auto li = gp::get_local_info(c);
where = whirl::Tf[li.last_dir][li.relative.first&31][li.relative.second&31][fix6(li.total_dir)]; where = gp::Tf[li.last_dir][li.relative.first&31][li.relative.second&31][fix6(li.total_dir)];
} }
else if(!nonbitrunc) for(int d=0; d<S7; d++) if(h2->c7->mov[d] == c) else if(!nonbitrunc) for(int d=0; d<S7; d++) if(h2->c7->mov[d] == c)
where = hexmove[d]; where = hexmove[d];

View File

@ -102,7 +102,7 @@ void initgame() {
if(isGravityLand(firstland) && !tactic::on) firstland = weirdhyperbolic ? laCrossroads4 : laCrossroads; if(isGravityLand(firstland) && !tactic::on) firstland = weirdhyperbolic ? laCrossroads4 : laCrossroads;
cwt.c = currentmap->gamestart(); cwt.spin = 0; cwt.mirrored = false; cwt.c = currentmap->gamestart(); cwt.spin = 0; cwt.mirrored = false;
cwt.c->land = ((geometry || whirl::whirl) && !safety) ? specialland : firstland; cwt.c->land = ((geometry || gp::on) && !safety) ? specialland : firstland;
chaosAchieved = false; chaosAchieved = false;
@ -1110,7 +1110,7 @@ void restartGame(char switchWhat, bool push, bool keep_screens) {
if(switchWhat == '7' || switchWhat == 'w') { if(switchWhat == '7' || switchWhat == 'w') {
if(euclid6) geometry = gNormal; if(euclid6) geometry = gNormal;
nonbitrunc = !nonbitrunc; nonbitrunc = !nonbitrunc;
whirl::whirl = (switchWhat == 'w'); gp::on = (switchWhat == 'w');
resetGeometry(); resetGeometry();
#if CAP_TEXTURE #if CAP_TEXTURE
if(texture::config.tstate == texture::tsActive) if(texture::config.tstate == texture::tsActive)
@ -1124,7 +1124,7 @@ void restartGame(char switchWhat, bool push, bool keep_screens) {
else geometry = targetgeometry; else geometry = targetgeometry;
if(chaosmode && (euclid || sphere || quotient)) chaosmode = false; if(chaosmode && (euclid || sphere || quotient)) chaosmode = false;
if(nonbitrunc && euclid6) nonbitrunc = false; if(nonbitrunc && euclid6) nonbitrunc = false;
if(whirl::whirl && (S3 != 3 || elliptic)) whirl::whirl = false; if(gp::on && (S3 != 3 || elliptic)) gp::on = false;
resetGeometry(); resetGeometry();
#if CAP_TEXTURE #if CAP_TEXTURE

View File

@ -264,10 +264,10 @@ int getTriangleID(cell *c, patterns::patterninfo& si, hyperpoint h) {
return best; return best;
} }
int whirlcode(cell *c, const patterns::patterninfo& si) { int goldbergcode(cell *c, const patterns::patterninfo& si) {
if(!whirl::whirl) return 0; if(!gp::on) return 0;
else if(c == c->master->c7) return (fixdir(si.dir, c) << 8); else if(c == c->master->c7) return (fixdir(si.dir, c) << 8);
else return (get_code(whirl::get_local_info(c)) << 16) | (fixdir(si.dir, c) << 8); else return (get_code(gp::get_local_info(c)) << 16) | (fixdir(si.dir, c) << 8);
} }
void mapTexture(cell *c, textureinfo& mi, patterns::patterninfo &si, const transmatrix& T, int shift = 0) { void mapTexture(cell *c, textureinfo& mi, patterns::patterninfo &si, const transmatrix& T, int shift = 0) {
@ -275,15 +275,15 @@ void mapTexture(cell *c, textureinfo& mi, patterns::patterninfo &si, const trans
mi.symmetries = si.symmetries; mi.symmetries = si.symmetries;
mi.current_type = c->type; mi.current_type = c->type;
if(whirl::whirl) { if(gp::on) {
mi.M = T; mi.M = T;
mi.triangles.clear(); mi.triangles.clear();
for(int i=0; i<c->type; i++) { for(int i=0; i<c->type; i++) {
int d = si.dir; int d = si.dir;
int i0 = fixdir(i + d + 0, c); int i0 = fixdir(i + d + 0, c);
int i1 = fixdir(i + d + 1, c); int i1 = fixdir(i + d + 1, c);
hyperpoint h1 = whirl::get_corner_position(c, i0); hyperpoint h1 = gp::get_corner_position(c, i0);
hyperpoint h2 = whirl::get_corner_position(c, i1); hyperpoint h2 = gp::get_corner_position(c, i1);
mi.triangles.emplace_back(make_array(C0, h1, h2), make_array(mi.M*C0, mi.M*h1, mi.M*h2)); mi.triangles.emplace_back(make_array(C0, h1, h2), make_array(mi.M*C0, mi.M*h1, mi.M*h2));
} }
} }
@ -331,9 +331,9 @@ bool texture_config::apply(cell *c, const transmatrix &V, int col) {
return false; return false;
} }
try { try {
auto& mi = texture_map.at(si.id + whirlcode(c, si)); auto& mi = texture_map.at(si.id + goldbergcode(c, si));
qfi.spin = whirl::whirl ? Id : applyPatterndir(c, si); qfi.spin = gp::on ? Id : applyPatterndir(c, si);
int n = mi.vertices.size(); int n = mi.vertices.size();
@ -351,7 +351,7 @@ bool texture_config::apply(cell *c, const transmatrix &V, int col) {
} }
lastptd().u.poly.tinf = &mi; lastptd().u.poly.tinf = &mi;
if(whirl::whirl) if(gp::on)
lastptd().u.poly.flags = POLY_INVERSE; lastptd().u.poly.flags = POLY_INVERSE;
if(grid_color) { if(grid_color) {
queuepolyat(V, shFullFloor[ctof(c)], 0, PPR_FLOOR); queuepolyat(V, shFullFloor[ctof(c)], 0, PPR_FLOOR);
@ -383,7 +383,7 @@ bool texture_config::apply(cell *c, const transmatrix &V, int col) {
return true; return true;
} }
catch(out_of_range) { catch(out_of_range) {
// printf("Ignoring tile #%d / %08x: not mapped\n", si.id, whirlcode(c, si)); // printf("Ignoring tile #%d / %08x: not mapped\n", si.id, goldbergcode(c, si));
return false; return false;
} }
} }
@ -426,7 +426,7 @@ void texture_config::perform_mapping() {
// int sgn = sphere ? -1 : 1; // int sgn = sphere ? -1 : 1;
si.id += whirlcode(c, si); si.id += goldbergcode(c, si);
if(!texture_map.count(si.id)) if(!texture_map.count(si.id))
replace = true; replace = true;
@ -1403,7 +1403,7 @@ void texture_config::remap(eTextureState old_tstate, eTextureState old_tstate_ma
auto si = patterns::getpatterninfo0(c); auto si = patterns::getpatterninfo0(c);
int oldid = si.id; int oldid = si.id;
si.id += whirlcode(c, si); si.id += goldbergcode(c, si);
if(texture_map.count(si.id)) continue; if(texture_map.count(si.id)) continue;