From 342c09ab208284aa9467c93220c2573ed3e742bf Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Fri, 30 Mar 2018 23:32:28 -0400
Subject: [PATCH] Various anal removals, optional name flipping, other bug
 fixes.

---
 devNotes/VersionChangeLog-Premod+LoliMod.txt  |   6 +
 devNotes/twine CSS                            | 408 ++++++++++++++++++
 src/gui/Encyclopedia/encyclopedia.tw          |   1 +
 src/gui/css/mainStyleSheet.tw                 |   2 +-
 src/init/storyInit.tw                         |   1 +
 src/npc/acquisition.tw                        |   9 +-
 src/uncategorized/RESS.tw                     |  26 +-
 src/uncategorized/descriptionOptions.tw       |   8 +
 src/uncategorized/hgSelect.tw                 |  21 +-
 src/uncategorized/longSlaveDescription.tw     |  18 +-
 src/uncategorized/peConcubineInterview.tw     |   4 +-
 src/uncategorized/randomIndividualEvent.tw    |  16 +-
 src/uncategorized/randomNonindividualEvent.tw |  16 +-
 src/uncategorized/rename.tw                   |  16 +-
 src/uncategorized/saHormoneEffects.tw         |   2 +
 src/uncategorized/saLongTermEffects.tw        |   3 +-
 src/utility/descriptionWidgetsFlesh.tw        |  15 +-
 src/utility/miscWidgets.tw                    |  22 +-
 18 files changed, 531 insertions(+), 63 deletions(-)
 create mode 100644 devNotes/twine CSS

diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt
index 70f22992473..5d523edb5d8 100644
--- a/devNotes/VersionChangeLog-Premod+LoliMod.txt
+++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt
@@ -4,6 +4,12 @@
 
 3/30/2018
 
+	17
+	-major update to original embedded vector art
+	-shifted loli growth hormone check into saHormoneEffects to not supress feedback
+	-various little fixes
+	-added surname order control to description options
+
 	16
 	-various corrections to enslaved citizens not being the right race when the supremacist law is in play
 	-a certain policy is now properly enforced
