diff options
| -rw-r--r-- | webAO/client.ts | 21 | ||||
| -rw-r--r-- | webAO/viewport.ts | 30 |
2 files changed, 31 insertions, 20 deletions
diff --git a/webAO/client.ts b/webAO/client.ts index 18b173c..569b0e8 100644 --- a/webAO/client.ts +++ b/webAO/client.ts @@ -1515,15 +1515,16 @@ class Client extends EventEmitter { */ handleBN(args: string[]) { - this.viewport.bgname = safeTags(args[1]); - const bgfolder = this.viewport.bgFolder; - const bg_index = getIndexFromSelect("bg_select", this.viewport.bgname); + const bgFromArgs = safeTags(args[1]); + this.viewport.changeBgName(bgFromArgs); + const bgfolder = this.viewport.bgFolder(); + const bg_index = getIndexFromSelect("bg_select", this.viewport.bgName()); (<HTMLSelectElement>document.getElementById("bg_select")).selectedIndex = bg_index; updateBackgroundPreview(); if (bg_index === 0) { (<HTMLInputElement>document.getElementById("bg_filename")).value = - this.viewport.bgname; + this.viewport.bgName(); } tryUrls( @@ -1659,12 +1660,12 @@ class Client extends EventEmitter { oocLog.scrollTop = oocLog.scrollHeight; } - this.viewport.sfxaudio.pause(); - const oldvolume = this.viewport.sfxaudio.volume; - this.viewport.sfxaudio.volume = 1; - this.viewport.sfxaudio.src = `${AO_HOST}sounds/general/sfx-gallery.opus`; - this.viewport.sfxaudio.play(); - this.viewport.sfxaudio.volume = oldvolume; + this.viewport.sfxAudio().pause(); + const oldvolume = this.viewport.sfxAudio().volume; + this.viewport.sfxAudio().volume = 1; + this.viewport.sfxAudio().src = `${AO_HOST}sounds/general/sfx-gallery.opus`; + this.viewport.sfxAudio().play(); + this.viewport.sfxAudio().volume = oldvolume; } /** diff --git a/webAO/viewport.ts b/webAO/viewport.ts index 61fdc4d..e908ff1 100644 --- a/webAO/viewport.ts +++ b/webAO/viewport.ts @@ -64,12 +64,13 @@ export interface Viewport { handleTextTick: Function; theme: string; chatmsg: ChatMsg; - sfxaudio: HTMLAudioElement; + sfxAudio: Function; blipChannels: HTMLAudioElement[]; music: any; musicVolume: number; - bgFolder: string; - bgname: string; + changeBgName: Function; + bgFolder: Function; + bgName: Function; lastChar: string; } const viewport = (masterClient: Client, AO_HOST: string): Viewport => { @@ -137,7 +138,7 @@ const viewport = (masterClient: Client, AO_HOST: string): Viewport => { let musicVolume = 0; let updater: any; let testimonyUpdater: any; - let bgname = "gs4"; + let viewportBgName = ""; let lastChar = ""; let lastEvi = 0; let testimonyTimer = 0; @@ -148,7 +149,11 @@ const viewport = (masterClient: Client, AO_HOST: string): Viewport => { let startSecondTickCheck: boolean; let startThirdTickCheck: boolean; let theme: string; - const bgFolder = `${AO_HOST}background/${encodeURI(bgname.toLowerCase())}/`; + const sfxAudio = () => sfxaudio; + const bgName = () => viewportBgName; + const changeBgName = (bgName: string) => (viewportBgName = bgName); + const bgFolder = () => + `${AO_HOST}background/${encodeURI(viewportBgName.toLowerCase())}/`; /** * Sets the volume of the music. * @param {number} volume @@ -286,14 +291,14 @@ const viewport = (masterClient: Client, AO_HOST: string): Viewport => { if (showSpeedLines === true) { court.src = `${AO_HOST}themes/default/${encodeURI(speedLines)}`; } else { - court.src = await tryUrls(bgFolder + bg); + court.src = await tryUrls(bgFolder() + bg); } if (showDesk === true && desk) { - const deskFilename = (await fileExists(bgFolder + desk.ao2)) + const deskFilename = (await fileExists(bgFolder() + desk.ao2)) ? desk.ao2 : desk.ao1; - bench.src = bgFolder + deskFilename; + bench.src = bgFolder() + deskFilename; bench.style.opacity = "1"; } else { bench.style.opacity = "0"; @@ -396,6 +401,8 @@ const viewport = (masterClient: Client, AO_HOST: string): Viewport => { */ const handle_ic_speaking = async (playerChatMsg: ChatMsg) => { chatmsg = playerChatMsg; + client.viewport.chatmsg = playerChatMsg; + textnow = ""; sfxplayed = 0; tickTimer = 0; @@ -451,7 +458,9 @@ const viewport = (masterClient: Client, AO_HOST: string): Viewport => { charLayers.style.opacity = "0"; pairLayers.style.opacity = "0"; } + lastChar = chatmsg.name; + client.viewport.lastChar = chatmsg.name; appendICLog(chatmsg.content, chatmsg.showname, chatmsg.nameplate); @@ -1024,6 +1033,7 @@ const viewport = (masterClient: Client, AO_HOST: string): Viewport => { reloadTheme, playSFX, set_side, + changeBgName, initTestimonyUpdater, updateTestimony, disposeTestimony, @@ -1031,13 +1041,13 @@ const viewport = (masterClient: Client, AO_HOST: string): Viewport => { handleTextTick, theme, chatmsg, - sfxaudio, + sfxAudio, blipChannels, lastChar, music, musicVolume, bgFolder, - bgname, + bgName, }; }; |
