[7786] Proper hostile zones marking for PvE servers. Author: Elron

--HG--
branch : trunk
This commit is contained in:
megamage
2009-05-06 16:47:51 -05:00
parent 5e2bec88dc
commit ae4bdc8138
+18 -5
View File
@@ -6181,11 +6181,24 @@ void Player::UpdateZone(uint32 newZone, uint32 newArea)
}
}
pvpInfo.inHostileArea =
GetTeam() == ALLIANCE && zone->team == AREATEAM_HORDE ||
GetTeam() == HORDE && zone->team == AREATEAM_ALLY ||
sWorld.IsPvPRealm() && zone->team == AREATEAM_NONE ||
InBattleGround(); // overwrite for battlegrounds, maybe batter some zone flags but current known not 100% fit to this
// in PvP, any not controlled zone (except zone->team == 6, default case)
// in PvE, only opposition team capital
switch(zone->team)
{
case AREATEAM_ALLY:
pvpInfo.inHostileArea = GetTeam() != ALLIANCE && (sWorld.IsPvPRealm() || zone->flags & AREA_FLAG_CAPITAL);
break;
case AREATEAM_HORDE:
pvpInfo.inHostileArea = GetTeam() != HORDE && (sWorld.IsPvPRealm() || zone->flags & AREA_FLAG_CAPITAL);
break;
case AREATEAM_NONE:
// overwrite for battlegrounds, maybe batter some zone flags but current known not 100% fit to this
pvpInfo.inHostileArea = sWorld.IsPvPRealm() || InBattleGround();
break;
default: // 6 in fact
pvpInfo.inHostileArea = false;
break;
}
if(pvpInfo.inHostileArea) // in hostile area
{