aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-01-10 01:35:47 +0100
committerShauren <shauren.trinity@gmail.com>2015-01-10 01:35:47 +0100
commitfaa583c7843af37d757bd46ca0bd226175dabc38 (patch)
tree5af657d84903b337bdb22c341bb01f4e6aab1392 /src/server/game/Server
parentf6b30fdf616bd289dd668f98a0aed8dbfb14eba8 (diff)
Core/Maps: Updated map difficulties
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/Packets/MiscPackets.cpp24
-rw-r--r--src/server/game/Server/Packets/MiscPackets.h46
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp7
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h7
-rw-r--r--src/server/game/Server/WorldSession.h6
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);