Fix impossible if monster cannot be relocated from tele region
This commit is contained in:
@@ -421,6 +421,7 @@ message given when shape-shifted vampire cheats death by reverting to its
|
||||
Vlad wasn't set up as a vampshifter properly
|
||||
poly'd hero capable of spitting venom would leave intact venom object if it
|
||||
reached end of range at a 'soft' location such as water
|
||||
avoid impossible if monster cannot be relocated from teleport region
|
||||
|
||||
|
||||
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
|
||||
|
||||
11
src/mkmaze.c
11
src/mkmaze.c
@@ -326,6 +326,8 @@ xchar rtype;
|
||||
boolean oneshot;
|
||||
d_level *lev;
|
||||
{
|
||||
struct monst *mtmp;
|
||||
|
||||
if (bad_location(x, y, nlx, nly, nhx, nhy)) {
|
||||
if (!oneshot) {
|
||||
return FALSE; /* caller should try again */
|
||||
@@ -346,11 +348,12 @@ d_level *lev;
|
||||
case LR_UPTELE:
|
||||
case LR_DOWNTELE:
|
||||
/* "something" means the player in this case */
|
||||
if (MON_AT(x, y)) {
|
||||
if ((mtmp = m_at(x, y)) != 0) {
|
||||
/* move the monster if no choice, or just try again */
|
||||
if (oneshot)
|
||||
(void) rloc(m_at(x, y), FALSE);
|
||||
else
|
||||
if (oneshot) {
|
||||
if (!rloc(mtmp, TRUE))
|
||||
m_into_limbo(mtmp);
|
||||
} else
|
||||
return FALSE;
|
||||
}
|
||||
u_on_newpos(x, y);
|
||||
|
||||
Reference in New Issue
Block a user