diff --git a/devNotes/twine CSS b/devNotes/twine CSS
new file mode 100644
index 00000000000..ff811dbe2e6
--- /dev/null
+++ b/devNotes/twine CSS	
@@ -0,0 +1,408 @@
+/*:: Main stylesheet [stylesheet]*/
+
+body {
+	overflow-x: hidden;
+}
+
+/* clears SugarCube's default transition */
+.passage {
+    transition: none;
+    -webkit-transition: none;
+}
+
+.passage-in {
+    opacity: 1 !important;
+}
+
+
+/* default is 54em */
+#passages {
+    max-width: 100%;
+}
+
+/* small trick to hide broken images */
+img {
+    text-indent: -10000px;
+}
+
+.imageRef {
+    display: flex;
+    flex-direction: column;
+    flex-wrap: wrap;
+    align-items: flex-start;
+    position: relative;
+	background-color: rgba(80, 80, 80, 0.5);
+	margin: 2px;
+}
+
+.tinyImg {
+    height: 120px;
+    width: 120px;
+    float: left;
+}
+
+.smlImg {
+    height: 150px;
+    width: 150px;
+    float: left;
+}
+
+.smlImg > img, .smlImg > video {
+	height: auto;
+}
+
+.medImg {
+    height: 300px;
+    width: 300px;
+    float: right;
+}
+
+.medImg > img, .medImg > video {
+	height: auto;
+}
+
+.lrgRender {
+    height: 531px;
+    width: 531px;
+	margin-right: -50px;
+	margin-left: -50px;
+    float: right;
+	z-index: -1;
+}
+
+.lrgVector {
+    height: 600px;
+    width: 600px;
+	margin-right: -125px;
+	margin-left: -125px;
+    float: right;
+	z-index: -1;
+}
+
+.lrgRender > div.mask {
+	width: 150px;
+	height: 100%;
+	background: linear-gradient(90deg, rgba(17,17,17,1), rgba(17,17,17,0.8) 60%, rgba(17,17,17,0));
+	z-index: 1;
+}
+
+.lrgRender > img, .lrgRender > video {
+	margin-left: -150px;
+	height: 531px;
+	width: auto;
+}
+
+.lrgVector > div.mask {
+	width: 150px;
+	height: 100%;
+	background: linear-gradient(90deg, rgba(17,17,17,1), rgba(17,17,17,0.8) 60%, rgba(17,17,17,0));
+	z-index: 1;
+}
+
+.lrgVector > img, .lrgVector > video {
+	margin-left: -150px;
+	height: 600px;
+	width: auto;
+}
+
+.lrgVector svg {
+    width: 336px;
+    height: 600px;
+}
+
+object {
+    object-fit: scale-down;
+    position: absolute;
+    top: 0;
+	left: 0;
+}
+
+img.paperdoll {
+    position: absolute;
+    top: 0;
+	left: 0;
+	margin-left: 0;
+}
+
+span.plusButton {
+	display: inline-block;
+	line-height: 25px;
+	width: 20px;
+	text-align: center;
+	border: 1px solid rgba(0, 139, 0, 0.3);
+	background: rgba(0, 139, 0, 0.2);
+	margin: 2px 0;
+}
+
+span.minusButton {
+	display: inline-block;
+	line-height: 25px;
+	width: 20px;
+	text-align: center;
+	border: 1px solid rgba(184, 0, 0, 0.3);
+	background: rgba(184, 0, 0, 0.2);
+	margin: 2px 0;
+}
+
+span.zeroButton {
+	display: inline-block;
+	line-height: 25px;
+	width: 20px;
+	text-align: center;
+	border: 1px solid rgba(0, 0, 255, 0.3);
+	background: rgba(0, 0, 255, 0.2);
+	margin: 2px 0;
+}
+
+span.plusButton:hover { background: rgba(0, 139, 0, 0.4); }
+span.minusButton:hover { background: rgba(184, 0, 0, 0.4); }
+span.zeroButton:hover { background: rgba(0, 0, 255, 0.4); }
+
+span.plusButton > a { display: block; }
+span.minusButton > a { display: block; }
+span.zeroButton > a { display: block; }
+
+span.plusButton > a:hover { text-decoration: none; }
+span.minusButton > a:hover { text-decoration: none; }
+span.zeroButton > a:hover { text-decoration: none; }
+
+/* Colors are made as css classes, to allow them to be
+   changed for a light color scheme (for example). */
+.link { color: #68D } /* link color */
+.aquamarine { color: aquamarine }
+.coral { color: coral }
+.cyan { color: cyan }
+.darkgoldenrod { color: darkgoldenrod }
+.darkred { color: darkred }
+.darkviolet { color: darkviolet }
+.deeppink { color: deeppink }
+.deepskyblue { color: deepskyblue }
+.gold { color: gold }
+.goldenrod { color: goldenrod }
+.gray { color: gray }
+.green { color: green }
+.hotpink { color: hotpink }
+.lawngreen { color: lawngreen }
+.lightcoral { color: lightcoral }
+.lightgreen { color: lightgreen }
+.lightpink { color: lightpink }
+.lightsalmon { color: lightsalmon }
+.lime { color: lime }
+.limegreen { color: limegreen }
+.magenta { color: magenta }
+.mediumaquamarine { color: mediumaquamarine }
+.mediumorchid { color: mediumorchid }
+.mediumseagreen { color: mediumseagreen }
+.orange { color: orange }
+.orangered { color: orangered }
+.orchid { color: orchid }
+.pink { color: pink }
+.red { color: red }
+.seagreen { color: seagreen }
+.springgreen { color: springgreen }
+.tan { color: tan }
+.yellow { color: yellow }
+.yellowgreen { color: yellowgreen }
+
+.link a { color: #68D } /* link color */
+.aquamarine a { color: aquamarine }
+.coral a { color: coral }
+.cyan a { color: cyan }
+.darkgoldenrod a { color: darkgoldenrod }
+.darkred a { color: darkred }
+.darkviolet a { color: darkviolet }
+.deeppink a { color: deeppink }
+.deepskyblue a { color: deepskyblue }
+.gold a { color: gold }
+.goldenrod a { color: goldenrod }
+.gray a { color: gray }
+.green a { color: green }
+.hotpink a { color: hotpink }
+.lawngreen a { color: lawngreen }
+.lightcoral a { color: lightcoral }
+.lightgreen a { color: lightgreen }
+.lightpink a { color: lightpink }
+.lightsalmon a { color: lightsalmon }
+.lime a { color: lime }
+.limegreen a { color: limegreen }
+.magenta a { color: magenta }
+.mediumaquamarine a { color: mediumaquamarine }
+.mediumorchid a { color: mediumorchid }
+.mediumseagreen a { color: mediumseagreen }
+.orange a { color: orange }
+.orangered a { color: orangered }
+.orchid a { color: orchid }
+.pink a { color: pink }
+.red a { color: red }
+.seagreen a { color: seagreen }
+.springgreen a { color: springgreen }
+.tan a { color: tan }
+.yellow a { color: yellow }
+.yellowgreen a { color: yellowgreen }
+
+/*! <<checkvars>> macro for SugarCube 2.x */
+#ui-dialog-body.checkvars{padding:1em}#ui-dialog-body.checkvars h1{font-size:1em;margin-top:0}#ui-dialog-body.checkvars table{border-collapse:collapse;border-spacing:0}#ui-dialog-body.checkvars thead tr{border-bottom:2px solid #444}#ui-dialog-body.checkvars tr:not(:first-child){border-top:1px solid #444}#ui-dialog-body.checkvars td,#ui-dialog-body.checkvars th{padding:.25em 1em}#ui-dialog-body.checkvars td:first-child,#ui-dialog-body.checkvars th:first-child{padding-left:.5em;border-right:1px solid #444}#ui-dialog-body.checkvars td:last-child,#ui-dialog-body.checkvars th:last-child{padding-right:.5em}#ui-dialog-body.checkvars th:first-child{text-align:center}#ui-dialog-body.checkvars td:first-child{font-weight:700;text-align:right}#ui-dialog-body.checkvars td{font-family:monospace,monospace;vertical-align:top;white-space:pre-wrap}#ui-dialog-body.checkvars .scroll-pad{margin:0;padding:0}
+
+/*! <<bugreport>> macro for SugarCube 2.x */
+#ui-dialog-body.bugreport #bugreport-info{margin-bottom:1em}#ui-dialog-body.bugreport #bugreport-data{display:block;overflow:auto;font-family:monospace,monospace;background-color:transparent;border:1px solid #444;margin:0;padding:6px;height:auto;min-height:200px;white-space:normal}#ui-dialog-body.bugreport .scroll-pad{margin:0;padding:0}
+
+div.output{
+width: 100%;
+width: 100vw;
+max-width: 100%;
+word-break: break-all;
+white-space: normal;
+}
+
+/*:: accordionStyleSheet [stylesheet]*/
+/* Accordion 000-250-006 */
+
+button.accordion {
+    cursor: pointer;
+    padding: 5px;
+    width: 100%;
+    margin-bottom: 10px;
+    border-bottom: 3px double;
+    border-right: 3px double;
+    border-left: none;
+    border-top: none;
+    text-align: left;
+    outline: none;
+    transition: 0.2s;
+    background-color: transparent;
+}
+
+button.accordion.active, button.accordion:hover {
+    background-color: transparent;
+}
+
+button.accordion:before {
+    content: '\002B';
+    color: #777;
+    font-weight: bold;
+    float: left;
+    margin-right: 5px;
+}
+
+.unStaffed {
+    background-color: transparent;
+    padding: .5em .2em;
+    margin-bottom: 1em;
+    border-bottom: thin inset grey;
+}
+
+.unStaffed:before {
+    content: '\00D7';
+    color: #777;
+    font-weight: bold;
+    color: red;
+    float: left;
+    margin-right: 5px;
+}
+
+.unStaffed:after {
+    content: attr(data-after);
+    float: right;
+    margin-left: 2em;
+    font-weight: strong;
+    color: green;
+}
+
+button.accordion:after {
+    content: attr(data-after);
+    float: right;
+    margin-left: 2em;
+    font-weight: normal;
+    color: green;
+}
+
+button.accordion.active:before {
+    content: "\2212";
+}
+
+.accHidden {
+    padding: 0 18px;
+	margin-top: 5px;
+	margin-bottom: 5px;
+    max-height: 0;
+    overflow: hidden;
+}
+
+/* begin efmCSS */
+
+#graph .linage {
+    fill: none;
+    stroke: white;
+}
+#graph .marriage {
+    fill: none;
+    stroke: white;
+}
+#graph .node {
+    background-color: lightblue;
+    border-style: solid;
+    border-width: 1px;
+}
+#graph .nodeText{
+    font: 10px sans-serif;
+    margin: 0;
+    padding: 0;
+    color: black;
+}
+#graph {
+    font: 10px sans-serif;
+    margin: -20px 0;
+    padding: 0;
+    color: black;
+}
+
+#graph div {
+    border-style: solid;
+    border-width: 1px;
+}
+
+#graph .XY {
+    background-color: lightblue;
+}
+
+#graph div.XX {
+    background-color: pink;
+}
+
+#graph div.unknown {
+    background-color: gray;
+}
+
+#graph div.unknownXY {
+    background-color: #808080;
+}
+
+#graph div.unknownXX {
+    background-color: #808080;
+}
+
+#graph .you {
+    background-color: red;
+}
+
+#graph .emphasis {
+    font-style: italic;
+    font-weight: bold;
+    margin: 0;
+    background: #ffffff88;
+    border: 2px solid Gold; 
+	white-space: nowrap;
+}
+
+#editFamily {
+    display: flex;
+    flex-wrap: wrap;
+    align-items: center;
+}
+
+#editFamily #familyTable {
+}
+
+/* end extended family css */
+
+config.history.tracking = false;
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index 4c4909dd5b2..1890dbbee55 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -2616,6 +2616,7 @@ __I do not give credit without explicit permission to do so.__ If you have contr
 <br>''Faraen'' for a full vector art variant.
 <br>''anon'' for more hair vectors for the external art.
 <br>''Vas'' for massive JS work.
