*Wintersgrasp - prevents team from using vehicles to damage their own buildings, by Spp

*Wintersgrasp - restore proper faction of units in Unit::RestoreFaction(), don't just always use faction_A, by Spp

--HG--
branch : trunk
This commit is contained in:
maximius
2009-10-13 16:16:45 -07:00
parent f413a98862
commit 8a5ac3834d
3 changed files with 42 additions and 2 deletions

View File

@@ -7038,7 +7038,22 @@ void Spell::EffectRedirectThreat(uint32 /*i*/)
void Spell::EffectWMODamage(uint32 /*i*/)
{
if(gameObjTarget && gameObjTarget->GetGoType() == GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING)
gameObjTarget->TakenDamage((uint32)damage);
{
Unit *caster = m_originalCaster;
if(!caster)
return;
const GameObjectInfo *gInfo = objmgr.GetGameObjectInfo(gameObjTarget->GetEntry());
if (!gInfo)
return;
FactionTemplateEntry const *casterft, *goft;
casterft = caster->getFactionTemplateEntry();
goft = sFactionTemplateStore.LookupEntry(gInfo->faction);
// Do not allow to damage GO's of friendly factions (ie: Wintergrasp Walls)
if (casterft && goft && !casterft->IsFriendlyTo(*goft))
gameObjTarget->TakenDamage((uint32)damage);
}
}
void Spell::EffectWMORepair(uint32 /*i*/)