| Age | Commit message (Collapse) | Author |
|
The early return guard `textnow === chatmsg.content` was firing on the
first tick for empty messages ("" === ""), short-circuiting the entire
animation timeline before the preanim or shout phases could run.
Now the guard also checks that both tick phases have completed before
allowing the early exit.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
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) <noreply@anthropic.com>
|
|
Pause
|
|
Browsers reject .play() with a DOMException when the user hasn't
interacted with the document yet. Add .catch(() => {}) to all 9
play() call sites to suppress the uncaught promise rejection.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
|
|
|
|
|
|
plan is to migrate to createTextNode
|
|
|
|
Fix for: Empty messages don't play the preanimation #191
|
|
|
|
|
|
|
|
|
|
|
|
|