aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals/ObjectMgr.cpp
diff options
context:
space:
mode:
authorGiacomo Pozzoni <giacomopoz@gmail.com>2020-07-14 07:34:03 +0000
committerGitHub <noreply@github.com>2020-07-14 09:34:03 +0200
commit203573db83fb1d3f141b5aadbf1d1ca0a637bf94 (patch)
treefdf29fa005fafdedddab8ec67abc83d26841d7fc /src/server/game/Globals/ObjectMgr.cpp
parent042b1abfd747160085e5acc24a842a076b20ea01 (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.cpp19
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);