private static HousePlacementResult HousePlacementRegionCheck(Mobile from, Map map, Point3D testPoint)
{
Sector sector = map.GetSector(testPoint);
ArrayList list = sector.Regions;
for (int i = 0; i < list.Count; ++i)
{
Region region = (Region)list[i];
if (region.Contains(testPoint))
{
if (region is HouseRegion)
{
return(HousePlacementResult.BadRegion);
}
if (!region.AllowHousing(from, testPoint)) // Cannot place houses in dungeons, towns, treasure map areas etc
{
if (region is TreasureRegion)
{
return(HousePlacementResult.BadRegionHidden);
}
return(HousePlacementResult.BadRegion);
}
if (region is TownshipRegion)
{
if (((TownshipRegion)region).CanBuildHouseInTownship(from) == false)
{
return(HousePlacementResult.BadRegionTownship);
}
}
if (region is NoHousingRegion)
{
return(HousePlacementResult.BadRegion);
}
}
}
return(HousePlacementResult.Valid);
}