|
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>
|
|
This commit includes another pass of refactoring to webAO, but
could not be tested because it has become virtually impossible
to compile GoldenLayout correctly and have it be detected as a
module by webpack. GoldenLayout has also been dormant for an
alarming amount of time, and its new maintainers have not been
doing a stellar job releasing bug fixes.
So, I give up trying to build webAO.
It's a heaping mess written in vanilla HTML/CSS/JS without the
use of a proper web framework, dependent on a raw TCP protocol
designed 7 years ago, only to be wrapped with yet another
protocol that only half the servers *want* to support, because
webAO is so bad that only incompetent players would want to keep
using it. (Unless you are a Chromebook player, in which case I am
sorry for hurling insults at you.)
webAO started off as an experiment by sD, but became real only
because I made it real. I was the one who added support for
it for tsuserver; I was the one who made the UI vaguely acceptable;
I was the one who added a button for it on the home page. It's
really my fault that this abomination lives on. I should have
learned a legitimate web framework and rewritten it when I
had the chance.
|