diff options
| author | sD <stoned@derpymail.org> | 2020-02-15 03:17:54 +0100 |
|---|---|---|
| committer | sD <stoned@derpymail.org> | 2020-02-15 03:17:54 +0100 |
| commit | cc89cac150348d8d1497aa9ae78ec779280d41c5 (patch) | |
| tree | 2838fb5f434b5ffa7f61fd7247d9843f63d64dff /webAO | |
| parent | 5fb1bf0113afd2ba0577332f5f1447ca36d8da99 (diff) | |
correct speaking/preanim and move DRO detection to tick()
Diffstat (limited to 'webAO')
| -rw-r--r-- | webAO/client.js | 60 |
1 files changed, 27 insertions, 33 deletions
diff --git a/webAO/client.js b/webAO/client.js index 5104997..bb930b0 100644 --- a/webAO/client.js +++ b/webAO/client.js @@ -251,21 +251,18 @@ class Client extends EventEmitter { * @param {number} self_offset offset to paired character (optional) * @param {number} noninterrupting_preanim play the full preanim (optional) */ - sendIC(deskmod, speaking, name, silent, message, side, sfx_name, emote_modifier, sfx_delay, objection_modifier, evidence, flip, realization, text_color, showname, other_charid, self_offset, noninterrupting_preanim) { + sendIC(deskmod, preanim, name, emote, message, side, sfx_name, emote_modifier, sfx_delay, objection_modifier, evidence, flip, realization, text_color, showname, other_charid, self_offset, noninterrupting_preanim) { let extra_cccc = ``; if (extrafeatures.includes("cccc_ic_support")) { extra_cccc = `${showname}#${other_charid}#${self_offset}#${noninterrupting_preanim}#`; } - console.log( - `MS#${deskmod}#${speaking}#${name}#${silent}` + + const serverMessage = `MS#${deskmod}#${preanim}#${name}#${emote}` + `#${escapeChat(encodeChat(message))}#${side}#${sfx_name}#${emote_modifier}` + - `#${this.charID}#${sfx_delay}#${objection_modifier}#${evidence}#${flip}#${realization}#${text_color}#${extra_cccc}%` - ); - this.sendServer( - `MS#${deskmod}#${speaking}#${name}#${silent}` + - `#${escapeChat(encodeChat(message))}#${side}#${sfx_name}#${emote_modifier}` + - `#${this.charID}#${sfx_delay}#${objection_modifier}#${evidence}#${flip}#${realization}#${text_color}#${extra_cccc}%` - ); + `#${this.charID}#${sfx_delay}#${objection_modifier}#${evidence}#${flip}#${realization}#${text_color}#${extra_cccc}%`; + + console.log(serverMessage); + + this.sendServer(serverMessage); } /** @@ -507,26 +504,12 @@ class Client extends EventEmitter { //we already set defaults } - let characterName = safe_tags(args[3]); - let spriteName = safe_tags(args[4]).toLowerCase(); - let speakingsprite; - let silentsprite; - - if (characterName.toLowerCase().endsWith("_hd")) { - speakingsprite = spriteName + ".png"; - silentsprite = spriteName + ".png"; - } else { - speakingsprite = "(b)" + spriteName + ".gif"; - silentsprite = "(a)" + spriteName + ".gif"; - } - let chatmsg = { deskmod: safe_tags(args[1]).toLowerCase(), preanim: safe_tags(args[2]).toLowerCase(), // get preanim nameplate: msg_nameplate, // TODO: there's a new feature that let's people choose the name that's displayed - name: characterName, - speaking: speakingsprite, - silent: silentsprite, + name: safe_tags(args[3]), + sprite: safe_tags(args[4]), content: this.prepChat(args[5]), // Escape HTML tags side: args[6].toLowerCase(), sound: safe_tags(args[7]).toLowerCase(), @@ -1145,9 +1128,9 @@ class Client extends EventEmitter { // Make sure the asset server is case insensitive, or that everything on it is lowercase emotes[i] = { desc: emoteinfo[0].toLowerCase(), - speaking: emoteinfo[1].toLowerCase(), - silent: emoteinfo[2].toLowerCase(), - zoom: emoteinfo[3], + preanim: emoteinfo[1].toLowerCase(), + emote: emoteinfo[2].toLowerCase(), + zoom: Number(emoteinfo[3]) || 0, sfx: esfx.toLowerCase(), sfxdelay: esfxd, button_off: AO_HOST + `characters/${encodeURI(me.name.toLowerCase())}/emotions/button${i}_off.png`, @@ -1498,6 +1481,17 @@ class Viewport { const shoutSprite = document.getElementById("client_shout"); const chatBoxInner = document.getElementById("client_inner_chat"); + let speakingSprite; + let silentSprite; + + if (this.chatmsg.name.toLowerCase().endsWith("_hd")) { + speakingSprite = this.chatmsg.sprite + ".png"; + silentSprite = this.chatmsg.sprite + ".png"; + } else { + speakingSprite = "(b)" + this.chatmsg.sprite + ".gif"; + silentSprite = "(a)" + this.chatmsg.sprite + ".gif"; + } + // Flip the character if (this.chatmsg.flip === 1) { charSprite.style.transform = "scaleX(-1)"; @@ -1614,11 +1608,11 @@ class Viewport { } } - charSprite.src = AO_HOST + "characters/" + encodeURI(this.chatmsg.name.toLowerCase()) + "/" + encodeURI(this.chatmsg.speaking); + charSprite.src = AO_HOST + "characters/" + encodeURI(this.chatmsg.name.toLowerCase()) + "/" + encodeURI(speakingSprite); charSprite.style.display = ""; if (this.textnow === this.chatmsg.content) { - charSprite.src = AO_HOST + "characters/" + encodeURI(this.chatmsg.name.toLowerCase()) + "/" + encodeURI(this.chatmsg.silent); + charSprite.src = AO_HOST + "characters/" + encodeURI(this.chatmsg.name.toLowerCase()) + "/" + encodeURI(silentSprite); charSprite.style.display = ""; waitingBox.innerHTML = "▶"; this._animating = false; @@ -1638,7 +1632,7 @@ class Viewport { if (this.textnow === this.chatmsg.content) { this.textTimer = 0; this._animating = false; - charSprite.src = AO_HOST + "characters/" + encodeURI(this.chatmsg.name.toLowerCase()) + "/" + encodeURI(this.chatmsg.silent); + charSprite.src = AO_HOST + "characters/" + encodeURI(this.chatmsg.name.toLowerCase()) + "/" + encodeURI(silentSprite); charSprite.style.display = ""; waitingBox.innerHTML = "▶"; clearTimeout(this.updater); @@ -1761,7 +1755,7 @@ export function onEnter(event) { sfxdelay = myemo.sfxdelay; } - client.sendIC("chat", myemo.speaking, mychar.name, myemo.silent, + client.sendIC("chat", myemo.preanim, mychar.name, myemo.emote, mytext, mychar.side, sfxname, myemo.zoom, sfxdelay, selectedShout, myevi, myflip, selectedEffect, mycolor, showname, pairchar, pairoffset, 0); |
