diff options
| author | stonedDiscord <Tukz@gmx.de> | 2022-08-30 23:33:59 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-30 23:33:59 +0200 |
| commit | f07d77c3d40b2ebf5da0f3399e31f6741c60024e (patch) | |
| tree | 1c5bbf4c1e1302bace77b01af0f0e14b001ce6dd /webAO/packets/handlers/handleEM.ts | |
| parent | b4185a9d62e5477a675625c907f159862725c1dc (diff) | |
| parent | 5d5cb58412bd663aed4897ef7b0f0bd7f263d096 (diff) | |
Merge pull request #157 from caleb-mabry/new-three
Yet again, three more
Diffstat (limited to 'webAO/packets/handlers/handleEM.ts')
| -rw-r--r-- | webAO/packets/handlers/handleEM.ts | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/webAO/packets/handlers/handleEM.ts b/webAO/packets/handlers/handleEM.ts new file mode 100644 index 0000000..973d2af --- /dev/null +++ b/webAO/packets/handlers/handleEM.ts @@ -0,0 +1,39 @@ +import { client } from '../../client' +import { safeTags } from '../../encoding'; + +/** + * Handles incoming music information, containing multiple entries + * per packet. + * @param {Array} args packet arguments + */ +export const handleEM = (args: string[]) => { + document.getElementById("client_loadingtext")!.innerHTML = "Loading Music"; + if (args[1] === "0") { + client.resetMusicList(); + client.resetAreaList(); + client.musics_time = false; + } + + for (let i = 2; i < args.length - 1; i++) { + if (i % 2 === 0) { + const trackname = safeTags(args[i]); + const trackindex = Number(args[i - 1]); + (<HTMLProgressElement>( + document.getElementById("client_loadingbar") + )).value = + client.char_list_length + client.evidence_list_length + trackindex; + 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); + } + } + } + + // get the next batch of tracks + client.sendServer(`AM#${Number(args[1]) / 10 + 1}#%`); +}
\ No newline at end of file |
