aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-12-04 15:13:20 +0100
committerShauren <shauren.trinity@gmail.com>2022-12-04 15:13:20 +0100
commite98e1283ea0034baf6be9aa2ffb386eb5582801b (patch)
treeb1dd854d88e6e049d26b208bb259cdc7d31f29f8 /src/server/game/Maps
parentde7c03c8385780f05530c2b3cf952a712d5f8f00 (diff)
Core: Updated to 10.0.2
Diffstat (limited to 'src/server/game/Maps')
-rw-r--r--src/server/game/Maps/TransportMgr.cpp23
-rw-r--r--src/server/game/Maps/TransportMgr.h1
2 files changed, 6 insertions, 18 deletions
diff --git a/src/server/game/Maps/TransportMgr.cpp b/src/server/game/Maps/TransportMgr.cpp
index 59835a201f5..5c597960fc6 100644
--- a/src/server/game/Maps/TransportMgr.cpp
+++ b/src/server/game/Maps/TransportMgr.cpp
@@ -531,15 +531,9 @@ void TransportMgr::GeneratePath(GameObjectTemplate const* goInfo, TransportTempl
InitializeLeg(leg, &transport->Events, pathPoints, pauses, events, goInfo, totalTime);
if (transport->MapIds.size() > 1)
- {
for (uint32 mapId : transport->MapIds)
ASSERT(!sMapStore.LookupEntry(mapId)->Instanceable());
- transport->InInstance = false;
- }
- else
- transport->InInstance = sMapStore.LookupEntry(*transport->MapIds.begin())->Instanceable();
-
transport->TotalPathTime = totalTime;
}
@@ -578,6 +572,12 @@ Transport* TransportMgr::CreateTransport(uint32 entry, Map* map, ObjectGuid::Low
return nullptr;
}
+ if (tInfo->MapIds.find(map->GetId()) == tInfo->MapIds.end())
+ {
+ TC_LOG_ERROR("entities.transport", "Transport %u attempted creation on map it has no path for %u!", entry, map->GetId());
+ return nullptr;
+ }
+
Optional<Position> startingPosition = tInfo->ComputePosition(0, nullptr, nullptr);
if (!startingPosition)
{
@@ -589,7 +589,6 @@ Transport* TransportMgr::CreateTransport(uint32 entry, Map* map, ObjectGuid::Low
Transport* trans = new Transport();
// ...at first waypoint
- uint32 mapId = tInfo->PathLegs.front().MapId;
float x = startingPosition->GetPositionX();
float y = startingPosition->GetPositionY();
float z = startingPosition->GetPositionZ();
@@ -605,16 +604,6 @@ Transport* TransportMgr::CreateTransport(uint32 entry, Map* map, ObjectGuid::Low
PhasingHandler::InitDbPhaseShift(trans->GetPhaseShift(), phaseUseFlags, phaseId, phaseGroupId);
- if (MapEntry const* mapEntry = sMapStore.LookupEntry(mapId))
- {
- if (mapEntry->Instanceable() != tInfo->InInstance)
- {
- TC_LOG_ERROR("entities.transport", "Transport %u (name: %s) attempted creation in instance map (id: %u) but it is not an instanced transport!", entry, trans->GetName().c_str(), mapId);
- delete trans;
- return nullptr;
- }
- }
-
// use preset map for instances (need to know which instance)
trans->SetMap(map);
if (InstanceMap* instanceMap = map->ToInstanceMap())
diff --git a/src/server/game/Maps/TransportMgr.h b/src/server/game/Maps/TransportMgr.h
index cdf5841a851..0c576cf9a02 100644
--- a/src/server/game/Maps/TransportMgr.h
+++ b/src/server/game/Maps/TransportMgr.h
@@ -103,7 +103,6 @@ struct TransportTemplate
double CalculateDistanceMoved(double timePassedInSegment, double segmentDuration, bool isFirstSegment, bool isLastSegment) const;
std::set<uint32> MapIds;
- bool InInstance = false;
};
struct TC_GAME_API TransportAnimation