if ((race == 0)
|| (!race_table[race].pc_race)
|| (IS_GOOD(ch) && !race_table[race].good)
|| (IS_NEUTRAL(ch) && !race_table[race].neutral)
|| (IS_EVIL(ch) && !race_table[race].evil))
Looks like you are checking for the new attributes in race_table, but you've added them to the struct pc_race_type, not race_type, so you should be checking in pc_race_table (or adding them to race_type).
|