Fix impossible if monster cannot be relocated from tele region

This commit is contained in:
Pasi Kallinen
2019-05-05 22:30:20 +03:00
parent 40e7eb7e2a
commit f55e9ddd7c
2 changed files with 8 additions and 4 deletions
+1
View File
@@ -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 Vlad wasn't set up as a vampshifter properly
poly'd hero capable of spitting venom would leave intact venom object if it 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 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 Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
+7 -4
View File
@@ -326,6 +326,8 @@ xchar rtype;
boolean oneshot; boolean oneshot;
d_level *lev; d_level *lev;
{ {
struct monst *mtmp;
if (bad_location(x, y, nlx, nly, nhx, nhy)) { if (bad_location(x, y, nlx, nly, nhx, nhy)) {
if (!oneshot) { if (!oneshot) {
return FALSE; /* caller should try again */ return FALSE; /* caller should try again */
@@ -346,11 +348,12 @@ d_level *lev;
case LR_UPTELE: case LR_UPTELE:
case LR_DOWNTELE: case LR_DOWNTELE:
/* "something" means the player in this case */ /* "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 */ /* move the monster if no choice, or just try again */
if (oneshot) if (oneshot) {
(void) rloc(m_at(x, y), FALSE); if (!rloc(mtmp, TRUE))
else m_into_limbo(mtmp);
} else
return FALSE; return FALSE;
} }
u_on_newpos(x, y); u_on_newpos(x, y);