aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2018-04-19 23:37:41 +0200
committerShauren <shauren.trinity@gmail.com>2021-09-26 01:42:54 +0200
commit068b340b6988c3edd8db2b9d62a99baebe1b031e (patch)
tree023217434f3b2ac19133d4d11479c5686afa68fa /src/server/game
parent5274f7af177b9df1b54febd2ebc144ff06835474 (diff)
Core/Transports: Force transport passengers into legacy spawn group
Ref #21641 (cherry picked from commit a5df77a9d6f3e48f2c4e8a61d60e3b5f2f0c326e)
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Entities/Transport/Transport.cpp4
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index 1d40a5dfbad..f9af0c5c71c 100644
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -299,6 +299,8 @@ void Transport::RemovePassenger(WorldObject* passenger)
Creature* Transport::CreateNPCPassenger(ObjectGuid::LowType guid, CreatureData const* data)
{
Map* map = GetMap();
+ if (map->GetCreatureRespawnTime(guid))
+ return nullptr;
Creature* creature = Creature::CreateCreatureFromDB(guid, map, false, true);
if (!creature)
@@ -346,6 +348,8 @@ Creature* Transport::CreateNPCPassenger(ObjectGuid::LowType guid, CreatureData c
GameObject* Transport::CreateGOPassenger(ObjectGuid::LowType guid, GameObjectData const* data)
{
Map* map = GetMap();
+ if (map->GetGORespawnTime(guid))
+ return nullptr;
GameObject* go = GameObject::CreateGameObjectFromDB(guid, map, false);
if (!go)
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 20a5454d184..29d7a6d518e 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -2013,7 +2013,7 @@ void ObjectMgr::LoadCreatures()
data.phaseGroup = fields[25].GetUInt32();
data.terrainSwapMap = fields[26].GetInt32();
data.scriptId = GetScriptId(fields[27].GetString());
- data.spawnGroupData = &_spawnGroupDataStore[0];
+ data.spawnGroupData = &_spawnGroupDataStore[IsTransportMap(data.spawnPoint.GetMapId()) ? 1 : 0]; // transport spawns default to compatibility group
MapEntry const* mapEntry = sMapStore.LookupEntry(data.spawnPoint.GetMapId());
if (!mapEntry)
@@ -2366,7 +2366,7 @@ void ObjectMgr::LoadGameObjects()
data.rotation.z = fields[9].GetFloat();
data.rotation.w = fields[10].GetFloat();
data.spawntimesecs = fields[11].GetInt32();
- data.spawnGroupData = &_spawnGroupDataStore[0];
+ data.spawnGroupData = &_spawnGroupDataStore[IsTransportMap(data.spawnPoint.GetMapId()) ? 1 : 0]; // transport spawns default to compatibility group
MapEntry const* mapEntry = sMapStore.LookupEntry(data.spawnPoint.GetMapId());
if (!mapEntry)