From 427fca695e92184b258136f6ebd58076f93c1b7d Mon Sep 17 00:00:00 2001 From: tomrus88 Date: Sun, 16 Nov 2008 18:13:33 +0300 Subject: [PATCH] Compile fix --- src/game/MiscHandler.cpp | 14 ------- src/game/MovementHandler.cpp | 62 ++++++------------------------ src/game/ObjectMgr.cpp | 2 +- src/game/Opcodes.cpp | 4 +- src/game/Player.cpp | 16 +++++--- src/game/WorldSession.h | 2 - src/shared/Database/SQLStorage.cpp | 2 +- 7 files changed, 26 insertions(+), 76 deletions(-) diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp index 7ed3b57cb..701d88929 100644 --- a/src/game/MiscHandler.cpp +++ b/src/game/MiscHandler.cpp @@ -1669,20 +1669,6 @@ void WorldSession::HandleSpellClick( WorldPacket & recv_data ) _player->EnterVehicle(vehicle); } -void WorldSession::HandleDismissControlledVehicle( WorldPacket & recv_data ) -{ - //CHECK_PACKET_SIZE(recv_data, 8); - recv_data.hexlike(); // standard movement packet - - // using charm guid, because we don't have vehicle guid... - Vehicle *vehicle = ObjectAccessor::GetVehicle(_player->GetCharmGUID()); - - if(!vehicle) - return; - - _player->ExitVehicle(vehicle); -} - void WorldSession::HandleInspectAchievements( WorldPacket & recv_data ) { CHECK_PACKET_SIZE(recv_data, 1); diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index 59d71c31b..137130c34 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -170,6 +170,8 @@ void WorldSession::HandleMoveWorldportAckOpcode() void WorldSession::HandleMovementOpcodes( WorldPacket & recv_data ) { + sLog.outDebug("WORLD: Recvd %s (%u,0x%X) opcode", LookupOpcodeName(recv_data.GetOpcode()), recv_data.GetOpcode(), recv_data.GetOpcode()); + CHECK_PACKET_SIZE(recv_data, 4+2+4+4+4+4+4); if(GetPlayer()->GetDontMove()) @@ -333,19 +335,13 @@ void WorldSession::HandleMovementOpcodes( WorldPacket & recv_data ) DEBUG_LOG("FALLDAMAGE z=%f sz=%f pZ=%f FallTime=%d mZ=%f damage=%d SF=%d" , movementInfo.z, height, target->GetPositionZ(), movementInfo.fallTime, height, damage, safe_fall); } } + } - //handle fall and logout at the same time (logout started before fall finished) - /* outdated and create problems with sit at stun sometime - if (target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_ROTATE)) - { - target->SetStandState(PLAYER_STATE_SIT); - // Can't move - WorldPacket data( SMSG_FORCE_MOVE_ROOT, 12 ); - data.append(target->GetPackGUID()); - data << (uint32)2; - SendPacket( &data ); - } - */ + if(recv_data.GetOpcode() == CMSG_DISMISS_CONTROLLED_VEHICLE) + { + // using charm guid, because we don't have vehicle guid... + if(Vehicle *vehicle = ObjectAccessor::GetVehicle(_player->GetCharmGUID())) + _player->ExitVehicle(vehicle); } if(((MovementFlags & MOVEMENTFLAG_SWIMMING) != 0) != GetPlayer()->IsInWater()) @@ -413,6 +409,8 @@ void WorldSession::HandleMovementOpcodes( WorldPacket & recv_data ) void WorldSession::HandleForceSpeedChangeAck(WorldPacket &recv_data) { + sLog.outDebug("WORLD: Recvd %s (%u,0x%X) opcode", LookupOpcodeName(recv_data.GetOpcode()), recv_data.GetOpcode(), recv_data.GetOpcode()); + CHECK_PACKET_SIZE(recv_data, 8+4+4+2+4+4+4+4+4); /* extract packet */ @@ -545,46 +543,10 @@ void WorldSession::HandleSetActiveMoverOpcode(WorldPacket &recv_data) uint64 guid; recv_data >> guid; - if(_player->GetGUID() == guid) + if(_player->m_mover->GetGUID() != guid) { - if(_player->GetCharmGUID() == 0) - _player->m_mover = _player; + sLog.outError("HandleSetActiveMoverOpcode: incorrect mover guid: mover is " I64FMT " and should be " I64FMT, _player->m_mover->GetGUID(), guid); } - else - { - if(_player->GetCharmGUID() == guid) - { - if(IS_PLAYER_GUID(guid)) - { - if(Player *plr = objmgr.GetPlayer(guid)) - _player->m_mover = plr; - } - else if(IS_CREATURE_OR_PET_GUID(guid)) - { - if(Creature *creature = ObjectAccessor::GetCreatureOrPet(*_player, guid)) - _player->m_mover = creature; - } - else if(IS_VEHICLE_GUID(guid)) - { - if(Vehicle *vehicle = ObjectAccessor::GetVehicle(guid)) - _player->m_mover = vehicle; - } - else - { - sLog.outError("Unknown guid " I64FMT "in HandleSetActiveMoverOpcode", guid); - } - } - } - - WorldPacket data(SMSG_TIME_SYNC_REQ, 4); // new 2.0.x, enable movement - data << uint32(0x00000000); // on blizz it increments periodically - SendPacket(&data); -} - -void WorldSession::HandleMoveNotActiveMoverOpcode(WorldPacket &recv_data) -{ - sLog.outDebug("WORLD: Recvd CMSG_MOVE_NOT_ACTIVE_MOVER"); - recv_data.hexlike(); // normal movement packet } void WorldSession::HandleMountSpecialAnimOpcode(WorldPacket& /*recvdata*/) diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index 011d61eee..956c577cb 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -5330,7 +5330,7 @@ uint32 ObjectMgr::GenerateLowGuid(HighGuid guidhigh) if(m_hiVehicleGuid>=0x00FFFFFF) { sLog.outError("Vehicle guid overflow!! Can't continue, shutting down server. "); - sWorld.m_stopEvent = true; + World::StopNow(ERROR_EXIT_CODE); } return m_hiVehicleGuid; case HIGHGUID_PLAYER: diff --git a/src/game/Opcodes.cpp b/src/game/Opcodes.cpp index 4e6825606..91ae5a39c 100644 --- a/src/game/Opcodes.cpp +++ b/src/game/Opcodes.cpp @@ -747,7 +747,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] = /*0x2CE*/ { "CMSG_MOVE_TIME_SKIPPED", STATUS_LOGGEDIN, &WorldSession::HandleMoveTimeSkippedOpcode }, /*0x2CF*/ { "CMSG_MOVE_FEATHER_FALL_ACK", STATUS_LOGGEDIN, &WorldSession::HandleFeatherFallAck }, /*0x2D0*/ { "CMSG_MOVE_WATER_WALK_ACK", STATUS_LOGGEDIN, &WorldSession::HandleMoveWaterWalkAck }, - /*0x2D1*/ { "CMSG_MOVE_NOT_ACTIVE_MOVER", STATUS_LOGGEDIN, &WorldSession::HandleMoveNotActiveMoverOpcode }, + /*0x2D1*/ { "CMSG_MOVE_NOT_ACTIVE_MOVER", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes }, /*0x2D2*/ { "SMSG_PLAY_SOUND", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2D3*/ { "CMSG_BATTLEFIELD_STATUS", STATUS_LOGGEDIN, &WorldSession::HandleBattlefieldStatusOpcode }, /*0x2D4*/ { "SMSG_BATTLEFIELD_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, @@ -1159,7 +1159,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] = /*0x46A*/ { "SMSG_CRITERIA_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x46B*/ { "CMSG_QUERY_INSPECT_ACHIEVEMENTS", STATUS_LOGGEDIN, &WorldSession::HandleInspectAchievements }, /*0x46C*/ { "SMSG_RESPOND_INSPECT_ACHIEVEMENTS",STATUS_NEVER, &WorldSession::Handle_ServerSide }, - /*0x46D*/ { "CMSG_DISMISS_CONTROLLED_VEHICLE", STATUS_LOGGEDIN, &WorldSession::HandleDismissControlledVehicle }, + /*0x46D*/ { "CMSG_DISMISS_CONTROLLED_VEHICLE", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes }, /*0x46E*/ { "CMSG_COMPLETE_ACHIEVEMENT_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x46F*/ { "SMSG_QUESTUPDATE_ADD_PVP_KILL", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x470*/ { "CMSG_SET_CRITERIA_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 36fba438e..e42e4ca40 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -17521,6 +17521,10 @@ void Player::SendInitialPacketsBeforeAddToMap() data << (float)0.01666667f; // game speed GetSession()->SendPacket( &data ); + data.Initialize(SMSG_TIME_SYNC_REQ, 4); // new 2.0.x, enable movement + data << uint32(0x00000000); // on blizz it increments periodically + GetSession()->SendPacket(&data); + // set fly flag if in fly form or taxi flight to prevent visually drop at ground in showup moment if(HasAuraType(SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED) || isInFlight()) AddUnitMovementFlag(MOVEMENTFLAG_FLYING2); @@ -18641,12 +18645,12 @@ void Player::EnterVehicle(Vehicle *vehicle) //vehicle->SetUInt32Value(UNIT_DYNAMIC_FLAGS, 0); //vehicle->SetUInt32Value(UNIT_FIELD_BYTES_1, 0x02000000); - SetCharm(vehicle); - SetFarSight(vehicle->GetGUID()); + SetCharm(vehicle); // charm + SetFarSight(vehicle->GetGUID()); // set view - SetClientControl(vehicle, 1); + SetClientControl(vehicle, 1); // redirect controls to vehicle - WorldPacket data(SMSG_UNKNOWN_1181, 0); + WorldPacket data(SMSG_UNKNOWN_1181, 0); // shows vehicle UI? GetSession()->SendPacket(&data); data.Initialize(MSG_MOVE_TELEPORT_ACK, 30); @@ -18660,10 +18664,10 @@ void Player::EnterVehicle(Vehicle *vehicle) data << vehicle->GetPositionZ(); // z data << vehicle->GetOrientation(); // o // transport part - data << vehicle->GetGUID(); // transport guid + data << uint64(vehicle->GetGUID()); // transport guid data << float(0); // transport offsetX data << float(0); // transport offsetY - data << float(1); // transport offsetZ + data << float(2); // transport offsetZ data << float(0); // transport orientation data << uint32(getMSTime()); // transport time data << uint8(0); // seat diff --git a/src/game/WorldSession.h b/src/game/WorldSession.h index db79803f0..fcc5e6106 100644 --- a/src/game/WorldSession.h +++ b/src/game/WorldSession.h @@ -331,7 +331,6 @@ class MANGOS_DLL_SPEC WorldSession void HandleMovementOpcodes(WorldPacket& recvPacket); void HandleSetActiveMoverOpcode(WorldPacket &recv_data); - void HandleMoveNotActiveMoverOpcode(WorldPacket &recv_data); void HandleMoveTimeSkippedOpcode(WorldPacket &recv_data); void HandleRequestRaidInfoOpcode( WorldPacket & recv_data ); @@ -553,7 +552,6 @@ class MANGOS_DLL_SPEC WorldSession void HandlePetSpellAutocastOpcode( WorldPacket& recvPacket ); void HandlePetCastSpellOpcode( WorldPacket& recvPacket ); void HandlePetLearnTalent( WorldPacket& recvPacket ); - void HandleDismissControlledVehicle( WorldPacket& recvPacket ); void HandleSetActionBar(WorldPacket& recv_data); diff --git a/src/shared/Database/SQLStorage.cpp b/src/shared/Database/SQLStorage.cpp index 74248b31c..5badcc2e1 100644 --- a/src/shared/Database/SQLStorage.cpp +++ b/src/shared/Database/SQLStorage.cpp @@ -33,7 +33,7 @@ const char CreatureInfoAddonInfofmt[]="iiiiiiis"; const char EquipmentInfofmt[]="iiii"; const char GameObjectInfosrcfmt[]="iiissiifiiiiiiiiiiiiiiiiiiiiiiiis"; const char GameObjectInfodstfmt[]="iiissiifiiiiiiiiiiiiiiiiiiiiiiiii"; -const char ItemPrototypesrcfmt[]="iiiisiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffiffiffiffiffiiiiiiiiiifiiifiiiiiifiiiiiifiiiiiifiiiiiifiiiisiiiiiiiiiiiiiiiiiiiiiiiiifsiiiiii"; +const char ItemPrototypesrcfmt[]="iiiisiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffiffiffiffiffiiiiiiiiiifiiifiiiiiifiiiiiifiiiiiifiiiiiifiiiisiiiiiiiiiiiiiiiiiiiiiiiiifiisiiii"; const char ItemPrototypedstfmt[]="iiiisiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffiffiffiffiffiiiiiiiiiifiiifiiiiiifiiiiiifiiiiiifiiiiiifiiiisiiiiiiiiiiiiiiiiiiiiiiiiifiiiiiii"; const char PageTextfmt[]="isi"; const char SpellThreatfmt[]="ii";