another static analyzer bit - cast_protection()

The code tested u.uswallow and then accessed u.ustuck.  Under normal
circumstances that works fine but it could be a problem if the two
fields got out of synch.  This ought to fix the analyzer complaint
and avoid any trouble with mondata access.
This commit is contained in:
PatR
2023-01-13 23:55:37 -08:00
parent 97a90de172
commit bdaa51a689

View File

@@ -858,11 +858,11 @@ cast_protection(void)
struct permonst *pm = u.ustuck ? u.ustuck->data : 0;
rmtyp = levl[u.ux][u.uy].typ;
atmosphere = u.uswallow
atmosphere = (pm && u.uswallow)
? ((pm == &mons[PM_FOG_CLOUD]) ? "mist"
: is_whirly(u.ustuck->data) ? "maelstrom"
: is_whirly(pm) ? "maelstrom"
: enfolds(pm) ? "folds"
: is_animal(u.ustuck->data) ? "maw"
: is_animal(pm) ? "maw"
: "ooze")
: (u.uinwater ? hliquid("water")
: (rmtyp == CLOUD) ? "cloud"