if a gremlin stole intrinsic 'see invisible' the map wasn't updated properly
mark some messages as urgent ("You die*.", having equipment stolen, being
caught in a magical explosion)
+if a leashed pet changed name (#name m) or an unnamed pet changed type
+ (polymorph or grow-up) and perm_invent was On, persistent inventory
+ display didn't get updated to show the leash's changed information
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
new_mgivenname(mtmp, lth); /* removes old name if one is present */
if (lth)
Strcpy(MGIVENNAME(mtmp), name);
+ /* if 'mtmp' is leashed, persistent inventory window needs updating */
+ if (mtmp->mleashed)
+ update_inventory(); /* x - leash (attached to Fido) */
return mtmp;
}
lev_limit = (int) mtmp->m_lev; /* never undo increment */
mtmp->female = fem; /* gender might be changing */
+ /* if 'mtmp' is leashed, persistent inventory window needs updating */
+ if (mtmp->mleashed)
+ update_inventory(); /* x - leash (attached to a <mon> */
}
/* sanity checks */
/* take on the new form... */
set_mon_data(mtmp, mdat);
- if (mtmp->mleashed && !leashable(mtmp))
- m_unleash(mtmp, TRUE);
+ if (mtmp->mleashed) {
+ if (!leashable(mtmp))
+ m_unleash(mtmp, TRUE);
+ else
+ /* if leashed, persistent inventory window needs updating
+ (really only when mon_nam() is going to yield "a frog"
+ rather than "Kermit" but no need to micromanage here) */
+ update_inventory(); /* x - leash (attached to a <mon>) */
+ }
if (emits_light(olddata) != emits_light(mtmp->data)) {
/* used to give light, now doesn't, or vice versa,