diff options
| author | Machiavelli <machiavelli.trinity@gmail.com> | 2011-02-26 23:00:09 +0100 |
|---|---|---|
| committer | Machiavelli <machiavelli.trinity@gmail.com> | 2011-02-26 23:00:09 +0100 |
| commit | 3ac80ee3a48223f25a2a633130de177ffcd5df11 (patch) | |
| tree | 885d5e001fa05e16a2c0683c0e39cb102aa6e353 /src/server/game/Entities/Vehicle | |
| parent | 8497fb27e9ff104e99818fbe2c85eccf25e7931d (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-x | src/server/game/Entities/Vehicle/Vehicle.cpp | 10 |
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(); |
