mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-02-03 04:39:17 +00:00
racing:: better track generation in periodic Euclidean/Nil
This commit is contained in:
parent
47a1d77ee4
commit
2760e5aaf0
15
racing.cpp
15
racing.cpp
@ -279,13 +279,20 @@ void find_track(cell *start, int sign, int len) {
|
|||||||
forCellEx(c1, c) if(!bad(c1, c) && !parent.count(c1)) {
|
forCellEx(c1, c) if(!bad(c1, c) && !parent.count(c1)) {
|
||||||
parent[c1] = c;
|
parent[c1] = c;
|
||||||
int id;
|
int id;
|
||||||
if(nil) {
|
/* if(nil && !nilv::nilperiod[0]) {
|
||||||
switch(sign) {
|
switch(sign) {
|
||||||
case 1: id = c1->master->zebraval - start->master->zebraval; break;
|
case 1: id = c1->master->zebraval - start->master->zebraval; break;
|
||||||
case 2: id = start->master->emeraldval - c1->master->emeraldval; break;
|
case 2: id = start->master->emeraldval - c1->master->emeraldval; break;
|
||||||
case 3: id = start->master->zebraval - c1->master->zebraval; break;
|
case 3: id = start->master->zebraval - c1->master->zebraval; break;
|
||||||
case 4: id = start->master->emeraldval - c1->master->emeraldval; break;
|
case 4: id = start->master->emeraldval - c1->master->emeraldval; break;
|
||||||
}
|
}
|
||||||
|
} */
|
||||||
|
if(nil && !quotient) {
|
||||||
|
switch(sign) {
|
||||||
|
case 1: id = c1->master->emeraldval - start->master->emeraldval; break;
|
||||||
|
case 2: case 3: id = start->master->fieldval - c1->master->fieldval; break;
|
||||||
|
case 4: id = start->master->emeraldval - c1->master->emeraldval; break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(solnih)
|
else if(solnih)
|
||||||
id = (start->master->distance - c1->master->distance) * sign;
|
id = (start->master->distance - c1->master->distance) * sign;
|
||||||
@ -295,7 +302,8 @@ void find_track(cell *start, int sign, int len) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(euclid && (penrose || archimedean)) permanent_long_distances(goal);
|
if(euclid && (penrose || archimedean || quotient)) permanent_long_distances(goal);
|
||||||
|
if(nil && quotient) permanent_long_distances(goal);
|
||||||
|
|
||||||
if(solnih || nil || sl2) {
|
if(solnih || nil || sl2) {
|
||||||
vector<cell*> p;
|
vector<cell*> p;
|
||||||
@ -433,7 +441,8 @@ EX void generate_track() {
|
|||||||
makeEmpty(s);
|
makeEmpty(s);
|
||||||
cview(); // needed for some virtualRebases
|
cview(); // needed for some virtualRebases
|
||||||
|
|
||||||
if(euclid && (penrose || archimedean)) permanent_long_distances(s);
|
if(euclid && (penrose || archimedean || quotient)) permanent_long_distances(s);
|
||||||
|
if(nil && quotient) permanent_long_distances(s);
|
||||||
|
|
||||||
bounded_track = false;
|
bounded_track = false;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user