I tracked down the issue. First, change !AllowNonHuman back to AllowNonHuman in the child_is_grown() of cGirls. Second, remove the code:
AllowNonHuman in the child_is_grown() is true if the mother is human.
In the CreateRandomGirl the input that AllowNonHuman goes to is false if the girl is human.
So the ! is required to pass the correct bool to the function.
I changed the "AllowNonHuman" to "MomIsMonster" to fix this.
I also added human check to the GetRandomYourDaughterGirl() function so it will check for either human (1), nonhuman (0) or both (-1).
I also changed NonHuman to Human0Monster1 in the CreateRandomGirl() function.
The original code is making all random girls available, or nearly all of them, as a potential child. It almost never checks for humanity.
The problem then becomes if a player has no YourDaughter girls in their character folder, they will get a hard coded random girl as their daughter.
I am adding checks to count the various types of .rgirls that are available.
This will allow for better selection of girls for the random checks.
Now if you are looking for a your daughter girl, it will check for:
- only humans for human mother
- nonhuman for nonhuman mothers first
- humans for nonhuman mothers if no nonhumans are found
After all that the normal random girl check takes place if no girl is found.