aboutsummaryrefslogtreecommitdiff
path: root/webAO/client.js
diff options
context:
space:
mode:
authorsD <stoned@derpymail.org>2019-12-18 18:58:10 +0100
committersD <stoned@derpymail.org>2019-12-18 18:58:10 +0100
commit8cdd83e1a78f6ae52cc3ea8574c1865c2c0c2723 (patch)
tree9125a8dd55edbfa223c79e9fe260dad4c361c693 /webAO/client.js
parent8fbecce1430398ea2e714f143c1e158959d38b99 (diff)
Revert "async loading of characters"
This reverts commit 8fbecce1430398ea2e714f143c1e158959d38b99.
Diffstat (limited to 'webAO/client.js')
-rw-r--r--webAO/client.js105
1 files changed, 36 insertions, 69 deletions
diff --git a/webAO/client.js b/webAO/client.js
index eba1483..ec12c13 100644
--- a/webAO/client.js
+++ b/webAO/client.js
@@ -74,9 +74,6 @@ class Client extends EventEmitter {
this.playerID = 1;
this.charID = -1;
- this.char_list_length = 0;
- this.evidence_list_length = 0;
- this.music_list_length = 0;
this.testimonyID = 0;
this.chars = [];
@@ -540,61 +537,41 @@ class Client extends EventEmitter {
}
/**
- * Handles the incoming character information, and downloads the sprite + ini for it
- * @param {Array} args packet arguments
- */
- async handleCharacterInfo(chargs, charid) {
- let cini = {};
- try {
- const cinidata = await request(AO_HOST + "characters/" + escape(chargs[0].toLowerCase()) + "/char.ini");
- cini = INI.parse(cinidata.toLowerCase());
- } catch(err) {
- cini = {options: {name: chargs[0].toLowerCase(),showname: chargs[0].toLowerCase(),side: "def", gender: "male"}};
- }
- console.log(cini);
- this.chars[charid] = {
- name: chargs[0],
- showname: cini.options.showname,
- desc: chargs[1],
- gender: cini.options.gender,
- evidence: chargs[3],
- icon: AO_HOST + "characters/" + escape(chargs[0].toLowerCase()) + "/char_icon.png",
- inifile: cini
- };
- // need to take care of src alt onclick and onerror when the char comes in
- let img = document.getElementById(`demo_${charid}`);
- img.src = AO_HOST + "characters/" + escape(chargs[0].toLowerCase()) + "/char_icon.png";
- img.alt = chargs[0];
- }
-
- /**
* Handles incoming character information, bundling multiple characters
* per packet.
* @param {Array} args packet arguments
*/
handleCI(args) {
document.getElementById("client_loadingtext").innerHTML = "Loading Character " + args[1];
+ this.serv.send("AN#" + ((args[1] / 10) + 1) + "#%");
for (let i = 2; i < args.length - 1; i++) {
if (i % 2 === 0) {
- document.getElementById("client_loadingtext").innerHTML = `Loading Character ${i}/${this.char_list_length}`;
const chargs = args[i].split("&");
- this.handleCharacterInfo(chargs, i-1);
+ this.chars[args[i - 1]] = {
+ name: chargs[0],
+ desc: chargs[1],
+ evidence: chargs[3],
+ icon: AO_HOST + "characters/" + escape(chargs[0].toLowerCase()) + "/char_icon.png"
+ };
}
}
- this.serv.send("AN#" + ((args[1] / 10) + 1) + "#%");
}
/**
- * Handles incoming character information, containing all characters
- * in one packet.
+ * Handles incoming character information, containing only one character
+ * per packet.
* @param {Array} args packet arguments
*/
handleSC(args) {
document.getElementById("client_loadingtext").innerHTML = "Loading Characters";
for (let i = 1; i < args.length - 1; i++) {
- document.getElementById("client_loadingtext").innerHTML = `Loading Character ${i}/${this.char_list_length}`;
const chargs = args[i].split("&");
- this.handleCharacterInfo(chargs, i-1);
+ this.chars[i - 1] = {
+ name: chargs[0],
+ desc: chargs[1],
+ evidence: chargs[3],
+ icon: AO_HOST + "characters/" + escape(chargs[0].toLowerCase()) + "/char_icon.png"
+ };
}
this.serv.send("RM#%");
}
@@ -607,7 +584,7 @@ class Client extends EventEmitter {
* @param {Array} args packet arguments
*/
handleEI(args) {
- document.getElementById("client_loadingtext").innerHTML = `Loading Evidence ${args[1]}/${this.evidence_list_length}`;
+ document.getElementById("client_loadingtext").innerHTML = "Loading Evidence " + args[1];
//serv.send("AE#" + (args[1] + 1) + "#%");
this.serv.send("RM#%");
}
@@ -855,28 +832,7 @@ class Client extends EventEmitter {
* but we use it as a cue to begin retrieving characters.
* @param {Array} args packet arguments
*/
- handleSI(args) {
- this.char_list_length = args[1];
- this.evidence_list_length = args[2];
- this.music_list_length = args[3];
-
- // create the charselect grid, to be filled by the character loader
- document.getElementById("client_chartable").innerHTML = "";
- let tr;
- for (let i = 0; i < this.char_list_length; i++) {
- if (i % CHAR_SELECT_WIDTH === 0) {
- tr = document.createElement("TR");
- }
- const td = document.createElement("TD");
-
- td.innerHTML = `<img class='demothing' id='demo_${i}' onclick='pickChar(${i})' onerror='demoError(this)'>`;
-
- tr.appendChild(td);
- if (i % CHAR_SELECT_WIDTH === 0) {
- document.getElementById("client_chartable").appendChild(tr);
- }
- }
-
+ handleSI(_args) {
if (oldLoading) {
this.serv.send("askchar2#%");
} else {
@@ -889,15 +845,26 @@ class Client extends EventEmitter {
* @param {Array} args packet arguments
*/
handleCharsCheck(args) {
- for (let i = 0; i < this.char_list_length; i++) {
- let icon_chosen = "demothing";
+ document.getElementById("client_chartable").innerHTML = "";
+ let tr;
+ for (let i = 0; i < this.chars.length; i++) {
+ if (i % CHAR_SELECT_WIDTH === 0) {
+ tr = document.createElement("TR");
+ }
+ const td = document.createElement("TD");
+ let icon_chosen = "";
+ const thispick = this.chars[i].icon;
if (args[i + 1] === "-1") {
- icon_chosen += " dark";
+ icon_chosen = " dark";
+ }
+ td.innerHTML = `<img class='demothing${icon_chosen}' id='demo_${i}' ` +
+ `src='${thispick}' alt='${this.chars[i].name}' onclick='pickChar(${i})' ` +
+ `onerror='demoError(this);'>`;
+ tr.appendChild(td);
+ if (i % CHAR_SELECT_WIDTH === 0) {
+ document.getElementById("client_chartable").appendChild(tr);
}
- let img = document.getElementById(`demo_${i}`);
- img.classList = icon_chosen;
}
-
//changeBackground("def");
}
@@ -916,8 +883,8 @@ class Client extends EventEmitter {
const emotesList = document.getElementById("client_emo");
emotesList.innerHTML = ""; // Clear emote box
emotesList.style.display = "";
- console.log(me.inifile);
- const data = await request(AO_HOST + "characters/" + escape(me.name.toLowerCase()) + "/char.ini");
+
+ const data = await request(AO_HOST + "characters/" + escape(this.character.name.toLowerCase()) + "/char.ini");
const ini = INI.parse(data.toLowerCase());
me.side = ini.options.side;
updateActionCommands(me.side);