mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2026-03-14 00:59:43 +00:00
PSL(2,R)
This commit is contained in:
13
graph.cpp
13
graph.cpp
@@ -4426,7 +4426,7 @@ color_t transcolor(cell *c, cell *c2, color_t wcol) {
|
||||
|
||||
// how much should be the d-th wall darkened in 3D
|
||||
int get_darkval(cell *c, int d) {
|
||||
if(prod) {
|
||||
if(prod || sl2) {
|
||||
return d >= c->type - 2 ? 4 : 0;
|
||||
}
|
||||
const int darkval_hbt[9] = {0,2,2,0,6,6,8,8,0};
|
||||
@@ -4518,7 +4518,7 @@ EX int noclipped;
|
||||
void make_clipping_planes() {
|
||||
#if MAXMDIM >= 4
|
||||
clipping_planes.clear();
|
||||
if(PIU(sphere)) return;
|
||||
if(PIU(sphere) || experimental) return;
|
||||
auto add_clipping_plane = [] (ld x1, ld y1, ld x2, ld y2) {
|
||||
ld z1 = 1, z2 = 1;
|
||||
hyperpoint sx = point3(y1 * z2 - y2 * z1, z1 * x2 - z2 * x1, x1 * y2 - x2 * y1);
|
||||
@@ -6031,7 +6031,7 @@ EX void drawcell(cell *c, transmatrix V, int spinv, bool mirrored) {
|
||||
|
||||
for(int a=0; a<c->type; a++)
|
||||
if(c->move(a) && !isWall3(c->move(a), dummy)) {
|
||||
if(pmodel == mdPerspective && !sphere && !quotient && !penrose && !nonisotropic && !prod) {
|
||||
if(pmodel == mdPerspective && !sphere && !quotient && !penrose && !nonisotropic && !prod && !experimental) {
|
||||
if(a < 4 && among(geometry, gHoroTris, gBinary3) && celldistAlt(c) >= celldistAlt(viewcenter())) continue;
|
||||
else if(a < 2 && among(geometry, gHoroRec) && celldistAlt(c) >= celldistAlt(viewcenter())) continue;
|
||||
else if(c->move(a)->master->distance > c->master->distance && c->master->distance > viewctr.at->distance && !quotient) continue;
|
||||
@@ -6364,8 +6364,8 @@ EX void drawcell(cell *c, transmatrix V, int spinv, bool mirrored) {
|
||||
floorShadow(c, V, SHADOW_SL * sl);
|
||||
for(int s=0; s<sl; s++)
|
||||
forCellIdEx(c2, i, c) {
|
||||
int sl2 = snakelevel(c2);
|
||||
if(s >= sl2)
|
||||
int sl_2 = snakelevel(c2);
|
||||
if(s >= sl_2)
|
||||
if(placeSidewall(c, i, SIDE_SLEV+s, V, getSnakelevColor(c, s, sl, fd, wcol))) break;
|
||||
}
|
||||
}
|
||||
@@ -8043,7 +8043,8 @@ EX void drawBug(const cellwalker& cw, color_t col) {
|
||||
|
||||
EX cell *viewcenter() {
|
||||
if(masterless) return centerover.at;
|
||||
else if(prod) return product::get_at(viewctr.at->c7, product::current_view_level);
|
||||
else if(prod) return product::get_at(viewctr.at->c7, nisot::current_view_level);
|
||||
else if(sl2) return slr::get_at(viewctr.at->c7, nisot::current_view_level);
|
||||
else return viewctr.at->c7;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user