From 96d4c443a299eb9f5a8ab4d46838d8dc761456fc Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Sat, 11 Mar 2017 05:51:26 -0500
Subject: [PATCH] Origin override and bugfixes.

---
 src/init/storyInit.tw                       |  1 +
 src/npc/startingGirls/commitStartingGirl.tw |  1 +
 src/npc/startingGirls/moreCustomOptions.tw  |  5 ++
 src/npc/startingGirls/startingGirls.tw      |  2 +
 src/pregmod/generateChild.tw                | 16 +++---
 src/uncategorized/reRelativeRecruiter.tw    | 56 ++++++++++++++-------
 6 files changed, 55 insertions(+), 26 deletions(-)

diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index 01d7011b810..d185f19c5e7 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -734,6 +734,7 @@ DairyRestraintsSetting($dairyRestraintsSetting)
 <<set $retainCareer = 1>>
 <<set $freshPC = 0>>
 <<set $inbreeding = 1>>
+<<set $originOveride = 0>>
 
 <<set $fakeBellies to ["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"]>> /* lets fake bellies be separated from other .bellyAccessory */
 
diff --git a/src/npc/startingGirls/commitStartingGirl.tw b/src/npc/startingGirls/commitStartingGirl.tw
index e58353382a8..88a91830316 100644
--- a/src/npc/startingGirls/commitStartingGirl.tw
+++ b/src/npc/startingGirls/commitStartingGirl.tw
@@ -12,6 +12,7 @@
 <<set $activeSlave.boobs = Math.trunc($activeSlave.boobs/50)*50>>
 
 <<set $careerBonusApplied = 0>>
+<<set $originOveride = 0>>
 
 <<if $cash < $minimumSlaveCost>><<goto "Acquisition">><</if>>
 
diff --git a/src/npc/startingGirls/moreCustomOptions.tw b/src/npc/startingGirls/moreCustomOptions.tw
index 07fca4642eb..7ac21d6c725 100644
--- a/src/npc/startingGirls/moreCustomOptions.tw
+++ b/src/npc/startingGirls/moreCustomOptions.tw
@@ -21,6 +21,11 @@ Custom tattoo: <<textbox "$activeSlave.customTat" $activeSlave.customTat "More c
 &nbsp;&nbsp;&nbsp;&nbsp;//Use complete, capitalized and punctuated sentences//
 Custom origin story: <<textbox "$activeSlave.origin" $activeSlave.origin "More customization options">>
 &nbsp;&nbsp;&nbsp;&nbsp;//For best results, use complete, capitalized and punctuated sentences.//
+<<if $originOveride == 0>>
+	[[Origin Override|More customization options][$originOveride to 1]] //Will keep your custom origin from being overwritten.//
+<<else>>
+	[[Disable Override|More customization options][$originOveride to 0]] //Will unlock origin and allow slavegen to overwrite it.//
+<</if>>
 Custom description: <<textbox "$activeSlave.customDesc" $activeSlave.customDesc "More customization options">>
 &nbsp;&nbsp;&nbsp;&nbsp;//Use complete, capitalized and punctuated sentences.//
 Custom label: <<textbox "$activeSlave.customLabel" $activeSlave.customLabel "More customization options">>
diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw
index a5f8ad95a6f..7d981c9cfbb 100644
--- a/src/npc/startingGirls/startingGirls.tw
+++ b/src/npc/startingGirls/startingGirls.tw
@@ -139,6 +139,7 @@ __You are customizing this slave:__
 	<</if>>
 <</if>>
 /* this block makes starting girls actually apply the slave origins, mostly since it just hates you and everything you do */
+<<if $originOveride = 0>>
 	<<if $PC.career is "capitalist">>
 		<<if $activeSlave.mother == -1 && $activeSlave.father == -1>>
 			<<set $activeSlave.origin to "To solidify an investment in hermaphrodite self-fertility, you took part in a test successful test trial. Nine months later your daughter was born.">>
@@ -286,6 +287,7 @@ __You are customizing this slave:__
 		<<set $activeSlave.origin to "You won her at cards, a memento from your life as one of the idle rich before you became an arcology owner.">>
 		<<set $activeSlave.customTat to "She has the silhouette of an arcology tattooed on the nape of her neck.">>
 	<</if>>
+<</if>>
 	<<if $activeSlave.vagina < 1>>
 	<<set $activeSlave.vaginalSkill = 0>>
 	<</if>>
diff --git a/src/pregmod/generateChild.tw b/src/pregmod/generateChild.tw
index 15d589f146a..ec38196c3d2 100644
--- a/src/pregmod/generateChild.tw
+++ b/src/pregmod/generateChild.tw
@@ -253,16 +253,16 @@
 		<</if>>
 	<</if>>
 	<<set $activeSlave.mother = $mergeMom.ID>>
-	<<if $Mom.pregSource > 0>>
+	<<if $mom.pregSource > 0>>
 		<<set $activeSlave.father = $mergeDad.ID>>
