aboutsummaryrefslogtreecommitdiff
path: root/webAO/packets/handlers/handleSC.ts
diff options
context:
space:
mode:
authorCaleb <caleb.mabry.15@cnu.edu>2022-08-30 17:12:52 -0400
committerCaleb <caleb.mabry.15@cnu.edu>2022-08-30 17:12:52 -0400
commit39861acb94feaed7c7833597b14ab99e5acea42f (patch)
treecd2ce256927261b2b9b3904a4f651e41e828399d /webAO/packets/handlers/handleSC.ts
parentcced5e71d9004eaf34156935d214eac82204ab4b (diff)
Three more packets moved
Diffstat (limited to 'webAO/packets/handlers/handleSC.ts')
-rw-r--r--webAO/packets/handlers/handleSC.ts37
1 files changed, 37 insertions, 0 deletions
diff --git a/webAO/packets/handlers/handleSC.ts b/webAO/packets/handlers/handleSC.ts
new file mode 100644
index 0000000..3689a17
--- /dev/null
+++ b/webAO/packets/handlers/handleSC.ts
@@ -0,0 +1,37 @@
+import queryParser from "../../utils/queryParser";
+
+import { client } from '../../client'
+let { mode } = queryParser();
+
+/**
+ * Handles incoming character information, containing all characters
+ * in one packet.
+ * @param {Array} args packet arguments
+ */
+export const handleSC = async (args: string[]) => {
+ const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms));
+
+ if (mode === "watch") {
+ // Spectators don't need to pick a character
+ document.getElementById("client_charselect")!.style.display = "none";
+ } else {
+ document.getElementById("client_charselect")!.style.display = "block";
+ }
+
+ document.getElementById("client_loadingtext")!.innerHTML =
+ "Loading Characters";
+ for (let i = 1; i < args.length - 1; i++) {
+ document.getElementById(
+ "client_loadingtext"
+ )!.innerHTML = `Loading Character ${i}/${client.char_list_length}`;
+ const chargs = args[i].split("&");
+ const charid = i - 1;
+ (<HTMLProgressElement>(
+ document.getElementById("client_loadingbar")
+ )).value = charid;
+ await sleep(0.1); // TODO: Too many network calls without this. net::ERR_INSUFFICIENT_RESOURCES
+ client.handleCharacterInfo(chargs, charid);
+ }
+ // We're done with the characters, request the music
+ client.sendServer("RM#%");
+} \ No newline at end of file