mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 10:37:02 +00:00
More fixed movement structure
This commit is contained in:
parent
07464e7fc3
commit
a149adb835
3 changed files with 195 additions and 188 deletions
|
|
@ -86,9 +86,7 @@ void MovementInfo::Read(ByteBuffer& data, uint16 opcode)
|
|||
{
|
||||
bool hasTransportData = false,
|
||||
hasMovementFlags = false,
|
||||
hasMovementFlags2 = false,
|
||||
hasUnkTime = false;
|
||||
uint32 counterCount = 0;
|
||||
hasMovementFlags2 = false;
|
||||
|
||||
MovementStatusElements* sequence = GetMovementStatusElementsSequence(opcode);
|
||||
if(!sequence)
|
||||
|
|
@ -146,10 +144,10 @@ void MovementInfo::Read(ByteBuffer& data, uint16 opcode)
|
|||
if (hasMovementFlags2)
|
||||
moveFlags2 = data.ReadBits(13);
|
||||
break;
|
||||
case MSEHasUnknownBit:
|
||||
case MSEUnknownBit:
|
||||
data.ReadBit();
|
||||
break;
|
||||
//case MSEHasUnknownBit2:
|
||||
//case MSEUnknownBit2:
|
||||
// si.unkBit2 = data.ReadBit();
|
||||
// break;
|
||||
//case MSEHasUnkInt32:
|
||||
|
|
@ -271,11 +269,8 @@ void MovementInfo::Read(ByteBuffer& data, uint16 opcode)
|
|||
if (hasTransportData && si.hasTransportTime3)
|
||||
data >> fallTime;
|
||||
break;
|
||||
case MSECounterCount:
|
||||
counterCount = data.ReadBits(22);
|
||||
break;
|
||||
case MSEMovementCounter:
|
||||
for (int i = 0; i < counterCount; i++)
|
||||
//for (int i = 0; i < counterCount; i++)
|
||||
data.read_skip<uint32>();
|
||||
break;
|
||||
//case MSEUnknownCount:
|
||||
|
|
@ -289,13 +284,6 @@ void MovementInfo::Read(ByteBuffer& data, uint16 opcode)
|
|||
// if (si.hasUnkInt32)
|
||||
// data >> unkInt32;
|
||||
// break;
|
||||
case MSEHasUnkTime:
|
||||
hasUnkTime = !data.ReadBit();
|
||||
break;
|
||||
case MSEUnkTime:
|
||||
if (hasUnkTime)
|
||||
data.read_skip<uint32>();
|
||||
break;
|
||||
default:
|
||||
MANGOS_ASSERT(false && "Wrong movement status element");
|
||||
break;
|
||||
|
|
@ -374,10 +362,10 @@ void MovementInfo::Write(ByteBuffer& data, uint16 opcode) const
|
|||
case MSEHasTimestamp:
|
||||
data.WriteBit(!si.hasTimeStamp);
|
||||
break;
|
||||
case MSEHasUnknownBit:
|
||||
case MSEUnknownBit:
|
||||
data.WriteBit(false);
|
||||
break;
|
||||
//case MSEHasUnknownBit2:
|
||||
//case MSEUnknownBit2:
|
||||
// data.WriteBit(si.unkBit2);
|
||||
// break;
|
||||
//case MSEHasUnkInt32:
|
||||
|
|
@ -483,19 +471,16 @@ void MovementInfo::Write(ByteBuffer& data, uint16 opcode) const
|
|||
if (hasTransportData && si.hasTransportTime3)
|
||||
data << uint32(fallTime);
|
||||
break;
|
||||
case MSECounterCount:
|
||||
data.WriteBits(0, 22);
|
||||
break;
|
||||
case MSEMovementCounter:
|
||||
data << uint32(0);
|
||||
break;
|
||||
//case MSEUnknownCount:
|
||||
// data.WriteBits(unkArray.size(), 24);
|
||||
// break;
|
||||
//case MSEUnknownArray:
|
||||
// for (std::list<uint32>::const_iterator itr = unkArray.begin(); itr != unkArray.end(); ++itr)
|
||||
// data << uint32(*itr);
|
||||
// break;
|
||||
/* case MSEUnknownCount:
|
||||
data.WriteBits(unkArray.size(), 24);
|
||||
break;*/
|
||||
case MSEUnknownArray:
|
||||
for (std::list<uint32>::const_iterator itr = unkArray.begin(); itr != unkArray.end(); ++itr)
|
||||
data << uint32(*itr);
|
||||
break;
|
||||
//case MSEUnkInt32:
|
||||
// if (si.hasUnkInt32)
|
||||
// data << int32(unkInt32);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue