aboutsummaryrefslogtreecommitdiff
path: root/webAO/packets/handlers/handleSM.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/handleSM.ts
parent1847fcf939c4a079b2f016df212e2b6c832aa2e5 (diff)
parentda992f9b3623955ef777c343a9f2c7b81d8ca942 (diff)
Merge branch 'master' of https://github.com/AttorneyOnline/webAO
Diffstat (limited to 'webAO/packets/handlers/handleSM.ts')
-rw-r--r--webAO/packets/handlers/handleSM.ts36
1 files changed, 36 insertions, 0 deletions
diff --git a/webAO/packets/handlers/handleSM.ts b/webAO/packets/handlers/handleSM.ts
new file mode 100644
index 0000000..5dab83e
--- /dev/null
+++ b/webAO/packets/handlers/handleSM.ts
@@ -0,0 +1,36 @@
+import { client } from '../../client'
+/**
+ * Handles incoming music information, containing all music in one packet.
+ * @param {Array} args packet arguments
+ */
+export const handleSM = (args: string[]) => {
+ document.getElementById("client_loadingtext")!.innerHTML = "Loading Music ";
+ client.resetMusicList();
+ client.resetAreaList();
+
+ client.musics_time = false;
+
+ for (let i = 1; i < args.length - 1; i++) {
+ // Check when found the song for the first time
+ const trackname = args[i];
+ const trackindex = i - 1;
+ document.getElementById(
+ "client_loadingtext"
+ )!.innerHTML = `Loading Music ${i}/${client.music_list_length}`;
+ (<HTMLProgressElement>(
+ document.getElementById("client_loadingbar")
+ )).value = client.char_list_length + client.evidence_list_length + i;
+ if (client.musics_time) {
+ client.addTrack(trackname);
+ } else if (client.isAudio(trackname)) {
+ client.musics_time = true;
+ client.fix_last_area();
+ client.addTrack(trackname);
+ } else {
+ client.createArea(trackindex, trackname);
+ }
+ }
+
+ // Music done, carry on
+ client.sendServer("RD#%");
+}