From 97c405fc87a07dc3e7440a074591f845d35fc808 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sun, 18 Nov 2018 01:40:57 +0100 Subject: [PATCH] fixed the player going through walls in shmup --- shmup.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/shmup.cpp b/shmup.cpp index 766522c6..8c8331b2 100644 --- a/shmup.cpp +++ b/shmup.cpp @@ -1571,14 +1571,22 @@ void movePlayer(monster *m, int delta) { m->footphase += playergo[cpid]; if(isReptile(m->base->wall)) m->base->wparam = reptilemax(); + + int steps = 1 + abs(int(playergo[cpid] / (.2 * scalefactor))); + + playergo[cpid] /= steps; + + nextstep: + + transmatrix nat1 = nat; for(int igo=0; igofindbase(nat); @@ -1809,6 +1817,16 @@ void movePlayer(monster *m, int delta) { else if(isWall(c3)) break; } } + + if(go) { + // printf("#%3d: at %s\n", steps, display(nat * C0)); + steps--; + if(steps > 0) { + nat0 = nat; + go = false; + goto nextstep; + } + } if(shotkey && canmove && curtime >= m->nextshot) {