public void DrawFilteredWorldZones(IFilter Filter, Graphics g)
{
if (Zones == null)
{
return;
}
foreach (IZone i in Zones)
{
if (Filter is DefaultFilter)
{
DefaultFilter DF = (DefaultFilter)Filter;
Zone Zonei = (Zone)i;
if (!DF.FilterChance && !DF.FilterFlag && !DF.FilterGroup && !DF.FilterLocation &&
!DF.FilterNoGroup && !DF.FilterNoLocation && !DF.FilterTerrain)
{
continue;
}
if (DF.FilterNoGroup)
{
if (Zonei.EncounterGroups != null)
{
if (Zonei.EncounterGroups.Count != 0)
{
continue;
}
}
}
if (DF.FilterNoLocation)
{
if (Zonei.EncounterLocations != null)
{
if (Zonei.EncounterLocations.Count > 0)
{
continue;
}
}
}
if (DF.FilterLocation)
{
if (!Zonei.ContainsLocationWithName(DF.Location))
{
continue;
}
}
if (DF.FilterGroup)
{
if (!Zonei.ContainsGroupWithName(DF.Group))
{
continue;
}
}
if (DF.FilterFlag)
{
if (Zonei.Flags.IndexOf(DF.Flag) == -1)
{
continue;
}
}
}
if (Filter.FilterChance)
{
if (i.Chance != Filter.Chance)
{
continue;
}
}
if (Filter.FilterTerrain)
{
if (i.Terrain != Filter.Terrain)
{
continue;
}
}
Drawing.DrawZone(g, Drawing.FilteredColor, i.X, i.Y);
}
}