Core/Vehicles: Remove now unused variables and apply codestyle in Vehicle class

This commit is contained in:
Machiavelli
2011-06-27 14:36:00 +02:00
parent 249692b54b
commit 8a7957a759
3 changed files with 101 additions and 113 deletions
+2 -2
View File
@@ -16800,7 +16800,7 @@ bool Unit::CheckPlayerCondition(Player* pPlayer)
bool Unit::HandleSpellClick(Unit* clicker, int8 seatId) bool Unit::HandleSpellClick(Unit* clicker, int8 seatId)
{ {
bool success = false; bool success = false;
uint32 spellClickEntry = GetVehicleKit() ? GetVehicleKit()->m_creatureEntry : GetEntry(); uint32 spellClickEntry = GetVehicleKit() ? GetVehicleKit()->GetCreatureEntry() : GetEntry();
SpellClickInfoMapBounds clickPair = sObjectMgr->GetSpellClickInfoMapBounds(spellClickEntry); SpellClickInfoMapBounds clickPair = sObjectMgr->GetSpellClickInfoMapBounds(spellClickEntry);
for (SpellClickInfoMap::const_iterator itr = clickPair.first; itr != clickPair.second; ++itr) for (SpellClickInfoMap::const_iterator itr = clickPair.first; itr != clickPair.second; ++itr)
{ {
@@ -17280,7 +17280,7 @@ void Unit::OutDebugInfo() const
if (IsVehicle()) if (IsVehicle())
{ {
sLog->outStringInLine("Passenger List: "); sLog->outStringInLine("Passenger List: ");
for (SeatMap::iterator itr = GetVehicleKit()->m_Seats.begin(); itr != GetVehicleKit()->m_Seats.end(); ++itr) for (SeatMap::iterator itr = GetVehicleKit()->Seats.begin(); itr != GetVehicleKit()->Seats.end(); ++itr)
if (Unit* passenger = ObjectAccessor::GetUnit(*GetVehicleBase(), itr->second.passenger)) if (Unit* passenger = ObjectAccessor::GetUnit(*GetVehicleBase(), itr->second.passenger))
sLog->outStringInLine(UI64FMTD", ", passenger->GetGUID()); sLog->outStringInLine(UI64FMTD", ", passenger->GetGUID());
sLog->outString(); sLog->outString();
+86 -95
View File
@@ -27,16 +27,16 @@
#include "CreatureAI.h" #include "CreatureAI.h"
#include "ZoneScript.h" #include "ZoneScript.h"
Vehicle::Vehicle(Unit* unit, VehicleEntry const* vehInfo, uint32 creatureEntry) : me(unit), m_vehicleInfo(vehInfo), m_usableSeatNum(0), m_bonusHP(0), m_creatureEntry(creatureEntry) Vehicle::Vehicle(Unit* unit, VehicleEntry const* vehInfo, uint32 creatureEntry) : _me(unit), _vehicleInfo(vehInfo), _usableSeatNum(0), m_bonusHP(0), _creatureEntry(creatureEntry)
{ {
for (uint32 i = 0; i < MAX_VEHICLE_SEATS; ++i) for (uint32 i = 0; i < MAX_VEHICLE_SEATS; ++i)
{ {
if (uint32 seatId = m_vehicleInfo->m_seatID[i]) if (uint32 seatId = _vehicleInfo->m_seatID[i])
if (VehicleSeatEntry const* veSeat = sVehicleSeatStore.LookupEntry(seatId)) if (VehicleSeatEntry const* veSeat = sVehicleSeatStore.LookupEntry(seatId))
{ {
m_Seats.insert(std::make_pair(i, VehicleSeat(veSeat))); m_Seats.insert(std::make_pair(i, VehicleSeat(veSeat)));
if (veSeat->CanEnterOrExit()) if (veSeat->CanEnterOrExit())
++m_usableSeatNum; ++_usableSeatNum;
} }
} }
@@ -51,21 +51,21 @@ Vehicle::~Vehicle()
void Vehicle::Install() void Vehicle::Install()
{ {
if (Creature* creature = me->ToCreature()) if (Creature* creature = _me->ToCreature())
{ {
switch (m_vehicleInfo->m_powerType) switch (_vehicleInfo->m_powerType)
{ {
case POWER_STEAM: case POWER_STEAM:
case POWER_HEAT: case POWER_HEAT:
case POWER_BLOOD: case POWER_BLOOD:
case POWER_OOZE: case POWER_OOZE:
case POWER_WRATH: case POWER_WRATH:
me->setPowerType(POWER_ENERGY); _me->setPowerType(POWER_ENERGY);
me->SetMaxPower(POWER_ENERGY, 100); _me->SetMaxPower(POWER_ENERGY, 100);
break; break;
case POWER_PYRITE: case POWER_PYRITE:
me->setPowerType(POWER_ENERGY); _me->setPowerType(POWER_ENERGY);
me->SetMaxPower(POWER_ENERGY, 50); _me->SetMaxPower(POWER_ENERGY, 50);
break; break;
default: default:
for (uint32 i = 0; i < MAX_SPELL_VEHICLE; ++i) for (uint32 i = 0; i < MAX_SPELL_VEHICLE; ++i)
@@ -79,8 +79,8 @@ void Vehicle::Install()
if (spellInfo->powerType == POWER_ENERGY) if (spellInfo->powerType == POWER_ENERGY)
{ {
me->setPowerType(POWER_ENERGY); _me->setPowerType(POWER_ENERGY);
me->SetMaxPower(POWER_ENERGY, 100); _me->SetMaxPower(POWER_ENERGY, 100);
break; break;
} }
} }
@@ -108,7 +108,7 @@ void Vehicle::InstallAllAccessories(bool evading)
void Vehicle::Uninstall() void Vehicle::Uninstall()
{ {
sLog->outDebug(LOG_FILTER_VEHICLES, "Vehicle::Uninstall Entry: %u, GuidLow: %u", m_creatureEntry, me->GetGUIDLow()); sLog->outDebug(LOG_FILTER_VEHICLES, "Vehicle::Uninstall Entry: %u, GuidLow: %u", _creatureEntry, _me->GetGUIDLow());
RemoveAllPassengers(); RemoveAllPassengers();
if (GetBase()->GetTypeId() == TYPEID_UNIT) if (GetBase()->GetTypeId() == TYPEID_UNIT)
@@ -117,18 +117,18 @@ void Vehicle::Uninstall()
void Vehicle::Reset(bool evading /*= false*/) void Vehicle::Reset(bool evading /*= false*/)
{ {
sLog->outDebug(LOG_FILTER_VEHICLES, "Vehicle::Reset Entry: %u, GuidLow: %u", m_creatureEntry, me->GetGUIDLow()); sLog->outDebug(LOG_FILTER_VEHICLES, "Vehicle::Reset Entry: %u, GuidLow: %u", _creatureEntry, _me->GetGUIDLow());
if (me->GetTypeId() == TYPEID_PLAYER) if (_me->GetTypeId() == TYPEID_PLAYER)
{ {
if (m_usableSeatNum) if (_usableSeatNum)
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_PLAYER_VEHICLE); _me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_PLAYER_VEHICLE);
} }
else else
{ {
ApplyAllImmunities(); ApplyAllImmunities();
InstallAllAccessories(evading); InstallAllAccessories(evading);
if (m_usableSeatNum) if (_usableSeatNum)
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); _me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
} }
if (GetBase()->GetTypeId() == TYPEID_UNIT) if (GetBase()->GetTypeId() == TYPEID_UNIT)
@@ -140,47 +140,47 @@ void Vehicle::ApplyAllImmunities()
// This couldn't be done in DB, because Vehicle's immunities are overriden by Player's ones // This couldn't be done in DB, because Vehicle's immunities are overriden by Player's ones
// Vehicles should be immune on Knockback, Deathgrip ... // Vehicles should be immune on Knockback, Deathgrip ...
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true);
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true);
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_GRIP, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_GRIP, true);
// ... Fear, Snare, Root, Stun ... // ... Fear, Snare, Root, Stun ...
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_FEAR, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_FEAR, true);
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SNARE, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SNARE, true);
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_ROOT, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_ROOT, true);
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_STUN, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_STUN, true);
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STUN, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STUN, true);
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_DISORIENTED, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_DISORIENTED, true);
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_CONFUSE, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_CONFUSE, true);
// Mechanical units & vehicles ( which are not Bosses, they have own immunities in DB ) should be also immune on healing ( exceptions in switch below ) // Mechanical units & vehicles ( which are not Bosses, they have own immunities in DB ) should be also immune on healing ( exceptions in switch below )
if (me->ToCreature() && me->ToCreature()->GetCreatureInfo()->type == CREATURE_TYPE_MECHANICAL && !me->ToCreature()->isWorldBoss()) if (_me->ToCreature() && _me->ToCreature()->GetCreatureInfo()->type == CREATURE_TYPE_MECHANICAL && !_me->ToCreature()->isWorldBoss())
{ {
// Heal & dispel ... // Heal & dispel ...
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL, true);
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_HEAL, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_HEAL, true);
// ... Shield & Immunity grant spells ... // ... Shield & Immunity grant spells ...
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_IMMUNITY, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_IMMUNITY, true);
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_UNATTACKABLE, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_UNATTACKABLE, true);
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_ABSORB, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SCHOOL_ABSORB, true);
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SHIELD, true);
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_IMMUNE_SHIELD , true); _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_IMMUNE_SHIELD , true);
// ... Resistance, Split damage, Speed Increase, ... // ... Resistance, Split damage, Speed Increase, ...
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_DAMAGE_SHIELD, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_DAMAGE_SHIELD, true);
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SPLIT_DAMAGE_PCT, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_SPLIT_DAMAGE_PCT, true);
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_RESISTANCE, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_RESISTANCE, true);
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STAT, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STAT, true);
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, true);
} }
// Different immunities for vehicles goes below // Different immunities for vehicles goes below
switch (GetVehicleInfo()->m_ID) switch (GetVehicleInfo()->m_ID)
{ {
case 160: case 160:
me->SetControlled(true, UNIT_STAT_ROOT); _me->SetControlled(true, UNIT_STAT_ROOT);
me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DECREASE_SPEED, true); _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DECREASE_SPEED, true);
break; break;
default: default:
break; break;
@@ -189,12 +189,12 @@ void Vehicle::ApplyAllImmunities()
void Vehicle::RemoveAllPassengers() void Vehicle::RemoveAllPassengers()
{ {
sLog->outDebug(LOG_FILTER_VEHICLES, "Vehicle::RemoveAllPassengers. Entry: %u, GuidLow: %u", m_creatureEntry, me->GetGUIDLow()); sLog->outDebug(LOG_FILTER_VEHICLES, "Vehicle::RemoveAllPassengers. Entry: %u, GuidLow: %u", _creatureEntry, _me->GetGUIDLow());
// Passengers always cast an aura with SPELL_AURA_CONTROL_VEHICLE on the vehicle // Passengers always cast an aura with SPELL_AURA_CONTROL_VEHICLE on the vehicle
// We just remove the aura and the unapply handler will make the target leave the vehicle. // We just remove the aura and the unapply handler will make the target leave the vehicle.
// We don't need to iterate over m_Seats // We don't need to iterate over m_Seats
me->RemoveAurasByType(SPELL_AURA_CONTROL_VEHICLE); _me->RemoveAurasByType(SPELL_AURA_CONTROL_VEHICLE);
// Following the above logic, this assertion should NEVER fail. // Following the above logic, this assertion should NEVER fail.
// Even in 'hacky' cases, there should at least be VEHICLE_SPELL_RIDE_HARDCODED on us. // Even in 'hacky' cases, there should at least be VEHICLE_SPELL_RIDE_HARDCODED on us.
@@ -257,9 +257,9 @@ void Vehicle::InstallAccessory(uint32 entry, int8 seatId, bool minion, uint8 typ
if (passenger->GetEntry() == entry) if (passenger->GetEntry() == entry)
{ {
ASSERT(passenger->GetTypeId() == TYPEID_UNIT); ASSERT(passenger->GetTypeId() == TYPEID_UNIT);
if (me->GetTypeId() == TYPEID_UNIT) if (_me->GetTypeId() == TYPEID_UNIT)
{ {
if (me->ToCreature()->IsInEvadeMode() && passenger->ToCreature()->IsAIEnabled) if (_me->ToCreature()->IsInEvadeMode() && passenger->ToCreature()->IsAIEnabled)
passenger->ToCreature()->AI()->EnterEvadeMode(); passenger->ToCreature()->AI()->EnterEvadeMode();
return; return;
} }
@@ -268,12 +268,12 @@ void Vehicle::InstallAccessory(uint32 entry, int8 seatId, bool minion, uint8 typ
passenger->ExitVehicle(); // this should not happen passenger->ExitVehicle(); // this should not happen
} }
if (TempSummon* accessory = me->SummonCreature(entry, *me, TempSummonType(type), summonTime)) if (TempSummon* accessory = _me->SummonCreature(entry, *_me, TempSummonType(type), summonTime))
{ {
if (minion) if (minion)
accessory->AddUnitTypeMask(UNIT_MASK_ACCESSORY); accessory->AddUnitTypeMask(UNIT_MASK_ACCESSORY);
if (!me->HandleSpellClick(accessory, seatId)) if (!_me->HandleSpellClick(accessory, seatId))
{ {
accessory->UnSummon(); accessory->UnSummon();
return; return;
@@ -327,19 +327,19 @@ bool Vehicle::AddPassenger(Unit* unit, int8 seatId)
ASSERT(!seat->second.passenger); ASSERT(!seat->second.passenger);
} }
sLog->outDebug(LOG_FILTER_VEHICLES, "Unit %s enter vehicle entry %u id %u dbguid %u seat %d", unit->GetName(), me->GetEntry(), m_vehicleInfo->m_ID, me->GetGUIDLow(), (int32)seat->first); sLog->outDebug(LOG_FILTER_VEHICLES, "Unit %s enter vehicle entry %u id %u dbguid %u seat %d", unit->GetName(), _me->GetEntry(), _vehicleInfo->m_ID, _me->GetGUIDLow(), (int32)seat->first);
seat->second.passenger = unit->GetGUID(); seat->second.passenger = unit->GetGUID();
if (seat->second.seatInfo->CanEnterOrExit()) if (seat->second.seatInfo->CanEnterOrExit())
{ {
ASSERT(m_usableSeatNum); ASSERT(_usableSeatNum);
--m_usableSeatNum; --_usableSeatNum;
if (!m_usableSeatNum) if (!_usableSeatNum)
{ {
if (me->GetTypeId() == TYPEID_PLAYER) if (_me->GetTypeId() == TYPEID_PLAYER)
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_PLAYER_VEHICLE); _me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_PLAYER_VEHICLE);
else else
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); _me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
} }
} }
@@ -355,28 +355,28 @@ bool Vehicle::AddPassenger(Unit* unit, int8 seatId)
unit->m_movementInfo.t_time = 0; // 1 for player unit->m_movementInfo.t_time = 0; // 1 for player
unit->m_movementInfo.t_seat = seat->first; unit->m_movementInfo.t_seat = seat->first;
if (me->GetTypeId() == TYPEID_UNIT if (_me->GetTypeId() == TYPEID_UNIT
&& unit->GetTypeId() == TYPEID_PLAYER && unit->GetTypeId() == TYPEID_PLAYER
&& seat->first == 0 && seat->second.seatInfo->m_flags & VEHICLE_SEAT_FLAG_CAN_CONTROL) && seat->first == 0 && seat->second.seatInfo->m_flags & VEHICLE_SEAT_FLAG_CAN_CONTROL)
{ {
if (!me->SetCharmedBy(unit, CHARM_TYPE_VEHICLE)) if (!_me->SetCharmedBy(unit, CHARM_TYPE_VEHICLE))
ASSERT(false); ASSERT(false);
} }
if (me->IsInWorld()) if (_me->IsInWorld())
{ {
unit->SendClearTarget(); // SMSG_BREAK_TARGET unit->SendClearTarget(); // SMSG_BREAK_TARGET
unit->SetControlled(true, UNIT_STAT_ROOT); // SMSG_FORCE_ROOT - In some cases we send SMSG_SPLINE_MOVE_ROOT here (for creatures) unit->SetControlled(true, UNIT_STAT_ROOT); // SMSG_FORCE_ROOT - In some cases we send SMSG_SPLINE_MOVE_ROOT here (for creatures)
// also adds MOVEMENTFLAG_ROOT // also adds MOVEMENTFLAG_ROOT
unit->SendMonsterMoveTransport(me); // SMSG_MONSTER_MOVE_TRANSPORT unit->SendMonsterMoveTransport(_me); // SMSG_MONSTER_MOVE_TRANSPORT
if (me->GetTypeId() == TYPEID_UNIT) if (_me->GetTypeId() == TYPEID_UNIT)
{ {
if (me->ToCreature()->IsAIEnabled) if (_me->ToCreature()->IsAIEnabled)
me->ToCreature()->AI()->PassengerBoarded(unit, seat->first, true); _me->ToCreature()->AI()->PassengerBoarded(unit, seat->first, true);
// update all passenger's positions // update all passenger's positions
RelocatePassengers(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); RelocatePassengers(_me->GetPositionX(), _me->GetPositionY(), _me->GetPositionZ(), _me->GetOrientation());
} }
} }
@@ -394,36 +394,27 @@ void Vehicle::RemovePassenger(Unit* unit)
SeatMap::iterator seat = GetSeatIteratorForPassenger(unit); SeatMap::iterator seat = GetSeatIteratorForPassenger(unit);
ASSERT(seat != m_Seats.end()); ASSERT(seat != m_Seats.end());
sLog->outDebug(LOG_FILTER_VEHICLES, "Unit %s exit vehicle entry %u id %u dbguid %u seat %d", unit->GetName(), me->GetEntry(), m_vehicleInfo->m_ID, me->GetGUIDLow(), (int32)seat->first); sLog->outDebug(LOG_FILTER_VEHICLES, "Unit %s exit vehicle entry %u id %u dbguid %u seat %d", unit->GetName(), _me->GetEntry(), _vehicleInfo->m_ID, _me->GetGUIDLow(), (int32)seat->first);
seat->second.passenger = 0; seat->second.passenger = 0;
if (seat->second.seatInfo->CanEnterOrExit()) if (seat->second.seatInfo->CanEnterOrExit())
{ {
if (!m_usableSeatNum) if (!_usableSeatNum)
{ {
if (me->GetTypeId() == TYPEID_PLAYER) if (_me->GetTypeId() == TYPEID_PLAYER)
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_PLAYER_VEHICLE); _me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_PLAYER_VEHICLE);
else else
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); _me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
} }
++m_usableSeatNum; ++_usableSeatNum;
} }
unit->ClearUnitState(UNIT_STAT_ONVEHICLE); unit->ClearUnitState(UNIT_STAT_ONVEHICLE);
if (me->GetTypeId() == TYPEID_UNIT && unit->GetTypeId() == TYPEID_PLAYER && seat->first == 0 && seat->second.seatInfo->m_flags & VEHICLE_SEAT_FLAG_CAN_CONTROL) if (_me->GetTypeId() == TYPEID_UNIT && unit->GetTypeId() == TYPEID_PLAYER && seat->first == 0 && seat->second.seatInfo->m_flags & VEHICLE_SEAT_FLAG_CAN_CONTROL)
{ _me->RemoveCharmedBy(unit);
me->RemoveCharmedBy(unit);
if (m_bonusHP) if (_me->IsInWorld())
{
me->SetHealth(me->GetHealth() - m_bonusHP);
me->SetMaxHealth(me->GetMaxHealth() - m_bonusHP);
m_bonusHP = 0;
}
}
if (me->IsInWorld())
{ {
unit->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); unit->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT);
unit->m_movementInfo.t_pos.Relocate(0, 0, 0, 0); unit->m_movementInfo.t_pos.Relocate(0, 0, 0, 0);
@@ -431,12 +422,12 @@ void Vehicle::RemovePassenger(Unit* unit)
unit->m_movementInfo.t_seat = 0; unit->m_movementInfo.t_seat = 0;
} }
if (me->GetTypeId() == TYPEID_UNIT && me->ToCreature()->IsAIEnabled) if (_me->GetTypeId() == TYPEID_UNIT && _me->ToCreature()->IsAIEnabled)
me->ToCreature()->AI()->PassengerBoarded(unit, seat->first, false); _me->ToCreature()->AI()->PassengerBoarded(unit, seat->first, false);
// only for flyable vehicles // only for flyable vehicles
if (unit->HasUnitMovementFlag(MOVEMENTFLAG_FLYING)) if (unit->HasUnitMovementFlag(MOVEMENTFLAG_FLYING))
me->CastSpell(unit, VEHICLE_SPELL_PARACHUTE, true); _me->CastSpell(unit, VEHICLE_SPELL_PARACHUTE, true);
if (GetBase()->GetTypeId() == TYPEID_UNIT) if (GetBase()->GetTypeId() == TYPEID_UNIT)
sScriptMgr->OnRemovePassenger(this, unit); sScriptMgr->OnRemovePassenger(this, unit);
@@ -444,7 +435,7 @@ void Vehicle::RemovePassenger(Unit* unit)
void Vehicle::RelocatePassengers(float x, float y, float z, float ang) void Vehicle::RelocatePassengers(float x, float y, float z, float ang)
{ {
Map* map = me->GetMap(); Map* map = _me->GetMap();
ASSERT(map != NULL); ASSERT(map != NULL);
// not sure that absolute position calculation is correct, it must depend on vehicle orientation and pitch angle // not sure that absolute position calculation is correct, it must depend on vehicle orientation and pitch angle
@@ -466,11 +457,11 @@ void Vehicle::RelocatePassengers(float x, float y, float z, float ang)
void Vehicle::Dismiss() void Vehicle::Dismiss()
{ {
sLog->outDebug(LOG_FILTER_VEHICLES, "Vehicle::Dismiss Entry: %u, GuidLow %u", m_creatureEntry, me->GetGUIDLow()); sLog->outDebug(LOG_FILTER_VEHICLES, "Vehicle::Dismiss Entry: %u, GuidLow %u", _creatureEntry, _me->GetGUIDLow());
Uninstall(); Uninstall();
me->DestroyForNearbyPlayers(); _me->DestroyForNearbyPlayers();
me->CombatStop(); _me->CombatStop();
me->AddObjectToRemoveList(); _me->AddObjectToRemoveList();
} }
void Vehicle::InitMovementInfoForBase() void Vehicle::InitMovementInfoForBase()
@@ -478,15 +469,15 @@ void Vehicle::InitMovementInfoForBase()
uint32 vehicleFlags = GetVehicleInfo()->m_flags; uint32 vehicleFlags = GetVehicleInfo()->m_flags;
if (vehicleFlags & VEHICLE_FLAG_NO_STRAFE) if (vehicleFlags & VEHICLE_FLAG_NO_STRAFE)
me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_NO_STRAFE); _me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_NO_STRAFE);
if (vehicleFlags & VEHICLE_FLAG_NO_JUMPING) if (vehicleFlags & VEHICLE_FLAG_NO_JUMPING)
me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_NO_JUMPING); _me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_NO_JUMPING);
if (vehicleFlags & VEHICLE_FLAG_FULLSPEEDTURNING) if (vehicleFlags & VEHICLE_FLAG_FULLSPEEDTURNING)
me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_FULL_SPEED_TURNING); _me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_FULL_SPEED_TURNING);
if (vehicleFlags & VEHICLE_FLAG_ALLOW_PITCHING) if (vehicleFlags & VEHICLE_FLAG_ALLOW_PITCHING)
me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING); _me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING);
if (vehicleFlags & VEHICLE_FLAG_FULLSPEEDPITCHING) if (vehicleFlags & VEHICLE_FLAG_FULLSPEEDPITCHING)
me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_FULL_SPEED_PITCHING); _me->AddExtraUnitMovementFlag(MOVEMENTFLAG2_FULL_SPEED_PITCHING);
} }
VehicleSeatEntry const* Vehicle::GetSeatForPassenger(Unit* passenger) VehicleSeatEntry const* Vehicle::GetSeatForPassenger(Unit* passenger)
+13 -16
View File
@@ -79,9 +79,9 @@ enum VehicleSpells
struct VehicleSeat struct VehicleSeat
{ {
explicit VehicleSeat(VehicleSeatEntry const *_seatInfo) : seatInfo(_seatInfo), passenger(0) {} explicit VehicleSeat(VehicleSeatEntry const *seatInfo) : SeatInfo(seatInfo), Passenger(0) {}
VehicleSeatEntry const *seatInfo; VehicleSeatEntry const *SeatInfo;
uint64 passenger; uint64 Passenger;
}; };
struct VehicleAccessory struct VehicleAccessory
@@ -114,9 +114,9 @@ class Vehicle
void InstallAllAccessories(bool evading); void InstallAllAccessories(bool evading);
void ApplyAllImmunities(); void ApplyAllImmunities();
Unit* GetBase() const { return me; } Unit* GetBase() const { return _me; }
VehicleEntry const* GetVehicleInfo() const { return m_vehicleInfo; } VehicleEntry const* GetVehicleInfo() const { return _vehicleInfo; }
uint32 const& GetCreatureEntry() const { return m_creatureEntry; } uint32 const& GetCreatureEntry() const { return _creatureEntry; }
bool HasEmptySeat(int8 seatId) const; bool HasEmptySeat(int8 seatId) const;
Unit* GetPassenger(int8 seatId) const; Unit* GetPassenger(int8 seatId) const;
@@ -129,9 +129,9 @@ class Vehicle
void RelocatePassengers(float x, float y, float z, float ang); void RelocatePassengers(float x, float y, float z, float ang);
void RemoveAllPassengers(); void RemoveAllPassengers();
void Dismiss(); void Dismiss();
bool IsVehicleInUse() { return m_Seats.begin() != m_Seats.end(); } bool IsVehicleInUse() { return Seats.begin() != Seats.end(); }
SeatMap m_Seats; SeatMap Seats;
protected: protected:
uint16 GetExtraMovementFlagsForBase() const; uint16 GetExtraMovementFlagsForBase() const;
@@ -140,14 +140,11 @@ class Vehicle
private: private:
SeatMap::iterator GetSeatIteratorForPassenger(Unit* passenger); SeatMap::iterator GetSeatIteratorForPassenger(Unit* passenger);
void InitMovementInfoForBase(); void InitMovementInfoForBase();
protected:
Unit* me;
VehicleEntry const* m_vehicleInfo;
uint32 m_usableSeatNum; // Number of seats that match VehicleSeatEntry::UsableByPlayer, used for proper display flags
uint32 m_bonusHP;
uint32 m_creatureEntry; // Can be different than me->GetBase()->GetEntry() in case of players
void InstallAccessory(uint32 entry, int8 seatId, bool minion, uint8 type, uint32 summonTime); void InstallAccessory(uint32 entry, int8 seatId, bool minion, uint8 type, uint32 summonTime);
Unit* _me;
VehicleEntry const* _vehicleInfo;
uint32 _usableSeatNum; // Number of seats that match VehicleSeatEntry::UsableByPlayer, used for proper display flags
uint32 _creatureEntry; // Can be different than me->GetBase()->GetEntry() in case of players
}; };
#endif #endif