diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b254f050..39af71915 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -111,6 +111,22 @@ endif() set(BIN_DIR ${CMAKE_INSTALL_PREFIX}/bin) set(CONF_DIR ${CMAKE_INSTALL_PREFIX}/etc) + +#Set config install path correctly from given path +string(FIND "${CONF_DIR}" ":" CONF_DIR_ABSOLUTE) +if(${CONF_DIR_ABSOLUTE} EQUAL -1) + #Path was not absolute + set(CONF_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CONF_DIR}") + if(MSVC) + set(CONF_COPY_DIR "${CMAKE_BINARY_DIR}/bin/$(ConfigurationName)/${CONF_DIR}") + else() + #Path was absolute + set(CONF_INSTALL_DIR "${CONF_DIR}") + if(MSVC) + set(CONF_COPY_DIR "${CONF_DIR}") + endif() +endif() + # If win32 put it in the bin dir not lib if(WIN32) set(LIBS_DIR ${CMAKE_INSTALL_PREFIX}/bin) diff --git a/src/game/BattleGround/BattleGroundHandler.cpp b/src/game/BattleGround/BattleGroundHandler.cpp index d7dfba1d9..97462de6e 100644 --- a/src/game/BattleGround/BattleGroundHandler.cpp +++ b/src/game/BattleGround/BattleGroundHandler.cpp @@ -763,3 +763,34 @@ void WorldSession::HandleRequestPvPRewardsOpcode(WorldPacket& recv_data) GetPlayer()->SendPvPRewards(); } +void WorldSession::HandleRequestRatedBgInfo(WorldPacket & recvData) +{ + DEBUG_LOG("WORLD: CMSG_REQUEST_RATED_BG_INFO"); + + uint8 unk; + recvData >> unk; + + DEBUG_LOG("WorldSession::HandleRequestRatedBgInfo: unk = %u", unk); + + WorldPacket data(SMSG_RATED_BG_STATS, 72); + data << uint32(0); // BgWeeklyWins20vs20 + data << uint32(0); // BgWeeklyPlayed20vs20 + data << uint32(0); // BgWeeklyPlayed15vs15 + data << uint32(0); + data << uint32(0); // BgWeeklyWins10vs10 + data << uint32(0); + data << uint32(0); + data << uint32(0); + data << uint32(0); // BgWeeklyWins15vs15 + data << uint32(0); + data << uint32(0); + data << uint32(0); + data << uint32(0); + data << uint32(0); + data << uint32(0); + data << uint32(0); // BgWeeklyPlayed10vs10 + data << uint32(0); + data << uint32(0); + + GetPlayer()->SendPacket(&data); +} \ No newline at end of file diff --git a/src/game/Opcodes.h b/src/game/Opcodes.h index 25624f2f4..6a78187ae 100644 --- a/src/game/Opcodes.h +++ b/src/game/Opcodes.h @@ -1296,17 +1296,17 @@ enum Opcodes CMSG_START_BATTLEFIELD_CHEAT = 0x14CC, CMSG_END_BATTLEFIELD_CHEAT = 0x14CD, SMSG_COMPOUND_MOVE = 0x14CE, - SMSG_MOVE_GRAVITY_DISABLE = 0x14CF, - CMSG_MOVE_GRAVITY_DISABLE_ACK = 0x14D0, - SMSG_MOVE_GRAVITY_ENABLE = 0x14D1, - CMSG_MOVE_GRAVITY_ENABLE_ACK = 0x14D2, + SMSG_MOVE_GRAVITY_DISABLE = 0x75B2, // 4.3.4 15595 + CMSG_MOVE_GRAVITY_DISABLE_ACK = 0x3118, // 4.3.4 15595 + SMSG_MOVE_GRAVITY_ENABLE = 0x30B3, // 4.3.4 15595 + CMSG_MOVE_GRAVITY_ENABLE_ACK = 0x700A, // 4.3.4 15595 MSG_MOVE_GRAVITY_CHNG = 0x14D3, SMSG_SPLINE_MOVE_GRAVITY_DISABLE = 0x5DB5, // 4.3.4 15595 SMSG_SPLINE_MOVE_GRAVITY_ENABLE = 0x3CA6, // 4.3.4 15595 CMSG_USE_EQUIPMENT_SET = 0x0417, // 4.3.4 15595 SMSG_USE_EQUIPMENT_SET_RESULT = 0x2424, // 4.3.4 15595 CMSG_FORCE_ANIM = 0x14D8, - SMSG_FORCE_ANIM = 0x14D9, + SMSG_FORCE_ANIM = 0x4C05, // 4.3.4 15595 CMSG_CHAR_FACTION_CHANGE = 0x2735, // 4.3.4 15595 SMSG_CHAR_FACTION_CHANGE = 0x4C06, // 4.3.4 15595 CMSG_PVP_QUEUE_STATS_REQUEST = 0x14DC, @@ -1360,8 +1360,8 @@ enum Opcodes SMSG_SOCKET_GEMS = 0x6014, // 4.3.4 15595 CMSG_SET_CHARACTER_MODEL = 0x150D, SMSG_CONNECT_TO = 0x0942, // 4.3.4 15595 - CMSG_CONNECT_TO_FAILED = 0x150F, - SMSG_SUSPEND_COMMS = 0x1510, + CMSG_CONNECT_TO_FAILED = 0x2533, // 4.3.4 15595 + SMSG_SUSPEND_COMMS = 0x4140, // 4.3.4 15595 CMSG_SUSPEND_COMMS_ACK = 0x1511, SMSG_RESUME_COMMS = 0x1512, CMSG_AUTH_CONTINUED_SESSION = 0x1513, @@ -1373,9 +1373,9 @@ enum Opcodes MSG_MOVE_SET_COLLISION_HGT = 0x1519, CMSG_CLEAR_RANDOM_BG_WIN_TIME = 0x151A, CMSG_CLEAR_HOLIDAY_BG_WIN_TIME = 0x151B, - CMSG_COMMENTATOR_SKIRMISH_QUEUE_COMMAND = 0x151C, - SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT1 = 0x151D, - SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT2 = 0x151E, + CMSG_COMMENTATOR_SKIRMISH_QUEUE_COMMAND = 0x0025, // 4.3.4 15595 + SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT1 = 0x2126, // 4.3.4 15595 + SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT2 = 0x6814, // 4.3.4 15595 SMSG_COMPRESSED_UNKNOWN_1310 = 0x151F, SMSG_UNKNOWN_1311 = 0x1520, SMSG_UNKNOWN_1312 = 0x1521, diff --git a/src/game/Server/Opcodes.cpp b/src/game/Server/Opcodes.cpp index 4d0cc8080..aefa627c5 100644 --- a/src/game/Server/Opcodes.cpp +++ b/src/game/Server/Opcodes.cpp @@ -1313,23 +1313,23 @@ void InitializeOpcodes() //OPCODE(CMSG_GM_REMOVE_ACHIEVEMENT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_GM_SET_CRITERIA_FOR_PLAYER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); OPCODE(SMSG_DESTROY_ARENA_UNIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_ARENA_TEAM_CHANGE_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_ARENA_TEAM_CHANGE_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_PROFILEDATA_REQUEST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(SMSG_PROFILEDATA_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_START_BATTLEFIELD_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_END_BATTLEFIELD_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(SMSG_COMPOUND_MOVE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_MOVE_GRAVITY_DISABLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(CMSG_MOVE_GRAVITY_DISABLE_ACK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(SMSG_MOVE_GRAVITY_ENABLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(CMSG_MOVE_GRAVITY_ENABLE_ACK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + OPCODE(SMSG_MOVE_GRAVITY_DISABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_MOVE_GRAVITY_DISABLE_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + OPCODE(SMSG_MOVE_GRAVITY_ENABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_MOVE_GRAVITY_ENABLE_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(MSG_MOVE_GRAVITY_CHNG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_SPLINE_MOVE_GRAVITY_DISABLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_SPLINE_MOVE_GRAVITY_ENABLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_USE_EQUIPMENT_SET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetUseOpcode ); OPCODE(SMSG_USE_EQUIPMENT_SET_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_FORCE_ANIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(SMSG_FORCE_ANIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_FORCE_ANIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_CHAR_FACTION_CHANGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); OPCODE(SMSG_CHAR_FACTION_CHANGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_PVP_QUEUE_STATS_REQUEST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -1383,8 +1383,8 @@ void InitializeOpcodes() OPCODE(SMSG_SOCKET_GEMS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_SET_CHARACTER_MODEL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); OPCODE(SMSG_CONNECT_TO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(CMSG_CONNECT_TO_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(SMSG_SUSPEND_COMMS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_CONNECT_TO_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + OPCODE(SMSG_SUSPEND_COMMS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_SUSPEND_COMMS_ACK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(SMSG_RESUME_COMMS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_AUTH_CONTINUED_SESSION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -1396,9 +1396,9 @@ void InitializeOpcodes() //OPCODE(MSG_MOVE_SET_COLLISION_HGT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_CLEAR_RANDOM_BG_WIN_TIME, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_CLEAR_HOLIDAY_BG_WIN_TIME, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(CMSG_COMMENTATOR_SKIRMISH_QUEUE_COMMAND, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT1, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT2, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_COMMENTATOR_SKIRMISH_QUEUE_COMMAND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + OPCODE(SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT1, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT2, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_COMPRESSED_UNKNOWN_1310, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_PLAYER_MOVE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_REORDER_CHARACTERS, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleReorderCharactersOpcode ); @@ -1408,7 +1408,7 @@ void InitializeOpcodes() OPCODE(CMSG_SET_CURRENCY_FLAGS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetCurrencyFlagsOpcode ); OPCODE(SMSG_WEEKLY_RESET_CURRENCIES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_INSPECT_RATED_BG_STATS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL ); - //OPCODE(CMSG_REQUEST_RATED_BG_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL ); + OPCODE(CMSG_REQUEST_RATED_BG_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestRatedBgInfo ); OPCODE(CMSG_REQUEST_RATED_BG_STATS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestRatedBGStatsOpcode ); OPCODE(SMSG_RATED_BG_STATS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_REQUEST_PVP_REWARDS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestPvPRewardsOpcode ); diff --git a/src/game/Server/WorldSession.h b/src/game/Server/WorldSession.h index f108ea38d..f7d982041 100644 --- a/src/game/Server/WorldSession.h +++ b/src/game/Server/WorldSession.h @@ -793,6 +793,7 @@ class WorldSession void HandleRequestPvPOptionsEnabledOpcode(WorldPacket& recv_data); void HandleRequestPvPRewardsOpcode(WorldPacket& recv_data); void HandleRequestRatedBGStatsOpcode(WorldPacket& recv_data); + void HandleRequestRatedBgInfo(WorldPacket & recvData); void HandleWardenDataOpcode(WorldPacket& recv_data); void HandleWorldTeleportOpcode(WorldPacket& recv_data);