I\'m not very used to programming with flags, but I think I just found a situation where they\'d be useful:
I\'ve got a couple of objects that register themselves as lis
Yes. Instead, make your enum members powers of 2:
enum { TAKES_DAMAGE = (1 << 0), GRABBABLE = (1 << 1), LIQUID = (1 << 2), SOME_OTHER = (1 << 3) };