Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion dat/vaults.des
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
# is a check whether there's actual free space behind the door, outside the room)
# - SUBROOM does not work. (causes a crash occasionally. try with fake delphi)
# - cannot do split rooms. (can do, with MAP-ENDMAP & REGIONs)
# - Player is occasionally put into a corner of the map. Why?
#
# TODO:
# - FLAGS: unique
Expand Down
23 changes: 14 additions & 9 deletions src/sp_lev.c
Original file line number Diff line number Diff line change
Expand Up @@ -471,18 +471,23 @@ flip_level(int flp)
struct engr *etmp;
struct mkroom *sroom;

/* stairs and ladders */
/*
* stairs and ladders
*
* DO NOT flip stairs or ladders in the sentinel position (x = 0),
* otherwise players will spawn in level corners surrounded by rock.
*/
if (flp & 1) {
yupstair = y2 - yupstair;
ydnstair = y2 - ydnstair;
yupladder = y2 - yupladder;
ydnladder = y2 - ydnladder;
if (xupstair) yupstair = y2 - yupstair;
if (xdnstair) ydnstair = y2 - ydnstair;
if (xupladder) yupladder = y2 - yupladder;
if (xdnladder) ydnladder = y2 - ydnladder;
}
if (flp & 2) {
xupstair = x2 - xupstair;
xdnstair = x2 - xdnstair;
xupladder = x2 - xupladder;
xdnladder = x2 - xdnladder;
if (xupstair) xupstair = x2 - xupstair;
if (xdnstair) xdnstair = x2 - xdnstair;
if (xupladder) xupladder = x2 - xupladder;
if (xdnladder) xdnladder = x2 - xdnladder;
}

/* traps */
Expand Down