1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-10-28 04:17:39 +00:00

new tiling: Arnold's cat

This commit is contained in:
Zeno Rogue
2019-11-08 15:01:03 +01:00
parent 2cf540cfbc
commit d199411248
13 changed files with 327 additions and 13 deletions

View File

@@ -47,6 +47,15 @@ EX namespace nisot {
#if CAP_SOLV
EX namespace solnihv {
EX eGeometry geom() {
switch(geometry) {
case gSol: case gArnoldCat:
return gSol;
default:
return geometry;
}
}
#if HDR
struct tabled_inverses {
int PRECX, PRECY, PRECZ;
@@ -432,7 +441,7 @@ EX namespace solnihv {
hyperpoint christoffel(const hyperpoint at, const hyperpoint velocity, const hyperpoint transported) {
const ld l2 = log(2);
const ld l3 = log(3);
switch(geometry) {
switch(geom()) {
case gSolN:
return hpxyz3(
-(velocity[2] * transported[0] + velocity[0] * transported[2]) * l2,
@@ -609,7 +618,7 @@ EX namespace solnihv {
EX tabled_inverses sont = solnihv::tabled_inverses("ssol-geodesics.dat");
EX tabled_inverses& get_tabled() {
switch(geometry) {
switch(geom()) {
case gSol: return solt;
case gNIH: return niht;
case gSolN: return sont;
@@ -1861,6 +1870,14 @@ EX namespace nisot {
nilv::set_flags();
return 0;
}
else if(argis("-catperiod")) {
PHASEFROM(2);
if(sol) stop_game();
shift(); asonov::period_xy = argi();
shift(); asonov::period_z = argi();
asonov::set_flags();
return 0;
}
return 1;
});