From 06cc8a9f9aa86e61d42887a048c0a3ec96b6e358 Mon Sep 17 00:00:00 2001 From: Olion Date: Sat, 22 Jul 2017 18:35:03 +0300 Subject: [PATCH] More SMSG structure cleaned --- src/game/BattleGround/BattleGroundHandler.cpp | 2 +- src/game/BattleGround/BattleGroundMgr.cpp | 15 ++------ src/game/BattleGround/BattleGroundMgr.h | 9 ++++- src/game/Object/Pet.h | 5 +-- src/game/Object/Unit.cpp | 15 ++------ src/game/Server/Opcodes.cpp | 34 +++++++++---------- src/game/WorldHandlers/ItemHandler.cpp | 2 +- src/game/WorldHandlers/LFGHandler.h | 4 +-- src/game/WorldHandlers/MiscHandler.cpp | 1 + 9 files changed, 39 insertions(+), 48 deletions(-) diff --git a/src/game/BattleGround/BattleGroundHandler.cpp b/src/game/BattleGround/BattleGroundHandler.cpp index 71833a70..a4c1f672 100644 --- a/src/game/BattleGround/BattleGroundHandler.cpp +++ b/src/game/BattleGround/BattleGroundHandler.cpp @@ -194,7 +194,7 @@ void WorldSession::HandleBattlemasterJoinOpcode(WorldPacket& recv_data) // send status packet (in queue) sBattleGroundMgr.BuildBattleGroundStatusPacket(&data, bg, queueSlot, STATUS_WAIT_QUEUE, avgTime, 0); member->GetSession()->SendPacket(&data); - sBattleGroundMgr.BuildGroupJoinedBattlegroundPacket(&data, bgTypeId); + sBattleGroundMgr.BuildGroupJoinedBattlegroundPacket(&data, int32(bg->GetMapId())); member->GetSession()->SendPacket(&data); DEBUG_LOG("Battleground: player joined queue for bg queue type %u bg type %u: GUID %u, NAME %s", bgQueueTypeId, bgTypeId, member->GetGUIDLow(), member->GetName()); } diff --git a/src/game/BattleGround/BattleGroundMgr.cpp b/src/game/BattleGround/BattleGroundMgr.cpp index d2985983..0d5f2741 100644 --- a/src/game/BattleGround/BattleGroundMgr.cpp +++ b/src/game/BattleGround/BattleGroundMgr.cpp @@ -885,7 +885,6 @@ void BattleGroundMgr::BuildBattleGroundStatusPacket(WorldPacket* data, BattleGro data->Initialize(SMSG_BATTLEFIELD_STATUS, (4 + 8 + 4 + 1 + 4 + 4 + 4)); *data << uint32(QueueSlot); // queue id (0...2) - player can be in 3 queues in time - // uint64 in client *data << uint32(bg->GetMapId()); // MapID *data << uint8(0); // Unknown *data << uint32(bg->GetClientInstanceID()); @@ -969,19 +968,11 @@ void BattleGroundMgr::BuildPvpLogDataPacket(WorldPacket* data, BattleGround* bg) } } -void BattleGroundMgr::BuildGroupJoinedBattlegroundPacket(WorldPacket* data, BattleGroundTypeId bgTypeId) +void BattleGroundMgr::BuildGroupJoinedBattlegroundPacket(WorldPacket* data, int32 status) { - /*bgTypeId is: - 0 - Your group has joined a battleground queue, but you are not eligible - 1 - Your group has joined the queue for AV - 2 - Your group has joined the queue for WS - 3 - Your group has joined the queue for AB - 4 - Your group has joined the queue for NA - 5 - Your group has joined the queue for BE Arena - 6 - Your group has joined the queue for All Arenas - 7 - Your group has joined the queue for EotS*/ data->Initialize(SMSG_GROUP_JOINED_BATTLEGROUND, 4); - *data << uint32(bgTypeId); + // for status, see enum BattleGroundGroupJoinStatus + *data << int32(status); } void BattleGroundMgr::BuildUpdateWorldStatePacket(WorldPacket* data, uint32 field, uint32 value) diff --git a/src/game/BattleGround/BattleGroundMgr.h b/src/game/BattleGround/BattleGroundMgr.h index 65ad0b2d..7e7809be 100644 --- a/src/game/BattleGround/BattleGroundMgr.h +++ b/src/game/BattleGround/BattleGroundMgr.h @@ -104,6 +104,13 @@ enum BattleGroundQueueGroupTypes }; #define BG_QUEUE_GROUP_TYPES_COUNT 4 +enum BattleGroundGroupJoinStatus +{ + BG_GROUPJOIN_DESERTERS = -2, + BG_GROUPJOIN_FAILED = -1 // actually, any negative except 2 + // any other value is a MapID meaning successful join +}; + class BattleGround; /** * @brief @@ -446,7 +453,7 @@ class BattleGroundMgr * @param data * @param bgTypeId */ - void BuildGroupJoinedBattlegroundPacket(WorldPacket* data, BattleGroundTypeId bgTypeId); + void BuildGroupJoinedBattlegroundPacket(WorldPacket* data, int32 status); /** * @brief * diff --git a/src/game/Object/Pet.h b/src/game/Object/Pet.h index 175d5721..c49f579c 100644 --- a/src/game/Object/Pet.h +++ b/src/game/Object/Pet.h @@ -111,10 +111,11 @@ struct PetSpell enum ActionFeedback { - FEEDBACK_NONE = 0, + FEEDBACK_PET_NONE = 0, // custom, not to be sent FEEDBACK_PET_DEAD = 1, FEEDBACK_NOTHING_TO_ATT = 2, - FEEDBACK_CANT_ATT_TARGET = 3 + FEEDBACK_CANT_ATT_TARGET = 3, + FEEDBACK_NO_PATH_TO = 4 }; enum PetTalk diff --git a/src/game/Object/Unit.cpp b/src/game/Object/Unit.cpp index 687f6e31..7b8edad0 100644 --- a/src/game/Object/Unit.cpp +++ b/src/game/Object/Unit.cpp @@ -8726,13 +8726,6 @@ void Unit::SetFeignDeath(bool apply, ObjectGuid casterGuid /*= ObjectGuid()*/) { if (apply) { - /* - WorldPacket data(SMSG_FEIGN_DEATH_RESISTED, 9); - data<ItemId); data << name; - data << uint32(pProto->InventoryType); + //data << uint32(pProto->InventoryType); [-ZERO] SendPacket(&data); return; } diff --git a/src/game/WorldHandlers/LFGHandler.h b/src/game/WorldHandlers/LFGHandler.h index a3ec80ac..5e090daa 100644 --- a/src/game/WorldHandlers/LFGHandler.h +++ b/src/game/WorldHandlers/LFGHandler.h @@ -38,11 +38,11 @@ enum MeetingstoneQueueStatus enum MeetingstoneFailedStatus { - MEETINGSTONE_FAIL_NONE = 0, + MEETINGSTONE_FAIL_NONE = 0, // custom, not to be sent MEETINGSTONE_FAIL_PARTYLEADER = 1, MEETINGSTONE_FAIL_FULL_GROUP = 2, MEETINGSTONE_FAIL_RAID_GROUP = 3, - MEETINGSTONE_FAIL_NONE_UNK = 4 + //MEETINGSTONE_FAIL_NONE_UNK = 4 [-ZERO] }; #endif diff --git a/src/game/WorldHandlers/MiscHandler.cpp b/src/game/WorldHandlers/MiscHandler.cpp index b41b211f..b72672d1 100644 --- a/src/game/WorldHandlers/MiscHandler.cpp +++ b/src/game/WorldHandlers/MiscHandler.cpp @@ -1000,6 +1000,7 @@ void WorldSession::HandleInspectHonorStatsOpcode(WorldPacket& recv_data) data << guid; // player guid // Rank, filling bar, PLAYER_BYTES_3, ?? data << (uint8)pl->GetByteValue(PLAYER_FIELD_BYTES2, 0); + // FIXME: below must be 8*uint16, 6*uint32, uint8 // Today Honorable and Dishonorable Kills data << pl->GetUInt32Value(PLAYER_FIELD_SESSION_KILLS); // Yesterday Honorable Kills