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.
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"