private static float GetOrientationFactor(Pawn f****r, Pawn f****d, bool ignore_gender)
        {
            float orientation_factor;             //0 or 1

            {
                orientation_factor = 1.0f;

                if (!ignore_gender && !xxx.is_animal(f****r))
                {
                    if (!CompRJW.CheckPreference(f****r, f****d))
                    {
                        //Log.Message("would_fuck( " + xxx.get_pawnname(f****r) + ", " + xxx.get_pawnname(f****d) + " )");
                        //Log.Message("would_fuck() - preference fail");
                        orientation_factor = 0.0f;
                    }
                }
            }
            //Log.Message("would_fuck() - orientation_factor = " + orientation_factor.ToString());
            return(orientation_factor);
        }
            internal bool TraitCheckFail(Pawn client)
            {
                if (!xxx.is_human(client))
                {
                    return(true);
                }
                if (!xxx.has_traits(client))
                {
                    return(true);
                }
                if (!(xxx.can_fuck(client) || xxx.can_be_fucked(client)) || !xxx.IsTargetPawnOkay(client))
                {
                    return(true);
                }

                //Log.Message("client:" + client + " w***e:" + w***e);
                if (CompRJW.CheckPreference(client, w***e) == false)
                {
                    return(true);
                }
                return(false);                // Everything ok.
            }