aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-06-07 16:02:51 +0200
committerShauren <shauren.trinity@gmail.com>2022-06-07 16:02:51 +0200
commita2c1b699e6e4d30c752b65241bc23191920a86fd (patch)
tree7e580185397acd299326a714da71406f15c30ddc /src/server/game/Entities/Object
parentb9353041a6cce58d972b63d5138517274a1bb6d6 (diff)
Core/Transports: Path generation rewrite v2
* No TaxiPathNode row is skipped anymore (events/delays on first node now work) * Fixed transport animation synchronization with client * Fixed stoppable transports randomly resuming their path after relogging Closes #27985
Diffstat (limited to 'src/server/game/Entities/Object')
-rw-r--r--src/server/game/Entities/Object/Updates/ViewerDependentValues.h14
1 files changed, 2 insertions, 12 deletions
diff --git a/src/server/game/Entities/Object/Updates/ViewerDependentValues.h b/src/server/game/Entities/Object/Updates/ViewerDependentValues.h
index 755006262bd..564b31a9b86 100644
--- a/src/server/game/Entities/Object/Updates/ViewerDependentValues.h
+++ b/src/server/game/Entities/Object/Updates/ViewerDependentValues.h
@@ -26,7 +26,6 @@
#include "Player.h"
#include "SpellInfo.h"
#include "SpellMgr.h"
-#include "Transport.h"
#include "World.h"
#include "WorldSession.h"
@@ -86,21 +85,12 @@ public:
dynFlags |= GO_DYNFLAG_LO_SPARKLE | GO_DYNFLAG_LO_HIGHLIGHT;
break;
case GAMEOBJECT_TYPE_TRANSPORT:
+ case GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT:
{
dynFlags = dynamicFlags & 0xFFFF;
pathProgress = dynamicFlags >> 16;
break;
}
- case GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT:
- {
- Transport const* transport = gameObject->ToTransport();
- if (uint32 transportPeriod = transport->GetTransportPeriod())
- {
- float timer = float(transport->GetTimer() % transportPeriod);
- pathProgress = uint16(timer / float(transportPeriod) * 65535.0f);
- }
- break;
- }
case GAMEOBJECT_TYPE_CAPTURE_POINT:
if (!gameObject->CanInteractWithCapturePoint(receiver))
dynFlags |= GO_DYNFLAG_LO_NO_INTERACT;
@@ -111,7 +101,7 @@ public:
break;
}
- dynamicFlags = (pathProgress << 16) | dynFlags;
+ dynamicFlags = (uint32(pathProgress) << 16) | uint32(dynFlags);
}
return dynamicFlags;