From 89d93091b099194009161c6dba6f78670fa0bf18 Mon Sep 17 00:00:00 2001 From: Platinum Date: Tue, 28 Apr 2020 09:44:14 -0700 Subject: [PATCH 1/4] better wound (semen) drawing --- 1.1/Assemblies/Rimworld-Animations.dll | Bin 45568 -> 46080 bytes Rimworld-Animations.csproj | 1 + Source/Patches/HarmonyPatch_PawnRotation.cs | 28 ++++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 Source/Patches/HarmonyPatch_PawnRotation.cs diff --git a/1.1/Assemblies/Rimworld-Animations.dll b/1.1/Assemblies/Rimworld-Animations.dll index 60816dd5daeeadb37ee2fa50e72a193f58e9571d..f39e00d366c1d3fa338f19b22c50b67b117b7f8f 100644 GIT binary patch delta 9004 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 delta 8569 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 + diff --git a/Source/Patches/HarmonyPatch_PawnRotation.cs b/Source/Patches/HarmonyPatch_PawnRotation.cs new file mode 100644 index 0000000..9fb95ef --- /dev/null +++ b/Source/Patches/HarmonyPatch_PawnRotation.cs @@ -0,0 +1,28 @@ +using HarmonyLib; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; + +namespace Rimworld_Animations { + [HarmonyPatch(typeof(Thing), "Rotation", MethodType.Getter)] + public static class HarmonyPatch_PawnRotation { + + public static bool Prefix(Thing __instance, ref Rot4 __result) { + + if(!(__instance is Pawn) || (__instance as Pawn)?.TryGetComp() == null || !(__instance as Pawn).TryGetComp().isAnimating) { + return true; + } + + Pawn pawn = (__instance as Pawn); + __result = pawn.TryGetComp().bodyFacing; + + return false; + + + } + + } +} From 1707afaa4d074e0ce4829e24a4d780c2d71b8bc9 Mon Sep 17 00:00:00 2001 From: Platinum Date: Tue, 28 Apr 2020 20:42:53 -0700 Subject: [PATCH 2/4] genital rotation, requires special ver. of RimNudeWorld. Enable in options --- 1.1/Assemblies/Rimworld-Animations.dll | Bin 46080 -> 46592 bytes Defs/AnimationDefs/Animations_vanilla.xml | 52 ++++++++++++------- Source/Actors/Actor.cs | 1 + Source/AnimationUtility.cs | 6 +-- Source/Animations/Clips/PawnAnimationClip.cs | 9 ++++ Source/Animations/Keyframes/PawnKeyframe.cs | 2 + Source/Comps/CompBodyAnimator.cs | 12 ++++- Source/Patches/HarmonyPatch_AlienRace.cs | 8 ++- Source/Settings/AnimationSettings.cs | 4 +- 9 files changed, 69 insertions(+), 25 deletions(-) diff --git a/1.1/Assemblies/Rimworld-Animations.dll b/1.1/Assemblies/Rimworld-Animations.dll index f39e00d366c1d3fa338f19b22c50b67b117b7f8f..2d04f7671b8ba36b9ed86caa37c91b6920fa62d2 100644 GIT binary patch delta 19832 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 DnBd?H delta 18991 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 yANB<EyYRK-2R_xKHuman true + true true @@ -622,6 +623,7 @@ 2 2 0 + 90
  • 59 @@ -641,6 +643,7 @@ 2 2 0 + 90
  • @@ -698,6 +701,7 @@ 2 2 0 + 90
  • 14 @@ -717,6 +721,7 @@ 2 2 0 + 90
  • @@ -801,6 +806,7 @@ 2 2 0 + 90
  • 7 @@ -849,6 +855,7 @@ 2 2 0 + 90
  • @@ -1968,8 +1975,6 @@
  • Vaginal
  • - -
  • @@ -1986,6 +1991,7 @@
  • Human
  • true + true
    @@ -2178,30 +2184,33 @@ 180 180 0 - -0.263 + -0.363 2 2 0 + 0
  • 33 180 180 0 - -0.213 + -0.313 2 2 0.045 + 0
  • 1 180 180 0 - -0.263 + -0.363 2 2 0 + 0
  • @@ -2256,30 +2265,33 @@ 180 180 0 - -0.263 + -0.363 2 2 0 + 0
  • 13 180 180 0 - -0.213 + -0.313 2 2 0.045 + 0
  • 1 180 180 0 - -0.263 + -0.363 2 2 0 + 0
  • @@ -2420,17 +2432,18 @@ 180 180 0 - -0.263 + -0.363 2 2 0 + 0
  • 10 180 180 0 - -0.213 + -0.313 2 2 0.045 @@ -2440,7 +2453,7 @@ 180 180 0 - -0.263 + -0.363 2 2 0 @@ -2451,7 +2464,7 @@ 180 180 0 - -0.263 + -0.363 2 2 0 @@ -2461,7 +2474,7 @@ 180 180 0 - -0.213 + -0.313 2 2 0.045 @@ -2471,7 +2484,7 @@ 180 180 0 - -0.263 + -0.363 2 2 0 @@ -2482,7 +2495,7 @@ 180 180 0 - -0.263 + -0.363 2 2 0 @@ -2492,7 +2505,7 @@ 180 180 0 - -0.213 + -0.313 2 2 0.045 @@ -2502,7 +2515,7 @@ 180 180 0 - -0.263 + -0.363 2 2 0 @@ -2512,7 +2525,7 @@ 180 180 0 - -0.263 + -0.363 2 2 0 @@ -2522,10 +2535,11 @@ 180 180 0 - -0.263 + -0.363 2 2 0 + 0
  • diff --git a/Source/Actors/Actor.cs b/Source/Actors/Actor.cs index 0afae8c..2cb548c 100644 --- a/Source/Actors/Actor.cs +++ b/Source/Actors/Actor.cs @@ -15,6 +15,7 @@ namespace Rimworld_Animations { public string gender; public bool isFucking = false; public bool isFucked = false; + public bool controlGenitalAngle = false; public Vector3 offset = new Vector2(0, 0); } } diff --git a/Source/AnimationUtility.cs b/Source/AnimationUtility.cs index 1056a62..ad0c36d 100644 --- a/Source/AnimationUtility.cs +++ b/Source/AnimationUtility.cs @@ -77,10 +77,10 @@ namespace Rimworld_Animations { } //TESTING ANIMATIONS ONLY REMEMBER TO COMMENT OUT BEFORE PUSH - /* - if (x.defName != "Test") + + if (x.defName != "Cowgirl") return false; - */ + if (x.actors[i].isFucking && !rjw.xxx.can_fuck(localParticipants[i])) { diff --git a/Source/Animations/Clips/PawnAnimationClip.cs b/Source/Animations/Clips/PawnAnimationClip.cs index 6fc767d..746c3f4 100644 --- a/Source/Animations/Clips/PawnAnimationClip.cs +++ b/Source/Animations/Clips/PawnAnimationClip.cs @@ -14,6 +14,7 @@ namespace Rimworld_Animations { public Dictionary SoundEffects = new Dictionary(); public Dictionary quiver = new Dictionary(); + public SimpleCurve GenitalAngle = new SimpleCurve(); public SimpleCurve BodyAngle = new SimpleCurve(); public SimpleCurve HeadAngle = new SimpleCurve(); public SimpleCurve HeadBob = new SimpleCurve(); @@ -60,9 +61,14 @@ namespace Rimworld_Animations { if (frame.headBob.HasValue) HeadBob.Add((float)frame.atTick / (float)duration, frame.headBob.Value, true); + if (frame.genitalAngle.HasValue) + GenitalAngle.Add((float)frame.atTick / (float)duration, frame.genitalAngle.Value, true); + if (frame.soundEffect != null) { SoundEffects.Add((int)frame.atTick, frame.soundEffect); } + + } else { if (frame.bodyAngle.HasValue) @@ -86,6 +92,9 @@ namespace Rimworld_Animations { if (frame.headBob.HasValue) HeadBob.Add((float)keyframePosition / (float)duration, frame.headBob.Value, true); + if (frame.genitalAngle.HasValue) + GenitalAngle.Add((float)keyframePosition / (float)duration, frame.genitalAngle.Value, true); + if (frame.soundEffect != null) { SoundEffects.Add(keyframePosition, frame.soundEffect); } diff --git a/Source/Animations/Keyframes/PawnKeyframe.cs b/Source/Animations/Keyframes/PawnKeyframe.cs index 69b0a78..685009e 100644 --- a/Source/Animations/Keyframes/PawnKeyframe.cs +++ b/Source/Animations/Keyframes/PawnKeyframe.cs @@ -11,6 +11,8 @@ namespace Rimworld_Animations { public float? bodyAngle; public float? headAngle; + public float? genitalAngle; + public float? bodyOffsetZ; public float? bodyOffsetX; diff --git a/Source/Comps/CompBodyAnimator.cs b/Source/Comps/CompBodyAnimator.cs index c364693..22049ac 100644 --- a/Source/Comps/CompBodyAnimator.cs +++ b/Source/Comps/CompBodyAnimator.cs @@ -43,9 +43,11 @@ namespace Rimworld_Animations { private float clipPercent = 0; public Vector3 anchor, deltaPos, headBob; - public float bodyAngle, headAngle; + public float bodyAngle, headAngle, genitalAngle; public Rot4 headFacing, bodyFacing; + public bool controlGenitalAngle = false; + private AnimationDef anim; private AnimationStage stage => anim.animationStages[curStage]; private PawnAnimationClip clip => (PawnAnimationClip)stage.animationClips[actor]; @@ -117,6 +119,8 @@ namespace Rimworld_Animations { quiver = false; this.shiver = shiver && AnimationSettings.rapeShiver; + controlGenitalAngle = anim.actors[actor].controlGenitalAngle; + //tick once for initialization tickAnim(); @@ -218,6 +222,11 @@ namespace Rimworld_Animations { if (headAngle < 0) headAngle = 360 - ((-1f * headAngle) % 360); if (headAngle > 360) headAngle %= 360; + if (controlGenitalAngle) { + genitalAngle = clip.GenitalAngle.Evaluate(clipPercent) * (mirror ? -1 : 1); + if (genitalAngle < 0) genitalAngle = 360 - ((-1f * genitalAngle) % 360); + if (genitalAngle > 360) genitalAngle %= 360; + } bodyFacing = mirror ? new Rot4((int)clip.BodyFacing.Evaluate(clipPercent)).Opposite : new Rot4((int)clip.BodyFacing.Evaluate(clipPercent)); @@ -231,6 +240,7 @@ namespace Rimworld_Animations { headFacing = headFacing.Opposite; } headBob = new Vector3(0, 0, clip.HeadBob.Evaluate(clipPercent)); + } public Vector3 getPawnHeadPosition() { diff --git a/Source/Patches/HarmonyPatch_AlienRace.cs b/Source/Patches/HarmonyPatch_AlienRace.cs index d81da60..55a0bde 100644 --- a/Source/Patches/HarmonyPatch_AlienRace.cs +++ b/Source/Patches/HarmonyPatch_AlienRace.cs @@ -125,10 +125,16 @@ namespace Rimworld_Animations { quat: Quaternion.AngleAxis(angle: num, axis: Vector3.up) * headQuatInAnimation, mat: alienComp.addonGraphics[index: i].MatAt(rot: pawnAnimator.headFacing), drawNow: portrait); } + else { + Quaternion addonRotation = quat; + if (AnimationSettings.controlGenitalRotation && pawnAnimator.controlGenitalAngle && ba.hediffGraphics[0] != null && (ba.hediffGraphics[0].path.Contains("Penis") || ba.hediffGraphics[0].path.Contains("penis"))) { + addonRotation = Quaternion.AngleAxis(angle: pawnAnimator.genitalAngle, axis: Vector3.up); + } + GenDraw.DrawMeshNowOrLater(mesh: alienComp.addonGraphics[index: i].MeshAt(rot: rotation), loc: vector + offsetVector.RotatedBy(angle: Mathf.Acos(f: Quaternion.Dot(a: Quaternion.identity, b: quat)) * 2f * 57.29578f), - quat: Quaternion.AngleAxis(angle: num, axis: Vector3.up) * quat, mat: alienComp.addonGraphics[index: i].MatAt(rot: rotation), drawNow: portrait); + quat: Quaternion.AngleAxis(angle: num, axis: Vector3.up) * addonRotation, mat: alienComp.addonGraphics[index: i].MatAt(rot: rotation), drawNow: portrait); } diff --git a/Source/Settings/AnimationSettings.cs b/Source/Settings/AnimationSettings.cs index 905d7e1..740de32 100644 --- a/Source/Settings/AnimationSettings.cs +++ b/Source/Settings/AnimationSettings.cs @@ -9,13 +9,14 @@ using UnityEngine; namespace Rimworld_Animations { public class AnimationSettings : ModSettings { - public static bool orgasmQuiver, rapeShiver, soundOverride = true, hearts = true; + public static bool orgasmQuiver, rapeShiver, soundOverride = true, hearts = true, controlGenitalRotation = false; public static float shiverIntensity = 2f; public override void ExposeData() { base.ExposeData(); + Scribe_Values.Look(ref controlGenitalRotation, "controlGenitalRotation", false); Scribe_Values.Look(ref orgasmQuiver, "orgasmQuiver"); Scribe_Values.Look(ref rapeShiver, "rapeShiver"); Scribe_Values.Look(ref hearts, "heartsOnLovin"); @@ -39,6 +40,7 @@ namespace Rimworld_Animations { listingStandard.Begin(inRect); listingStandard.CheckboxLabeled("Enable Sound Override", ref AnimationSettings.soundOverride); + listingStandard.CheckboxLabeled("Control Genital Rotation", ref AnimationSettings.controlGenitalRotation); listingStandard.CheckboxLabeled("Enable Orgasm Quiver", ref AnimationSettings.orgasmQuiver); listingStandard.CheckboxLabeled("Enable Rape Shiver", ref AnimationSettings.rapeShiver); listingStandard.CheckboxLabeled("Enable hearts during lovin'", ref AnimationSettings.hearts); From 205ac07f40d317f9fdd8a104c49839901990200a Mon Sep 17 00:00:00 2001 From: Platinum Date: Tue, 28 Apr 2020 22:24:28 -0700 Subject: [PATCH 3/4] semen on orgasm sfx removed dev anim testing code (causing only Cowgirl to play) --- 1.1/Assemblies/Rimworld-Animations.dll | Bin 46592 -> 47104 bytes Rimworld-Animations.csproj | 1 + Source/AnimationUtility.cs | 4 ++-- Source/Comps/CompBodyAnimator.cs | 9 +++++++ .../rjwPatches/HarmonyPatch_DrawSemen.cs | 22 ++++++++++++++++++ 5 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 Source/Patches/rjwPatches/HarmonyPatch_DrawSemen.cs diff --git a/1.1/Assemblies/Rimworld-Animations.dll b/1.1/Assemblies/Rimworld-Animations.dll index 2d04f7671b8ba36b9ed86caa37c91b6920fa62d2..76a7b7a3854e86a55facbce1f366408b2f1478d5 100644 GIT binary patch delta 15268 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

    h0ci%YO12)9bkb$KjxN>fITrB$AT)!r&sIeJ4L zhb4AY&9f~);(o3w%VwF6`Hzm-%M0=>eX2#$zIQfS zc>BBznyIdNzyrQTmg6d~+ifx*{~r`RZcr+$K4mYxW7{D7AGP@KG{z*-2b$GtOGde~C}c@3~Zs;+h z=XusL5tE+|zqKyZ7Fd>Ao8ft@wOPJ2nQ=E%?Y2j)Hu)V}qvfb{kNpYjUi`ka!@5di z`M9*q{vnnp<3jB#eYdrrSca|I!qA7-&Dyhc*xGI85IP|9}hpl_%+ro;?iZ8^;5}Qob)Ejs@&_lr4jXY6@B@Ki9q*Fq7wH_RN#Htx zPYe7&AX!8jfkOpeWPOLGq&Hbx=pNulLjD3@X35rqUkAcz&mh{+q_{K*Tqp2pfgcE@ zbao0094fF$;5va%3;aMJIoY!*gK?d}4+N4+L=ZSs;6(z-E%fdrUoH})N#HtxPYe7& z;40cd`BGnbuDn71tNfj8S7OSo%KgeW%J0;7)eqI-`dRu!{Wtm?eYxJMzpB5l7g&Z^ zCRkc5S6g;ip0!k32UzQ@JFQNe&z5cD-yI5Z2=8>J*QZt z7xDKh{$9u5KIICjUb{oujKBSOY+WS{zz*1gA2eF%e#sI*w?YL?ud zW_*0zr)@7^FH5>*I4z*d+FoAKU~B7tyRN#v-s#-F`PAD+Za(wAgTCp{{-$m0U3SG{ zv*@zyX*3#E4-RYiFLazvHB26S=yK21{hpDMd#(*XQ+OIZjqbU|9jkwbJ74lNZFV>B zH*(g5Y`UlUpbGfd7`CQFI%-_DCNt}wo+g~FJWX%9$%4@CW+>jYT0PA_8SB>cvi%bZ zn3vj&J!^9O>9TAOtDK-|wTw@1GDNGPt-VaoWT#x?_iG195o7Dx7F)T63-T;2H)_@u z+A345(ul3=V?9+5OE8^k+`H~7#|&=S$Z(la)f$n~jmfRkm5{|_>}(C>D0a!Ip^rS?sQBsmZNa-6&AAr+1zFdR!)NpgBh&CD3G zJ~Q+ahiTfT>h7f*88(@v_>DR1v-GW8h2OY&{W*Dm^(@`l`G0)C#wa@3`U1ntx7#^E;%;L2Cn#j+pv3T(u`$~xID{V=~|3ySPrj@1mv4vF`j&+wk`ZvmDJ{Z T^an+Lba0#du_MyTK9>IjmJjrX delta 15278 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 + diff --git a/Source/AnimationUtility.cs b/Source/AnimationUtility.cs index ad0c36d..9563ef0 100644 --- a/Source/AnimationUtility.cs +++ b/Source/AnimationUtility.cs @@ -77,10 +77,10 @@ namespace Rimworld_Animations { } //TESTING ANIMATIONS ONLY REMEMBER TO COMMENT OUT BEFORE PUSH - + /* if (x.defName != "Cowgirl") return false; - + */ if (x.actors[i].isFucking && !rjw.xxx.can_fuck(localParticipants[i])) { diff --git a/Source/Comps/CompBodyAnimator.cs b/Source/Comps/CompBodyAnimator.cs index 22049ac..9d11e08 100644 --- a/Source/Comps/CompBodyAnimator.cs +++ b/Source/Comps/CompBodyAnimator.cs @@ -195,6 +195,15 @@ namespace Rimworld_Animations { //play sound effect if(rjw.RJWSettings.sounds_enabled && clip.SoundEffects.ContainsKey(clipTicks) && AnimationSettings.soundOverride) { SoundDef.Named(clip.SoundEffects[clipTicks]).PlayOneShot(new TargetInfo(pawn.Position, pawn.Map)); + + if((pawn?.jobs?.curDriver is JobDriver_Sex) && clip.SoundEffects[clipTicks] == "Cum") { + + Pawn partner = (pawn.jobs.curDriver as JobDriver_Sex)?.Partner; + + if(anim.sexTypes.Contains((pawn.jobs.curDriver as JobDriver_Sex).sexType)) + SemenHelper.calculateAndApplySemen(pawn, partner, (pawn.jobs.curDriver as JobDriver_Sex).sexType); + } + } if(AnimationSettings.orgasmQuiver && clip.quiver.ContainsKey(clipTicks)) { quiver = clip.quiver[clipTicks]; diff --git a/Source/Patches/rjwPatches/HarmonyPatch_DrawSemen.cs b/Source/Patches/rjwPatches/HarmonyPatch_DrawSemen.cs new file mode 100644 index 0000000..2d291d3 --- /dev/null +++ b/Source/Patches/rjwPatches/HarmonyPatch_DrawSemen.cs @@ -0,0 +1,22 @@ +/* + * Todo: Ask to make SemenSplatch and DrawSemen public + * + * + * using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using rjw; +using HarmonyLib; + +namespace Rimworld_Animations { + [HarmonyPatch("DrawSemen")] + public static class HarmonyPatch_DrawSemen { + + public static void Prefix(ref Dictionary) { + + } + + } +}*/ From f4dea37d792bcc36ef838a775dc124785da2a0ae Mon Sep 17 00:00:00 2001 From: Platinum Date: Tue, 28 Apr 2020 23:32:40 -0700 Subject: [PATCH 4/4] apply semen on orgasm --- 1.1/Assemblies/Rimworld-Animations.dll | Bin 47104 -> 47104 bytes Source/Comps/CompBodyAnimator.cs | 6 ++++-- Source/Settings/AnimationSettings.cs | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/1.1/Assemblies/Rimworld-Animations.dll b/1.1/Assemblies/Rimworld-Animations.dll index 76a7b7a3854e86a55facbce1f366408b2f1478d5..cc11b8054178651a14df226fa2a843fc5d50bc9a 100644 GIT binary patch delta 11076 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 diff --git a/Source/Comps/CompBodyAnimator.cs b/Source/Comps/CompBodyAnimator.cs index 9d11e08..4cf8102 100644 --- a/Source/Comps/CompBodyAnimator.cs +++ b/Source/Comps/CompBodyAnimator.cs @@ -196,12 +196,14 @@ namespace Rimworld_Animations { if(rjw.RJWSettings.sounds_enabled && clip.SoundEffects.ContainsKey(clipTicks) && AnimationSettings.soundOverride) { SoundDef.Named(clip.SoundEffects[clipTicks]).PlayOneShot(new TargetInfo(pawn.Position, pawn.Map)); - if((pawn?.jobs?.curDriver is JobDriver_Sex) && clip.SoundEffects[clipTicks] == "Cum") { + if (AnimationSettings.applySemenOnAnimationOrgasm && (pawn?.jobs?.curDriver is JobDriver_Sex) && clip.SoundEffects[clipTicks] == "Cum") { Pawn partner = (pawn.jobs.curDriver as JobDriver_Sex)?.Partner; - if(anim.sexTypes.Contains((pawn.jobs.curDriver as JobDriver_Sex).sexType)) + if(anim.sexTypes.Contains((pawn.jobs.curDriver as JobDriver_Sex).sexType)) { SemenHelper.calculateAndApplySemen(pawn, partner, (pawn.jobs.curDriver as JobDriver_Sex).sexType); + } + } } diff --git a/Source/Settings/AnimationSettings.cs b/Source/Settings/AnimationSettings.cs index 740de32..fa95143 100644 --- a/Source/Settings/AnimationSettings.cs +++ b/Source/Settings/AnimationSettings.cs @@ -9,7 +9,7 @@ using UnityEngine; namespace Rimworld_Animations { public class AnimationSettings : ModSettings { - public static bool orgasmQuiver, rapeShiver, soundOverride = true, hearts = true, controlGenitalRotation = false; + public static bool orgasmQuiver, rapeShiver, soundOverride = true, hearts = true, controlGenitalRotation = false, applySemenOnAnimationOrgasm = false; public static float shiverIntensity = 2f; public override void ExposeData() { @@ -20,6 +20,7 @@ namespace Rimworld_Animations { Scribe_Values.Look(ref orgasmQuiver, "orgasmQuiver"); Scribe_Values.Look(ref rapeShiver, "rapeShiver"); Scribe_Values.Look(ref hearts, "heartsOnLovin"); + Scribe_Values.Look(ref applySemenOnAnimationOrgasm, "applySemenOnOrgasm", false); Scribe_Values.Look(ref soundOverride, "rjwAnimSoundOverride", true); Scribe_Values.Look(ref shiverIntensity, "shiverIntensity", 2f); @@ -41,6 +42,7 @@ namespace Rimworld_Animations { listingStandard.CheckboxLabeled("Enable Sound Override", ref AnimationSettings.soundOverride); listingStandard.CheckboxLabeled("Control Genital Rotation", ref AnimationSettings.controlGenitalRotation); + listingStandard.CheckboxLabeled("Apply semen on animation orgasm", ref AnimationSettings.applySemenOnAnimationOrgasm); listingStandard.CheckboxLabeled("Enable Orgasm Quiver", ref AnimationSettings.orgasmQuiver); listingStandard.CheckboxLabeled("Enable Rape Shiver", ref AnimationSettings.rapeShiver); listingStandard.CheckboxLabeled("Enable hearts during lovin'", ref AnimationSettings.hearts);