aboutsummaryrefslogtreecommitdiff
path: root/webAO
AgeCommit message (Collapse)Author
2026-04-01Add asset preloading system for IC message renderingDavid Skoland
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>
2026-03-24Merge pull request #297 from AttorneyOnline/type-fixesstonedDiscord
Fix all TypeScript errors with Window interface declarations
2026-03-18dont skip empty descriptionsstonedDiscord
2026-02-27Add Window interface declarations to fix TypeScript errorsDavid Skoland
Extend the global Window interface with custom properties assigned at runtime (e.g. pickEmotion, resizeChatbox, area_click) to resolve 18 TS2339/TS2551 errors. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25Merge pull request #292 from AttorneyOnline/pausestonedDiscord
Pause
2026-02-11Merge pull request #293 from OmniTroid/better-charloadingstonedDiscord
Better charloading
2026-02-11Deduce emote icon extension from first button to speed up loadingDavid Skoland
Instead of probing extensions for every emote button (N*M HEAD requests), probe once using button1_off and reuse the result for all buttons. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11Clamp playerlist char icons to 60x60 pixelsDavid Skoland
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11Filter playerlist by area and remove Area columnDavid Skoland
Hide players not in the client's current area. Re-render playerlist on area switch. Remove the now-redundant Area column. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11Add area column to playerlistDavid Skoland
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10Use charName directly for playerlist rendering and add table stylingDavid Skoland
Render char icons and names from the character name string (PU type 1) instead of gating on charId lookup. Add header row and row separators to the playerlist table. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10Refactor playerlist to state-driven rendering with renderPlayerListDavid Skoland
handlePR and handlePU now only update client.playerlist state, and renderPlayerList handles all DOM rendering from that state. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07Use setAOhost return value instead of stale AO_HOST importDavid Skoland
setAOhost now returns the current AO_HOST so handleASS can use the freshly set value rather than the import captured before the update. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07Fix playerlist icons using wrong asset URLDavid Skoland
PR/PU packets arrive before the ASS packet, so playerlist icon srcs were set with the default AO_HOST. Now handleASS re-applies the correct asset URL to existing playerlist images after AO_HOST updates. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07Prefetch char.ini for characters present in area via playerlistDavid Skoland
Store player data (charId, area) in an in-memory Map on the client, updated by PR/PU packet handlers. Use this to eagerly load char.ini when a player's character appears in our area or when switching areas, eliminating the lazy-load delay on first IC message. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07Use charicon_extensions from extensions.json for char icon URLsDavid Skoland
Instead of hardcoding .png, read the preferred extension from client.charicon_extensions[0] (populated via extensions.json), falling back to .png if unavailable. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07Catch rejected play() promises from browser autoplay policyDavid Skoland
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>
2026-02-07Defer char.ini loading and use direct img src for char iconsDavid Skoland
Instead of eagerly fetching char_icon (with HEAD requests per extension) and char.ini for every character on join, set img.src directly to char_icon.png and defer char.ini loading until actually needed (character selection via handlePV, or first IC message via handleMS). This eliminates thousands of HTTP requests on join for large character lists. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-03digit offsetsstonedDiscord
2026-02-03pstonedDiscord
2026-01-29maybe auto will fix itstonedDiscord
2026-01-29Revert "less scrollbars"stonedDiscord
This reverts commit f0048ed97916071d71e4e629f249ae5360e5ff41.
2026-01-28less scrollbarsstonedDiscord
2026-01-27need to bake in version the non-npm wayDavid Skoland
2026-01-03also set ic pane to 100%stonedDiscord
2026-01-01bring back objection sounds for chars that dont have their ownstonedDiscord
2026-01-01dont use opacitystonedDiscord
2026-01-01deal with this properlystonedDiscord
2026-01-01reorderstonedDiscord
2026-01-01try thisstonedDiscord
2026-01-01weird ci failstonedDiscord
2026-01-01urlstonedDiscord
2026-01-01this is stupid to test in consolestonedDiscord
2026-01-01low memory teststonedDiscord
2026-01-01pass aoml teststonedDiscord
2026-01-01constantstonedDiscord
2026-01-01test syntaxstonedDiscord
2026-01-01fill spacestonedDiscord
2026-01-01resize ic optionsstonedDiscord
2025-12-28Match client with how missing data is formattedmastyra
See https://github.com/AttorneyOnline/AO2-Client/blob/54afceec66744e758595e6a4e9bd861523f5b016/src/widgets/playerlistwidget.cpp#L207
2025-12-28Show player IDs in list elements when PU packet is sentmastyra
2025-11-26persona2stonedDiscord
2025-11-26persona 1stonedDiscord
2025-11-23dont buy at allstonedDiscord
2025-11-23buy localstonedDiscord
2025-10-28do not loop by defaultstonedDiscord
2025-10-25IC: treat empty preanim string as no preanimBumaire
When an emote is defined with empty preanimation string, such as
EmoteName##emote#, and a user selects "Preanim," WebAO tries to look up
a file with an empty name instead of disabling preanimation. This commit fixes this, matching AO2 client behavior and not requiring
character makers to put a magic "-" preanimation in char.ini.
2025-10-06move setbackgroundstonedDiscord
2025-10-03do not reload if there are not speedlinesstonedDiscord
2025-10-03maybe fix pantiltstonedDiscord