From 6b764307c1cee24cc307b6f9f302811bdb026373 Mon Sep 17 00:00:00 2001
From: Svornost <11434-svornost@users.noreply.gitgud.io>
Date: Fri, 24 Apr 2020 01:21:39 -0700
Subject: [PATCH] Add some basic information to the end-week loading animation.

---
 src/003-assets/CSS/endWeekAnim.css          | 15 +++++++++
 src/endWeek/endWeek.js                      |  2 +-
 src/endWeek/endWeekAnim.js                  | 36 +++++++++++++++++++++
 src/uncategorized/slaveAssignmentsReport.tw |  2 +-
 4 files changed, 53 insertions(+), 2 deletions(-)
 create mode 100644 src/003-assets/CSS/endWeekAnim.css
 create mode 100644 src/endWeek/endWeekAnim.js

diff --git a/src/003-assets/CSS/endWeekAnim.css b/src/003-assets/CSS/endWeekAnim.css
new file mode 100644
index 00000000000..5204f7f569a
--- /dev/null
+++ b/src/003-assets/CSS/endWeekAnim.css
@@ -0,0 +1,15 @@
+#init-screen > div.endweek-titleblock {
+	display: block;
+	margin-top: 5%;
+}
+
+div.endweek-maintitle {
+	display: block;
+	margin-bottom: 0.5em;
+}
+
+div.endweek-subtitle {
+	display: block;
+	font-size: smaller;
+	font-weight: lighter;
+}
diff --git a/src/endWeek/endWeek.js b/src/endWeek/endWeek.js
index 7ef4ccfc423..fd821723648 100644
--- a/src/endWeek/endWeek.js
+++ b/src/endWeek/endWeek.js
@@ -331,7 +331,7 @@ window.endWeek = (function() {
 
 	function confirmEndWeek() {
 		if (!V.sideBarOptions.confirmWeekEnd || confirm("Are you sure you want to end the week?")) {
-			window.LoadLockID = LoadScreen.lock();
+			App.UI.EndWeekAnim.start();
 			setTimeout(doEndWeek, 0); // execute immediately, but after the event loop runs, so the loading screen gets shown
 		}
 	}
diff --git a/src/endWeek/endWeekAnim.js b/src/endWeek/endWeekAnim.js
new file mode 100644
index 00000000000..2b12827ef6e
--- /dev/null
+++ b/src/endWeek/endWeekAnim.js
@@ -0,0 +1,36 @@
+App.UI.EndWeekAnim = (function() {
+	let loadLockID = -1;
+	let infoDiv = null;
+
+	function makeInfoDiv() {
+		infoDiv = $(`
+			<div class="endweek-titleblock">
+				<div class="endweek-maintitle">Processing week ${V.week}...</div>
+				<div class="endweek-subtitle">${V.arcologies[0].name} | ${V.slaves.length} slaves</div>
+			</div>
+		`);
+	}
+
+	function start() {
+		if (loadLockID === -1) {
+			makeInfoDiv();
+			$("#init-screen").append(infoDiv);
+			loadLockID = LoadScreen.lock();
+		}
+	}
+
+	function end() {
+		debugger;
+		if (loadLockID !== -1) {
+			infoDiv.remove();
+			infoDiv = null;
+			setTimeout(LoadScreen.unlock(loadLockID), 0);
+			loadLockID = -1;
+		}
+	}
+
+	return {
+		start,
+		end
+	};
+})();
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index dad68e96fb5..4de3adc39d8 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -1125,4 +1125,4 @@ $sexDemandResult.topClass = Math.trunc((($NPCSexSupply.topClass + $slaveJobValue
 <</if>>
 
 /* release loading screen as soon as the event loop can run */
-<<run setTimeout(LoadScreen.unlock, 0, window.LoadLockID)>>
+<<run App.UI.EndWeekAnim.end()>>
-- 
GitLab