mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-27 01:00:13 +00:00
ui,game,pipeline: player nameplates always-on, level-up ring effect, vanilla tile fallback, warden null guard
- Nameplates: player names always rendered regardless of V-key toggle; separate cull distance 40u (players/target) vs 20u (NPCs); cyan name color for other players; fade alpha scales with cull distance - Level-up: add expanding golden ring burst (3 staggered waves, 420u max radius) + full-screen flash to renderDingEffect(); M2 LevelUp.m2 is still attempted as a bonus on top - Vanilla tile loading: add AssetManager::setBaseFallbackPath() so that when the primary manifest is an expansion-specific DBC-only subset (e.g. Data/expansions/vanilla/), world terrain files fall back to the base Data/ extraction; wired in Application::initialize() - Warden: map a null guard page at address 0x0 in the Unicorn emulator so NULL-pointer reads in the module don't crash with UC_ERR_MAP; execution continues past the NULL read for better diagnostics
This commit is contained in:
parent
3cdaf78369
commit
0ea8e55ad4
5 changed files with 100 additions and 11 deletions
|
|
@ -137,8 +137,31 @@ std::string AssetManager::resolveFile(const std::string& normalizedPath) const {
|
|||
}
|
||||
}
|
||||
}
|
||||
// Fall back to base manifest
|
||||
return manifest_.resolveFilesystemPath(normalizedPath);
|
||||
// Primary manifest
|
||||
std::string primaryPath = manifest_.resolveFilesystemPath(normalizedPath);
|
||||
if (!primaryPath.empty()) return primaryPath;
|
||||
|
||||
// If a base-path fallback is configured (expansion-specific primary that only
|
||||
// holds DBC overrides), retry against the base extraction.
|
||||
if (!baseFallbackDataPath_.empty()) {
|
||||
return baseFallbackManifest_.resolveFilesystemPath(normalizedPath);
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
void AssetManager::setBaseFallbackPath(const std::string& basePath) {
|
||||
if (basePath.empty() || basePath == dataPath) return; // nothing to do
|
||||
std::string manifestPath = basePath + "/manifest.json";
|
||||
if (!std::filesystem::exists(manifestPath)) {
|
||||
LOG_DEBUG("AssetManager: base fallback manifest not found at ", manifestPath,
|
||||
" — fallback disabled");
|
||||
return;
|
||||
}
|
||||
if (baseFallbackManifest_.load(manifestPath)) {
|
||||
baseFallbackDataPath_ = basePath;
|
||||
LOG_INFO("AssetManager: base fallback path set to '", basePath,
|
||||
"' (", baseFallbackManifest_.getEntryCount(), " files)");
|
||||
}
|
||||
}
|
||||
|
||||
BLPImage AssetManager::loadTexture(const std::string& path) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue