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