bitfields POISON solved :)

@kirk.geog.sc.edu
Date: 10/20/96


well, slowly but surely, i am hacking away at this bitfield code...

in act.item.c, search for:
  af.bitvector = AFF_POISON;
and replace it with:
  af.bitvector.AFF_POISON = 1;
(there should be two occurances of this).

now i am stumped with the ITEM_WEAR stuff.
in perform_wear in act.item.c, i am getting the following error:

act.item.c:1117: structure has no member named `wear_bitvectors'

where the offending line is:
if (!CAN_WEAR(obj, wear_bitvectors[where])) {

where CAN_WEAR is defined as:
#define CAN_WEAR(obj, part) (((obj)->obj_flags.wear_flags.part))

the wear_bitvectors is defined as an int array:
   int wear_bitvectors[] = {
     ITEM_WEAR_TAKE, ITEM_WEAR_FINGER, ITEM_WEAR_FINGER, ITEM_WEAR_NECK,
     ITEM_WEAR_NECK, ITEM_WEAR_BODY, ITEM_WEAR_HEAD, ITEM_WEAR_LEGS,
     ITEM_WEAR_FEET, ITEM_WEAR_HANDS, ITEM_WEAR_ARMS, ITEM_WEAR_SHIELD,
     ITEM_WEAR_ABOUT, ITEM_WEAR_WAIST, ITEM_WEAR_WRIST, ITEM_WEAR_WRIST,
     ITEM_WEAR_WIELD, ITEM_WEAR_TAKE
  };

but these are not defined as integers in structs.h, but rather as a
structure of bitfields:

/* Take/Wear flags: used by obj_data.obj_flags.wear_flags */
struct can_be_worn_on {
  BIT(ITEM_WEAR_TAKE);          /* Item can be takes            */
  BIT(ITEM_WEAR_FINGER);        /* Can be worn on finger        */
  BIT(ITEM_WEAR_NECK);          /* Can be worn around neck      */
  BIT(ITEM_WEAR_BODY);          /* Can be worn on body          */
  etc.	
};


clearly, that wear_bitvectors is defined as an integer array is wrong,
but i have no idea what to change it to, or else how to change
CAN_WEAR :O
basically, i have no idea how to go about fixing this problem :(
i hate knowing what is wrong, but not knowing how to fix it ;P
any ideas? :)

anybody know who submitted this bitfield version of the mud? ;)
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
+-----------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/18/00 PST