diff options
| author | horn <pankrac.ja@seznam.cz> | 2012-07-25 15:39:53 +0200 |
|---|---|---|
| committer | horn <pankrac.ja@seznam.cz> | 2012-07-25 15:39:53 +0200 |
| commit | 2b8ea938774f55cc6e7798a2f86ef9f937e48fae (patch) | |
| tree | 379738a9ea1ca6f1daf9bd6310ee432cf01376da /src/server/game/Entities/Unit | |
| parent | 443f1e71d8660307ebf17f20abc954bf4b9eba74 (diff) | |
Core/PacketIO: Fix and enable few speed changes related opcodes
Diffstat (limited to 'src/server/game/Entities/Unit')
| -rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 173 |
1 files changed, 85 insertions, 88 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index ad8510a2775..a41d5ddaa0c 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -12751,174 +12751,171 @@ void Unit::SetSpeed(UnitMoveType mtype, float rate, bool forced) break; case MOVE_RUN: data.Initialize(SMSG_SPLINE_MOVE_SET_RUN_SPEED, 1 + 8 + 4); - data.WriteBit(bytes[7]); - data.WriteBit(bytes[2]); - data.WriteBit(bytes[1]); - data.WriteBit(bytes[3]); - data.WriteBit(bytes[5]); - data.WriteBit(bytes[6]); data.WriteBit(bytes[4]); data.WriteBit(bytes[0]); - - data.WriteByteSeq(bytes[6]); + data.WriteBit(bytes[5]); + data.WriteBit(bytes[7]); + data.WriteBit(bytes[6]); + data.WriteBit(bytes[3]); + data.WriteBit(bytes[1]); + data.WriteBit(bytes[2]); + data.FlushBits(); + data.WriteByteSeq(bytes[0]); data.WriteByteSeq(bytes[7]); - data.WriteByteSeq(bytes[4]); + data.WriteByteSeq(bytes[6]); + data.WriteByteSeq(bytes[5]); data.WriteByteSeq(bytes[3]); + data.WriteByteSeq(bytes[4]); + data << float(GetSpeed(mtype)); data.WriteByteSeq(bytes[2]); - data.WriteByteSeq(bytes[5]); - data.WriteByteSeq(bytes[0]); data.WriteByteSeq(bytes[1]); - - data << float(GetSpeed(mtype)); break; case MOVE_RUN_BACK: data.Initialize(SMSG_SPLINE_MOVE_SET_RUN_BACK_SPEED, 1 + 8 + 4); - data.WriteBit(bytes[4]); - data.WriteBit(bytes[0]); + data.WriteBit(bytes[1]); + data.WriteBit(bytes[2]); data.WriteBit(bytes[6]); + data.WriteBit(bytes[0]); data.WriteBit(bytes[3]); - data.WriteBit(bytes[5]); - data.WriteBit(bytes[1]); data.WriteBit(bytes[7]); - data.WriteBit(bytes[2]); - + data.WriteBit(bytes[5]); + data.WriteBit(bytes[4]); + data.FlushBits(); data.WriteByteSeq(bytes[1]); - data.WriteByteSeq(bytes[7]); - data.WriteByteSeq(bytes[5]); - data.WriteByteSeq(bytes[3]); - data.WriteByteSeq(bytes[6]); + data << float(GetSpeed(mtype)); + data.WriteByteSeq(bytes[2]); data.WriteByteSeq(bytes[4]); data.WriteByteSeq(bytes[0]); - data.WriteByteSeq(bytes[2]); - - data << float(GetSpeed(mtype)); + data.WriteByteSeq(bytes[3]); + data.WriteByteSeq(bytes[6]); + data.WriteByteSeq(bytes[5]); + data.WriteByteSeq(bytes[7]); break; case MOVE_SWIM: data.Initialize(SMSG_SPLINE_MOVE_SET_SWIM_SPEED, 1 + 8 + 4); - data.WriteBit(bytes[3]); - data.WriteBit(bytes[5]); - data.WriteBit(bytes[7]); data.WriteBit(bytes[4]); data.WriteBit(bytes[2]); + data.WriteBit(bytes[5]); data.WriteBit(bytes[0]); - data.WriteBit(bytes[1]); + data.WriteBit(bytes[7]); data.WriteBit(bytes[6]); - - data.WriteByteSeq(bytes[0]); - data.WriteByteSeq(bytes[3]); + data.WriteBit(bytes[3]); + data.WriteBit(bytes[1]); + data.FlushBits(); + data.WriteByteSeq(bytes[5]); data.WriteByteSeq(bytes[6]); - data.WriteByteSeq(bytes[4]); + data.WriteByteSeq(bytes[1]); + data.WriteByteSeq(bytes[0]); data.WriteByteSeq(bytes[2]); - data.WriteByteSeq(bytes[7]); + data.WriteByteSeq(bytes[4]); data << float(GetSpeed(mtype)); - data.WriteByteSeq(bytes[1]); - data.WriteByteSeq(bytes[5]); + data.WriteByteSeq(bytes[7]); + data.WriteByteSeq(bytes[3]); break; case MOVE_SWIM_BACK: data.Initialize(SMSG_SPLINE_MOVE_SET_SWIM_BACK_SPEED, 1 + 8 + 4); - data.WriteBit(bytes[3]); - data.WriteBit(bytes[5]); - data.WriteBit(bytes[4]); data.WriteBit(bytes[0]); - data.WriteBit(bytes[2]); data.WriteBit(bytes[1]); + data.WriteBit(bytes[3]); data.WriteBit(bytes[6]); + data.WriteBit(bytes[4]); + data.WriteBit(bytes[5]); data.WriteBit(bytes[7]); - + data.WriteBit(bytes[2]); + data.FlushBits(); + data.WriteByteSeq(bytes[5]); + data.WriteByteSeq(bytes[3]); data.WriteByteSeq(bytes[1]); data.WriteByteSeq(bytes[0]); - data.WriteByteSeq(bytes[2]); - data << float(GetSpeed(mtype)); data.WriteByteSeq(bytes[7]); - data.WriteByteSeq(bytes[3]); data.WriteByteSeq(bytes[6]); + data << float(GetSpeed(mtype)); data.WriteByteSeq(bytes[4]); - data.WriteByteSeq(bytes[5]); + data.WriteByteSeq(bytes[2]); break; case MOVE_TURN_RATE: data.Initialize(SMSG_SPLINE_MOVE_SET_TURN_RATE, 1 + 8 + 4); - data.WriteBit(bytes[0]); + data.WriteBit(bytes[2]); data.WriteBit(bytes[4]); - data.WriteBit(bytes[5]); - data.WriteBit(bytes[1]); data.WriteBit(bytes[6]); + data.WriteBit(bytes[1]); data.WriteBit(bytes[3]); + data.WriteBit(bytes[5]); data.WriteBit(bytes[7]); - data.WriteBit(bytes[2]); - - data.WriteByteSeq(bytes[2]); - data.WriteByteSeq(bytes[4]); - data.WriteByteSeq(bytes[7]); - data.WriteByteSeq(bytes[0]); + data.WriteBit(bytes[0]); + data.FlushBits(); data << float(GetSpeed(mtype)); - data.WriteByteSeq(bytes[5]); data.WriteByteSeq(bytes[1]); - data.WriteByteSeq(bytes[6]); + data.WriteByteSeq(bytes[5]); data.WriteByteSeq(bytes[3]); + data.WriteByteSeq(bytes[2]); + data.WriteByteSeq(bytes[7]); + data.WriteByteSeq(bytes[4]); + data.WriteByteSeq(bytes[6]); + data.WriteByteSeq(bytes[0]); break; case MOVE_FLIGHT: data.Initialize(SMSG_SPLINE_MOVE_SET_FLIGHT_SPEED, 1 + 8 + 4); - data.WriteBit(bytes[2]); - data.WriteBit(bytes[3]); - data.WriteBit(bytes[5]); - data.WriteBit(bytes[0]); data.WriteBit(bytes[7]); data.WriteBit(bytes[4]); - data.WriteBit(bytes[6]); + data.WriteBit(bytes[0]); data.WriteBit(bytes[1]); - - data << float(GetSpeed(mtype)); - - data.WriteByteSeq(bytes[1]); + data.WriteBit(bytes[3]); + data.WriteBit(bytes[6]); + data.WriteBit(bytes[5]); + data.WriteBit(bytes[2]); + data.FlushBits(); data.WriteByteSeq(bytes[0]); - data.WriteByteSeq(bytes[6]); + data.WriteByteSeq(bytes[5]); + data.WriteByteSeq(bytes[4]); data.WriteByteSeq(bytes[7]); data.WriteByteSeq(bytes[3]); data.WriteByteSeq(bytes[2]); - data.WriteByteSeq(bytes[5]); - data.WriteByteSeq(bytes[4]); + data.WriteByteSeq(bytes[1]); + data.WriteByteSeq(bytes[6]); + data << float(GetSpeed(mtype)); break; case MOVE_FLIGHT_BACK: data.Initialize(SMSG_SPLINE_MOVE_SET_FLIGHT_BACK_SPEED, 1 + 8 + 4); + data.WriteBit(bytes[2]); data.WriteBit(bytes[1]); data.WriteBit(bytes[6]); - data.WriteBit(bytes[0]); - data.WriteBit(bytes[2]); - data.WriteBit(bytes[7]); data.WriteBit(bytes[5]); - data.WriteBit(bytes[4]); + data.WriteBit(bytes[0]); data.WriteBit(bytes[3]); - + data.WriteBit(bytes[4]); + data.WriteBit(bytes[7]); + data.FlushBits(); data.WriteByteSeq(bytes[5]); + data << float(GetSpeed(mtype)); data.WriteByteSeq(bytes[6]); + data.WriteByteSeq(bytes[1]); data.WriteByteSeq(bytes[0]); - data.WriteByteSeq(bytes[4]); data.WriteByteSeq(bytes[2]); - data.WriteByteSeq(bytes[1]); - data.WriteByteSeq(bytes[7]); - data << float(GetSpeed(mtype)); data.WriteByteSeq(bytes[3]); + data.WriteByteSeq(bytes[7]); + data.WriteByteSeq(bytes[4]); break; case MOVE_PITCH_RATE: data.Initialize(SMSG_SPLINE_MOVE_SET_PITCH_RATE, 1 + 8 + 4); - data.WriteBit(bytes[7]); - data.WriteBit(bytes[2]); data.WriteBit(bytes[3]); data.WriteBit(bytes[5]); - data.WriteBit(bytes[4]); - data.WriteBit(bytes[0]); data.WriteBit(bytes[6]); data.WriteBit(bytes[1]); - - data.WriteByteSeq(bytes[0]); + data.WriteBit(bytes[0]); + data.WriteBit(bytes[4]); + data.WriteBit(bytes[7]); + data.WriteBit(bytes[2]); + data.FlushBits(); data.WriteByteSeq(bytes[1]); + data.WriteByteSeq(bytes[5]); data.WriteByteSeq(bytes[7]); - data.WriteByteSeq(bytes[2]); - data.WriteByteSeq(bytes[3]); + data.WriteByteSeq(bytes[0]); data.WriteByteSeq(bytes[6]); - data.WriteByteSeq(bytes[5]); - data.WriteByteSeq(bytes[4]); + data.WriteByteSeq(bytes[3]); + data.WriteByteSeq(bytes[2]); data << float(GetSpeed(mtype)); + data.WriteByteSeq(bytes[4]); break; default: sLog->outError("Unit::SetSpeed: Unsupported move type (%d), data not sent to client.", mtype); |
