*Fix the bug that all vehicles are broken.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-04-21 14:05:54 -05:00
parent e20e65ced9
commit 297498f1f7
6 changed files with 9 additions and 15 deletions
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -1697,7 +1697,7 @@ void WorldSession::HandleSpellClick( WorldPacket & recv_data )
return;
}
vehicle->AddPassenger(_player);
_player->EnterVehicle(vehicle);
}
void WorldSession::HandleInspectAchievements( WorldPacket & recv_data )
+2 -8
View File
@@ -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
View File
@@ -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())
{
+1 -1
View File
@@ -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
View File
@@ -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());