aboutsummaryrefslogtreecommitdiff
path: root/webAO/packets/handlers/handleSI.ts
diff options
context:
space:
mode:
authorstonedDiscord <Tukz@gmx.de>2022-08-31 20:31:54 +0200
committerstonedDiscord <Tukz@gmx.de>2022-08-31 20:31:54 +0200
commitd124c7466ec13dc0353edeb5fab49f03f3035b5e (patch)
tree8f278b39e51fa5d3b738bd2d47c6f3b1d123ca9c /webAO/packets/handlers/handleSI.ts
parent1847fcf939c4a079b2f016df212e2b6c832aa2e5 (diff)
parentda992f9b3623955ef777c343a9f2c7b81d8ca942 (diff)
Merge branch 'master' of https://github.com/AttorneyOnline/webAO
Diffstat (limited to 'webAO/packets/handlers/handleSI.ts')
-rw-r--r--webAO/packets/handlers/handleSI.ts41
1 files changed, 41 insertions, 0 deletions
diff --git a/webAO/packets/handlers/handleSI.ts b/webAO/packets/handlers/handleSI.ts
new file mode 100644
index 0000000..e040c83
--- /dev/null
+++ b/webAO/packets/handlers/handleSI.ts
@@ -0,0 +1,41 @@
+import { client, extrafeatures, oldLoading } from "../../client";
+
+
+/**
+ * Received when the server announces its server info,
+ * but we use it as a cue to begin retrieving characters.
+ * @param {Array} args packet arguments
+ */
+export const handleSI = (args: string[]) => {
+ client.char_list_length = Number(args[1]);
+ client.char_list_length += 1; // some servers count starting from 0 some from 1...
+ client.evidence_list_length = Number(args[2]);
+ client.music_list_length = Number(args[3]);
+
+ (<HTMLProgressElement>document.getElementById("client_loadingbar")).max =
+ client.char_list_length +
+ client.evidence_list_length +
+ client.music_list_length;
+
+ // create the charselect grid, to be filled by the character loader
+ document.getElementById("client_chartable")!.innerHTML = "";
+
+ for (let i = 0; i < client.char_list_length; i++) {
+ const demothing = document.createElement("img");
+
+ demothing.className = "demothing";
+ demothing.id = `demo_${i}`;
+ const demoonclick = document.createAttribute("onclick");
+ demoonclick.value = `pickChar(${i})`;
+ demothing.setAttributeNode(demoonclick);
+
+ document.getElementById("client_chartable")!.appendChild(demothing);
+ }
+
+ // this is determined at the top of this file
+ if (!oldLoading && extrafeatures.includes("fastloading")) {
+ client.sendServer("RC#%");
+ } else {
+ client.sendServer("askchar2#%");
+ }
+} \ No newline at end of file