mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
Fix WAV decode cache and spell lookup performance
- audio_engine.cpp: cache key was based on vector pointer address, not content — cache never hit since each asset load produces a new allocation. Replace with FNV-1a over head+tail bytes + size, giving correct content-based identity at O(1) cost. Add 256-entry cap with eviction to prevent unbounded growth over long sessions. - game_handler.hpp/cpp, spellbook_screen, game_screen: knownSpells was a std::vector with O(n) std::find lookups scattered across packet handlers and UI code. Switch to std::unordered_set for O(1) insert, erase, and membership checks. Update all push_back/erase-remove/find call sites to use set operations.
This commit is contained in:
parent
e29b67dad9
commit
827679579f
6 changed files with 47 additions and 36 deletions
|
|
@ -136,7 +136,7 @@ void SpellbookScreen::loadSkillLineDBCs(pipeline::AssetManager* assetManager) {
|
|||
}
|
||||
}
|
||||
|
||||
void SpellbookScreen::categorizeSpells(const std::vector<uint32_t>& knownSpells) {
|
||||
void SpellbookScreen::categorizeSpells(const std::unordered_set<uint32_t>& knownSpells) {
|
||||
spellTabs.clear();
|
||||
|
||||
// Only SkillLine category 7 ("Class") gets its own tab (the 3 specialties).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue