/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* hack.worn.c - version 1.0.2 */
register struct obj
*obj
;
register struct worn
*wp
;
register struct obj
*oobj
;
for(wp
= worn
; wp
->w_mask
; wp
++) if(wp
->w_mask
& mask
) {
if(oobj
&& !(oobj
->owornmask
& wp
->w_mask
))
impossible("Setworn: mask = %ld.", wp
->w_mask
);
if(oobj
) oobj
->owornmask
&= ~wp
->w_mask
;
if(obj
&& oobj
&& wp
->w_mask
== W_ARM
){
impossible("Setworn: uarm2 set?");
if(obj
) obj
->owornmask
|= wp
->w_mask
;
uarm
->owornmask
^= (W_ARM
| W_ARM2
);
/* called e.g. when obj is destroyed */
setnotworn(obj
) register struct obj
*obj
; {
register struct worn
*wp
;
for(wp
= worn
; wp
->w_mask
; wp
++)
if(obj
== *(wp
->w_obj
)) {
obj
->owornmask
&= ~wp
->w_mask
;
uarm
->owornmask
^= (W_ARM
| W_ARM2
);