From 2e67e021ac2379c23ca8c1aed2b61a42dbb451af Mon Sep 17 00:00:00 2001
From: klorpa <30924131+klorpa@users.noreply.github.com>
Date: Thu, 7 Mar 2019 22:50:55 -0600
Subject: [PATCH] SurnameOrder2

---
 src/events/intro/introSummary.tw              | 10 +++--
 .../nursery/longChildDescription.tw           | 43 ++++++-------------
 src/init/storyInit.tw                         |  1 +
 src/js/assayJS.js                             | 15 ++-----
 src/pregmod/widgets/bodyswapWidgets.tw        | 43 +++----------------
 src/uncategorized/descriptionOptions.tw       | 12 +++---
 src/uncategorized/longSlaveDescription.tw     | 33 ++++----------
 7 files changed, 44 insertions(+), 113 deletions(-)

diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw
index 22845c853f7..3ae10acde14 100644
--- a/src/events/intro/introSummary.tw
+++ b/src/events/intro/introSummary.tw
@@ -202,10 +202,12 @@ __''General slave settings''__
 //This only affects slave generation and not your ability to name your slaves.//
 
 <br>
-<<if $surnameOrder != 1>>
-	Order names ''based on country of origin''. [[Force name surname|Intro Summary][$surnameOrder = 1]]
-<<else>>
-	Names will always be ''Name Surname''. [[Allow nationality name order|Intro Summary][$surnameOrder = 0]]
+<<if $surnameOrder == 0>>
+	Order names ''based on country of origin''. [[Force name surname|Intro Summary][$surnameOrder = 1]] | [[Force surname name|Intro Summary][$surnameOrder = 2]]
+<<elseif $surnameOrder == 1>>
+	Names will always be ''Name Surname''. [[Allow nationality name order|Intro Summary][$surnameOrder = 0]] | [[Force surname name|Intro Summary][$surnameOrder = 2]]
+<<elseif $surnameOrder == 2>>
+	Names will always be ''Surname Name''. [[Allow nationality name order|Intro Summary][$surnameOrder = 0]] | [[Force name surname|Intro Summary][$surnameOrder = 1]]
 <</if>>
 
 <br>
diff --git a/src/facilities/nursery/longChildDescription.tw b/src/facilities/nursery/longChildDescription.tw
index 431b0a44e11..97dc0118f2f 100644
--- a/src/facilities/nursery/longChildDescription.tw
+++ b/src/facilities/nursery/longChildDescription.tw
@@ -87,15 +87,15 @@ is
 		<</if>>
 		<<if $activeChild.birthName !== "" || $activeChild.birthSurname !== "">>
 			<<if $activeChild.devotion > 95>>
-				$he adores $his slave name and affects to have forgotten that $he was ever called
+				$He adores $his slave name and affects to have forgotten that $he was ever called
 			<<elseif $activeChild.devotion > 50>>
-				$he uses $his slave name automatically and gives no sign that $he was ever called
+				$He uses $his slave name automatically and gives no sign that $he was ever called
 			<<elseif $activeChild.devotion > 20>>
-				$he uses $his slave name despite once being known as
+				$He uses $his slave name despite once being known as
 			<<elseif $activeChild.devotion >= -20>>
-				$he uses $his slave name hesitantly since $he was once called
+				$He uses $his slave name hesitantly since $he was once called
 			<<elseif $activeChild.devotion >= -50>>
-				$he uses $his slave name with resentment since $he prefers $his original name,
+				$He uses $his slave name with resentment since $he prefers $his original name,
 			<<else>>
 				$He uses $his slave name only when constantly punished, since $he feels $his real name is
 			<</if>>
@@ -103,15 +103,8 @@ is
 				$activeChild.birthSurname.
 			<<elseif $activeChild.birthSurname === "">>
 				$activeChild.birthName.
-			<<elseif $surnameOrder != 1>>
-				<<switch $activeChild.nationality>>
-				<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-					<<if $activeChild.birthSurname>>$activeChild.birthSurname <</if>>$activeChild.birthName.
-				<<default>>
-					$activeChild.birthName<<if $activeChild.birthSurname>> $activeChild.birthSurname<</if>>.
-				<</switch>>
 			<<else>>
-				$activeChild.birthName<<if $activeChild.birthSurname>> $activeChild.birthSurname<</if>>.
+				<<= SlaveFullBirthName($activeChild)>>.
 			<</if>>
 		<</if>>
 		<<if $activeChild.slaveSurname == 0>>
@@ -125,17 +118,7 @@ is
 			<</if>>
 		<</if>>
 	<<else>>
-		$activeChild.slaveName<<if $activeChild.slaveSurname>> $activeChild.slaveSurname<</if>> is not its original name: it was once called
-		<<if $surnameOrder != 1>>
-			<<switch $activeChild.nationality>>
-			<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-				<<if $activeChild.birthSurname>>$activeChild.birthSurname <</if>>$activeChild.birthName.
-			<<default>>
-				$activeChild.birthName<<if $activeChild.birthSurname>> $activeChild.birthSurname<</if>>.
-			<</switch>>
-		<<else>>
-			$activeChild.birthName<<if $activeChild.birthSurname>> $activeChild.birthSurname<</if>>.
-		<</if>>
+		$activeChild.slaveName<<if $activeChild.slaveSurname>> $activeChild.slaveSurname<</if>> is not $his original name: $he was once called <<= SlaveFullBirthName($activeChild)>>.
 	<</if>>
 <</if>>
 
@@ -1033,13 +1016,13 @@ and
 	<<if $arcologies[0].FSHedonisticDecadence != "unset">>
 		<<print either("perfectly curvy", "perfectly plush")>>.
 	<<else>>
-		@@.red;<<print either("dangerously overweight", "extremely obese", "dangerously fat")>>.@@
+		@@.red;<<print either("dangerously fat", "dangerously overweight", "extremely obese")>>.@@
 	<</if>>
 <<elseif $activeChild.weight > 160 >>
 	<<if $arcologies[0].FSHedonisticDecadence != "unset">>
 		<<print either("spectacularly curvy", "spectacularly plush")>>.
 	<<else>>
-		@@.red;<<print either("extremely overweight", "very obese", "extremely fat")>>.@@
+		@@.red;<<print either("extremely fat", "extremely overweight", "very obese")>>.@@
 	<</if>>
 <<elseif $activeChild.weight > 130 >>
 	<<if $arcologies[0].FSHedonisticDecadence != "unset">>
@@ -1061,11 +1044,11 @@ and
 	<<elseif $arcologies[0].FSHedonisticDecadence != "unset">>
 		<<print either("quite curvy", "very plush")>>.
 	<<else>>
-		@@.red;<<print either("chubby", "carrying extra weight")>>.@@
+		@@.red;<<print either("carrying extra weight", "chubby")>>.@@
 	<</if>>
-<<elseif $activeChild.weight > 10 >><<print either("pleasingly curvy", "nicely plush")>>.
-<<elseif $activeChild.weight >= -10>><<print either("a healthy weight", "neither too fat nor too skinny", "an attractive weight for $his frame")>>.
-<<elseif $activeChild.weight >= -30>><<print either("pleasingly thin", "appealingly skinny")>>.
+<<elseif $activeChild.weight > 10 >><<print either("nicely plush", "pleasingly curvy")>>.
+<<elseif $activeChild.weight >= -10>><<print either("a healthy weight", "an attractive weight for $his frame", "neither too fat nor too skinny")>>.
+<<elseif $activeChild.weight >= -30>><<print either("appealingly skinny", "pleasingly thin")>>.
 <<elseif $activeChild.weight >= -95>>
 	<<if $activeChild.hips > 1>>
 		<<print either("quite skinny", "very thin")>>, but $his wide hips make the gap between $his thighs very noticeable.
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index 4af2015b252..c39e1bf0195 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -358,6 +358,7 @@ You should have received a copy of the GNU General Public License along with thi
 	<<set $familyTesting = 0>>
 	<<set $inbreeding = 1>>
 	<<set $allowFamilyTitles = 0>>
+	<<set $surnameOrder = 0>>
 
 	/% Begin mod section: toggle whether slaves lisp. %/
 	<<set $disableLisping = 0>>
diff --git a/src/js/assayJS.js b/src/js/assayJS.js
index e4917376bdf..1a8eba315bd 100644
--- a/src/js/assayJS.js
+++ b/src/js/assayJS.js
@@ -681,7 +681,7 @@ window.fetishChangeChance = /** @param {App.Entity.SlaveState} slave */ function
 window.SlaveFullName = /** @param {App.Entity.SlaveState} slave */ function SlaveFullName(slave) {
 	const V = State.variables;
 	const pair = slave.slaveSurname ? [slave.slaveName, slave.slaveSurname] : [slave.slaveName];
-	if (V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(slave.nationality))
+	if ((V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(slave.nationality)) || (V.surnameOrder === 2))
 		pair.reverse();
 	return pair.join(" ");
 };
@@ -689,24 +689,15 @@ window.SlaveFullName = /** @param {App.Entity.SlaveState} slave */ function Slav
 window.SlaveFullBirthName = /** @param {App.Entity.SlaveState} slave */ function SlaveFullBirthName(slave) {
 	const V = State.variables;
 	const pair = slave.birthSurname ? [slave.birthName, slave.birthSurname] : [slave.birthName];
-	if (V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(slave.nationality))
+	if ((V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(slave.nationality)) || (V.surnameOrder === 2))
 		pair.reverse();
 	return pair.join(" ");
 };
 
 window.PlayerName = function PlayerName() {
 	const V = State.variables;
-	const surnamesFirstCountries = [
-		"Cambodian",
-		"Chinese",
-		"Hungarian",
-		"Japanese",
-		"Korean",
-		"Mongolian",
-		"Taiwanese",
-		"Vietnamese"];
 	let names = V.PC.surname ? [V.PC.name, V.PC.surname] : [V.PC.name];
-	if ((V.surnameOrder !== 1) && (surnamesFirstCountries.includes(V.PC.nationality)))
+	if ((V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(V.PC.nationality)) || (V.surnameOrder === 2))
 		names.reverse();
 	return names.join(" ");
 };
diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw
index 1f1814b790f..f6a079911ca 100644
--- a/src/pregmod/widgets/bodyswapWidgets.tw
+++ b/src/pregmod/widgets/bodyswapWidgets.tw
@@ -247,37 +247,15 @@
 
 <<if $args[1].bodySwap == 0>>
 	<<if $args[1].birthSurname>>
-		<<if $surnameOrder != 1>>
-			<<switch $args[1].nationality>>
-				<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-					<<if $args[1].birthName !== "">>
-						<<set $args[0].origBodyOwner = $args[1].birthSurname + " " + $args[1].birthName>>
-					<<else>>
-						<<set $args[0].origBodyOwner = $args[1].birthSurname + " " + $args[1].slaveName>>
-					<</if>>
-				<<default>>
-					<<if $args[1].birthName !== "">>
-						<<set $args[0].origBodyOwner = $args[1].birthName + " " + $args[1].birthSurname>>
-					<<else>>
-						<<set $args[0].origBodyOwner = $args[1].slaveName + " " + $args[1].birthSurname>>
-					<</if>>
-			<</switch>>
+		<<if $args[1].birthName !== "">>
+			<<set $args[0].origBodyOwner = SlaveFullBirthName($args[1])>>
 		<<else>>
-			<<if $args[1].birthName !== "">>
-				<<set $args[0].origBodyOwner = $args[1].birthName + " " + $args[1].birthSurname>>
-			<<else>>
-				<<set $args[0].origBodyOwner = $args[1].slaveName + " " + $args[1].birthSurname>>
-			<</if>>
+			<<set $args[0].origBodyOwner = $args[1].slaveName + " " + $args[1].birthSurname>>
 		<</if>>
 	<<elseif $args[1].birthName>>
 		<<if $args[1].slaveSurname>>
-			<<if $surnameOrder != 1>>
-				<<switch $args[1].nationality>>
-					<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-						<<set $args[0].origBodyOwner = $args[1].slaveSurname + " " + $args[1].birthName>>
-					<<default>>
-						<<set $args[0].origBodyOwner = $args[1].birthName + " " + $args[1].slaveSurname>>
-				<</switch>>
+			<<if (($surnameOrder != 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes($args[1].nationality)) || ($surnameOrder == 2)>>
+				<<set $args[0].origBodyOwner = $args[1].slaveSurname + " " + $args[1].birthName>>
 			<<else>>
 				<<set $args[0].origBodyOwner = $args[1].birthName + " " + $args[1].slaveSurname>>
 			<</if>>
@@ -285,16 +263,7 @@
 			<<set $args[0].origBodyOwner = $args[1].birthName>>
 		<</if>>
 	<<elseif $args[1].slaveSurname>>
-		<<if $surnameOrder != 1>>
-			<<switch $args[1].nationality>>
-				<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-					<<set $args[0].origBodyOwner = $args[1].slaveSurname + " " + $args[1].slaveName>>
-				<<default>>
-					<<set $args[0].origBodyOwner = $args[1].slaveName + " " + $args[1].slaveSurname>>
-			<</switch>>
-		<<else>>
-			<<set $args[0].origBodyOwner = $args[1].slaveName + " " + $args[1].slaveSurname>>
-		<</if>>
+		<<set $args[0].origBodyOwner = SlaveFullName($args[1])>>
 	<<else>>
 		<<set $args[0].origBodyOwner = $args[1].slaveName>>
 	<</if>>
diff --git a/src/uncategorized/descriptionOptions.tw b/src/uncategorized/descriptionOptions.tw
index ada97bef7bc..f00dc4288fa 100644
--- a/src/uncategorized/descriptionOptions.tw
+++ b/src/uncategorized/descriptionOptions.tw
@@ -108,8 +108,10 @@ Attractiveness and Sexual scores are
 <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
+<<if $surnameOrder == 0>>
+	adhere to a slave's country of origin. //[[Force name surname|Intro Summary][$surnameOrder = 1]]// | //[[Force surname name|Intro Summary][$surnameOrder = 2]]//
+<<elseif $surnameOrder == 1>>
+	always be name surname. //[[Allow nationality name order|Description Options][$surnameOrder = 0]]// | //[[Force surname name|Intro Summary][$surnameOrder = 2]]//
+<<elseif $surnameOrder == 2>>
+	always be name surname. //[[Allow nationality name order|Intro Summary][$surnameOrder = 0]]// | //[[Force name surname|Intro Summary][$surnameOrder = 1]]//
+<</if>>
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index 1b085286a92..d187d0e5687 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -327,31 +327,24 @@ is
 		<</if>>
 		<<if $activeSlave.birthName !== "" || $activeSlave.birthSurname !== "">>
 			<<if $activeSlave.devotion > 95>>
-				$he adores $his slave name and affects to have forgotten that $he was ever called
+				$He adores $his slave name and affects to have forgotten that $he was ever called
 			<<elseif $activeSlave.devotion > 50>>
-				$he uses $his slave name automatically and gives no sign that $he was ever called
+				$He uses $his slave name automatically and gives no sign that $he was ever called
 			<<elseif $activeSlave.devotion > 20>>
-				$he uses $his slave name despite once being known as
+				$He uses $his slave name despite once being known as
 			<<elseif $activeSlave.devotion >= -20>>
-				$he uses $his slave name hesitantly since $he was once called
+				$He uses $his slave name hesitantly since $he was once called
 			<<elseif $activeSlave.devotion >= -50>>
-				$he uses $his slave name with resentment since $he prefers $his original name,
+				$He uses $his slave name with resentment since $he prefers $his original name,
 			<<else>>
-				$he uses $his slave name only when constantly punished, since $he feels $his real name is
+				$He uses $his slave name only when constantly punished, since $he feels $his real name is
 			<</if>>
 			<<if $activeSlave.birthName === "">>
 				$activeSlave.birthSurname.
 			<<elseif $activeSlave.birthSurname === "">>
 				$activeSlave.birthName.
-			<<elseif $surnameOrder != 1>>
-				<<switch $activeSlave.nationality>>
-				<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-					<<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>>.
+				<<= SlaveFullBirthName($activeSlave)>>.
 			<</if>>
 		<</if>>
 		<<if $activeSlave.slaveSurname == 0>>
@@ -365,17 +358,7 @@ is
 			<</if>>
 		<</if>>
 	<<else>>
-		$activeSlave.slaveName<<if $activeSlave.slaveSurname>> $activeSlave.slaveSurname<</if>> is not $his original name: $he was once called
-		<<if $surnameOrder != 1>>
-			<<switch $activeSlave.nationality>>
-			<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-				<<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>>
+		$activeSlave.slaveName<<if $activeSlave.slaveSurname>> $activeSlave.slaveSurname<</if>> is not $his original name: $he was once called <<= SlaveFullBirthName($activeSlave)>>.
 	<</if>>
 <</if>>
 
-- 
GitLab