diff options
author | megamage <none@none> | 2009-05-27 12:42:38 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-05-27 12:42:38 -0500 |
commit | ffca6ec384419fab9b9217fc39e922f47c5d65ba (patch) | |
tree | 2c60a1ee02be20e85ccb08aa362d0bc8a3fd6736 /src | |
parent | 75942caacb0f098b26e77260a8821fe853091122 (diff) |
*Change vehicle faction the same as the driver's when driver enters it.
*Fix 3593 sql.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Unit.cpp | 12 | ||||
-rw-r--r-- | src/game/Vehicle.cpp | 2 |
2 files changed, 8 insertions, 6 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index e2db82879a4..ad210ad8fd6 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -13626,16 +13626,16 @@ void Unit::RestoreFaction() ((Player*)this)->setFactionForRace(getRace()); else { - CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo(); - - if(((Creature*)this)->isPet()) + if(((Creature*)this)->HasSummonMask(SUMMON_MASK_MINION)) { if(Unit* owner = GetOwner()) + { setFaction(owner->getFaction()); - else if(cinfo) - setFaction(cinfo->faction_A); + return; + } } - else if(cinfo) // normal creature + + if(CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo()) // normal creature setFaction(cinfo->faction_A); } } diff --git a/src/game/Vehicle.cpp b/src/game/Vehicle.cpp index bfc87011761..0bcdf088bc2 100644 --- a/src/game/Vehicle.cpp +++ b/src/game/Vehicle.cpp @@ -245,6 +245,7 @@ bool Vehicle::AddPassenger(Unit *unit, int8 seatId) if(seat->first == 0 && seat->second.seatInfo->IsUsable()) // not right { + setFaction(unit->getFaction()); ((Player*)unit)->SetCharm(this, true); ((Player*)unit)->SetViewpoint(this, true); ((Player*)unit)->VehicleSpellInitialize(); @@ -289,6 +290,7 @@ void Vehicle::RemovePassenger(Unit *unit) if(unit->GetTypeId() == TYPEID_PLAYER && seat->first == 0 && seat->second.seatInfo->IsUsable()) { + RestoreFaction(); ((Player*)unit)->SetCharm(this, false); ((Player*)unit)->SetViewpoint(this, false); ((Player*)unit)->SendRemoveControlBar(); |