diff --git a/3d-models.cpp b/3d-models.cpp index 71e20e36..13d9f47d 100644 --- a/3d-models.cpp +++ b/3d-models.cpp @@ -105,6 +105,10 @@ void shift_shape(hpcshape& sh, ld z) { for(int i=sh.s; itype; d++) { inmirrorcount+=d; queuepolyat(V2 * spin(d*M_PI/S3), shHalfFloor[2], darkena(fcol, fd, 0xFF), PPR::FLOORa); + if(GDIM == 3 && camera_level > geom3::WALL) + queuepolyat(V2 * spin(d*M_PI/S3), shHalfFloor[5], darkena(fcol, fd, 0xFF), PPR::FLOORa); inmirrorcount-=d; } if(GDIM == 3) { @@ -5092,8 +5094,12 @@ void drawcell(cell *c, transmatrix V, int spinv, bool mirrored) { if(!wmblack) { inmirrorcount++; queuepolyat(mirrorif(V2, !onleft), shHalfFloor[ct6], darkena(fcol, fd, 0xFF), PPR::FLOORa); + if(GDIM == 3 && camera_level > geom3::WALL) + queuepolyat(mirrorif(V2, !onleft), shHalfFloor[ct6+3], darkena(fcol, fd, 0xFF), PPR::FLOORa); inmirrorcount--; queuepolyat(mirrorif(V2, onleft), shHalfFloor[ct6], darkena(fcol, fd, 0xFF), PPR::FLOORa); + if(GDIM == 3 && camera_level > geom3::WALL) + queuepolyat(mirrorif(V2, onleft), shHalfFloor[ct6+3], darkena(fcol, fd, 0xFF), PPR::FLOORa); } if(GDIM == 3) diff --git a/polygons.cpp b/polygons.cpp index 47c60025..0a0831c7 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1672,7 +1672,7 @@ hpcshape shMercuryBridge[2], shTriheptaSpecial[14], shCross, shGiantStar[2], shLake, shMirror, - shHalfFloor[3], shHalfMirror[3], + shHalfFloor[6], shHalfMirror[3], shGem[2], shStar, shDisk, shDiskT, shDiskS, shDiskM, shDiskSq, shRing, shTinyBird, shTinyShark, shEgg,