diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/AreaTrigger/AreaTrigger.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Conversation/Conversation.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Corpse/Corpse.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Creature/Creature.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/DynamicObject/DynamicObject.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Object/GridObject.h | 37 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.h | 16 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/SceneObject/SceneObject.h | 1 |
10 files changed, 46 insertions, 15 deletions
diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.h b/src/server/game/Entities/AreaTrigger/AreaTrigger.h index 6ed8ecf7c87..73037a2b64d 100644 --- a/src/server/game/Entities/AreaTrigger/AreaTrigger.h +++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.h @@ -19,6 +19,7 @@ #define TRINITYCORE_AREATRIGGER_H #include "Object.h" +#include "GridObject.h" #include "MapObject.h" #include "AreaTriggerTemplate.h" diff --git a/src/server/game/Entities/Conversation/Conversation.h b/src/server/game/Entities/Conversation/Conversation.h index b175f8b1b17..90ca16acbdd 100644 --- a/src/server/game/Entities/Conversation/Conversation.h +++ b/src/server/game/Entities/Conversation/Conversation.h @@ -19,6 +19,7 @@ #define TRINITYCORE_CONVERSATION_H #include "Object.h" +#include "GridObject.h" #include "Hash.h" class Unit; diff --git a/src/server/game/Entities/Corpse/Corpse.h b/src/server/game/Entities/Corpse/Corpse.h index 03e9ebb47e9..5dd29ab5da9 100644 --- a/src/server/game/Entities/Corpse/Corpse.h +++ b/src/server/game/Entities/Corpse/Corpse.h @@ -19,6 +19,7 @@ #define TRINITYCORE_CORPSE_H #include "Object.h" +#include "GridObject.h" #include "DatabaseEnvFwd.h" #include "GridDefines.h" #include "IteratorPair.h" diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index 7fb73e4d9ed..bd0c84c7300 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -24,6 +24,7 @@ #include "DatabaseEnvFwd.h" #include "Duration.h" #include "Loot.h" +#include "GridObject.h" #include "MapObject.h" #include <list> diff --git a/src/server/game/Entities/DynamicObject/DynamicObject.h b/src/server/game/Entities/DynamicObject/DynamicObject.h index de1bae637c3..1542280a1f6 100644 --- a/src/server/game/Entities/DynamicObject/DynamicObject.h +++ b/src/server/game/Entities/DynamicObject/DynamicObject.h @@ -19,6 +19,7 @@ #define TRINITYCORE_DYNAMICOBJECT_H #include "Object.h" +#include "GridObject.h" #include "MapObject.h" class Unit; diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h index 22b09a74b92..ca7f2a5c8fb 100644 --- a/src/server/game/Entities/GameObject/GameObject.h +++ b/src/server/game/Entities/GameObject/GameObject.h @@ -19,6 +19,7 @@ #define TRINITYCORE_GAMEOBJECT_H #include "Object.h" +#include "GridObject.h" #include "GameObjectData.h" #include "Loot.h" #include "MapObject.h" diff --git a/src/server/game/Entities/Object/GridObject.h b/src/server/game/Entities/Object/GridObject.h new file mode 100644 index 00000000000..cde2172623a --- /dev/null +++ b/src/server/game/Entities/Object/GridObject.h @@ -0,0 +1,37 @@ +/* + * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _GRIDOBJECT_H +#define _GRIDOBJECT_H + +#include "GridReference.h" +#include "GridRefManager.h" + +template<class T> +class GridObject +{ + public: + virtual ~GridObject() { } + + bool IsInGrid() const { return _gridRef.isValid(); } + void AddToGrid(GridRefManager<T>& m) { ASSERT(!IsInGrid()); _gridRef.link(&m, (T*)this); } + void RemoveFromGrid() { ASSERT(IsInGrid()); _gridRef.unlink(); } + private: + GridReference<T> _gridRef; +}; + +#endif diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 7bdd6b1d867..242f9151bd7 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -20,9 +20,8 @@ #include "Common.h" #include "Duration.h" +#include "Errors.h" #include "EventProcessor.h" -#include "GridReference.h" -#include "GridRefManager.h" #include "ModelIgnoreFlags.h" #include "MovementInfo.h" #include "ObjectDefines.h" @@ -403,19 +402,6 @@ class TC_GAME_API Object Object& operator=(Object&& right) = delete; }; -template<class T> -class GridObject -{ - public: - virtual ~GridObject() { } - - bool IsInGrid() const { return _gridRef.isValid(); } - void AddToGrid(GridRefManager<T>& m) { ASSERT(!IsInGrid()); _gridRef.link(&m, (T*)this); } - void RemoveFromGrid() { ASSERT(IsInGrid()); _gridRef.unlink(); } - private: - GridReference<T> _gridRef; -}; - template <class T_VALUES, class T_FLAGS, class FLAG_TYPE, size_t ARRAY_SIZE> class FlaggedValuesArray32 { diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 89b08802e4f..c70df1ecb50 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -18,6 +18,7 @@ #ifndef _PLAYER_H #define _PLAYER_H +#include "GridObject.h" #include "Unit.h" #include "CUFProfile.h" #include "DatabaseEnvFwd.h" diff --git a/src/server/game/Entities/SceneObject/SceneObject.h b/src/server/game/Entities/SceneObject/SceneObject.h index 6cc749466e6..41c2443c281 100644 --- a/src/server/game/Entities/SceneObject/SceneObject.h +++ b/src/server/game/Entities/SceneObject/SceneObject.h @@ -19,6 +19,7 @@ #define SceneObject_h__ #include "Object.h" +#include "GridObject.h" struct SceneTemplate; |