MUSE wand of striking
Some code to stop a monster's zap of a wand of striking short if it gets destroyed by hitting and destroying a drawbridge is no longer needed with the new deferred obj deletion.
This commit is contained in:
28
src/muse.c
28
src/muse.c
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.7 muse.c $NHDT-Date: 1711734229 2024/03/29 17:43:49 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.216 $ */
|
/* NetHack 3.7 muse.c $NHDT-Date: 1715109270 2024/05/07 19:14:30 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.218 $ */
|
||||||
/* Copyright (C) 1990 by Ken Arromdee */
|
/* Copyright (C) 1990 by Ken Arromdee */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -1661,7 +1661,6 @@ mbhit(
|
|||||||
struct obj *obj) /* 2nd arg to fhitm/fhito */
|
struct obj *obj) /* 2nd arg to fhitm/fhito */
|
||||||
{
|
{
|
||||||
struct monst *mtmp;
|
struct monst *mtmp;
|
||||||
struct obj *otmp;
|
|
||||||
uchar ltyp;
|
uchar ltyp;
|
||||||
int ddx, ddy, otyp = obj->otyp;
|
int ddx, ddy, otyp = obj->otyp;
|
||||||
|
|
||||||
@@ -1699,29 +1698,12 @@ mbhit(
|
|||||||
if (otyp == WAN_STRIKING
|
if (otyp == WAN_STRIKING
|
||||||
/* if levl[x][y].typ is DRAWBRIDGE_UP then the zap is passing
|
/* if levl[x][y].typ is DRAWBRIDGE_UP then the zap is passing
|
||||||
over the moat in front of a closed drawbridge and doesn't
|
over the moat in front of a closed drawbridge and doesn't
|
||||||
hit any part of the bridge's mechanism */
|
hit any part of the bridge's mechanism (yet; it might be
|
||||||
|
about to hit the closed portcullis on the next iteration) */
|
||||||
&& ltyp != DRAWBRIDGE_UP && find_drawbridge(&dbx, &dby)) {
|
&& ltyp != DRAWBRIDGE_UP && find_drawbridge(&dbx, &dby)) {
|
||||||
/* this might kill mon and destroy obj; mon will remain
|
/* this might kill mon and destroy obj but they'll remain
|
||||||
accessible even if dead but obj could be deleted */
|
accessible; (*fhitm)() and (*fhito)() use obj for zap type */
|
||||||
destroy_drawbridge(dbx, dby);
|
destroy_drawbridge(dbx, dby);
|
||||||
for (otmp = mon->minvent; otmp; otmp = otmp->nobj)
|
|
||||||
if (otmp == obj)
|
|
||||||
break;
|
|
||||||
if (!otmp) {
|
|
||||||
for (otmp = gl.level.objects[x][y]; otmp;
|
|
||||||
otmp = otmp->nexthere)
|
|
||||||
if (otmp == obj)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
/* if otmp is Null, mon isn't carrying obj anymore and didn't
|
|
||||||
just drop it here; assume that it was destroyed and stop
|
|
||||||
the zap; not really correct behavior but we can't continue
|
|
||||||
without the responsible object because fhitm (mbhitm) and
|
|
||||||
fhito (bhito) will want it at forthcoming spots in zap path */
|
|
||||||
if (!otmp) {
|
|
||||||
/*obj = NULL;*/
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else if (IS_DOOR(ltyp) || ltyp == SDOOR) {
|
} else if (IS_DOOR(ltyp) || ltyp == SDOOR) {
|
||||||
switch (otyp) {
|
switch (otyp) {
|
||||||
/* note: monsters don't use opening or locking magic
|
/* note: monsters don't use opening or locking magic
|
||||||
|
|||||||
Reference in New Issue
Block a user