1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-06-15 09:50:00 +00:00

3D:: smooth TPP; display player or not correctly

This commit is contained in:
? 2019-02-27 13:32:33 +01:00 committed by Zeno Rogue
parent 26b5d55224
commit 168b3fb11d
3 changed files with 4 additions and 2 deletions

View File

@ -5665,6 +5665,7 @@ purehookset hooks_drawmap;
transmatrix cview() {
sphereflip = Id;
if(DIM == 3) return View;
if(sphereflipped()) sphereflip[DIM][DIM] = -1;
return ypush(vid.yshift) * sphereflip * View;
}

View File

@ -1040,7 +1040,7 @@ void centerpc(ld aspd) {
#endif
if(shmup::on && DIM == 3 && vid.sspeed > -5) {
transmatrix at = cpush(2, -vid.yshift) * ggmatrix(shmup::pc[0]->base) * shmup::pc[0]->at;
transmatrix at = ggmatrix(shmup::pc[0]->base) * shmup::pc[0]->at * cpush(2, -vid.yshift);
View = inverse(at) * View;
return;
}

View File

@ -3424,8 +3424,9 @@ bool drawMonster(const transmatrix& V, cell *c, const transmatrix*& Vboat, trans
switch(m->type) {
case moPlayer:
playerfound = true;
if(playermoved && DIM == 3) continue;
if(playermoved && DIM == 3 && vid.yshift == 0 && vid.sspeed > -5) continue;
cpid = m->pid;
if(DIM == 3) view = view * spin(-M_PI/2);
drawPlayerEffects(view, c, true);
if(m->inBoat) m->footphase = 0;
if(mapeditor::drawplayer) drawMonsterType(moPlayer, c, view, 0xFFFFFFC0, m->footphase);