aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Vehicle
diff options
context:
space:
mode:
authorMachiavelli <machiavelli.trinity@gmail.com>2011-02-26 23:00:09 +0100
committerMachiavelli <machiavelli.trinity@gmail.com>2011-02-26 23:00:09 +0100
commit3ac80ee3a48223f25a2a633130de177ffcd5df11 (patch)
tree885d5e001fa05e16a2c0683c0e39cb102aa6e353 /src/server/game/Entities/Vehicle
parent8497fb27e9ff104e99818fbe2c85eccf25e7931d (diff)
Core/Vehicles: Correct usage of npc_spellclick_spells instead of blatant hacks for vehicle entry.
Note: This may break a few vehicles, but only due to the absence of proper, non-hackish data.
Diffstat (limited to 'src/server/game/Entities/Vehicle')
-rwxr-xr-xsrc/server/game/Entities/Vehicle/Vehicle.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp
index e22fe9668e4..d3244cafad1 100755
--- a/src/server/game/Entities/Vehicle/Vehicle.cpp
+++ b/src/server/game/Entities/Vehicle/Vehicle.cpp
@@ -282,7 +282,14 @@ void Vehicle::InstallAccessory(uint32 entry, int8 seatId, bool minion, uint8 typ
if (minion)
accessory->AddUnitTypeMask(UNIT_MASK_ACCESSORY);
- accessory->EnterVehicle(this, seatId);
+
+ if (!me->HandleSpellClick(accessory, seatId))
+ {
+ sLog->outErrorDb("Vehicle entry %u in vehicle_accessory does not have a valid record in npc_spellclick_spells! Calling default EnterVehicle()",
+ me->GetTypeId() == TYPEID_UNIT ? me->GetEntry() : me->GetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID));
+ accessory->EnterVehicle(this, seatId);
+ }
+
// This is not good, we have to send update twice
accessory->SendMovementFlagUpdate();
@@ -358,6 +365,7 @@ bool Vehicle::AddPassenger(Unit *unit, int8 seatId)
if (!me->SetCharmedBy(unit, CHARM_TYPE_VEHICLE))
ASSERT(false);
+ // hack: should be done by aura system
if (VehicleScalingInfo const *scalingInfo = sObjectMgr->GetVehicleScalingInfo(m_vehicleInfo->m_ID))
{
Player *plr = unit->ToPlayer();