aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/GameObject
diff options
context:
space:
mode:
authorRat <gmstreetrat@gmail.com>2015-05-19 11:22:07 +0100
committerDDuarte <dnpd.dd@gmail.com>2015-05-19 11:22:51 +0100
commit95b5e357451985fbc350bf1321ce96d6c02f9d44 (patch)
tree0339a143683b44c5fbc3238afc95dc39f88c8235 /src/server/game/Entities/GameObject
parent8c61e51fe53f6429a7a8d532a5c675ff72f438ad (diff)
Core/GameObjects: Implemented gameobject_addon table, you can now set invisibility for gameobjects for quests
(cherry picked from commit 9d59d038f8b09ed036448e755cb0b102396a4ca1) Conflicts: sql/updates/world/2015_04_05_07_world.sql src/server/game/Globals/ObjectMgr.cpp src/server/game/Globals/ObjectMgr.h Core/GameObjects: fixed typo and logic (0 is a valid invisibility type) (cherry picked from commit 23e8a3ce2928458649d94408d5deffb67339b1d6)
Diffstat (limited to 'src/server/game/Entities/GameObject')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp10
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h9
2 files changed, 19 insertions, 0 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 1290b5f0019..5ebb10e76c7 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -271,6 +271,16 @@ bool GameObject::Create(uint32 guidlow, uint32 name_id, Map* map, uint32 phaseMa
SetGoAnimProgress(animprogress);
break;
}
+
+ if (GameObjectAddon const* addon = sObjectMgr->GetGameObjectAddon(guidlow))
+ {
+ if (addon->InvisibilityValue)
+ {
+ m_invisibility.AddFlag(addon->InvisibilityType);
+ m_invisibility.AddValue(addon->InvisibilityType, addon->InvisibilityValue);
+ }
+ }
+
LastUsedScriptID = GetGOInfo()->ScriptId;
AIM_Initialize();
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index b3e8510e2fb..fa081369334 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -576,6 +576,15 @@ struct GameObjectLocale
StringVector CastBarCaption;
};
+// `gameobject_addon` table
+struct GameObjectAddon
+{
+ InvisibilityType InvisibilityType;
+ uint32 InvisibilityValue;
+};
+
+typedef std::unordered_map<ObjectGuid::LowType, GameObjectAddon> GameObjectAddonContainer;
+
// client side GO show states
enum GOState
{