diff options
| author | Osmium Sorcerer <os@sof.beauty> | 2026-03-16 15:59:07 +0000 |
|---|---|---|
| committer | Osmium Sorcerer <os@sof.beauty> | 2026-04-18 16:52:22 +0000 |
| commit | 4dc891716ba6fb33dc35e9908283c1b6b9755efd (patch) | |
| tree | fab1571a136ff3b3d835ca1f97a83a44f032193a /webAO | |
| parent | d50050b262d142eed8b61f58738884687f52440e (diff) | |
Remove hardcoded (a) and (b) emote subdirectories
Note: this is an old commit that was relevant prior to 10b413c
("Add asset preloading system for IC message rendering")
WebAO assumes every character has an idle and talking animations which
reside in fixed "(a)" and "(b)" subdirectories. This assumption, of
course, breaks many valid characters that don't use these magical
directory names, as it prepends them to every emote URL.
This commit removes this fossil. Animation, or any character structure
at all, shouldn't depend on magical subdirectory names, and instead
defined explicitly.
Diffstat (limited to 'webAO')
| -rw-r--r-- | webAO/client/setEmote.ts | 5 | ||||
| -rw-r--r-- | webAO/viewport/utils/preloadMessageAssets.ts | 11 | ||||
| -rw-r--r-- | webAO/viewport/viewport.ts | 10 |
3 files changed, 12 insertions, 14 deletions
diff --git a/webAO/client/setEmote.ts b/webAO/client/setEmote.ts index 4c05afc..7e4a1d4 100644 --- a/webAO/client/setEmote.ts +++ b/webAO/client/setEmote.ts @@ -12,7 +12,6 @@ const setEmote = async ( client: Client, charactername: string, emotename: string, - prefix: string, pair: boolean, side: string, ) => { @@ -43,8 +42,8 @@ const setEmote = async ( )}.webp`; } else { url = `${characterFolder}${encodeURI(charactername)}/${encodeURI( - prefix, - )}${encodeURI(emotename)}${extension}`; + emotename, + )}${extension}`; } const exists = await fileExists(url); if (exists) { diff --git a/webAO/viewport/utils/preloadMessageAssets.ts b/webAO/viewport/utils/preloadMessageAssets.ts index f3924cd..aeae191 100644 --- a/webAO/viewport/utils/preloadMessageAssets.ts +++ b/webAO/viewport/utils/preloadMessageAssets.ts @@ -18,7 +18,6 @@ function buildEmoteUrls( extensions: string[], charactername: string, emotename: string, - prefix: string, ): string[] { const characterFolder = `${AO_HOST}characters/`; const urls: string[] = []; @@ -30,7 +29,7 @@ function buildEmoteUrls( } else if (extension === ".webp.static") { url = `${characterFolder}${encodeURI(charactername)}/${encodeURI(emotename)}.webp`; } else { - url = `${characterFolder}${encodeURI(charactername)}/${encodeURI(prefix)}${encodeURI(emotename)}${extension}`; + url = `${characterFolder}${encodeURI(charactername)}/${encodeURI(emotename)}${extension}`; } urls.push(url); } @@ -66,8 +65,8 @@ export default async function preloadMessageAssets( const doPreload = async (): Promise<PreloadedAssets> => { // Build candidate URL lists for each emote - const idleUrls = buildEmoteUrls(AO_HOST, emoteExtensions, charName, charEmote, "(a)"); - const talkingUrls = buildEmoteUrls(AO_HOST, emoteExtensions, charName, charEmote, "(b)"); + const idleUrls = buildEmoteUrls(AO_HOST, emoteExtensions, charName, charEmote); + const talkingUrls = buildEmoteUrls(AO_HOST, emoteExtensions, charName, charEmote); const hasPreanim = chatmsg.type === 1 && @@ -76,12 +75,12 @@ export default async function preloadMessageAssets( chatmsg.preanim !== ""; const preanimUrls = hasPreanim - ? buildEmoteUrls(AO_HOST, emoteExtensions, charName, chatmsg.preanim!, "") + ? buildEmoteUrls(AO_HOST, emoteExtensions, charName, chatmsg.preanim!) : null; const hasPair = !!chatmsg.other_name; const pairIdleUrls = hasPair - ? buildEmoteUrls(AO_HOST, emoteExtensions, chatmsg.other_name!, chatmsg.other_emote!, "(a)") + ? buildEmoteUrls(AO_HOST, emoteExtensions, chatmsg.other_name!, chatmsg.other_emote!) : null; // Shout SFX per-character path diff --git a/webAO/viewport/viewport.ts b/webAO/viewport/viewport.ts index 70ec5c5..1421c67 100644 --- a/webAO/viewport/viewport.ts +++ b/webAO/viewport/viewport.ts @@ -255,7 +255,7 @@ const viewport = (): Viewport => { if (chatmsg.preloadedAssets) { setEmoteFromUrl(chatmsg.preloadedAssets.idleUrl, false, chatmsg.side); } else { - setEmote(AO_HOST, client, charName, charEmote, "(a)", false, chatmsg.side); + setEmote(AO_HOST, client, charName, charEmote, false, chatmsg.side); } charLayers.style.opacity = "1"; waitingBox.style.opacity = "1"; @@ -354,7 +354,7 @@ const viewport = (): Viewport => { setEmoteFromUrl(chatmsg.preloadedAssets.preanimUrl, false, chatmsg.side); } else { const preanim = chatmsg.preanim; - setEmote(AO_HOST, client, charName, preanim, "", false, chatmsg.side); + setEmote(AO_HOST, client, charName, preanim, false, chatmsg.side); } } @@ -444,7 +444,7 @@ const viewport = (): Viewport => { if (chatmsg.preloadedAssets) { setEmoteFromUrl(chatmsg.preloadedAssets.pairIdleUrl, true, chatmsg.side); } else { - setEmote(AO_HOST, client, pairName, pairEmote, "(a)", true, chatmsg.side); + setEmote(AO_HOST, client, pairName, pairEmote, true, chatmsg.side); } pairLayers.style.opacity = "1"; } else { @@ -454,7 +454,7 @@ const viewport = (): Viewport => { if (chatmsg.preloadedAssets) { setEmoteFromUrl(chatmsg.preloadedAssets.talkingUrl, false, chatmsg.side); } else { - setEmote(AO_HOST, client, charName, charEmote, "(b)", false, chatmsg.side); + setEmote(AO_HOST, client, charName, charEmote, false, chatmsg.side); } charLayers.style.opacity = "1"; @@ -462,7 +462,7 @@ const viewport = (): Viewport => { if (chatmsg.preloadedAssets) { setEmoteFromUrl(chatmsg.preloadedAssets.idleUrl, false, chatmsg.side); } else { - setEmote(AO_HOST, client, charName, charEmote, "(a)", false, chatmsg.side); + setEmote(AO_HOST, client, charName, charEmote, false, chatmsg.side); } charLayers.style.opacity = "1"; waitingBox.style.opacity = "1"; |
