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'
|
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
|
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
|
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
|
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
+15
-1
@@ -1733,6 +1733,7 @@ int dist;
|
|||||||
struct obj *otmp;
|
struct obj *otmp;
|
||||||
boolean make_rocks;
|
boolean make_rocks;
|
||||||
register struct rm *lev = &levl[x][y];
|
register struct rm *lev = &levl[x][y];
|
||||||
|
struct monst *mon;
|
||||||
|
|
||||||
/* clip at existing map borders if necessary */
|
/* clip at existing map borders if necessary */
|
||||||
if (!within_bounded_area(x, y, x_maze_min + 1, y_maze_min + 1,
|
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);
|
obfree(otmp, (struct obj *) 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unblock_point(x, y); /* make sure vision knows this location is open */
|
|
||||||
|
|
||||||
/* fake out saved state */
|
/* fake out saved state */
|
||||||
lev->seenv = 0;
|
lev->seenv = 0;
|
||||||
@@ -1796,6 +1796,20 @@ int dist;
|
|||||||
break;
|
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 */
|
/* display new value of position; could have a monster/object on it */
|
||||||
newsym(x, y);
|
newsym(x, y);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user