document obj->owornmask

ship_object() and obj_delivery() use obj->owornmask for something
other than tracking what slot(s) an object is worn in.
This commit is contained in:
PatR
2021-12-14 05:49:31 -08:00
parent 78c84a1e5d
commit d0197bd3e7
2 changed files with 10 additions and 5 deletions

View File

@@ -133,14 +133,19 @@ struct obj {
#define spestudied usecount /* # of times a spellbook has been studied */ #define spestudied usecount /* # of times a spellbook has been studied */
unsigned oeaten; /* nutrition left in food, if partly eaten */ unsigned oeaten; /* nutrition left in food, if partly eaten */
long age; /* creation date */ long age; /* creation date */
long owornmask; long owornmask; /* bit mask indicating which equipment slot(s) an
* item is worn in [by hero or by monster; could
* indicate more than one bit: attached iron ball
* that's also wielded];
* overloaded for the destination of migrating
* objects (which can't be worn at same time) */
unsigned lua_ref_cnt; /* # of lua script references for this object */ unsigned lua_ref_cnt; /* # of lua script references for this object */
xchar omigr_from_dnum; /* where obj is migrating from */ xchar omigr_from_dnum; /* where obj is migrating from */
xchar omigr_from_dlevel; /* where obj is migrating from */ xchar omigr_from_dlevel; /* where obj is migrating from */
struct oextra *oextra; /* pointer to oextra struct */ struct oextra *oextra; /* pointer to oextra struct */
}; };
#define newobj() (struct obj *) alloc(sizeof(struct obj)) #define newobj() (struct obj *) alloc(sizeof (struct obj))
/*** /***
** oextra referencing and testing macros ** oextra referencing and testing macros

View File

@@ -1380,7 +1380,7 @@ shrink_glob(
if (delta >= (long) obj->owt) { if (delta >= (long) obj->owt) {
/* gone; no newsym() or message here--forthcoming map update for /* gone; no newsym() or message here--forthcoming map update for
level arrival is all that's needed */ level arrival is all that's needed */
obj->owt = 0; /* not required; accurately reflect's obj's state */ obj->owt = 0; /* not required; accurately reflects obj's state */
shrinking_glob_gone(obj); shrinking_glob_gone(obj);
} else { } else {
/* shrank but not gone; reduce remaining weight */ /* shrank but not gone; reduce remaining weight */
@@ -1524,8 +1524,8 @@ shrinking_glob_gone(struct obj *obj)
useupall(obj); /* freeinv()+obfree() */ useupall(obj); /* freeinv()+obfree() */
} else { } else {
if (obj->where == OBJ_MIGRATING) { if (obj->where == OBJ_MIGRATING) {
/* clear destination flag so that obfree()'s check for freeing /* destination flag overloads owornmask; clear it so obfree()'s
a worn object doesn't get a false hit */ check for freeing a worn object doesn't get a false hit */
obj->owornmask = 0L; obj->owornmask = 0L;
} else if (obj->where == OBJ_MINVENT) { } else if (obj->where == OBJ_MINVENT) {
/* monsters don't wield globs so this isn't strictly needed */ /* monsters don't wield globs so this isn't strictly needed */