| 3246 | } |
| 3247 | |
| 3248 | staticfn void |
| 3249 | insane_obj_bits(struct obj *obj, struct monst *mon) |
| 3250 | { |
| 3251 | unsigned o_in_use, o_bypass, o_nomerge, o_boulder; |
| 3252 | |
| 3253 | if (obj->where == OBJ_DELETED) |
| 3254 | return; /* skip bit checking for deleted objects */ |
| 3255 | |
| 3256 | o_in_use = obj->in_use; |
| 3257 | o_bypass = obj->bypass; |
| 3258 | /* having obj->nomerge be set might be intentional */ |
| 3259 | o_nomerge = (obj->nomerge && !nomerge_exception(obj)); |
| 3260 | /* next_boulder is only for object name formatting when pushing |
| 3261 | boulders and should be reset by time of next sanity check */ |
| 3262 | o_boulder = (obj->otyp == BOULDER && obj->next_boulder); |
| 3263 | |
| 3264 | if (o_in_use || o_bypass || o_nomerge || o_boulder) { |
| 3265 | char infobuf[QBUFSZ]; |
| 3266 | |
| 3267 | Sprintf(infobuf, "flagged%s%s%s%s", |
| 3268 | o_in_use ? " in_use" : "", |
| 3269 | o_bypass ? " bypass" : "", |
| 3270 | o_nomerge ? " nomerge" : "", |
| 3271 | o_boulder ? " nxtbldr" : ""); |
| 3272 | insane_object(obj, ofmt0, infobuf, mon); |
| 3273 | } |
| 3274 | } |
| 3275 | |
| 3276 | /* does 'obj' use the 'nomerge' flag persistently? */ |
| 3277 | staticfn boolean |
no test coverage detected