+<br>''deepmurk'' for a massive expansion in conjuction with Nox to the original embedded vector art. Also more hairs and clothes.
 <br>''Bane70'' optimized huge swaths of code with notable professionalism.
 <br>''Circle Tritagonist'' provided several new collars and outfits.
 <br>''Qotsafan'' submitted bugfixes.
diff --git a/src/gui/css/mainStyleSheet.tw b/src/gui/css/mainStyleSheet.tw
index d2112a92ac2..a6d3dde4b8a 100644
--- a/src/gui/css/mainStyleSheet.tw
+++ b/src/gui/css/mainStyleSheet.tw
@@ -84,7 +84,7 @@ img {
 	height: 100%;
 	background: linear-gradient(90deg, rgba(17,17,17,1), rgba(17,17,17,0.8) 60%, rgba(17,17,17,0));
 	z-index: 1;
-	position: absolute;
+	/*position: absolute;*/
 }
 
 .lrgRender > img, .lrgRender > video {
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index 7c57c70ae38..d09c3248a3d 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -737,6 +737,7 @@ DairyRestraintsSetting($dairyRestraintsSetting)
 <<set $swanSong = 0>>
 <<set $failedElite = 0>>
 <<set $eugenicsFullControl = 0>>
+<<set $badC = 0, $badB = 0>>
 
 <<set $schoolSuggestion = 0>>
 <<set $TSS = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>>
diff --git a/src/npc/acquisition.tw b/src/npc/acquisition.tw
index 6a27be9e7fd..da9f6d4d0b3 100644
--- a/src/npc/acquisition.tw
+++ b/src/npc/acquisition.tw
@@ -133,13 +133,8 @@ You've done it.
 You arrive at your new arcology, $arcologies[0].name, and head straight to the penthouse to enter the access codes that will tell the $arcologies[0].name systems to recognize you as their owner. The penthouse office is ready to receive the codes, and they authenticate. A voice activates in your earpiece.
 <br><br>
 //Congratulations. I am a personal assistant program, and it is my pleasure to assist you,
-<<switch $PC.nationality>>
-<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
-	<<if $PC.surname>>$PC.surname <</if>>$PC.name,
-<<default>>
-	$PC.name<<if $PC.surname>> $PC.surname<</if>>,
-<</switch>>
-the new owner of  $arcologies[0].name. I will offer useful information whenever possible in italics. Your new arcology has some unusual equipment. The previous owner kept a small stable of sex slaves. The penthouse therefore has a body modification studio for tattooing, bleaching and piercing, and an auto salon for more prosaic things like hair care. It also has a remote surgery, a small surgical theater that can be operated remotely by a qualified surgeon if you can pay the fee. Finally, it has a slave nutrition system connected to the arcology's hydroponics bays. This system produces a tasty protein-rich drink that provides the physically active female body all its necessary nutrients while leaving the lower digestive tract extremely clean. It even causes a mild increase in sex drive.
+<<PlayerName>>
+the new owner of $arcologies[0].name. I will offer useful information whenever possible in italics. Your new arcology has some unusual equipment. The previous owner kept a small stable of sex slaves. The penthouse therefore has a body modification studio for tattooing, bleaching and piercing, and an auto salon for more prosaic things like hair care. It also has a remote surgery, a small surgical theater that can be operated remotely by a qualified surgeon if you can pay the fee. Finally, it has a slave nutrition system connected to the arcology's hydroponics bays. This system produces a tasty protein-rich drink that provides the physically active female body all its necessary nutrients while leaving the lower digestive tract extremely clean. It even causes a mild increase in sex drive.
 <br><br>
 The previous owner seems to have left in something of a hurry.
 <<if $cheatMode == 1>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 124008f0343..03f1c21b907 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -740,14 +740,28 @@ As if the invitation wasn't already blindingly clear, she reaches a hand down wi
 	massage her trim butt.
 <</if>>
 She pulls the buttock closest to you aside, giving you a clear view of her
-<<if $activeSlave.anus > 2>>
-	lewd anal slit.
-<<elseif $activeSlave.anus > 1>>
-	loose asshole.
+<<if canDoVaginal($activeSlave)>>
+	<<if $activeSlave.vagina == 10>>
+		gaping birth hole<<if $activeSlave.belly >= 100000>> and nearly prolapsing cervix<</if>>. She runs her fingers around its edge before sinking her fist into it and preparing herself like a good slavegirl for her <<WrittenMaster>>.
+	<<elseif $activeSlave.vagina > 2>>
+		lewd, well traveled pussy. She traces a finger around it before sinking her hand into it and spreading herself wide like a good slavegirl for her <<WrittenMaster>>.
+	<<elseif $activeSlave.vagina > 1>>
+		loose pussy. She traces a finger around it before spreading herself wide like a good slavegirl for her <<WrittenMaster>>.
+	<<elseif $activeSlave.vagina > 1>>
+		tight pussy. She traces a finger around it before spreading herself like a good slavegirl for her <<WrittenMaster>>.
+	<<else>>
+		virgin pussy. She traces a finger around it before spreading herself like a good slavegirl for her <<WrittenMaster>>.
+	<</if>>
 <<else>>
-	tight anus.
+	<<if $activeSlave.anus > 2>>
+		lewd anal slit.
+	<<elseif $activeSlave.anus > 1>>
+		loose asshole.
+	<<else>>
+		tight anus.
+	<</if>>
+	She clenches it and relaxes it, clenches it and relaxes it, winking her butthole at her <<WrittenMaster>> like a good anal slave.
 <</if>>
-She clenches it and relaxes it, clenches it and relaxes it, winking her butthole at her <<WrittenMaster>> like a good anal slave.
 
 <<case "resistant shower">>
 
diff --git a/src/uncategorized/descriptionOptions.tw b/src/uncategorized/descriptionOptions.tw
index 05cc559fde6..2aae4c322d5 100644
--- a/src/uncategorized/descriptionOptions.tw
+++ b/src/uncategorized/descriptionOptions.tw
@@ -82,3 +82,11 @@ Attractiveness and Sexual scores are
 	@@.red;HIDDEN.@@ //[[Show|Description Options][$showScores = 1]]//
 <</if>>
 
+<br>
+
+Names will
+<<if $surnameOrder != 1>>
+	adhere to a slave's country of origin. //[[Force name surname|Description Options][$surnameOrder = 1]]//
+<<else>>
+	always be name surname.[[Allow nationality name order|Description Options][$surnameOrder = 0]]//
+<</if>>
\ No newline at end of file
diff --git a/src/uncategorized/hgSelect.tw b/src/uncategorized/hgSelect.tw
index 33e48fa08c9..9d25131cc5b 100644
--- a/src/uncategorized/hgSelect.tw
+++ b/src/uncategorized/hgSelect.tw
@@ -9,17 +9,22 @@
 <<if ($HeadGirl != 0)>>
 	<<set _i = $slaves.findIndex(function(s) { return s.ID == $HeadGirl.ID; })>>
 	<<set $HeadGirl = $slaves[_i]>>
-	<<switch $HeadGirl.nationality>>
-	<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
-		<<if $HeadGirl.slaveSurname>>
-			<<set _HGName = $HeadGirl.slaveSurname + " " + $HeadGirl.slaveName>>
-		<<else>>
+	<<if $surnameOrder != 1>>
+		<<switch $HeadGirl.nationality>>
+		<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
+			<<if $HeadGirl.slaveSurname>>
+				<<set _HGName = $HeadGirl.slaveSurname + " " + $HeadGirl.slaveName>>
+			<<else>>
+				<<set _HGName = $HeadGirl.slaveName>>
+			<</if>>
+		<<default>>
 			<<set _HGName = $HeadGirl.slaveName>>
-		<</if>>
-	<<default>>
+			<<if $HeadGirl.slaveSurname>><<set _HGName += " " + $HeadGirl.slaveSurname>><</if>>
+		<</switch>>
+	<<else>>
 		<<set _HGName = $HeadGirl.slaveName>>
 		<<if $HeadGirl.slaveSurname>><<set _HGName += " " + $HeadGirl.slaveSurname>><</if>>
-	<</switch>>
+	<</if>>
 	''__@@.pink;_HGName@@__'' is serving as your Head Girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort; it is her role to serve and comfort you at your side, in addition to performing normal head girl duties<</if>>.
 	<br><br>
 <</if>>
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index 18ae457d54a..13fc2ab145f 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -335,13 +335,15 @@ She comes to you for an inspection
 		$activeSlave.birthSurname.
 	<<elseif $activeSlave.birthSurname === "">>
 		$activeSlave.birthName.
-	<<else>>
+	<<elseif $surnameOrder != 1>>>>
 		<<switch $activeSlave.nationality>>
 		<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
 			<<if $activeSlave.birthSurname>>$activeSlave.birthSurname <</if>>$activeSlave.birthName.
 		<<default>>
 			$activeSlave.birthName<<if $activeSlave.birthSurname>> $activeSlave.birthSurname<</if>>.
 		<</switch>>
+	<<else>>
+		$activeSlave.birthName<<if $activeSlave.birthSurname>> $activeSlave.birthSurname<</if>>.
 	<</if>>
 	<</if>>
 	<<if $activeSlave.slaveSurname == 0>>
@@ -356,12 +358,16 @@ She comes to you for an inspection
 	<</if>>
 <<else>>
 	$activeSlave.slaveName<<if $activeSlave.slaveSurname>> $activeSlave.slaveSurname<</if>> is not its original name: it was once called
-	<<switch $activeSlave.nationality>>
-	<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
-		<<if $activeSlave.birthSurname>>$activeSlave.birthSurname <</if>>$activeSlave.birthName.
-	<<default>>
+	<<if $surnameOrder != 1>>
+		<<switch $activeSlave.nationality>>
+		<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
+			<<if $activeSlave.birthSurname>>$activeSlave.birthSurname <</if>>$activeSlave.birthName.
+		<<default>>
+			$activeSlave.birthName<<if $activeSlave.birthSurname>> $activeSlave.birthSurname<</if>>.
+		<</switch>>
+	<<else>>
 		$activeSlave.birthName<<if $activeSlave.birthSurname>> $activeSlave.birthSurname<</if>>.
-	<</switch>>
+	<</if>>
 <</if>>
 <</if>>
 
diff --git a/src/uncategorized/peConcubineInterview.tw b/src/uncategorized/peConcubineInterview.tw
index d058bc561d8..96f3b0ed6ad 100644
--- a/src/uncategorized/peConcubineInterview.tw
+++ b/src/uncategorized/peConcubineInterview.tw
@@ -256,8 +256,8 @@ You receive an official communication from a popular talk show hosted in one of
 		<<elseif ($activeSlave.fetish == "dom")>>
 			how much she loves holding other slaves down for you
 		<<elseif ($activeSlave.fetish == "pregnancy")>>
-			<<if $activeSlave.pregKnown == 1>>
-				how good anal feels while pregnant
+			<<if $activeSlave.pregKnown == 1 || $activeSlave.births > 0>>
+				how good sex feels while pregnant
 			<<elseif $activeSlave.vagina > 0>>
 				how good cum feels inside her
 			<<else>>
diff --git a/src/uncategorized/randomIndividualEvent.tw b/src/uncategorized/randomIndividualEvent.tw
index 7a178195176..23e7f3d06a6 100644
--- a/src/uncategorized/randomIndividualEvent.tw
+++ b/src/uncategorized/randomIndividualEvent.tw
@@ -9,12 +9,16 @@
 	<br>
 	<<for $i = 0; $i < $eligibleSlaves.length; $i++>>
 		<<if $eligibleSlaves[$i].slaveSurname>>
-			<<switch $eligibleSlaves[$i].nationality>>
-				<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
-					<<set _slaveName = $eligibleSlaves[$i].slaveSurname + " " + $eligibleSlaves[$i].slaveName>>
-				<<default>>
-					<<set _slaveName = $eligibleSlaves[$i].slaveName + " " + $eligibleSlaves[$i].slaveSurname>>
-			<</switch>>
+			<<if $surnameOrder != 1>>
+				<<switch $eligibleSlaves[$i].nationality>>
+					<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
+						<<set _slaveName = $eligibleSlaves[$i].slaveSurname + " " + $eligibleSlaves[$i].slaveName>>
+					<<default>>
+						<<set _slaveName = $eligibleSlaves[$i].slaveName + " " + $eligibleSlaves[$i].slaveSurname>>
+				<</switch>>
+			<<else>>
+				<<set _slaveName = $eligibleSlaves[$i].slaveName + " " + $eligibleSlaves[$i].slaveSurname>>
+			<</if>>
 		<<else>>
 			<<set _slaveName = $eligibleSlaves[$i].slaveName>>
 		<</if>>
diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw
index f55b6c443ae..56e0efdc0b6 100644
--- a/src/uncategorized/randomNonindividualEvent.tw
+++ b/src/uncategorized/randomNonindividualEvent.tw
@@ -9,12 +9,16 @@
 	<br>
 	<<for $i = 0; $i < $slaves.length; $i++>>
 	   	<<if $slaves[$i].slaveSurname>>
-			<<switch $slaves[$i].nationality>>
-				<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
-					<<set _slaveName = $slaves[$i].slaveSurname + " " + $slaves[$i].slaveName>>
-				<<default>>
-					<<set _slaveName = $slaves[$i].slaveName + " " + $slaves[$i].slaveSurname>>
-			<</switch>>
+			<<if $surnameOrder != 1>>
+				<<switch $slaves[$i].nationality>>
+					<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
+						<<set _slaveName = $slaves[$i].slaveSurname + " " + $slaves[$i].slaveName>>
+					<<default>>
+						<<set _slaveName = $slaves[$i].slaveName + " " + $slaves[$i].slaveSurname>>
+				<</switch>>
+			<<else>>
+				<<set _slaveName = $slaves[$i].slaveName + " " + $slaves[$i].slaveSurname>>
+			<</if>>
 		<<else>>
 			<<set _slaveName = $slaves[$i].slaveName>>
 		<</if>>
diff --git a/src/uncategorized/rename.tw b/src/uncategorized/rename.tw
index adf1fe5eddc..aa9087ae2b4 100644
--- a/src/uncategorized/rename.tw
+++ b/src/uncategorized/rename.tw
@@ -16,13 +16,17 @@
 	<<elseif $activeSlave.devotion >= -50>>
 		reluctantly accepts her new name.
 	<<else>>
-		angrily tries to resist her new name, insisting that her name is 
-		<<switch $activeSlave.nationality>>
-		<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
-			<<if $activeSlave.birthSurname>>$activeSlave.birthSurname <</if>>$activeSlave.birthName.
-		<<default>>
+		angrily tries to resist her new name, insisting that her name is
+		<<if $surnameOrder != 1>>
+			<<switch $activeSlave.nationality>>
+			<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
+				<<if $activeSlave.birthSurname>>$activeSlave.birthSurname <</if>>$activeSlave.birthName.
+			<<default>>
+				$activeSlave.birthName<<if $activeSlave.birthSurname>> $activeSlave.birthSurname<</if>>.
+			<</switch>>
+		<<else>>
 			$activeSlave.birthName<<if $activeSlave.birthSurname>> $activeSlave.birthSurname<</if>>.
-		<</switch>>
+		<</if>>
 		This resistance @@.mediumorchid; increases her rebelliousness.@@
 		<<set $activeSlave.devotion -= 5>>
 	<</if>>
diff --git a/src/uncategorized/saHormoneEffects.tw b/src/uncategorized/saHormoneEffects.tw
index 9bbe08e5699..400a73e9b52 100644
--- a/src/uncategorized/saHormoneEffects.tw
+++ b/src/uncategorized/saHormoneEffects.tw
@@ -71,6 +71,7 @@
 	<</if>>
 <</if>>
 
+<<if $slaves[$i].physicalAge >= 18 || $loliGrow == 1>>
 <<if Math.abs($slaves[$i].hormoneBalance) >= 50>>
 
 <<if $slaves[$i].hormoneBalance >= 350>>
@@ -758,6 +759,7 @@
 
 <</if>>
 
+<</if>>
 <</if>>
 
 <<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index dbec3f4d790..f00980e19c7 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -3499,7 +3499,7 @@
 		<</if>>
 	<</if>>
 <<set $slaves[$i].hormoneBalance = Math.clamp($slaves[$i].hormoneBalance, -400, 400)>>
-<<if $slaves[$i].drugs != "hormone blockers" && ($slaves[$i].physicalAge >= 18 || $loliGrow == 1)>>
+<<if $slaves[$i].drugs != "hormone blockers">>
 	<<include "SA hormone effects">>
 <<elseif $slaves[$i].drugs == "hormone blockers">>
 	The hormone blockers $pronoun is on suppress $possessive hormones, natural or not.
@@ -3532,6 +3532,7 @@
 		<<set $slaves[$i].hormoneBalance += 5>>
 	<</if>>
 <</if>>
+
 <<if $slaves[$i].genes == "XX">>
 	<<if $slaves[$i].ovaries == 1 || $slaves[$i].mpreg == 1>>
 		<<if $slaves[$i].balls > 0>>
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index a0d3fad85fe..ab1de95e823 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -8661,13 +8661,18 @@ $pronounCap has
 <<if $activeSlave.pregSource > 0>>
 	<<set _lsd = $slaves.findIndex(function(s) { return s.ID == $activeSlave.pregSource; })>>
 	<<if _lsd != -1>>
-		<<switch $slaves[_lsd].nationality>>
-		<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
-			<<if $slaves[_lsd].slaveSurname>><<set _daddy = $slaves[_lsd].slaveSurname>><<set _daddy += " " + $slaves[_lsd].slaveName>><<else>><<set _daddy = $slaves[_lsd].slaveName>><</if>>
-		<<default>>
+		<<if $surnameOrder != 1>>
+			<<switch $slaves[_lsd].nationality>>
+			<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
+				<<if $slaves[_lsd].slaveSurname>><<set _daddy = $slaves[_lsd].slaveSurname>><<set _daddy += " " + $slaves[_lsd].slaveName>><<else>><<set _daddy = $slaves[_lsd].slaveName>><</if>>
+			<<default>>
+				<<set _daddy = $slaves[_lsd].slaveName>>
+				<<if $slaves[_lsd].slaveSurname>><<set _daddy += " " + $slaves[_lsd].slaveSurname>><</if>>
+			<</switch>>
+		<<else>>
 			<<set _daddy = $slaves[_lsd].slaveName>>
 			<<if $slaves[_lsd].slaveSurname>><<set _daddy += " " + $slaves[_lsd].slaveSurname>><</if>>
-		<</switch>>
+		<</if>>
 	<<else>>
 		<<set _daddy = "partner">>
 	<</if>>
diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw
index e40d07d090d..0283dae673b 100644
--- a/src/utility/miscWidgets.tw
+++ b/src/utility/miscWidgets.tw
@@ -883,14 +883,18 @@
 %/
 <<widget "PCTitle">>
 
-
-<<switch $PC.nationality>>
-<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
-	<<if $PC.surname>><<set $PCTitle = $PC.surname>><<set $PCTitle += " " + $PC.name>><<else>><<set $PCTitle = $PC.name>><</if>>
-<<default>>
+<<if $surnameOrder != 1>>
+	<<switch $PC.nationality>>
+	<<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">>
+		<<if $PC.surname>><<set $PCTitle = $PC.surname>><<set $PCTitle += " " + $PC.name>><<else>><<set $PCTitle = $PC.name>><</if>>
+	<<default>>
+		<<set $PCTitle = $PC.name>>
+		<<if $PC.surname>><<set $PCTitle += " " + $PC.surname>><</if>>
+	<</switch>>
+<<else>>
 	<<set $PCTitle = $PC.name>>
 	<<if $PC.surname>><<set $PCTitle += " " + $PC.surname>><</if>>
-<</switch>>
+<</if>>
 <<set $titles = []>>
 
 <<if $cheater == 1>>
@@ -2527,9 +2531,9 @@ This experience
 <</widget>>
 
 /* see how they are on a single line? This permits "."s and other things to be appended directly onto the widget result */
-<<widget "PlayerName">><<switch $PC.nationality>><<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">><<if $PC.surname>>$PC.surname <</if>>$PC.name<<default>>$PC.name<<if $PC.surname>> $PC.surname<</if>><</switch>><</widget>>
+<<widget "PlayerName">><<if $surnameOrder != 1>><<switch $PC.nationality>><<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">><<if $PC.surname>>$PC.surname <</if>>$PC.name<<default>>$PC.name<<if $PC.surname>> $PC.surname<</if>><</switch>><<else>>$PC.name<<if $PC.surname>> $PC.surname<</if>><</if>><</widget>>
 
-<<widget "SlaveFullName">><<switch $args[0].nationality>><<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">><<if $args[0].slaveSurname>>$args[0].slaveSurname <</if>>$args[0].slaveName<<default>>$args[0].slaveName<<if $args[0].slaveSurname>> $args[0].slaveSurname<</if>><</switch>><</widget>>
+<<widget "SlaveFullName">><<if $surnameOrder != 1>><<switch $args[0].nationality>><<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">><<if $args[0].slaveSurname>>$args[0].slaveSurname <</if>>$args[0].slaveName<<default>>$args[0].slaveName<<if $args[0].slaveSurname>> $args[0].slaveSurname<</if>><</switch>><<else>>$args[0].slaveName<<if $args[0].slaveSurname>> $args[0].slaveSurname<</if>><</if>><</widget>>
 
 <<widget "PoliteRudeTitle">><<switch $args[0].nationality>><<case "Japanese">><<if $args[0].trust > 0>>$PC.name<<if $PC.title > 0>>kun<<else>>chan<</if>><<else>><<if $PC.surname>><<print $PC.surname>><<else>><<print $PC.name>><<s>>an<</if>><</if>><<default>><<if $args[0].intelligence < -2>><<Master>><<elseif $args[0].intelligence > 1>><<if $PC.title > 0>>Ma<<s>>ther<<else>>Mi<<s>>tre<<ss>><</if>><<elseif $args[0].trust > 0>>$PC.name<<else>><<if $PC.surname>>$PC.surname<<else>>$PC.name<</if>><</if>><</switch>><</widget>>
 
@@ -2537,7 +2541,7 @@ This experience
  Call as <<EventNameLink>>
  $args[0]: Slave.
 */
-<<widget "EventNameLink">><<switch $args[0].nationality>><<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">><<if $args[0].slaveSurname>><<set _name = $args[0].slaveSurname>><<set _name += " " + $args[0].slaveName>><<else>><<set _name = $args[0].slaveName>><</if>><<default>><<set _name = $args[0].slaveName>><<if $args[0].slaveSurname>><<set _name += " " + $args[0].slaveSurname>><</if>><</switch>><span id="name"><<print "[[_name|Long Slave Description][$nextLink = passage(), $eventDescription = 1]]">></span><</widget>>
+<<widget "EventNameLink">><<if $surnameOrder != 1>><<switch $args[0].nationality>><<case "Chinese" "Japanese" "Korean" "Cambodian" "Vietnamese" "Hungarian" "Mongolian">><<if $args[0].slaveSurname>><<set _name = $args[0].slaveSurname>><<set _name += " " + $args[0].slaveName>><<else>><<set _name = $args[0].slaveName>><</if>><<default>><<set _name = $args[0].slaveName>><<if $args[0].slaveSurname>><<set _name += " " + $args[0].slaveSurname>><</if>><</switch>><<else>><<set _name = $args[0].slaveName>><<if $args[0].slaveSurname>><<set _name += " " + $args[0].slaveSurname>><</if>><</if>><span id="name"><<print "[[_name|Long Slave Description][$nextLink = passage(), $eventDescription = 1]]">></span><</widget>>
 
 /*
  Call as <<EventNameDelink>>
-- 
GitLab