aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Grids/GridDefines.h
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-01-05 20:22:34 +0100
committerShauren <shauren.trinity@gmail.com>2025-01-05 20:22:34 +0100
commit401502ea3c5ceca0c6253910035b2949e13746cc (patch)
tree08171ad987c9afe14719f5cb4c384546389878f8 /src/server/game/Grids/GridDefines.h
parent04433910424540e42a2270156e7c9a8722c09913 (diff)
Core/Grids: Modernize TypeContainer with variadic template
Diffstat (limited to 'src/server/game/Grids/GridDefines.h')
-rw-r--r--src/server/game/Grids/GridDefines.h14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/server/game/Grids/GridDefines.h b/src/server/game/Grids/GridDefines.h
index a40de811a29..821597bf57c 100644
--- a/src/server/game/Grids/GridDefines.h
+++ b/src/server/game/Grids/GridDefines.h
@@ -62,11 +62,6 @@ class Conversation;
#define MAX_FALL_DISTANCE 250000.0f // "unlimited fall" to find VMap ground if it is available, just larger than MAX_HEIGHT - INVALID_HEIGHT
#define DEFAULT_HEIGHT_SEARCH 50.0f // default search distance to find height at nearby locations
-// Creature used instead pet to simplify *::Visit templates (not required duplicate code for Creature->Pet case)
-typedef TYPELIST_4(Player, Creature/*pets*/, Corpse/*resurrectable*/, DynamicObject/*farsight target*/) AllWorldObjectTypes;
-typedef TYPELIST_7(GameObject, Creature/*except pets*/, DynamicObject, Corpse/*Bones*/, AreaTrigger, SceneObject, Conversation) AllGridObjectTypes;
-typedef TYPELIST_8(Creature, GameObject, DynamicObject, Pet, Corpse, AreaTrigger, SceneObject, Conversation) AllMapStoredObjectTypes;
-
typedef GridRefManager<Corpse> CorpseMapType;
typedef GridRefManager<Creature> CreatureMapType;
typedef GridRefManager<DynamicObject> DynamicObjectMapType;
@@ -89,11 +84,12 @@ enum GridMapTypeMask
GRID_MAP_TYPE_MASK_ALL = 0xFF
};
-extern template class TypeMapContainer<AllGridObjectTypes>;
-extern template class TypeMapContainer<AllWorldObjectTypes>;
+// Creature used instead pet to simplify *::Visit templates (not required duplicate code for Creature->Pet case)
+extern template struct TypeListContainer<GridRefManagerContainer, GameObject, Creature/*except pets*/, DynamicObject, Corpse/*Bones*/, AreaTrigger, SceneObject, Conversation>;
+extern template struct TypeListContainer<GridRefManagerContainer, Player, Creature/*pets*/, Corpse/*resurrectable*/, DynamicObject/*farsight target*/>;
-typedef TypeMapContainer<AllGridObjectTypes> GridTypeMapContainer;
-typedef TypeMapContainer<AllWorldObjectTypes> WorldTypeMapContainer;
+typedef TypeListContainer<GridRefManagerContainer, GameObject, Creature/*except pets*/, DynamicObject, Corpse/*Bones*/, AreaTrigger, SceneObject, Conversation> GridTypeMapContainer;
+typedef TypeListContainer<GridRefManagerContainer, Player, Creature/*pets*/, Corpse/*resurrectable*/, DynamicObject/*farsight target*/> WorldTypeMapContainer;
extern template class Grid<Player, WorldTypeMapContainer, GridTypeMapContainer>;
extern template class NGrid<MAX_NUMBER_OF_CELLS, Player, WorldTypeMapContainer, GridTypeMapContainer>;