diff options
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.h')
| -rwxr-xr-x | src/server/game/Globals/ObjectMgr.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index a593d369799..66ecd4f13ec 100755 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -807,10 +807,19 @@ class ObjectMgr return NULL; } - VehicleAccessoryList const* GetVehicleAccessoryList(uint32 uiEntry) const + VehicleAccessoryList const* GetVehicleAccessoryList(Vehicle* veh) const { - VehicleAccessoryMap::const_iterator itr = m_VehicleAccessoryMap.find(uiEntry); - if (itr != m_VehicleAccessoryMap.end()) + if (veh->GetBase()->ToCreature()) + { + // Give preference to GUID-based accessories + VehicleAccessoryMap::const_iterator itr = m_VehicleAccessoryMap.find(veh->GetBase()->GetGUIDLow()); + if (itr != m_VehicleAccessoryMap.end()) + return &itr->second; + } + + // Otherwise return entry-based + VehicleAccessoryMap::const_iterator itr = m_VehicleTemplateAccessoryMap.find(veh->GetCreatureEntry()); + if (itr != m_VehicleTemplateAccessoryMap.end()) return &itr->second; return NULL; } @@ -921,6 +930,7 @@ class ObjectMgr void LoadInstanceTemplate(); void LoadInstanceEncounters(); void LoadMailLevelRewards(); + void LoadVehicleTemplateAccessories(); void LoadVehicleAccessories(); void LoadVehicleScaling(); @@ -1325,6 +1335,7 @@ class ObjectMgr ItemRequiredTargetMap m_ItemRequiredTarget; + VehicleAccessoryMap m_VehicleTemplateAccessoryMap; VehicleAccessoryMap m_VehicleAccessoryMap; VehicleScalingMap m_VehicleScalingMap; |
