mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-26 13:13:50 +00:00
[refactor] Break Application::getInstance() from GameHandler
Introduce `GameServices` struct — an explicit dependency bundle that `Application` populates and passes to `GameHandler` at construction time. Eliminates all 47 hidden `Application::getInstance()` calls in `src/game/*.cpp`, completing SOLID-D (dependency-inversion) cleanup. Changes: - New `include/game/game_services.hpp` — `struct GameServices` carrying pointers to `Renderer`, `AssetManager`, `ExpansionRegistry`, and two taxi-mount display IDs - `GameHandler(GameServices&)` replaces default constructor; exposes `services() const` accessor for domain handlers - `Application` holds `game::GameServices gameServices_`; populates it after all subsystems are created, then constructs `GameHandler` (fixes latent init-order bug: `GameHandler` was previously created before `AssetManager` / `ExpansionRegistry`) - `game_handler.cpp`: duplicate `isActiveExpansion` / `isClassicLikeExpansion` / `isPreWotlk` anonymous-namespace helpers removed; `game_utils.hpp` included instead - All domain handlers (`InventoryHandler`, `SpellHandler`, `MovementHandler`, `CombatHandler`, `QuestHandler`, `SocialHandler`, `WardenHandler`) replace `Application::getInstance().getXxx()` with `owner_.services().xxx`
This commit is contained in:
parent
c1c28d4216
commit
a86efaaa18
12 changed files with 92 additions and 68 deletions
|
|
@ -1816,7 +1816,7 @@ void MovementHandler::loadTaxiDbc() {
|
|||
if (taxiDbcLoaded_) return;
|
||||
taxiDbcLoaded_ = true;
|
||||
|
||||
auto* am = core::Application::getInstance().getAssetManager();
|
||||
auto* am = owner_.services().assetManager;
|
||||
if (!am || !am->isInitialized()) return;
|
||||
|
||||
auto nodesDbc = am->loadDBC("TaxiNodes.dbc");
|
||||
|
|
@ -2005,9 +2005,8 @@ void MovementHandler::applyTaxiMountForCurrentNode() {
|
|||
if (mountId == 541) mountId = 0;
|
||||
}
|
||||
if (mountId == 0) {
|
||||
auto& app = core::Application::getInstance();
|
||||
uint32_t gryphonId = app.getGryphonDisplayId();
|
||||
uint32_t wyvernId = app.getWyvernDisplayId();
|
||||
uint32_t gryphonId = owner_.services().gryphonDisplayId;
|
||||
uint32_t wyvernId = owner_.services().wyvernDisplayId;
|
||||
if (isAlliance && gryphonId != 0) mountId = gryphonId;
|
||||
if (!isAlliance && wyvernId != 0) mountId = wyvernId;
|
||||
if (mountId == 0) {
|
||||
|
|
@ -2496,7 +2495,7 @@ void MovementHandler::loadAreaTriggerDbc() {
|
|||
if (owner_.areaTriggerDbcLoaded_) return;
|
||||
owner_.areaTriggerDbcLoaded_ = true;
|
||||
|
||||
auto* am = core::Application::getInstance().getAssetManager();
|
||||
auto* am = owner_.services().assetManager;
|
||||
if (!am || !am->isInitialized()) return;
|
||||
|
||||
auto dbc = am->loadDBC("AreaTrigger.dbc");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue