From 9b73a7cd905215afac3a8ca527bdee689d421079 Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Sat, 26 Sep 2020 19:59:18 -0400
Subject: [PATCH] partial revert

---
 src/data/backwardsCompatibility/datatypeCleanup.js | 10 +---------
 src/facilities/nursery/nurseryDatatypeCleanup.js   |  4 +---
 src/facilities/nursery/utils/nurseryUtils.js       |  1 +
 src/js/SlaveState.js                               |  7 +++++++
 src/js/statsChecker/pregChecker.js                 |  7 ++++++-
 src/npc/slaveStats.tw                              |  1 +
 src/player/js/PlayerState.js                       |  5 +++++
 src/pregmod/widgets/bodyswapWidgets.tw             |  1 +
 8 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js
index ea69170be00..abd51e986ae 100644
--- a/src/data/backwardsCompatibility/datatypeCleanup.js
+++ b/src/data/backwardsCompatibility/datatypeCleanup.js
@@ -30,9 +30,6 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function() {
 		if (slave.hasOwnProperty("tired")) {
 			delete slave.tired;
 		}
-		delete slave.death;
-		delete slave.burst;
-		delete slave.labor;
 	}
 
 	/**
@@ -666,12 +663,7 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 	 */
 	function slavePregnancyDatatypeCleanup(slave) {
 		slave.induce = Math.clamp(+slave.induce, 0, 1) || 0;
-		if (slave.hasOwnProperty("labor")) {
-			if (slave.labor) {
-				startLabor(slave);
-			}
-			delete slave.labor;
-		}
+		slave.labor = Math.clamp(+slave.labor, 0, 1) || 0;
 		slave.prematureBirth = Math.clamp(+slave.prematureBirth, 0, 1) || 0;
 		slave.ovaries = Math.clamp(+slave.ovaries, 0, 1) || 0;
 		slave.vasectomy = Math.clamp(+slave.vasectomy, 0, 1) || 0;
diff --git a/src/facilities/nursery/nurseryDatatypeCleanup.js b/src/facilities/nursery/nurseryDatatypeCleanup.js
index 84d47b3b998..e2c0621bf5f 100644
--- a/src/facilities/nursery/nurseryDatatypeCleanup.js
+++ b/src/facilities/nursery/nurseryDatatypeCleanup.js
@@ -153,9 +153,7 @@ App.Facilities.Nursery.ChildDatatypeCleanup = function(child) {
 
 	function childPregnancyDatatypeCleanup(child) {
 		child.induce = Math.clamp(+child.induce, 0, 1) || 0;
-		if (child.hasOwnProperty("labor")) {
-			// Child labor, not sure how child IDs work.
-		}
+		child.labor = Math.clamp(+child.labor, 0, 1) || 0;
 		if (child.hasOwnProperty("cSec")) {
 			if (child.cSec > 0) {
 				App.Medicine.Modification.addScar(child, "belly", "c-section");
diff --git a/src/facilities/nursery/utils/nurseryUtils.js b/src/facilities/nursery/utils/nurseryUtils.js
index 266b58d81f7..ad6acc9873a 100644
--- a/src/facilities/nursery/utils/nurseryUtils.js
+++ b/src/facilities/nursery/utils/nurseryUtils.js
@@ -217,6 +217,7 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.intelligence = 100;
 	child.intelligenceImplant = 0;
 	child.labia = jsRandom(0, 2);
+	child.labor = 0;
 	child.lactation = 0;
 	child.lactationAdaptation = 0;
 	child.lactationDuration = 0;
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 7c424621e42..a7d3dd2f015 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -1278,6 +1278,11 @@ App.Entity.SlaveState = class SlaveState {
 		 * Mainly informative only. Updated automatically at birth process based on remaining fetuses. 0 - 37
 		 */
 		this.broodmotherCountDown = 0;
+		/**
+		 * variable used to set off the birth events
+		 *
+		 * 1: birth this week; 0: not time yet */
+		this.labor = 0;
 		/**
 		 * may accept strings, use at own risk
 		 *
@@ -2398,6 +2403,8 @@ App.Entity.SlaveState = class SlaveState {
 		this.origBodyOwner = "";
 		/** Who, if relevant, the body belonged to. */
 		this.origBodyOwnerID = 0;
+		/** Cause of slave death. */
+		this.death = "";
 		/**
 		 * Slave's current hormonal balance, directs saHormones changes
 		 *
diff --git a/src/js/statsChecker/pregChecker.js b/src/js/statsChecker/pregChecker.js
index 98958c620c3..70b5e83a125 100644
--- a/src/js/statsChecker/pregChecker.js
+++ b/src/js/statsChecker/pregChecker.js
@@ -1,11 +1,16 @@
 globalThis.isInLabor = function(slave) {
-	return V.birthIDs.includes(slave.ID);
+	return (slave.labor);
+	// return V.birthIDs.includes(slave.ID);
 };
 
 globalThis.startLabor = function(slave) {
+	slave.labor = 1;
+
+	/*
 	if (typeof slave === "number") {
 		V.birthIDs.push(slave);
 	} else {
 		V.birthIDs.push(slave.ID);
 	}
+	*/
 };
diff --git a/src/npc/slaveStats.tw b/src/npc/slaveStats.tw
index a28325d4ade..40240ea24d7 100644
--- a/src/npc/slaveStats.tw
+++ b/src/npc/slaveStats.tw
@@ -462,6 +462,7 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		PCChildren: $activeSlave.counter.PCChildrenFathered
 		<br>KnockedUp: slaves: $activeSlave.counter.slavesKnockedUp,
 		<br>PC: $activeSlave.counter.PCKnockedUp
+		<br>labor: $activeSlave.labor,
 		Count: $activeSlave.counter.laborCount
 		<br>Births: $activeSlave.counter.births,
 		Total: $activeSlave.counter.birthsTotal
diff --git a/src/player/js/PlayerState.js b/src/player/js/PlayerState.js
index 313490edd3e..6bd6c2b2649 100644
--- a/src/player/js/PlayerState.js
+++ b/src/player/js/PlayerState.js
@@ -1050,6 +1050,11 @@ App.Entity.PlayerState = class PlayerState {
 		 * Mainly informative only. Updated automatically at birth process based on remaining fetuses. 0 - 37
 		 */
 		this.broodmotherCountDown = 0;
+		/**
+		 * variable used to set off the birth events
+		 *
+		 * 1: birth this week; 0: not time yet */
+		this.labor = 0;
 		/**
 		 * may accept strings, use at own risk
 		 *
diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw
index ca0406d960e..54c9f0caa16 100644
--- a/src/pregmod/widgets/bodyswapWidgets.tw
+++ b/src/pregmod/widgets/bodyswapWidgets.tw
@@ -188,6 +188,7 @@
 	<<set $args[0].preg = $args[1].preg>>
 	<<set $args[0].pregSource = $args[1].pregSource>>
 	<<set $args[0].pregType = $args[1].pregType>>
+	<<set $args[0].labor = $args[1].labor>>
 	<<set $args[0].clitSetting = $args[1].clitSetting>>
 	<<set $args[0].diet = $args[1].diet>>
 	<<set $args[0].dietCum = $args[1].dietCum>>
-- 
GitLab