aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/GameObject
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/Entities/GameObject
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/Entities/GameObject')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h1
-rw-r--r--src/server/game/Entities/GameObject/GameObjectData.h32
2 files changed, 33 insertions, 0 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index 5300012a5b3..b59f9cd6fdc 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -169,6 +169,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
static void SetGoArtKit(uint8 artkit, GameObject* go, ObjectGuid::LowType lowguid = 0);
void SetPhaseMask(uint32 newPhaseMask, bool update) override;
+
void EnableCollision(bool enable);
void Use(Unit* user);
diff --git a/src/server/game/Entities/GameObject/GameObjectData.h b/src/server/game/Entities/GameObject/GameObjectData.h
index 1fd84ca238b..a840fb5df92 100644
--- a/src/server/game/Entities/GameObject/GameObjectData.h
+++ b/src/server/game/Entities/GameObject/GameObjectData.h
@@ -22,6 +22,8 @@
#include "SharedDefines.h"
#include "SpawnData.h"
#include "WorldPacket.h"
+
+#include <array>
#include <string>
#include <vector>
@@ -631,6 +633,7 @@ struct GameObjectTemplateAddon : public GameObjectOverride
{
uint32 Mingold;
uint32 Maxgold;
+ std::array<uint32, 4> artKits = {};
};
struct GameObjectLocale
@@ -669,4 +672,33 @@ struct GameObjectData : public SpawnData
uint8 artKit = 0;
};
+enum class GameObjectActions : uint32
+{
+ // Name from client executable // Comments
+ None, // -NONE-
+ AnimateCustom0, // Animate Custom0
+ AnimateCustom1, // Animate Custom1
+ AnimateCustom2, // Animate Custom2
+ AnimateCustom3, // Animate Custom3
+ Disturb, // Disturb // Triggers trap
+ Unlock, // Unlock // Resets GO_FLAG_LOCKED
+ Lock, // Lock // Sets GO_FLAG_LOCKED
+ Open, // Open // Sets GO_STATE_ACTIVE
+ OpenAndUnlock, // Open + Unlock // Sets GO_STATE_ACTIVE and resets GO_FLAG_LOCKED
+ Close, // Close // Sets GO_STATE_READY
+ ToggleOpen, // Toggle Open
+ Destroy, // Destroy // Sets GO_STATE_DESTROYED
+ Rebuild, // Rebuild // Resets from GO_STATE_DESTROYED
+ Creation, // Creation
+ Despawn, // Despawn
+ MakeInert, // Make Inert // Disables interactions
+ MakeActive, // Make Active // Enables interactions
+ CloseAndLock, // Close + Lock // Sets GO_STATE_READY and sets GO_FLAG_LOCKED
+ UseArtKit0, // Use ArtKit0 // 46904: 121
+ UseArtKit1, // Use ArtKit1 // 36639: 81, 46903: 122
+ UseArtKit2, // Use ArtKit2
+ UseArtKit3, // Use ArtKit3
+ SetTapList, // Set Tap List
+};
+
#endif // GameObjectData_h__