aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-06-01 20:14:16 +0200
committerShauren <shauren.trinity@gmail.com>2016-06-01 20:14:16 +0200
commitcc03d7ca24f15b900269a87d07e2d1b89f708aad (patch)
tree8ca6e302954b04f8ba327d926160afe8d8db408c /src/server/game/Server
parentf682e155c873e04f3c98c2d9bac6a8570acc9460 (diff)
Core/PacketIO: Updated SMSG_UPDATE_OBJECT
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/Packets/MovementPackets.cpp61
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp6
2 files changed, 37 insertions, 30 deletions
diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp
index 582a057e09f..0270526576b 100644
--- a/src/server/game/Server/Packets/MovementPackets.cpp
+++ b/src/server/game/Server/Packets/MovementPackets.cpp
@@ -47,7 +47,7 @@ ByteBuffer& operator<<(ByteBuffer& data, MovementInfo& movementInfo)
}*/
data.WriteBits(movementInfo.flags, 30);
- data.WriteBits(movementInfo.flags2, 16);
+ data.WriteBits(movementInfo.flags2, 18);
data.WriteBit(hasTransportData);
data.WriteBit(hasFallData);
@@ -102,7 +102,7 @@ ByteBuffer& operator>>(ByteBuffer& data, MovementInfo& movementInfo)
}
movementInfo.flags = data.ReadBits(30);
- movementInfo.flags2 = data.ReadBits(16);
+ movementInfo.flags2 = data.ReadBits(18);
bool hasTransport = data.ReadBit();
bool hasFall = data.ReadBit();
@@ -277,13 +277,20 @@ void WorldPackets::Movement::CommonMovement::WriteCreateObjectSplineDataBlock(::
else
data << G3D::Vector3::zero();
- if (data.WriteBit(!moveSpline.Finalized())) // MovementSplineMove
- {
- data.FlushBits();
+ data.WriteBit(!moveSpline.Finalized());
+ data.FlushBits();
+ if (!moveSpline.Finalized()) // MovementSplineMove
+ {
::Movement::MoveSplineFlag const& splineFlags = moveSpline.splineflags;
- data.WriteBits(moveSpline.splineflags.raw(), 28); // SplineFlags
+ data << uint32(moveSpline.splineflags.raw()); // SplineFlags
+ data << int32(moveSpline.timePassed()); // Elapsed
+ data << uint32(moveSpline.Duration()); // Duration
+ data << float(1.0f); // DurationModifier
+ data << float(1.0f); // NextDurationModifier
+ data << uint32(moveSpline.getPath().size());
+ data.append<G3D::Vector3>(&moveSpline.getPath()[0], moveSpline.getPath().size());
uint8 face = ::Movement::MONSTER_MOVE_NORMAL;
if (splineFlags.final_angle)
@@ -294,21 +301,25 @@ void WorldPackets::Movement::CommonMovement::WriteCreateObjectSplineDataBlock(::
face = ::Movement::MONSTER_MOVE_FACING_SPOT;
data.WriteBits(face, 2); // Face
-
bool HasJumpGravity = data.WriteBit(moveSpline.splineflags & (::Movement::MoveSplineFlag::Parabolic | ::Movement::MoveSplineFlag::Animation)); // HasJumpGravity
bool HasSpecialTime = data.WriteBit((moveSpline.splineflags & ::Movement::MoveSplineFlag::Parabolic) && moveSpline.effect_start_time < moveSpline.Duration()); // HasSpecialTime
-
data.WriteBits(uint8(moveSpline.spline.mode()), 2); // Mode
+ data.WriteBit(0); // HasSplineFilter
+ data.WriteBit(0); // Unknown_1
+ data.FlushBits();
- data.WriteBit(0); // HasSplineFilterKey
-
- data << int32(moveSpline.timePassed()); // Elapsed
- data << uint32(moveSpline.Duration()); // Duration
- data << float(1.0f); // DurationModifier
- data << float(1.0f); // NextDurationModifier
+ //if (HasSplineFilterKey)
+ //{
+ // data << uint32(FilterKeysCount);
+ // for (var i = 0; i < FilterKeysCount; ++i)
+ // {
+ // data << float(In);
+ // data << float(Out);
+ // }
- uint32 PointsCount = moveSpline.getPath().size();
- data << uint32(PointsCount);
+ // data.WriteBits(FilterFlags, 2);
+ // data.FlushBits();
+ //}
switch (face)
{
@@ -329,20 +340,16 @@ void WorldPackets::Movement::CommonMovement::WriteCreateObjectSplineDataBlock(::
if (HasSpecialTime)
data << uint32(moveSpline.effect_start_time); // SpecialTime
- //if (HasSplineFilterKey)
+ //if (Unknown_1)
//{
- // data << uint32(FilterKeysCount);
- // for (var i = 0; i < PointsCount; ++i)
- // {
- // data << float(In);
- // data << float(Out);
- // }
-
- // data.WriteBits(FilterFlags, 2);
+ // data << ObjectGuid();
+ // data << uint32();
+ // data << uint32();
+ // data << uint32();
//}
-
- data.append<G3D::Vector3>(&moveSpline.getPath()[0], PointsCount); // Points
}
+ else
+ data.FlushBits();
}
void WorldPackets::Movement::MonsterMove::InitializeSplineData(::Movement::MoveSpline const& moveSpline)
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index aa0d8e363ae..2254dcdaf6a 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1019,7 +1019,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DAILY_QUESTS_RESET, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DAMAGE_CALC_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DANCE_STUDIO_CREATE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_DB_REPLY, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_DB_REPLY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEATH_RELEASE_LOC, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEFENSE_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DELETE_CHAR, STATUS_NEVER, CONNECTION_TYPE_REALM);
@@ -1475,7 +1475,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_SEASON, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_BATTLE_PET_NAME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_CREATURE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GAME_OBJECT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GAME_OBJECT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GARRISON_CREATURE_NAME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GUILD_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_ITEM_TEXT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -1694,7 +1694,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_EXPANSION_LEVEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_INSTANCE_OWNERSHIP, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_LAST_INSTANCE, STATUS_NEVER, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_OBJECT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_OBJECT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_TALENT_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_TASK_PROGRESS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_WEEKLY_SPELL_USAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);