Fix flipping non-existent stairs

If the stair or ladder x coord is 0, it doesn't exist.
Flipping it, caused "u_on_newpos: trying to place hero off map <80,0>"
when coming back up from the valley into the castle, and the
castle was flipped.

Fixes #331
This commit is contained in:
Pasi Kallinen
2020-03-07 17:07:10 +02:00
parent 2fc9c02f88
commit 8b6ae1642d
+10
View File
@@ -461,17 +461,27 @@ boolean extras;
/* stairs and ladders */ /* stairs and ladders */
if (flp & 1) { if (flp & 1) {
if (xupstair)
yupstair = FlipY(yupstair); yupstair = FlipY(yupstair);
if (xdnstair)
ydnstair = FlipY(ydnstair); ydnstair = FlipY(ydnstair);
if (xupladder)
yupladder = FlipY(yupladder); yupladder = FlipY(yupladder);
if (xdnladder)
ydnladder = FlipY(ydnladder); ydnladder = FlipY(ydnladder);
if (g.sstairs.sx)
g.sstairs.sy = FlipY(g.sstairs.sy); g.sstairs.sy = FlipY(g.sstairs.sy);
} }
if (flp & 2) { if (flp & 2) {
if (xupstair)
xupstair = FlipX(xupstair); xupstair = FlipX(xupstair);
if (xdnstair)
xdnstair = FlipX(xdnstair); xdnstair = FlipX(xdnstair);
if (xupladder)
xupladder = FlipX(xupladder); xupladder = FlipX(xupladder);
if (xdnladder)
xdnladder = FlipX(xdnladder); xdnladder = FlipX(xdnladder);
if (g.sstairs.sx)
g.sstairs.sx = FlipX(g.sstairs.sx); g.sstairs.sx = FlipX(g.sstairs.sx);
} }