1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-12-25 01:20:37 +00:00

dual:: when one side is Euclidean, only the other one rotates

This commit is contained in:
Zeno Rogue 2020-01-30 17:45:51 +01:00
parent 8005b39f6f
commit e07f5fed0c
2 changed files with 9 additions and 1 deletions

View File

@ -1252,7 +1252,7 @@ void hrmap_standard::draw() {
EX void spinEdge(ld aspd) { EX void spinEdge(ld aspd) {
ld downspin = 0; ld downspin = 0;
auto& ds = downseek; auto& ds = downseek;
if(dual::state == 2 && dual::currently_loaded != dual::main_side) { if(dual::state == 2 && (dual::one_euclidean ? !euclid : dual::currently_loaded != dual::main_side)) {
transmatrix our = dual::get_orientation(); transmatrix our = dual::get_orientation();
transmatrix their = dual::player_orientation[dual::main_side]; transmatrix their = dual::player_orientation[dual::main_side];
fixmatrix(our); fixmatrix(our);

View File

@ -108,6 +108,9 @@ EX namespace dual {
/** 0 = dualmode off, 1 = in dualmode (no game chosen), 2 = in dualmode (working on one of subgames) */ /** 0 = dualmode off, 1 = in dualmode (no game chosen), 2 = in dualmode (working on one of subgames) */
EX int state; EX int state;
/** exactly one side is Euclidean -- it should not be synchronized with the other side */
EX bool one_euclidean;
EX int currently_loaded; EX int currently_loaded;
EX int main_side; EX int main_side;
EX bool affect_both; EX bool affect_both;
@ -332,6 +335,11 @@ EX namespace dual {
} }
EX void assign_landsides() { EX void assign_landsides() {
switch_to(!currently_loaded);
one_euclidean = euclid;
switch_to(!currently_loaded);
one_euclidean ^= euclid;
landsides.resize(landtypes); landsides.resize(landtypes);
int which_hyperbolic = -1; int which_hyperbolic = -1;
if(ginf[dgd[0].geo].cclass == gcHyperbolic && ginf[dgd[1].geo].cclass != gcHyperbolic) if(ginf[dgd[0].geo].cclass == gcHyperbolic && ginf[dgd[1].geo].cclass != gcHyperbolic)