bitfields

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


ok, i've narrowed down a large amount of the problems with the
bitfields src files to the CAN_SEE macro, or rather, to one of the
macros used by the CAN_SEE macro.  what i don't understand, however,
is that all the macros used by CAN_SEE look exactly like the ones in
the regular circle source...

the warnings are:
warning: suggest parentheses around && within || 
and the line numbers given correspond to any of a number of macros
that all call CAN_SEE (CAN_SEE itself, CAN_SEE_OBJ, PERS).

since all the CAN_SEE macros are exactly as they appear in the source
code, i can only assume it has something to do with using bitfields
instead of bitvectors.
only, i don't know why that may be... :P

here's the only nested macro that is different from the regular src code:

#define IS_AFFECTED(ch, bit)  (AFF_FLAGGED(ch, bit))
#define AFF_FLAGGED(ch, flag) AFF_FLAGS(ch).flag
#define AFF_FLAGS(ch)         ((ch)->char_specials.saved.affected_by)

the affected_by is of type struct affections which looks like:

struct affections {
  BIT(AFF_BLIND);
  BIT(AFF_INVISIBLE);
  etc.
};

and the BIT macro itself is:
#define BIT(name)  unsigned int name: 1

only, it doesn't seem to me there could be anything in there that
could warrant the && within || warning, but then i don't know anything
about bitfields :P
anybody have any ideas?
+-----------------------------------------------------------+
| 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