diff options
author | Giacomo Pozzoni <giacomopoz@gmail.com> | 2020-07-14 07:34:03 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-14 09:34:03 +0200 |
commit | 203573db83fb1d3f141b5aadbf1d1ca0a637bf94 (patch) | |
tree | fdf29fa005fafdedddab8ec67abc83d26841d7fc /src/server/game/Globals/ObjectMgr.cpp | |
parent | 042b1abfd747160085e5acc24a842a076b20ea01 (diff) |
Core/Spells: Implement SPELL_EFFECT_ACTIVATE_OBJECT. (#23) (#24997)
* Core/Spells: Implement SPELL_EFFECT_ACTIVATE_OBJECT. (#23)
Original research by @xvwyh.
# Conflicts:
# src/server/game/DataStores/DBCStores.cpp
# src/server/game/DataStores/DBCStructure.h
# src/server/game/DataStores/DBCfmt.h
# src/server/game/Entities/GameObject/GameObject.h
# src/server/game/Entities/GameObject/GameObjectData.h
# src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
# src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp
* Add missing sql update
* Fix some build errors
* Remove unused enum values
* Change artkits from 0-4 to 0-3
* Remove unused code
* Code review feedback
* Fix sql
* Remove artkit4 special case handling
* Default initialize artKits
* Code review feedback
* Split sql into structure and data files
Co-authored-by: Warpten <vertozor@gmail.com>
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index f0faf63c4ff..8be1053099f 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -7671,8 +7671,8 @@ void ObjectMgr::LoadGameObjectTemplateAddons() { uint32 oldMSTime = getMSTime(); - // 0 1 2 3 4 - QueryResult result = WorldDatabase.Query("SELECT entry, faction, flags, mingold, maxgold FROM gameobject_template_addon"); + // 0 1 2 3 4 5 6 7 8 + QueryResult result = WorldDatabase.Query("SELECT entry, faction, flags, mingold, maxgold, artkit0, artkit1, artkit2, artkit3 FROM gameobject_template_addon"); if (!result) { @@ -7700,6 +7700,21 @@ void ObjectMgr::LoadGameObjectTemplateAddons() gameObjectAddon.Mingold = fields[3].GetUInt32(); gameObjectAddon.Maxgold = fields[4].GetUInt32(); + for (uint32 i = 0; i < gameObjectAddon.artKits.size(); ++i) + { + uint32 artKitID = fields[5 + i].GetUInt32(); + if (!artKitID) + continue; + + if (!sGameObjectArtKitStore.LookupEntry(artKitID)) + { + TC_LOG_ERROR("sql.sql", "GameObject (Entry: %u) has invalid `artkit%d` (%d) defined, set to zero instead.", entry, i, artKitID); + continue; + } + + gameObjectAddon.artKits[i] = artKitID; + } + // checks if (gameObjectAddon.Faction && !sFactionTemplateStore.LookupEntry(gameObjectAddon.Faction)) TC_LOG_ERROR("sql.sql", "GameObject (Entry: %u) has invalid faction (%u) defined in `gameobject_template_addon`.", entry, gameObjectAddon.Faction); |