diff options
| author | Shauren <shauren.trinity@gmail.com> | 2015-01-10 01:35:47 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2015-01-10 01:35:47 +0100 |
| commit | faa583c7843af37d757bd46ca0bd226175dabc38 (patch) | |
| tree | 5af657d84903b337bdb22c341bb01f4e6aab1392 /src/server/game/Server | |
| parent | f6b30fdf616bd289dd668f98a0aed8dbfb14eba8 (diff) | |
Core/Maps: Updated map difficulties
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/MiscPackets.cpp | 24 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/MiscPackets.h | 46 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 7 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.h | 7 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 6 |
5 files changed, 80 insertions, 10 deletions
diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index a9955bf7449..937bd75c4b9 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -183,3 +183,27 @@ void WorldPackets::Misc::AreaTrigger::Read() Entered = _worldPacket.ReadBit(); FromClient = _worldPacket.ReadBit(); } + +void WorldPackets::Misc::SetDungeonDifficulty::Read() +{ + _worldPacket >> DifficultyID; +} + +void WorldPackets::Misc::SetRaidDifficulty::Read() +{ + _worldPacket >> DifficultyID; + _worldPacket >> Legacy; +} + +WorldPacket const* WorldPackets::Misc::DungeonDifficultySet::Write() +{ + _worldPacket << int32(DifficultyID); + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Misc::RaidDifficultySet::Write() +{ + _worldPacket << int32(DifficultyID); + _worldPacket << uint8(Legacy); + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index f42d560f36d..ae12389e791 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -96,10 +96,10 @@ namespace WorldPackets { int32 Type = 0; // ID from CurrencyTypes.dbc int32 Quantity = 0; - Optional<int32> WeeklyQuantity; // Currency count obtained this Week. + Optional<int32> WeeklyQuantity; // Currency count obtained this Week. Optional<int32> MaxWeeklyQuantity; // Weekly Currency cap. Optional<int32> TrackedQuantity; - uint8 Flags = 0; // 0 = none, + uint8 Flags = 0; // 0 = none, }; SetupCurrency() : ServerPacket(SMSG_SETUP_CURRENCY, 22) { } @@ -221,6 +221,48 @@ namespace WorldPackets bool Entered = false; bool FromClient = false; }; + + class SetDungeonDifficulty final : public ClientPacket + { + public: + SetDungeonDifficulty(WorldPacket&& packet) : ClientPacket(CMSG_SET_DUNGEON_DIFFICULTY, std::move(packet)) { } + + void Read() override; + + int32 DifficultyID; + }; + + class SetRaidDifficulty final : public ClientPacket + { + public: + SetRaidDifficulty(WorldPacket&& packet) : ClientPacket(CMSG_SET_RAID_DIFFICULTY, std::move(packet)) { } + + void Read() override; + + int32 DifficultyID; + uint8 Legacy; + }; + + class DungeonDifficultySet final : public ServerPacket + { + public: + DungeonDifficultySet() : ServerPacket(SMSG_SET_DUNGEON_DIFFICULTY, 4) { } + + WorldPacket const* Write() override; + + int32 DifficultyID; + }; + + class RaidDifficultySet final : public ServerPacket + { + public: + RaidDifficultySet() : ServerPacket(SMSG_SET_RAID_DIFFICULTY, 4 + 1) { } + + WorldPacket const* Write() override; + + int32 DifficultyID; + uint8 Legacy; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index d2956f64e27..d1502e0c863 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -603,6 +603,7 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_ALLOW_LOW_LEVEL_RAID2, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_CONTACT_NOTES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetContactNotesOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_CURRENCY_FLAGS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + DEFINE_HANDLER(CMSG_SET_DUNGEON_DIFFICULTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::SetDungeonDifficulty, &WorldSession::HandleSetDungeonDifficultyOpcode); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_EVERYONE_IS_ASSISTANT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_FACTION_ATWAR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionAtWar ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_FACTION_INACTIVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionInactiveOpcode ); @@ -612,7 +613,7 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_PLAYER_DECLINED_NAMES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPlayerDeclinedNames ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_PREFERED_CEMETERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_PVP, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_RAID_DIFFICULTY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + DEFINE_HANDLER(CMSG_SET_RAID_DIFFICULTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::SetRaidDifficulty, &WorldSession::HandleSetRaidDifficultyOpcode); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_RELATIVE_POSITION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_SAVED_INSTANCE_EXTEND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetSavedInstanceExtend ); DEFINE_HANDLER(CMSG_SET_SELECTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::SetSelection, &WorldSession::HandleSetSelectionOpcode); @@ -698,8 +699,6 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(MSG_RAID_READY_CHECK_FINISHED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidReadyCheckFinishedOpcode); DEFINE_OPCODE_HANDLER_OLD(MSG_RAID_TARGET_UPDATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidTargetUpdateOpcode ); DEFINE_OPCODE_HANDLER_OLD(MSG_SAVE_GUILD_EMBLEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSaveGuildEmblemOpcode ); - DEFINE_OPCODE_HANDLER_OLD(MSG_SET_DUNGEON_DIFFICULTY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetDungeonDifficultyOpcode); - DEFINE_OPCODE_HANDLER_OLD(MSG_SET_RAID_DIFFICULTY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetRaidDifficultyOpcode ); DEFINE_OPCODE_HANDLER_OLD(MSG_TABARDVENDOR_ACTIVATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTabardVendorActivateOpcode); DEFINE_OPCODE_HANDLER_OLD(MSG_TALENT_WIPE_CONFIRM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTalentWipeConfirmOpcode ); @@ -1306,6 +1305,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_ALL_TASK_PROGRESS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_CURRENCY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_DF_FAST_LAUNCH_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_DUNGEON_DIFFICULTY, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_ATWAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_NOT_VISIBLE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_STANDING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1321,6 +1321,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PLAY_HOVER_ANIM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PROFICIENCY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PROJECTILE_POSITION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_RAID_DIFFICULTY, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_TIME_ZONE_INFORMATION, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SETUP_CURRENCY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOWTAXINODES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 3177cb77d2a..b33f218c898 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -552,6 +552,7 @@ enum OpcodeClient : uint32 CMSG_SET_ALLOW_LOW_LEVEL_RAID2 = 0xBADD, CMSG_SET_CONTACT_NOTES = 0xBADD, CMSG_SET_CURRENCY_FLAGS = 0xBADD, + CMSG_SET_DUNGEON_DIFFICULTY = 0x012F, CMSG_SET_EVERYONE_IS_ASSISTANT = 0xBADD, CMSG_SET_FACTION_ATWAR = 0xBADD, CMSG_SET_FACTION_CHEAT = 0xBADD, @@ -563,7 +564,7 @@ enum OpcodeClient : uint32 CMSG_SET_PLAYER_DECLINED_NAMES = 0xBADD, CMSG_SET_PREFERED_CEMETERY = 0xBADD, CMSG_SET_PVP = 0x19B9, - CMSG_SET_RAID_DIFFICULTY = 0xBADD, + CMSG_SET_RAID_DIFFICULTY = 0x1121, CMSG_SET_RELATIVE_POSITION = 0xBADD, CMSG_SET_SAVED_INSTANCE_EXTEND = 0xBADD, CMSG_SET_SELECTION = 0x05BD, @@ -671,8 +672,6 @@ enum OpcodeClient : uint32 MSG_RAID_READY_CHECK_FINISHED = 0xBADD, MSG_RAID_TARGET_UPDATE = 0xBADD, MSG_SAVE_GUILD_EMBLEM = 0xBADD, - MSG_SET_DUNGEON_DIFFICULTY = 0xBADD, - MSG_SET_RAID_DIFFICULTY = 0xBADD, MSG_TABARDVENDOR_ACTIVATE = 0xBADD, MSG_TALENT_WIPE_CONFIRM = 0xBADD }; @@ -1309,6 +1308,7 @@ enum OpcodeServer : uint32 SMSG_SET_ALL_TASK_PROGRESS = 0x1B52, SMSG_SET_CURRENCY = 0x17BE, SMSG_SET_DF_FAST_LAUNCH_RESULT = 0xBADD, + SMSG_SET_DUNGEON_DIFFICULTY = 0x0719, SMSG_SET_FACTION_ATWAR = 0xBADD, SMSG_SET_FACTION_NOT_VISIBLE = 0xBADD, SMSG_SET_FACTION_STANDING = 0xBADD, @@ -1324,6 +1324,7 @@ enum OpcodeServer : uint32 SMSG_SET_PLAY_HOVER_ANIM = 0x02D4, SMSG_SET_PROFICIENCY = 0x00D3, SMSG_SET_PROJECTILE_POSITION = 0xBADD, + SMSG_SET_RAID_DIFFICULTY = 0x051F, SMSG_SET_TIME_ZONE_INFORMATION = 0x153E, SMSG_SET_VIGNETTE = 0x09AC, SMSG_SETUP_CURRENCY = 0x0B06, diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 1779530fcba..ae14b0667a9 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -171,6 +171,8 @@ namespace WorldPackets class ViolenceLevel; class TimeSyncResponse; class TutorialSetFlag; + class SetDungeonDifficulty; + class SetRaidDifficulty; } namespace Movement @@ -1028,8 +1030,8 @@ class WorldSession void HandleMinimapPingOpcode(WorldPacket& recvData); void HandleRandomRollOpcode(WorldPacket& recvData); void HandleFarSightOpcode(WorldPacket& recvData); - void HandleSetDungeonDifficultyOpcode(WorldPacket& recvData); - void HandleSetRaidDifficultyOpcode(WorldPacket& recvData); + void HandleSetDungeonDifficultyOpcode(WorldPackets::Misc::SetDungeonDifficulty& setDungeonDifficulty); + void HandleSetRaidDifficultyOpcode(WorldPackets::Misc::SetRaidDifficulty& setRaidDifficulty); void HandleMoveSetCanFlyAckOpcode(WorldPacket& recvData); void HandleSetTitleOpcode(WorldPacket& recvData); void HandleRealmSplitOpcode(WorldPacket& recvData); |
