diff --git a/src/game/DBCStructure.h b/src/game/DBCStructure.h index 312b5b034..b67a88d2e 100644 --- a/src/game/DBCStructure.h +++ b/src/game/DBCStructure.h @@ -1729,6 +1729,7 @@ struct WorldMapAreaEntry float x2; // 7 int32 virtual_map_id; // 8 -1 (map_id have correct map) other: virtual map where zone show (map_id - where zone in fact internally) // int32 dungeonMap_id; // 9 pointer to DungeonMap.dbc (owerride x1,x2,y1,y2 coordinates) + // uint32 someMapID; // 10 }; #define MAX_WORLD_MAP_OVERLAY_AREA_IDX 4 diff --git a/src/game/DBCfmt.h b/src/game/DBCfmt.h index 9bd198ad9..9f4b3d9f1 100644 --- a/src/game/DBCfmt.h +++ b/src/game/DBCfmt.h @@ -101,7 +101,7 @@ const char TaxiPathNodeEntryfmt[]="diiifffiixx"; const char TotemCategoryEntryfmt[]="nxxxxxxxxxxxxxxxxxii"; const char VehicleEntryfmt[]="niffffiiiiiiiifffffffffffffffssssfifixxx"; const char VehicleSeatEntryfmt[]="niiffffffffffiiiiiifffffffiiifffiiiiiiiffiiiiixxxxxxxxxxxx"; -const char WorldMapAreaEntryfmt[]="xinxffffix"; +const char WorldMapAreaEntryfmt[]="xinxffffixx"; const char WorldMapOverlayEntryfmt[]="nxiiiixxxxxxxxxxx"; const char WorldSafeLocsEntryfmt[]="nifffxxxxxxxxxxxxxxxxx"; diff --git a/src/game/ItemHandler.cpp b/src/game/ItemHandler.cpp index b9b919174..4d8866707 100644 --- a/src/game/ItemHandler.cpp +++ b/src/game/ItemHandler.cpp @@ -68,7 +68,7 @@ void WorldSession::HandleSwapInvItemOpcode( WorldPacket & recv_data ) //sLog.outDebug("WORLD: CMSG_SWAP_INV_ITEM"); uint8 srcslot, dstslot; - recv_data >> srcslot >> dstslot; + recv_data >> dstslot >> srcslot; //sLog.outDebug("STORAGE: receive srcslot = %u, dstslot = %u", srcslot, dstslot); // prevent attempt swap same item to current position generated by client at special checting sequence diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index f71683e5b..694d8c5fc 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -211,6 +211,7 @@ void WorldSession::HandleMovementOpcodes( WorldPacket & recv_data ) { uint32 opcode = recv_data.GetOpcode(); sLog.outDebug("WORLD: Recvd %s (%u, 0x%X) opcode", LookupOpcodeName(opcode), opcode, opcode); + recv_data.hexlike(); Unit *mover = _player->m_mover; Player *plMover = mover->GetTypeId()==TYPEID_PLAYER ? (Player*)mover : NULL; diff --git a/src/game/Opcodes.h b/src/game/Opcodes.h index 267daaa26..833b451e9 100644 --- a/src/game/Opcodes.h +++ b/src/game/Opcodes.h @@ -1275,8 +1275,8 @@ enum Opcodes SMSG_EQUIPMENT_SET_USE_RESULT = 0x4D6, // SMSG, UseEquipmentSetResult? UMSG_UNKNOWN_1239 = 0x4D7, // not found 3.2 SMSG_UNKNOWN_1240 = 0x4D8, // SMSG, uint64, string - CMSG_UNKNOWN_1241 = 0x4D9, // lua: CreateCharacter - SMSG_UNKNOWN_1242 = 0x4DA, // response to 1241 + CMSG_UNKNOWN_1241 = 0x4D9, // lua: CreateCharacter (PFC client response) + SMSG_UNKNOWN_1242 = 0x4DA, // response to 1241 (PFC server response) UMSG_UNKNOWN_1243 = 0x4DB, // not found 3.2 UMSG_UNKNOWN_1244 = 0x4DC, // not found 3.2 UMSG_UNKNOWN_1245 = 0x4DD, // not found 3.2 diff --git a/src/game/Player.cpp b/src/game/Player.cpp index ee0e49691..c1f7453bf 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -1449,7 +1449,7 @@ bool Player::BuildEnumData( QueryResult * result, WorldPacket * p_data ) *p_data << uint32(char_flags); // character flags // character customize (flags?) - *p_data << uint32(atLoginFlags & AT_LOGIN_CUSTOMIZE ? 1 : 0); + *p_data << uint32(atLoginFlags & AT_LOGIN_CUSTOMIZE ? 1 : 0);// 0x00010000 - faction change *p_data << uint8(1); // unknown *p_data << uint8(0); // 3.2 diff --git a/src/game/Player.h b/src/game/Player.h index 64531af0e..4af54f0ed 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -765,6 +765,7 @@ enum MovementFlags struct MovementInfo { // common + uint64 guid; uint32 flags; // see enum MovementFlags uint16 unk1; uint32 time; diff --git a/src/game/UpdateFields.h b/src/game/UpdateFields.h index abc51246d..1d9e86591 100644 --- a/src/game/UpdateFields.h +++ b/src/game/UpdateFields.h @@ -19,7 +19,7 @@ #ifndef _UPDATEFIELDS_AUTO_H #define _UPDATEFIELDS_AUTO_H -// Auto generated for version 0, 2, 0, 10083 +// Auto generated for version 0, 2, 0, 10116 enum EObjectFields { diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp index 798147fe8..ac8f661b3 100644 --- a/src/game/WorldSession.cpp +++ b/src/game/WorldSession.cpp @@ -626,6 +626,9 @@ void WorldSession::SaveTutorialsData() void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo *mi) { + if(!data.readPackGUID(mi->guid)) + return; + CHECK_PACKET_SIZE(data, data.rpos()+4+2+4+4+4+4+4); data >> mi->flags; data >> mi->unk1; diff --git a/src/realmd/AuthCodes.h b/src/realmd/AuthCodes.h index 625f1844f..a740fa3c1 100644 --- a/src/realmd/AuthCodes.h +++ b/src/realmd/AuthCodes.h @@ -66,8 +66,8 @@ enum LoginResult // we need to stick to 1 version or half of the stuff will work for someone // others will not and opposite -// will only support WoW, WoW:TBC and WoW:WotLK 3.2.0 client build 10083... +// will only support WoW, WoW:TBC and WoW:WotLK 3.2.0 client build 10116... -#define EXPECTED_MANGOS_CLIENT_BUILD {10083, 0} +#define EXPECTED_MANGOS_CLIENT_BUILD {10116, 0} #endif