mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-06 00:53:52 +00:00
feat: complete client integration for all 6 open formats
- Wire WOB buildings into WMO render pipeline (loads→converts→renders) - Implement JSON DBC loading in DBCFile::loadJSON() with nlohmann/json - Wire JSON DBC override into AssetManager (custom_zones/output scan) - Add WMO→WOB conversion with full geometry (fromWMO) - Replace placeholder WOB export with real WMO→WOB conversion in editor - Add --convert-wmo CLI flag for batch WMO→WOB conversion - Store discovered custom zones on Renderer with getCustomZones() accessor - Add isCustomZone_ member to TerrainManager All 6 Blizzard format replacements now fully load in the client: ADT→WOT/WHM, WDT→zone.json, BLP→PNG, DBC→JSON, M2→WOM, WMO→WOB
This commit is contained in:
parent
d8f2388635
commit
4fc0361f7a
11 changed files with 271 additions and 47 deletions
|
|
@ -14,6 +14,7 @@
|
|||
#include "rendering/vk_frame_data.hpp"
|
||||
#include "rendering/vk_utils.hpp"
|
||||
#include "rendering/sky_system.hpp"
|
||||
#include "pipeline/custom_zone_discovery.hpp"
|
||||
|
||||
namespace wowee {
|
||||
namespace core { class Window; }
|
||||
|
|
@ -188,6 +189,8 @@ public:
|
|||
game::ZoneManager* getZoneManager() { return zoneManager.get(); }
|
||||
LightingManager* getLightingManager() { return lightingManager.get(); }
|
||||
|
||||
const std::vector<pipeline::CustomZoneInfo>& getCustomZones() const { return customZones_; }
|
||||
|
||||
private:
|
||||
void runDeferredWorldInitStep(float deltaTime);
|
||||
|
||||
|
|
@ -267,6 +270,7 @@ private:
|
|||
void renderShadowPass();
|
||||
glm::mat4 computeLightSpaceMatrix();
|
||||
|
||||
std::vector<pipeline::CustomZoneInfo> customZones_;
|
||||
pipeline::AssetManager* cachedAssetManager = nullptr;
|
||||
|
||||
// Spell visual effects — owned SpellVisualSystem (extracted from Renderer §4.4)
|
||||
|
|
|
|||
|
|
@ -201,6 +201,8 @@ public:
|
|||
* @param mapName Map name (e.g., "Azeroth", "Kalimdor")
|
||||
*/
|
||||
void setMapName(const std::string& mapName) { this->mapName = mapName; }
|
||||
bool isCustomZone() const { return isCustomZone_; }
|
||||
void setCustomZone(bool custom) { isCustomZone_ = custom; }
|
||||
|
||||
/**
|
||||
* Load a single tile
|
||||
|
|
@ -352,6 +354,7 @@ private:
|
|||
float timeSinceLastUpdate = 0.0f;
|
||||
float proactiveStreamTimer_ = 0.0f;
|
||||
bool taxiStreamingMode_ = false;
|
||||
bool isCustomZone_ = false;
|
||||
|
||||
// Tile size constants (WoW ADT specifications)
|
||||
// A tile (ADT) = 16x16 chunks = 533.33 units across
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue