int invalid_race(struct char_data *ch, struct obj_data *obj) { if (GET_LEVEL(ch) >= LVL_IMMORT) return FALSE; if (OBJ_FLAGGED(obj, ITEM_ANTI_HUMAN) && IS_HUMAN(ch)) return (TRUE); if (OBJ_FLAGGED(obj, ITEM_ANTI_ELF) && IS_ELF(ch)) return (TRUE); if (OBJ_FLAGGED(obj, ITEM_ANTI_DWARF) && IS_DWARF(ch)) return (TRUE); if (OBJ_FLAGGED(obj, ITEM_ANTI_GNOME) && IS_GNOME(ch)) return (TRUE); return (FALSE); }
/* * invalid_race is used by handler.c to determine if a piece of equipment is * usable by a particular race, based on the ITEM_ANTI_{race} bitvectors. */ int invalid_race(struct char_data *ch, struct obj_data *obj) { if ( IS_OBJ_STAT(obj, ITEM_ANTI_BARBAR) && IS_BARBARIAN(ch) ) { return 1; } if ( IS_OBJ_STAT(obj, ITEM_ANTI_DWARF) && ( IS_HYLAR(ch) || IS_DAEWAR(ch) || IS_NEIDAR(ch) ) ) { return 1; } if ( IS_OBJ_STAT(obj, ITEM_ANTI_ELF) && ( IS_SILVANESTI(ch) || IS_QUALINESTI(ch) || IS_KAGONESTI(ch) ) ) { return 1; } if ( IS_OBJ_STAT(obj, ITEM_ANTI_HALFELF) && IS_HALFELVEN(ch) ) { return 1; } if ( IS_OBJ_STAT(obj, ITEM_ANTI_KENDER) && IS_KENDER(ch) ) { return 1; } if ( IS_OBJ_STAT(obj, ITEM_ANTI_MINOTAUR) && IS_MINOTAUR(ch) ) { return 1; } if ( IS_OBJ_STAT(obj, ITEM_ANTI_GNOME) && IS_GNOME(ch) ) { return 1; } if ( IS_OBJ_STAT(obj, ITEM_ANTI_HUMAN) && IS_HUMAN(ch) ) { return 1; } return 0; }