diff options
| author | Shauren <shauren.trinity@gmail.com> | 2015-05-17 18:06:28 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2015-05-17 18:06:28 +0200 |
| commit | 92bfa759facd47c1e375876c1df4604091811d16 (patch) | |
| tree | 731f58769764f0f6852e62de2ae3c1adb05fa61f /src/server/game/Server | |
| parent | 051e3b631db74886479c58485fad46b9a326a966 (diff) | |
Core/Garrisons: Initial work on garrison followers
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/GarrisonPackets.cpp | 12 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/GarrisonPackets.h | 19 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 |
3 files changed, 26 insertions, 7 deletions
diff --git a/src/server/game/Server/Packets/GarrisonPackets.cpp b/src/server/game/Server/Packets/GarrisonPackets.cpp index 8dff6ff86d4..456149bbdbb 100644 --- a/src/server/game/Server/Packets/GarrisonPackets.cpp +++ b/src/server/game/Server/Packets/GarrisonPackets.cpp @@ -60,8 +60,8 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Garrison::GarrisonFollowe data << uint32(follower.CurrentMissionID); data << uint32(follower.AbilityID.size()); data << uint32(follower.FollowerStatus); - if (!follower.AbilityID.empty()) - data.append(follower.AbilityID.data(), follower.AbilityID.size()); + for (uint32 abilityId : follower.AbilityID) + data << uint32(abilityId); return data; } @@ -237,3 +237,11 @@ WorldPacket const* WorldPackets::Garrison::GarrisonPlotRemoved::Write() return &_worldPacket; } + +WorldPacket const* WorldPackets::Garrison::GarrisonAddFollowerResult::Write() +{ + _worldPacket << uint32(Result); + _worldPacket << Follower; + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/GarrisonPackets.h b/src/server/game/Server/Packets/GarrisonPackets.h index 288074284b5..5fc386ab72b 100644 --- a/src/server/game/Server/Packets/GarrisonPackets.h +++ b/src/server/game/Server/Packets/GarrisonPackets.h @@ -74,7 +74,7 @@ namespace WorldPackets uint32 Xp = 0; uint32 CurrentBuildingID = 0; uint32 CurrentMissionID = 0; - std::vector<uint32> AbilityID; + std::list<uint32> AbilityID; uint32 FollowerStatus; }; @@ -102,9 +102,9 @@ namespace WorldPackets uint32 FactionIndex = 0; uint32 NumFollowerActivationsRemaining = 0; std::vector<GarrisonPlotInfo*> Plots; - std::vector<GarrisonBuildingInfo*> Buildings; - std::vector<GarrisonFollower*> Followers; - std::vector<GarrisonMission*> Missions; + std::vector<GarrisonBuildingInfo const*> Buildings; + std::vector<GarrisonFollower const*> Followers; + std::vector<GarrisonMission const*> Missions; std::vector<int32> ArchivedMissions; }; @@ -267,6 +267,17 @@ namespace WorldPackets uint32 GarrPlotInstanceID = 0; }; + + class GarrisonAddFollowerResult final : public ServerPacket + { + public: + GarrisonAddFollowerResult() : ServerPacket(SMSG_GARRISON_ADD_FOLLOWER_RESULT, 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 5 * 4 + 4) { } + + WorldPacket const* Write() override; + + GarrisonFollower Follower; + uint32 Result = 0; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 07632e48b40..8c559fe80c7 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1109,7 +1109,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_SPEED_SET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_TIME_SET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_TIME_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_FOLLOWER_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_FOLLOWER_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_MISSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_BUILDING_ACTIVATED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); |
