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