Normal maze levels are initialized from x == 3 thru COLNO-1. However,
levels that use the INIT_MAP spec go thru mkmap, which initializes the level
starting at x == 1. This usually makes no difference, but does in the case
of levels that also use GEOMETRY:left. This was the case with the Ranger
start level and caused the leftmost 2 locations to be room locations but
unreachable. The Juiblex level actually had the same behavior, but this
was harmless because the MAP in that case was smaller.
Fix is to set the xstart=1 for levels with INIT_MAP and GEOMETRY:left.
The rest of sp_lev works just with this (when INIT_MAP was used, that is).
ensure monsters cannot teleport to or be created outside nonpassable bounds
of special levels
candles should not be fireproof
+monsters could end up off the left side of the Ranger quest start level
Platform- and/or Interface-Specific Fixes
Fread((genericptr_t) &ysize, 1, sizeof(ysize), fd);
/* size in Y */
switch((int) halign) {
- case LEFT: xstart = 3; break;
+ /* mkmap always creates levels starting at x==1 */
+ case LEFT: xstart = init_lev.init_present ? 1 : 3; break;
case H_LEFT: xstart = 2+((x_maze_max-2-xsize)/4); break;
case CENTER: xstart = 2+((x_maze_max-2-xsize)/2); break;
case H_RIGHT: xstart = 2+((x_maze_max-2-xsize)*3/4); break;