If creature is on transport, we assume waypoints set in DB are already transport offsets
Do not use formationDest here, MoveTo requires transport offsets due to DisableTransportPathTransformations() call but formationDest contains global coordinates
98{
100 return false;
101
102
104 return false;
105
107 return true;
108
110
112 {
113
114
115 {
120
121 if (!transportPath)
123 else
124 {
126 {
127 o -= trans->GetOrientation();
129 trans->CalculatePassengerPosition(x, y, z, &o);
131 }
132 else
133 transportPath = false;
134
135 }
136 }
137
138
140 {
143 return false;
144 }
145
147 }
148
149
151 {
152 return true;
153 }
154
156
158
160
163
165 if (transportPath)
166 {
167 init.DisableTransportPathTransformations();
169 trans->CalculatePassengerPosition(formationDest.x, formationDest.y, formationDest.z, &formationDest.orientation);
170 }
171
176 init.MoveTo(node->
x, node->
y, z,
true,
true);
177
180
182 {
185 break;
188 break;
190 init.SetWalk(false);
191 break;
193 init.SetWalk(true);
194 break;
195 default:
196 break;
197 }
198
199 init.Launch();
200
201
204
205 return true;
206}
@ MOVEMENTFLAG_ONTRANSPORT
Definition: Unit.h:561
@ WAYPOINT_MOVE_TYPE_RUN
Definition: WaypointMgr.h:28
@ WAYPOINT_MOVE_TYPE_LAND
Definition: WaypointMgr.h:29
@ WAYPOINT_MOVE_TYPE_TAKEOFF
Definition: WaypointMgr.h:30
@ WAYPOINT_MOVE_TYPE_WALK
Definition: WaypointMgr.h:27
@ ToFly
Definition: MoveSplineInit.h:36
@ ToGround
Definition: MoveSplineInit.h:34
virtual void PathEndReached(uint32)
Definition: CreatureAI.h:155
void SetHomePosition(float x, float y, float z, float o)
Definition: Creature.h:328
CreatureGroup const * GetFormation() const
Definition: Creature.h:345
void SetTransportHomePosition(float x, float y, float z, float o)
Definition: Creature.h:333
Creature * GetLeader() const
Definition: CreatureGroups.h:98
void LeaderMoveTo(float x, float y, float z, bool run)
Definition: CreatureGroups.cpp:363
MotionTransport * ToMotionTransport()
Definition: GameObject.h:331
void UpdateAllowedPositionZ(float x, float y, float &z, float *groundZ=nullptr) const
Definition: Object.cpp:1554
Transport * GetTransport() const
Definition: Object.h:585
float GetOrientation() const
Definition: Position.h:120
Definition: Transport.h:29
MotionMaster * GetMotionMaster()
Definition: Unit.h:2262
bool HasUnitMovementFlag(uint32 f) const
Definition: Unit.h:2274
TransportBase * GetDirectTransport() const
Returns the transport this unit is on directly (if on vehicle and transport, return vehicle)
Definition: Unit.cpp:18935
ObjectGuid GetTransGUID() const override
Definition: Unit.cpp:18924
Definition: VehicleDefines.h:107
void Initialize()
Definition: MotionMaster.cpp:72
Definition: MoveSpline.h:27
Definition: MoveSplineInit.h:71
Definition: WaypointMgr.h:36
float z
Definition: WaypointMgr.h:38
float x
Definition: WaypointMgr.h:38
float y
Definition: WaypointMgr.h:38
std::optional< float > orientation
Definition: WaypointMgr.h:39
uint32 delay
Definition: WaypointMgr.h:40
uint32 move_type
Definition: WaypointMgr.h:42