diff options
| author | Shauren <shauren.trinity@gmail.com> | 2022-12-04 15:13:20 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-12-04 15:13:20 +0100 |
| commit | e98e1283ea0034baf6be9aa2ffb386eb5582801b (patch) | |
| tree | b1dd854d88e6e049d26b208bb259cdc7d31f29f8 /src/server/game/Maps | |
| parent | de7c03c8385780f05530c2b3cf952a712d5f8f00 (diff) | |
Core: Updated to 10.0.2
Diffstat (limited to 'src/server/game/Maps')
| -rw-r--r-- | src/server/game/Maps/TransportMgr.cpp | 23 | ||||
| -rw-r--r-- | src/server/game/Maps/TransportMgr.h | 1 |
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 |
