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
118{
120 return false;
121
122
124 return false;
125
127 return true;
128
130
132 {
133 {
135 float x = currentNodeItr->second.x;
136 float y = currentNodeItr->second.y;
137 float z = currentNodeItr->second.z;
139
140 if (!transportPath)
142 else
143 {
145 {
146 o -= trans->GetOrientation();
148 trans->CalculatePassengerPosition(x, y, z, &o);
150 }
151 else
152 transportPath = false;
153
154 }
155 }
156
157
160 {
163 return false;
164 }
165
169 }
170
171
173 {
174 return true;
175 }
176
179
181
183
186
188 if (transportPath)
189 {
190 init.DisableTransportPathTransformations();
192 trans->CalculatePassengerPosition(formationDest.x, formationDest.y, formationDest.z, &formationDest.orientation);
193 }
194
199 init.MoveTo(node.
x, node.
y, z,
true,
true);
200
203
205 {
208 break;
211 break;
213 init.SetWalk(false);
214 break;
216 init.SetWalk(true);
217 break;
218 default:
219 break;
220 }
221
222 init.Launch();
223
224
227
228 return true;
229}
std::uint32_t uint32
Definition Define.h:107
@ MOVEMENTFLAG_ONTRANSPORT
Definition UnitDefines.h:378
@ WAYPOINT_MOVE_TYPE_RUN
Definition WaypointMgr.h:30
@ WAYPOINT_MOVE_TYPE_LAND
Definition WaypointMgr.h:31
@ WAYPOINT_MOVE_TYPE_TAKEOFF
Definition WaypointMgr.h:32
@ WAYPOINT_MOVE_TYPE_WALK
Definition WaypointMgr.h:29
virtual void PathEndReached(uint32)
Definition CreatureAI.h:164
Creature * GetLeader() const
Definition CreatureGroups.h:99
void LeaderMoveTo(float x, float y, float z, uint32 move_type)
Definition CreatureGroups.cpp:347
void SetHomePosition(float x, float y, float z, float o)
Definition Creature.h:339
CreatureGroup const * GetFormation() const
Definition Creature.h:356
void SetTransportHomePosition(float x, float y, float z, float o)
Definition Creature.h:344
MotionTransport * ToMotionTransport()
Definition GameObject.h:326
void Initialize()
Definition MotionMaster.cpp:74
Definition MoveSplineInit.h:71
Definition VehicleDefines.h:130
Definition Transport.h:30
MotionMaster * GetMotionMaster()
Definition Unit.h:1713
bool HasUnitMovementFlag(uint32 f) const
Definition Unit.h:759
TransportBase * GetDirectTransport() const
Definition Unit.cpp:18798
ObjectGuid GetTransGUID() const override
Definition Unit.cpp:18787
void UpdateAllowedPositionZ(float x, float y, float &z, float *groundZ=nullptr) const
Definition Object.cpp:1587
Transport * GetTransport() const
Definition Object.h:683
@ ToFly
Definition MoveSplineInit.h:36
@ ToGround
Definition MoveSplineInit.h:34
Definition MoveSpline.h:27
float GetOrientation() const
Definition Position.h:124
Definition WaypointMgr.h:38
float z
Definition WaypointMgr.h:40
float x
Definition WaypointMgr.h:40
float y
Definition WaypointMgr.h:40
std::optional< float > orientation
Definition WaypointMgr.h:41
uint32 delay
Definition WaypointMgr.h:42
uint32 move_type
Definition WaypointMgr.h:44