pcc loaded "Dungeons & Dragons (v.3.5) System Reference Document" only
creating a new character with all 10, race "Centaur".
it's a "Monstrous Humanoid", and in "Class" tab, under "Monster" type it can advance as "Monstrous Humanoid" class (correctly) and three "Humanoid" classes (it should'nt).
Screenshot of class info panel attached (apparently, the PRERACETYPE requisite isn't correctly checked against RACETYPE or TYPE of the race)
Centaur pcg attached (also a sea hag pcg attached just to confirm that it's not a centaur case, but also other Monstrous Humanoid)
windows seven, java SE runtime environment 1.7.0_51-b13
PCGen v6.07.00-dev autobuild #62 built on 2016-01-18 22:55, +1100
both sets should be using preracetype since that uses the unchanging
TYPE on the actual race. Reasoning: It allows the creature to level in
its main race even if it changes racetype in the code.
PRERACE:1,RACETYPE=Humanoid would fail if the creature had the racetype
change from Humanoid.
although to be honest if you become undead you should only have undead
or class levels. I encountered the issue before.
OK that makes sense, I guess. However I think the races in Pathfinder do not actually have a TYPE at all anymore.
Back to CODE bug.
Turns out PRERACETYPE builds a concatenated. pipe-separated string of all the creatures types and then checks if the tested race type occurs as a substring in this. And, of course, "Humanoid" is a substring of "Monstrous Humanoid|TypeX|TypeY|..." I've now changed this to use a list object to collect the types.