More fixed movement structure

This commit is contained in:
zamalaev 2020-02-20 14:12:05 +00:00 committed by Antz
parent 07464e7fc3
commit a149adb835
3 changed files with 195 additions and 188 deletions

View file

@ -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);