Handle monsters inside the invocation area
This commit is contained in:
@@ -116,6 +116,7 @@ for hilite_status of string status fields (title, dungeon-level, alignment),
|
||||
value-changed if from config file and don't offer as choices with 'O'
|
||||
jumping into or over a Sokoban pit, or over a fire trap, triggers trap twice
|
||||
mimics created by #wizgenesis could block or not block vision incorrectly
|
||||
handle monsters inside the invocation area
|
||||
|
||||
|
||||
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
|
||||
|
||||
16
src/mklev.c
16
src/mklev.c
@@ -1733,6 +1733,7 @@ int dist;
|
||||
struct obj *otmp;
|
||||
boolean make_rocks;
|
||||
register struct rm *lev = &levl[x][y];
|
||||
struct monst *mon;
|
||||
|
||||
/* clip at existing map borders if necessary */
|
||||
if (!within_bounded_area(x, y, x_maze_min + 1, y_maze_min + 1,
|
||||
@@ -1759,7 +1760,6 @@ int dist;
|
||||
obfree(otmp, (struct obj *) 0);
|
||||
}
|
||||
}
|
||||
unblock_point(x, y); /* make sure vision knows this location is open */
|
||||
|
||||
/* fake out saved state */
|
||||
lev->seenv = 0;
|
||||
@@ -1796,6 +1796,20 @@ int dist;
|
||||
break;
|
||||
}
|
||||
|
||||
if ((mon = m_at(x, y)) != 0) {
|
||||
/* wake up mimics, don't want to deal with them blocking vision */
|
||||
if (mon->m_ap_type)
|
||||
seemimic(mon);
|
||||
|
||||
if ((ttmp = t_at(x, y)) != 0)
|
||||
(void) mintrap(mon);
|
||||
else
|
||||
(void) minliquid(mon);
|
||||
}
|
||||
|
||||
if (!does_block(x, y, lev))
|
||||
unblock_point(x, y); /* make sure vision knows this location is open */
|
||||
|
||||
/* display new value of position; could have a monster/object on it */
|
||||
newsym(x, y);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user