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 */
|
||||
if (flp & 1) {
|
||||
yupstair = FlipY(yupstair);
|
||||
ydnstair = FlipY(ydnstair);
|
||||
yupladder = FlipY(yupladder);
|
||||
ydnladder = FlipY(ydnladder);
|
||||
g.sstairs.sy = FlipY(g.sstairs.sy);
|
||||
if (xupstair)
|
||||
yupstair = FlipY(yupstair);
|
||||
if (xdnstair)
|
||||
ydnstair = FlipY(ydnstair);
|
||||
if (xupladder)
|
||||
yupladder = FlipY(yupladder);
|
||||
if (xdnladder)
|
||||
ydnladder = FlipY(ydnladder);
|
||||
if (g.sstairs.sx)
|
||||
g.sstairs.sy = FlipY(g.sstairs.sy);
|
||||
}
|
||||
if (flp & 2) {
|
||||
xupstair = FlipX(xupstair);
|
||||
xdnstair = FlipX(xdnstair);
|
||||
xupladder = FlipX(xupladder);
|
||||
xdnladder = FlipX(xdnladder);
|
||||
g.sstairs.sx = FlipX(g.sstairs.sx);
|
||||
if (xupstair)
|
||||
xupstair = FlipX(xupstair);
|
||||
if (xdnstair)
|
||||
xdnstair = FlipX(xdnstair);
|
||||
if (xupladder)
|
||||
xupladder = FlipX(xupladder);
|
||||
if (xdnladder)
|
||||
xdnladder = FlipX(xdnladder);
|
||||
if (g.sstairs.sx)
|
||||
g.sstairs.sx = FlipX(g.sstairs.sx);
|
||||
}
|
||||
|
||||
/* traps */
|
||||
|
||||
Reference in New Issue
Block a user