diff options
| author | Machiavelli <machiavelli.trinity@gmail.com> | 2010-12-29 05:45:38 +0100 |
|---|---|---|
| committer | Machiavelli <machiavelli.trinity@gmail.com> | 2010-12-29 05:45:38 +0100 |
| commit | 68c6189201b4aa1116642c22dface686718a8211 (patch) | |
| tree | 6196ce56dbc1d8d5e03462a3f02d13a07960134c /src/server/game/Server | |
| parent | 13e85f861f61340b23afd1e919846a153a1bdfea (diff) | |
Core/Vehicles:
- Set MovementFlagsExtra (2) correctly depending on vehicle 'template' flags. This makes certain vehicles such as demolishers unable to jump/strafe (as intended)
- Fix SMSG_MONSTER_MOVE_TRANSPORT stucture, prevents a client crash when entering certain vehicles, as well as *properly* broadcast position relative to the vehicle.
- Send SMSG_BREAK_TARGET to player when entering vehicle.
- Set MOVEMENTFLAG_ROOT on passenger when entering vehicle
- Cleanup in affected code
Diffstat (limited to 'src/server/game/Server')
| -rwxr-xr-x | src/server/game/Server/WorldSession.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index 7b4db102fd5..1437ae403f5 100755 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -753,7 +753,7 @@ void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo *mi) data >> mi->time; data >> mi->pos.PositionXYZOStream(); - if (mi->flags & MOVEMENTFLAG_ONTRANSPORT) + if (mi->HasMovementFlag(MOVEMENTFLAG_ONTRANSPORT)) { data.readPackGUID(mi->t_guid); @@ -761,24 +761,24 @@ void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo *mi) data >> mi->t_time; data >> mi->t_seat; - if (mi->flags2 & MOVEMENTFLAG2_INTERPOLATED_MOVEMENT) + if (mi->HasExtraMovementFlag(MOVEMENTFLAG2_INTERPOLATED_MOVEMENT)) { data >> mi->t_time2; } - if(mi->pos.m_positionX != mi->t_pos.m_positionX) - if(GetPlayer()->GetTransport()) + if (mi->pos.m_positionX != mi->t_pos.m_positionX) + if (GetPlayer()->GetTransport()) GetPlayer()->GetTransport()->UpdatePosition(mi); } - if ((mi->flags & (MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) || (mi->flags2 & MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING)) + if (mi->HasMovementFlag(MovementFlags(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) || (mi->HasExtraMovementFlag(MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING))) { data >> mi->pitch; } data >> mi->fallTime; - if (mi->flags & MOVEMENTFLAG_JUMPING) + if (mi->HasMovementFlag(MOVEMENTFLAG_JUMPING)) { data >> mi->j_zspeed; data >> mi->j_sinAngle; @@ -786,7 +786,7 @@ void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo *mi) data >> mi->j_xyspeed; } - if (mi->flags & MOVEMENTFLAG_SPLINE_ELEVATION) + if (mi->HasMovementFlag(MOVEMENTFLAG_SPLINE_ELEVATION)) { data >> mi->splineElevation; } @@ -810,7 +810,7 @@ void WorldSession::WriteMovementInfo(WorldPacket *data, MovementInfo *mi) *data << mi->t_seat; } - if ((mi->HasMovementFlag(MovementFlags(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING))) || (mi->flags & MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING)) + if (mi->HasMovementFlag(MovementFlags(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) && mi->HasExtraMovementFlag(MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING)) { *data << mi->pitch; } |
