*Fix the bug that all vehicles are broken.
--HG-- branch : trunk
This commit is contained in:
@@ -718,7 +718,7 @@ bool ChatHandler::HandleDebugEnterVehicle(const char * args)
|
||||
if(!passenger || passenger == target)
|
||||
return false;
|
||||
|
||||
((Vehicle*)target)->AddPassenger(passenger);
|
||||
passenger->EnterVehicle(target);
|
||||
|
||||
PSendSysMessage("Creature entered vehicle");
|
||||
return true;
|
||||
|
||||
@@ -1697,7 +1697,7 @@ void WorldSession::HandleSpellClick( WorldPacket & recv_data )
|
||||
return;
|
||||
}
|
||||
|
||||
vehicle->AddPassenger(_player);
|
||||
_player->EnterVehicle(vehicle);
|
||||
}
|
||||
|
||||
void WorldSession::HandleInspectAchievements( WorldPacket & recv_data )
|
||||
|
||||
@@ -475,12 +475,7 @@ void WorldSession::HandleDismissControlledVehicle(WorldPacket &recv_data)
|
||||
MovementInfo mi;
|
||||
ReadMovementInfo(recv_data, &mi);
|
||||
_player->m_movementInfo = mi;
|
||||
|
||||
// using charm guid, because we don't have vehicle guid...
|
||||
if(Vehicle *vehicle = ObjectAccessor::GetVehicle(vehicleGUID))
|
||||
{
|
||||
vehicle->RemovePassenger(_player);
|
||||
}
|
||||
_player->ExitVehicle();
|
||||
}
|
||||
|
||||
void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data)
|
||||
@@ -519,8 +514,7 @@ void WorldSession::HandleRequestVehicleExit(WorldPacket &recv_data)
|
||||
{
|
||||
sLog.outDebug("WORLD: Recvd CMSG_REQUEST_VEHICLE_EXIT");
|
||||
recv_data.hexlike();
|
||||
if(GetPlayer()->m_Vehicle)
|
||||
GetPlayer()->m_Vehicle->RemovePassenger(GetPlayer());
|
||||
GetPlayer()->ExitVehicle();
|
||||
}
|
||||
|
||||
void WorldSession::HandleMountSpecialAnimOpcode(WorldPacket& /*recvdata*/)
|
||||
|
||||
+2
-2
@@ -16569,6 +16569,8 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent)
|
||||
|
||||
void Player::StopCastingCharm()
|
||||
{
|
||||
ExitVehicle();
|
||||
|
||||
Unit* charm = GetCharm();
|
||||
if(!charm)
|
||||
return;
|
||||
@@ -16577,8 +16579,6 @@ void Player::StopCastingCharm()
|
||||
{
|
||||
if(((Creature*)charm)->isPet() && ((Pet*)charm)->getPetType() == POSSESSED_PET)
|
||||
((Pet*)charm)->Remove(PET_SAVE_AS_DELETED);
|
||||
else if(((Creature*)charm)->isVehicle())
|
||||
((Vehicle*)charm)->RemovePassenger(this);
|
||||
}
|
||||
if(GetCharmGUID())
|
||||
{
|
||||
|
||||
@@ -6540,7 +6540,7 @@ void Spell::SummonVehicle(uint32 entry, SummonPropertiesEntry const *properties)
|
||||
if(damage)
|
||||
{
|
||||
m_caster->CastSpell(vehicle, damage, true);
|
||||
vehicle->AddPassenger(m_caster);
|
||||
m_caster->EnterVehicle(vehicle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -10206,7 +10206,7 @@ void Unit::setDeathState(DeathState s)
|
||||
UnsummonAllTotems();
|
||||
RemoveAllControlled();
|
||||
RemoveAllAurasOnDeath();
|
||||
if(m_Vehicle) m_Vehicle->RemovePassenger(this);
|
||||
ExitVehicle();
|
||||
//This is needed to clear visible auras after unit dies
|
||||
|
||||
ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, false);
|
||||
@@ -11172,7 +11172,7 @@ void Unit::RemoveFromWorld()
|
||||
RemoveCharmAuras();
|
||||
RemoveBindSightAuras();
|
||||
RemoveNotOwnSingleTargetAuras();
|
||||
if(m_Vehicle) m_Vehicle->RemovePassenger(this);
|
||||
ExitVehicle();
|
||||
|
||||
if(GetCharmerGUID())
|
||||
sLog.outCrash("Unit %u has charmer guid when removed from world", GetEntry());
|
||||
|
||||
Reference in New Issue
Block a user