Commit graph

459 commits

Author SHA1 Message Date
Kelsi
9a199e20b6 Add Loot All button to loot window 2026-03-11 22:16:19 -07:00
Kelsi
2f1c9eb01b Add FOV slider to settings, expand combat chat tab with skills/achievements/NPC speech 2026-03-11 22:13:22 -07:00
Kelsi
861bb3404f Improve vendor window: quantity selector, stock status colors, disable out-of-stock items 2026-03-11 22:10:43 -07:00
Kelsi
c9cfa864bf Add Achievements tab to character screen with search filter 2026-03-11 22:07:44 -07:00
Kelsi
c9ea61aba7 Fix Exalted reputation tier not displaying correctly (off-by-one in getTier loop) 2026-03-11 22:06:16 -07:00
Kelsi
a207ceef6c Add secondary stats (AP, SP, hit, crit, haste, etc.) to character stats panel 2026-03-11 22:03:33 -07:00
Kelsi
386de826af Add right-click context menu on chat messages for whisper/friend/ignore 2026-03-11 22:00:30 -07:00
Kelsi
f5de4d2031 Add shift-click spell linking to chat from spellbook 2026-03-11 21:57:13 -07:00
Kelsi
25c5d257ae Enhance Friends tab with add/remove/note/whisper and add Ignore List tab 2026-03-11 21:53:15 -07:00
Kelsi
c09ebae5af Add shift-click item linking to bank and guild bank windows 2026-03-11 21:50:07 -07:00
Kelsi
fc7cc44ef7 Add right-click context menu to raid frame cells with leader kick support 2026-03-11 21:47:10 -07:00
Kelsi
300e3ba71f Show quest status icons in gossip window based on QuestGiverStatus
Quest list in NPC gossip now shows colored status icons:
! (yellow) = available, ? (yellow) = ready to turn in,
! or ? (gray) = available low-level or in-progress incomplete.
2026-03-11 21:39:32 -07:00
Kelsi
54eae9bffc Add shift-click links and Take All to mail attachments
Mail attachment icons and names now support shift-click to insert item
links. Item names also show rich tooltips on hover. Adds a "Take All"
button when a mail has multiple attachments.
2026-03-11 21:37:15 -07:00
Kelsi
23cfb9b640 Add shift-click chat links to AH bids and owner auctions tabs 2026-03-11 21:34:28 -07:00
Kelsi
99d1f5778c Fix trade window peer tooltips; add shift-click links in trade and loot roll
Trade window now shows rich item tooltips for both sides (peer items were
missing tooltips). Both trade sides and the loot roll popup now support
shift-click to insert item links into the chat input.
2026-03-11 21:32:54 -07:00
Kelsi
7cfeed1e28 Shift-click items in quest/AH windows to insert chat links
Adds shift-click-to-link support in auction house browse results, quest
details reward items, quest offer/reward window choice and fixed items,
and quest request-items required item list.
2026-03-11 21:31:09 -07:00
Kelsi
3d40e4dee5 Shift-click items in loot and vendor windows to insert chat links 2026-03-11 21:27:16 -07:00
Kelsi
0075fdd5e1 Show item icons in quest objective tracker 2026-03-11 21:24:03 -07:00
Kelsi
43c0e9b2e8 Add spell search filter to trainer window 2026-03-11 21:21:14 -07:00
Kelsi
bbf4806fe8 Add item search filter to vendor window 2026-03-11 21:19:47 -07:00
Kelsi
7ab0b036c7 Add rich item tooltip to buyback item row in vendor window 2026-03-11 21:17:29 -07:00
Kelsi
95ac97a41c Use rich item tooltips in bank window slots 2026-03-11 21:15:41 -07:00
Kelsi
e34357a0a4 Use rich item tooltips in mail attachments and guild bank slots 2026-03-11 21:14:27 -07:00
Kelsi
4394f93a17 Use rich item tooltips in quest details window; fix shift-click chat link ordering 2026-03-11 21:11:58 -07:00
Kelsi
43c239ee2f Shift-click bag items to insert item links into chat input 2026-03-11 21:09:42 -07:00
Kelsi
e415451f89 Show item icons inline in chat item links 2026-03-11 21:03:51 -07:00
Kelsi
5bafacc372 Use full item tooltips in all auction house tabs 2026-03-11 21:02:02 -07:00
Kelsi
458c9ebe8c Show item icons for item objectives in quest log 2026-03-11 20:57:39 -07:00
Kelsi
3c0e58bff4 Show item icon and quality color in buyback table 2026-03-11 20:52:42 -07:00
Kelsi
647967cccb Show item icons in vendor window item list 2026-03-11 20:49:25 -07:00
Kelsi
764cf86e38 Show spell icons in trainer window with dimming for unavailable spells 2026-03-11 20:48:03 -07:00
Kelsi
d9a58115f9 Show item icons and rich tooltips in trade window slots 2026-03-11 20:42:26 -07:00
Kelsi
4ceb313fb2 Show item icons in quest turn-in required items list 2026-03-11 20:41:02 -07:00
Kelsi
1e8c85d850 Show item icons in mail read-view attachment list 2026-03-11 20:39:15 -07:00
Kelsi
26fab2d5d0 Show item icons in guild bank window
Replace text-only buttons with icon+draw-list rendering that matches
the style of the regular bank, loot, and vendor windows. Item icons are
looked up via inventoryScreen.getItemIcon(info->displayInfoId); falls
back to a coloured bordered square with two-letter abbreviation when
the texture is not yet cached. Stack count is overlaid in the
bottom-right corner. Withdraw still fires on left-click.
2026-03-11 20:33:46 -07:00
Kelsi
8c2f69ca0e Rate-limit icon GPU uploads in spellbook, action bar, and inventory screens
Opening the spellbook on a new tab, logging in with many auras/action slots, or
opening a full bag all triggered synchronous BLP-decode + GPU uploads for every
uncached icon in one frame, causing a visible stall. Apply the same 4-per-frame
upload cap that was added to talent_screen, so icons load progressively.
2026-03-11 20:17:41 -07:00
Kelsi
7dbf950323 Fix talent tab hang when switching trees by rate-limiting icon uploads
Switching from Arms to Fury (or any previously-unseen tab) caused a
multi-frame stall because getSpellIcon() loaded and uploaded all ~20
BLP textures synchronously in a single frame.  Limit new icon GPU
uploads to 4 per frame; uncached icons return null and are loaded on
subsequent frames, spreading the cost over ~5 frames with no visible
hang.
2026-03-11 19:48:00 -07:00
Kelsi
711cb966ef Fix chest interaction and measure server RTT for latency meter
Chests (and lockboxes, coffers, etc.) failed to open because CMSG_LOOT
was only sent on Classic/Turtle expansions, and only when GO type was
already cached as type 3.  Fix: always send CMSG_LOOT after
CMSG_GAMEOBJ_USE (server silently ignores it for non-lootable objects).
Also broaden CMSG_GAMEOBJ_REPORT_USE to all non-mailbox WotLK GOs.

