Mimics created by #wizgenesis blocked vision incorrectly

This commit is contained in:
Pasi Kallinen
2018-09-14 21:07:08 +03:00
parent 37f8d0edb3
commit 97b2ba2e54
3 changed files with 11 additions and 5 deletions

View File

@@ -115,6 +115,7 @@ for hilite_status of string status fields (title, dungeon-level, alignment),
the types value-goes-up and -down aren't meaningful; treat them as
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
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository

View File

@@ -2126,16 +2126,12 @@ register struct monst *mtmp;
appear = Is_rogue_level(&u.uz) ? S_hwall : S_hcdoor;
else
appear = Is_rogue_level(&u.uz) ? S_vwall : S_vcdoor;
if (!mtmp->minvis || See_invisible)
block_point(mx, my); /* vision */
} else if (level.flags.is_maze_lev && !In_sokoban(&u.uz) && rn2(2)) {
ap_type = M_AP_OBJECT;
appear = STATUE;
} else if (roomno < 0 && !t_at(mx, my)) {
ap_type = M_AP_OBJECT;
appear = BOULDER;
if (!mtmp->minvis || See_invisible)
block_point(mx, my); /* vision */
} else if (rt == ZOO || rt == VAULT) {
ap_type = M_AP_OBJECT;
appear = GOLD_PIECE;
@@ -2193,6 +2189,9 @@ register struct monst *mtmp;
if (appear == EGG && !can_be_hatched(MCORPSENM(mtmp)))
MCORPSENM(mtmp) = NON_PM; /* revert to generic egg */
}
if (does_block(mx, my, &levl[mx][my]))
block_point(mx, my);
}
/* release monster from bag of tricks; return number of monsters created */

View File

@@ -2550,8 +2550,14 @@ struct _create_particular_data *d;
put_saddle_on_mon(otmp, mtmp);
}
if (d->invisible)
if (d->invisible) {
int mx = mtmp->mx, my = mtmp->my;
mon_set_minvis(mtmp);
if (does_block(mx, my, &levl[mx][my]))
block_point(mx, my);
else
unblock_point(mx, my);
}
if (d->sleeping)
mtmp->msleeping = 1;
madeany = TRUE;