import { client } from "../../client"; import { AO_HOST } from "../../client/aoHost"; import { safeTags } from "../../encoding"; import { updateBackgroundPreview } from '../../dom/updateBackgroundPreview' import { getIndexFromSelect } from '../../dom/getIndexFromSelect' import tryUrls from "../../utils/tryUrls"; /** * Handles a background change. * @param {Array} args packet arguments */ export const handleBN = (args: string[]) => { const bgFromArgs = safeTags(args[1]); client.viewport.setBackgroundName(bgFromArgs); const bgfolder = client.viewport.getBackgroundFolder(); const bg_index = getIndexFromSelect( "bg_select", client.viewport.getBackgroundName() ); (document.getElementById("bg_select")).selectedIndex = bg_index; updateBackgroundPreview(); if (bg_index === 0) { (document.getElementById("bg_filename")).value = client.viewport.getBackgroundName(); } tryUrls( `${AO_HOST}background/${encodeURI(args[1].toLowerCase())}/defenseempty` ).then((resp) => { (document.getElementById("bg_preview")).src = resp; }); tryUrls(`${bgfolder}defensedesk`).then((resp) => { (document.getElementById("client_def_bench")).src = resp; }); tryUrls(`${bgfolder}stand`).then((resp) => { (document.getElementById("client_wit_bench")).src = resp; }); tryUrls(`${bgfolder}prosecutiondesk`).then((resp) => { (document.getElementById("client_pro_bench")).src = resp; }); tryUrls(`${bgfolder}full`).then((resp) => { (document.getElementById("client_court")).src = resp; }); tryUrls(`${bgfolder}defenseempty`).then((resp) => { (document.getElementById("client_court_def")).src = resp; }); tryUrls(`${bgfolder}transition_def`).then((resp) => { (document.getElementById("client_court_deft")).src = resp; }); tryUrls(`${bgfolder}witnessempty`).then((resp) => { (document.getElementById("client_court_wit")).src = resp; }); tryUrls(`${bgfolder}transition_pro`).then((resp) => { (document.getElementById("client_court_prot")).src = resp; }); tryUrls(`${bgfolder}prosecutorempty`).then((resp) => { (document.getElementById("client_court_pro")).src = resp; }); if (client.charID === -1) { client.viewport.set_side({ position: "jud", showSpeedLines: false, showDesk: true, }); } else { client.viewport.set_side({ position: client.chars[client.charID].side, showSpeedLines: false, showDesk: true, }); } }