Latency meter: record pingTimestamp_ in sendPing() and compute RTT in
handlePong(); add toggleable "Show Latency Meter" checkbox in Interface
settings (saved to settings.cfg).
2026-03-11 19:45:03 -07:00
Kelsi
14f672ab6a Pre-query vendor item information to avoid placeholder display
Proactively call ensureItemInfo() for both vendor items and buyback items
during rendering. This ensures item names and stats are available before
display, eliminating "Item <id>" placeholders and providing instant tooltip
info, matching the pattern used for quest rewards and action bar items.
2026-03-11 19:29:10 -07:00
Kelsi
9b9d56543c Re-query player names during rendering to resolve pending queries
When a player nameplate is about to render with an empty name (showing
"Player (level)" placeholder), actively re-request the name query. Since
queryPlayerName() is idempotent (won't duplicate pending queries), this
ensures that slow network responses don't cause players to permanently
display as "Player (67)" even after the response arrives. Rendering code
now triggers name queries to completion before falling back to placeholders.
2026-03-11 18:53:23 -07:00
Kelsi
f7c752a316 Hide nameplates/health bars for corpses except when selected
Corpses no longer display nameplates or health bars unless they are the current
target (selected for loot or skinning). When selected, corpses show a minimal
grey nameplate with no health fill.
2026-03-11 16:54:30 -07:00
Kelsi
bfeb978eff Fix character screen weapon slot positioning regression
Weapon slots were positioned too far right (at rightColX) causing overlap with right
column equipment. Repositioned to center column area (contentStartX + slotSize + 8px),
after left column. 3D preview renders on top, no visual conflict.
2026-03-11 16:49:27 -07:00
Kelsi
3f0e19970e Fix character screen weapon slots layout positioning
Position weapon slots (main hand, off hand, ranged) to align with the right
column instead of appearing in the left column where they crowd the main
equipment slots (tabbard, bracers, etc.). Weapons now positioned consistently
with the 3-column layout at rightColX instead of appearing at the default left
cursor position.
2026-03-11 16:32:30 -07:00
Kelsi
6f7c57d975 feat: add graphics quality presets system
Implement quick-access quality presets (Low, Medium, High, Ultra) that adjust multiple graphics settings at once for better user experience. Each preset configures:
- Shadow rendering and distance
- Anti-aliasing (MSAA) level
- Normal mapping and parallax mapping
- Ground clutter density

The system automatically detects when settings deviate from a preset and marks them as "Custom". Presets are persisted to settings.cfg for consistency across sessions. Users can quickly switch between performance and quality modes or tweak individual settings as needed.
2026-03-11 15:21:48 -07:00
Kelsi
1808d98978 feat: implement TOGGLE_MINIMAP and TOGGLE_RAID_FRAMES keybindings
- Add showMinimap_ and showRaidFrames_ visibility flags to GameScreen
- Wire up TOGGLE_MINIMAP (M key) to toggle minimap visibility
- Wire up TOGGLE_RAID_FRAMES (F key) to toggle party/raid frame visibility
- Conditional rendering of minimap markers and party frames
- Completes keybinding manager integration for all 15 customizable actions
2026-03-11 09:24:37 -07:00
Kelsi
1aa404d670 refactor: use keybinding manager for Escape (settings) and Enter (chat) keys
- Replace hardcoded SDL_SCANCODE_ESCAPE with TOGGLE_SETTINGS keybinding
- Replace hardcoded SDL_SCANCODE_RETURN with TOGGLE_CHAT keybinding
- Allows customization of these keys through Settings UI
2026-03-11 09:08:15 -07:00
Kelsi
f3415c2aff feat: implement TOGGLE_INVENTORY keybinding for I key in game_screen
- Add inventory window toggle on I key press
- Integrates with keybinding manager system for customizable inventory key
2026-03-11 09:05:17 -07:00
Kelsi
332c2f6d3f feat: add TOGGLE_BAGS action and integrate inventory screen with keybinding manager
- Add TOGGLE_BAGS action to keybinding manager (B key default)
- Update inventory_screen.cpp to use keybinding manager for bag and character toggles
- Maintain consistent keybinding system across all UI windows
2026-03-11 09:02:15 -07:00
Kelsi
7220737d48 refactor: use keybinding manager for spellbook and talents toggles instead of hardcoded keys 2026-03-11 08:58:20 -07:00
Kelsi
46365f4738 fix: correct keybinding defaults to match WoW standard keys
The keybinding manager had incorrect default key assignments:
- TOGGLE_SPELLBOOK was S (should be P - WoW standard)
- TOGGLE_TALENTS was K (should be N - WoW standard)

These mismatched the actual hardcoded keys in spellbook_screen.cpp (P) and
talent_screen.cpp (N), as well as user expectations from standard WoW.

Update keybinding defaults to align with WoW conventions and the actual UI
implementations that are using these keys.
2026-03-11 08:42:58 -07:00