-		<<set $activeSlave.slaveName = String($Mom.slaveName + " and " + $mergeDad.slaveName + "'s child")>>
-	<<elseif $Mom.pregSource == -1>>
+		<<set $activeSlave.slaveName = String($mom.slaveName + " and " + $mergeDad.slaveName + "'s child")>>
+	<<elseif $mom.pregSource == -1>>
 		<<set $activeSlave.father = -1>>
-		<<set $activeSlave.slaveName = String($Mom.slaveName + " and my child")>>
+		<<set $activeSlave.slaveName = String($mom.slaveName + " and my child")>>
 	<<else>>
 		<<set $activeSlave.father = $missingParentID>>
 		<<set $missingParentID-->>
-		<<set $activeSlave.slaveName = String($Mom.slaveName + "'s slut child")>>
+		<<set $activeSlave.slaveName = String($mom.slaveName + "'s slut child")>>
 	<</if>>
 	<<if $mergeMom.nationality == $mergeDad.nationality>>
 		<<set $activeSlave.nationality = $mergeDad.nationality>>
@@ -276,7 +276,7 @@
 	<<else>>
 		<<set $activeSlave.race = "mixed race">>
 	<</if>>
-	<<if $Mom.pregSource == -2 && $arcologies[0].FSSupremacist != "unset">>
+	<<if $mom.pregSource == -2 && $arcologies[0].FSSupremacist != "unset">>
 		<<set $activeSlave.race = either($mergeMom.race, $arcologies[0].FSSubjugationistRace, $arcologies[0].FSSubjugationistRace)>>
 		<<if $mergeMom.race != $arcologies[0].FSSubjugationistRace>>
 			<<if random(1,100) > 50>>
@@ -310,7 +310,7 @@
 	<<else>>
 		<<set $activeSlave.eyeColor = either($mergeMom.eyeColor, $mergeDad.eyeColor)>>
 	<</if>>
-	<<if $mergeMom.pregSource == -2 || $mergeMom.pregSource == 0>>
+	<<if $mom.pregSource == -2 || $mom.pregSource == 0>>
 		<<set $activeSlave.eyeColor = either($mergeMom.eyeColor, "brown", "blue", "brown", "green", "hazel", "green")>>
 	<</if>>
 	<<if $mergeMom.hColor == $mergeDad.hColor>>
@@ -338,7 +338,7 @@
 	<<else>>
 		<<set $activeSlave.hColor = either($mergeMom.hColor, $mergeDad.hColor)>>
 	<</if>>
-	<<if $Mom.pregSource == -2 || $Mom.pregSource == 0>>
+	<<if $mom.pregSource == -2 || $mom.pregSource == 0>>
 		<<set $activeSlave.hColor = either($mergeMom.hColor, "brown", "blonde", "black", "brown", "black", "brown", "black")>>
 	<</if>>
 	<<set $activeSlave.pubicHColor = $activeSlave.hColor>>
diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw
index 2e3b2e95ee6..67e4f8d8703 100644
--- a/src/uncategorized/reRelativeRecruiter.tw
+++ b/src/uncategorized/reRelativeRecruiter.tw
@@ -10,6 +10,7 @@
 	<<set $newRelativeRecruitID = 1100000>>
 <</if>>
 
+
 <<for $i to 0; $i < $slaves.length; $i++>>
 	<<if $slaves[$i].fuckdoll == 0>>
 	<<if $slaves[$i].canRecruit == 1>>
@@ -29,38 +30,54 @@
 <</for>>
 
 <<set $recruitedType = []>>
-<<if $eventSlave.mother == 0 && $activeSlave.actualAge < 24>>
+<<if $eventSlave.mother == 0 && $activeSlave.actualAge < 24 && $seeDicks != 100>>>>
 	<<set $recruitedType.push("mother")>>
 	<<set $recruitedType.push("mother")>>
 	<<set $recruitedType.push("mother")>>
 <</if>>
-<<if $eventSlave.father == 0 && $activeSlave.actualAge < 24>>
+<<if $eventSlave.father == 0 && $activeSlave.actualAge < 24 && $seeDicks != 0>>
 	<<set $recruitedType.push("father")>>
 <</if>>
 <<if $eventSlave.daughters < 3 && $activeSlave.actualAge > ($minimumSlaveAge+$fertilityAge) && isFertile($activeSlave)>>
-	<<set $recruitedType.push("daughter")>>
-	<<set $recruitedType.push("daughter")>>
-	<<set $recruitedType.push("son")>>
+	<<if $seeDicks != 100>>
+		<<set $recruitedType.push("daughter")>>
+		<<set $recruitedType.push("daughter")>>
+	<</if>>
+	<<if $seeDicks != 0>>
+		<<set $recruitedType.push("son")>>
+	<</if>>
 	<<set $tempMF = "mother">>
 <</if>>
 <<if $eventSlave.daughters < 3 && $activeSlave.actualAge > ($minimumSlaveAge+$potencyAge) && $activeSlave.balls > 0>>
