leash use vs perm_invent
Noticed while working on Qt's version of persistent inventory window (paper doll-style display of equipment in use), leashing or unleashing a pet wasn't updating persistent inventory. Leash descriptions format differently when in use so immediate update is warranted.
This commit is contained in:
+2
-1
@@ -1,4 +1,4 @@
|
|||||||
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.280 $ $NHDT-Date: 1597069374 2020/08/10 14:22:54 $
|
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.281 $ $NHDT-Date: 1597090815 2020/08/10 20:20:15 $
|
||||||
|
|
||||||
General Fixes and Modified Features
|
General Fixes and Modified Features
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
@@ -243,6 +243,7 @@ wizard mode #wizintrinsic: setting Levitation wouldn't block Flying as
|
|||||||
chatting to the quest leader in wizard mode with sufficient experience level
|
chatting to the quest leader in wizard mode with sufficient experience level
|
||||||
and insufficient piety, player is asked whether alignment should be
|
and insufficient piety, player is asked whether alignment should be
|
||||||
boosted; answering 'n' resulted in being prompted a second time
|
boosted; answering 'n' resulted in being prompted a second time
|
||||||
|
leashing or unleashing pets wasn't updating persistent inventory window
|
||||||
|
|
||||||
|
|
||||||
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
+22
-16
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.7 apply.c $NHDT-Date: 1596498148 2020/08/03 23:42:28 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.326 $ */
|
/* NetHack 3.7 apply.c $NHDT-Date: 1597090815 2020/08/10 20:20:15 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.327 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -548,20 +548,23 @@ number_leashed()
|
|||||||
/* otmp is about to be destroyed or stolen */
|
/* otmp is about to be destroyed or stolen */
|
||||||
void
|
void
|
||||||
o_unleash(otmp)
|
o_unleash(otmp)
|
||||||
register struct obj *otmp;
|
struct obj *otmp;
|
||||||
{
|
{
|
||||||
register struct monst *mtmp;
|
register struct monst *mtmp;
|
||||||
|
|
||||||
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon)
|
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon)
|
||||||
if (mtmp->m_id == (unsigned) otmp->leashmon)
|
if (mtmp->m_id == (unsigned) otmp->leashmon) {
|
||||||
mtmp->mleashed = 0;
|
mtmp->mleashed = 0;
|
||||||
otmp->leashmon = 0;
|
otmp->leashmon = 0;
|
||||||
|
update_inventory();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* mtmp is about to die, or become untame */
|
/* mtmp is about to die, or become untame */
|
||||||
void
|
void
|
||||||
m_unleash(mtmp, feedback)
|
m_unleash(mtmp, feedback)
|
||||||
register struct monst *mtmp;
|
struct monst *mtmp;
|
||||||
boolean feedback;
|
boolean feedback;
|
||||||
{
|
{
|
||||||
register struct obj *otmp;
|
register struct obj *otmp;
|
||||||
@@ -573,8 +576,11 @@ boolean feedback;
|
|||||||
Your("leash falls slack.");
|
Your("leash falls slack.");
|
||||||
}
|
}
|
||||||
for (otmp = g.invent; otmp; otmp = otmp->nobj)
|
for (otmp = g.invent; otmp; otmp = otmp->nobj)
|
||||||
if (otmp->otyp == LEASH && otmp->leashmon == (int) mtmp->m_id)
|
if (otmp->otyp == LEASH && (unsigned) otmp->leashmon == mtmp->m_id) {
|
||||||
otmp->leashmon = 0;
|
otmp->leashmon = 0;
|
||||||
|
update_inventory();
|
||||||
|
break;
|
||||||
|
}
|
||||||
mtmp->mleashed = 0;
|
mtmp->mleashed = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -686,6 +692,7 @@ struct obj *obj;
|
|||||||
mtmp->mleashed = 1;
|
mtmp->mleashed = 1;
|
||||||
obj->leashmon = (int) mtmp->m_id;
|
obj->leashmon = (int) mtmp->m_id;
|
||||||
mtmp->msleeping = 0;
|
mtmp->msleeping = 0;
|
||||||
|
update_inventory();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* applying a leash which is currently in use */
|
/* applying a leash which is currently in use */
|
||||||
@@ -697,6 +704,7 @@ struct obj *obj;
|
|||||||
} else {
|
} else {
|
||||||
mtmp->mleashed = 0;
|
mtmp->mleashed = 0;
|
||||||
obj->leashmon = 0;
|
obj->leashmon = 0;
|
||||||
|
update_inventory();
|
||||||
You("remove the leash from %s%s.",
|
You("remove the leash from %s%s.",
|
||||||
spotmon ? "your " : "", l_monnam(mtmp));
|
spotmon ? "your " : "", l_monnam(mtmp));
|
||||||
}
|
}
|
||||||
@@ -711,13 +719,10 @@ struct monst *mtmp;
|
|||||||
{
|
{
|
||||||
struct obj *otmp;
|
struct obj *otmp;
|
||||||
|
|
||||||
otmp = g.invent;
|
for (otmp = g.invent; otmp; otmp = otmp->nobj)
|
||||||
while (otmp) {
|
if (otmp->otyp == LEASH && (unsigned) otmp->leashmon == mtmp->m_id)
|
||||||
if (otmp->otyp == LEASH && otmp->leashmon == (int) mtmp->m_id)
|
break;
|
||||||
return otmp;
|
return otmp;
|
||||||
otmp = otmp->nobj;
|
|
||||||
}
|
|
||||||
return (struct obj *) 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean
|
boolean
|
||||||
@@ -735,13 +740,14 @@ next_to_u()
|
|||||||
if (distu(mtmp->mx, mtmp->my) > 2) {
|
if (distu(mtmp->mx, mtmp->my) > 2) {
|
||||||
for (otmp = g.invent; otmp; otmp = otmp->nobj)
|
for (otmp = g.invent; otmp; otmp = otmp->nobj)
|
||||||
if (otmp->otyp == LEASH
|
if (otmp->otyp == LEASH
|
||||||
&& otmp->leashmon == (int) mtmp->m_id) {
|
&& (unsigned) otmp->leashmon == mtmp->m_id) {
|
||||||
if (otmp->cursed)
|
if (otmp->cursed)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
You_feel("%s leash go slack.",
|
|
||||||
(number_leashed() > 1) ? "a" : "the");
|
|
||||||
mtmp->mleashed = 0;
|
mtmp->mleashed = 0;
|
||||||
otmp->leashmon = 0;
|
otmp->leashmon = 0;
|
||||||
|
update_inventory();
|
||||||
|
You_feel("%s leash go slack.",
|
||||||
|
(number_leashed() > 1) ? "a" : "the");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user