1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-12-23 16:50:27 +00:00

Fixed the bug with Caribbean in non-standard geometries (caused freezes, crashes, and bad horocycles)

This commit is contained in:
Zeno Rogue 2018-04-13 14:00:30 +02:00
parent 68a54c0695
commit 026e126dd2

View File

@ -182,6 +182,11 @@ heptagon *createAlternateMap(cell *c, int rad, hstate firststate, int special) {
cx[rad] = bf.c;
heptagon *h = bf.c->master;
if(h->alt) {
printf("Error: creatingAlternateMap while one already exists\n");
return NULL;
}
if(special == waPalace) {
// type 7 is ensured
@ -1118,7 +1123,7 @@ void buildBigStuff(cell *c, cell *from) {
hrand(2000) < (nonbitrunc ? 500 : 1000) && !tactic::on && !yendor::on)))
createAlternateMap(c, 2, hsA);
if(c->land == laCaribbean && horo_ok() && ctof(c))
if(c->land == laCaribbean && horo_ok() && ctof(c) && !c->master->alt)
createAlternateMap(c, 2, hsA);
if(c->land == laPalace && ctof(c) && !princess::generating && !shmup::on && multi::players == 1 && horo_ok() &&