-	<<set $recruitedType.push("daughter")>>
-	<<set $recruitedType.push("daughter")>>
-	<<set $recruitedType.push("son")>>
+	<<if $seeDicks != 100>>
+		<<set $recruitedType.push("daughter")>>
+		<<set $recruitedType.push("daughter")>>
+	<</if>>
+	<<if $seeDicks != 0>>
+		<<set $recruitedType.push("son")>>
+	<</if>>
 	<<set $tempMF = "father">>
 <</if>>
 <<if $eventSlave.sisters < 3>>
 	<<if $activeSlave.actualAge <= ($retirementAge-5)>>
-		<<set $recruitedType.push("older sister")>>
-		<<set $recruitedType.push("older sister")>>
-		<<set $recruitedType.push("older brother")>>
-		<<set $recruitedType.push("older brother")>>
+		<<if $seeDicks != 100>>
+			<<set $recruitedType.push("older sister")>>
+			<<set $recruitedType.push("older sister")>>
+		<</if>>
+		<<if $seeDicks != 0>>
+			<<set $recruitedType.push("older brother")>>
+			<<set $recruitedType.push("older brother")>>
+		<</if>>
 	<</if>>
 	<<if $activeSlave.actualAge >= ($minimumSlaveAge+5)>>
-		<<set $recruitedType.push("younger sister")>>
-		<<set $recruitedType.push("younger sister")>>
-		<<set $recruitedType.push("younger brother")>>
-		<<set $recruitedType.push("younger brother")>>
+		<<if $seeDicks != 100>>
+			<<set $recruitedType.push("younger sister")>>
+			<<set $recruitedType.push("younger sister")>>
+		<</if>>
+		<<if $seeDicks != 0>>
+			<<set $recruitedType.push("younger brother")>>
+			<<set $recruitedType.push("younger brother")>>
+		<</if>>
 	<</if>>
 	<<set $recruitedType.push("twin")>>
 <</if>>
@@ -240,6 +257,7 @@ She waits anxiously for your decision.
 	<<set $activeSlave.voice = 1>>
 	<<set $activeSlave.energy = 0>>
 	<<set $activeSlave.penis = 2>>
+	<<set $activeSlave.vagina = -1>>
 	<<set $activeSlave.boobs = (random(5,6)*100)>>
 	<<set $activeSlave.butt = random(4,6)>>
 	<<set $activeSlave.actualAge = ($eventSlave.actualAge+random(15,20))>>
@@ -338,6 +356,7 @@ She waits anxiously for your decision.
 	<<set $activeSlave.entertainSkill += random(0,20)>>
 	<<set $activeSlave.whoreSkill += random(0,20)>>
 	<<set $activeSlave.anus = 0>>
+	<<set $activeSlave.vagina = -1>>
 	<<set $activeSlave.energy = 70>>
 	<<set $activeSlave.dickPiercing = 1>>
 	<<set $activeSlave.tounguePiercing = 1>>
@@ -359,6 +378,7 @@ She waits anxiously for your decision.
 	<<set $activeSlave.balls = 1>>
 	<<set $activeSlave.foreskin = 10>>
 	<<set $activeSlave.scrotum = 10>>
+	<<set $activeSlave.vagina = -1>>
 	<<set $activeSlave.anus = 3>>
 	<<set $activeSlave.makeup = 3>>
 	<<set $activeSlave.nails = 5>>
@@ -490,7 +510,7 @@ She waits anxiously for your decision.
 <<set $newRelativeRecruitID++>>
 
 <br><br>
-You look up the $activeSlave.relation. She costs ¤$slaveCost, a bargain, but you won't be able to inspect her beyond her likely resemblance to her
+You look up the $relationType. She costs ¤$slaveCost, a bargain, but you won't be able to inspect her beyond her likely resemblance to her
 <<switch $relationType>>
 <<case "daughter">>
 	mother. Her listing states that she was used as a prostitute by her previous owner.
@@ -692,7 +712,7 @@ You look up the $activeSlave.relation. She costs ¤$slaveCost, a bargain, but yo
 	<<AddSlave $activeSlave>>
 	<<SlaveTitle $eventSlave>>
 	<<replace "#result">>
-	You complete the legalities and biometric scanning quickly and without fuss. $activeSlave.slaveName arrives shortly. The two slaves remember each other only dimly - they parted a long time ago - but they embrace. The devoted $desc explains the situation and encourages her $activeSlave.relation to be a good slave to you. $activeSlave.slaveName looks a little fearful but clearly realizes that she's lucky to be here.
+	You complete the legalities and biometric scanning quickly and without fuss. $activeSlave.slaveName arrives shortly. The two slaves remember each other only dimly - they parted a long time ago - but they embrace. The devoted $desc explains the situation and encourages her $relationType to be a good slave to you. $activeSlave.slaveName looks a little fearful but clearly realizes that she's lucky to be here.
 	<<set $nextLink to "AS Dump">>
 	<<set $recruitedType = 0>>
 	<<set $relationType = 0>>
-- 
GitLab