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:
30
src/sp_lev.c
30
src/sp_lev.c
@@ -461,18 +461,28 @@ boolean extras;
|
|||||||
|
|
||||||
/* stairs and ladders */
|
/* stairs and ladders */
|
||||||
if (flp & 1) {
|
if (flp & 1) {
|
||||||
yupstair = FlipY(yupstair);
|
if (xupstair)
|
||||||
ydnstair = FlipY(ydnstair);
|
yupstair = FlipY(yupstair);
|
||||||
yupladder = FlipY(yupladder);
|
if (xdnstair)
|
||||||
ydnladder = FlipY(ydnladder);
|
ydnstair = FlipY(ydnstair);
|
||||||
g.sstairs.sy = FlipY(g.sstairs.sy);
|
if (xupladder)
|
||||||
|
yupladder = FlipY(yupladder);
|
||||||
|
if (xdnladder)
|
||||||
|
ydnladder = FlipY(ydnladder);
|
||||||
|
if (g.sstairs.sx)
|
||||||
|
g.sstairs.sy = FlipY(g.sstairs.sy);
|
||||||
}
|
}
|
||||||
if (flp & 2) {
|
if (flp & 2) {
|
||||||
xupstair = FlipX(xupstair);
|
if (xupstair)
|
||||||
xdnstair = FlipX(xdnstair);
|
xupstair = FlipX(xupstair);
|
||||||
xupladder = FlipX(xupladder);
|
if (xdnstair)
|
||||||
xdnladder = FlipX(xdnladder);
|
xdnstair = FlipX(xdnstair);
|
||||||
g.sstairs.sx = FlipX(g.sstairs.sx);
|
if (xupladder)
|
||||||
|
xupladder = FlipX(xupladder);
|
||||||
|
if (xdnladder)
|
||||||
|
xdnladder = FlipX(xdnladder);
|
||||||
|
if (g.sstairs.sx)
|
||||||
|
g.sstairs.sx = FlipX(g.sstairs.sx);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* traps */
|
/* traps */
|
||||||
|
|||||||
Reference in New Issue
Block a user