1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-12-17 03:28:05 +00:00

geodesics in Sol

This commit is contained in:
Zeno Rogue
2019-07-28 11:07:21 +02:00
parent 9326b9594b
commit 598603c937
15 changed files with 519 additions and 162 deletions

View File

@@ -1152,14 +1152,18 @@ void set_geometry(eGeometry target) {
if(binarytiling || WDIM == 3 || penrose) variation = eVariation::pure;
#endif
if(DIM == 3 && old_DIM == 2 && pmodel == mdDisk) pmodel = mdPerspective;
if(DIM == 2 && pmodel == mdPerspective) pmodel = mdDisk;
if(sol && old_DIM == 2) pmodel = mdSolPerspective;
if(DIM == 2 && among(pmodel, mdPerspective, mdSolPerspective)) pmodel = mdDisk;
if(sol && old_DIM == 2 && vid.texture_step < 4) vid.texture_step = 4;
if(sol && shmup::on) shmup::on = false, racing::on = false;
}
}
void set_variation(eVariation target) {
if(variation != target) {
stop_game();
if(euclid6 || binarytiling) geometry = gNormal;
if(euclid6 || binarytiling || sol || penrose) geometry = gNormal;
auto& cd = ginf[gCrystal];
if(target == eVariation::bitruncated && geometry == gCrystal && cd.sides == 8 && cd.vertex == 4) {
cd.vertex = 3;
@@ -1250,7 +1254,7 @@ void switch_game_mode(char switchWhat) {
inv::on = false;
chaosmode = false;
princess::challenge = false;
if(bounded) set_geometry(gNormal);
if(sol || bounded) set_geometry(gNormal);
dual::disable();
break;
#endif
@@ -1272,6 +1276,7 @@ void switch_game_mode(char switchWhat) {
shmup::on = !shmup::on;
princess::challenge = false;
if(!shmup::on) racing::on = false;
if(sol) set_geometry(gNormal);
break;
case rg::randpattern: