From 10b413c0f0a31bc9476eed86812b6bb90f82caed Mon Sep 17 00:00:00 2001 From: David Skoland Date: Wed, 1 Apr 2026 13:59:13 +0200 Subject: Add asset preloading system for IC message rendering Fix rendering race conditions where character sprites, pre-animations, and paired character assets were displayed before being downloaded. All assets referenced in an MS packet are now resolved and preloaded into the browser cache before the animation timeline starts. - Add unified assetCache module with session-wide promise caching - Add preloadMessageAssets orchestrator for parallel asset resolution - Cache fileExists HEAD requests so missing files aren't re-probed - Preload all SFX (emote, shout, realization, stab) alongside sprites - Use synchronous setEmoteFromUrl at all render transition points - Graceful fallback to legacy setEmote if preloading times out Co-Authored-By: Claude Opus 4.6 (1M context) --- webAO/viewport/interfaces/ChatMsg.ts | 3 +++ 1 file changed, 3 insertions(+) (limited to 'webAO/viewport/interfaces/ChatMsg.ts') diff --git a/webAO/viewport/interfaces/ChatMsg.ts b/webAO/viewport/interfaces/ChatMsg.ts index 1e7078f..ab8d0b3 100644 --- a/webAO/viewport/interfaces/ChatMsg.ts +++ b/webAO/viewport/interfaces/ChatMsg.ts @@ -1,3 +1,5 @@ +import { PreloadedAssets } from "./PreloadedAssets"; + export interface ChatMsg { content: string; objection: number; @@ -31,4 +33,5 @@ export interface ChatMsg { evidence?: number; looping_sfx?: boolean; noninterrupting_preanim?: number; + preloadedAssets?: PreloadedAssets; } -- cgit