(svn r15485) -Change [API CHANGE]: Split AIIndustry::HasHeliportAndDock and GetHeliportAndDockLocation in HasHeliport/HasDock and GetHeliportLocation/GetDockLocation.

This commit is contained in:
yexo
2009-02-14 21:09:48 +00:00
parent efc8a034b1
commit f20378dcf7
3 changed files with 53 additions and 12 deletions

View File

@@ -134,17 +134,39 @@
return (::GetIndustrySpec(::GetIndustry(industry_id)->type)->behaviour & INDUSTRYBEH_BUILT_ONWATER) != 0;
}
/* static */ bool AIIndustry::HasHeliportAndDock(IndustryID industry_id)
/* static */ bool AIIndustry::HasHeliport(IndustryID industry_id)
{
if (!IsValidIndustry(industry_id)) return false;
return (::GetIndustrySpec(::GetIndustry(industry_id)->type)->behaviour & INDUSTRYBEH_AI_AIRSHIP_ROUTES) != 0;
}
/* static */ TileIndex AIIndustry::GetHeliportAndDockLocation(IndustryID industry_id)
/* static */ TileIndex AIIndustry::GetHeliportLocation(IndustryID industry_id)
{
if (!IsValidIndustry(industry_id)) return INVALID_TILE;
if (!HasHeliportAndDock(industry_id)) return INVALID_TILE;
if (!HasHeliport(industry_id)) return INVALID_TILE;
const Industry *ind = ::GetIndustry(industry_id);
BEGIN_TILE_LOOP(tile_cur, ind->width, ind->height, ind->xy);
if (IsTileType(tile_cur, MP_STATION) && IsOilRig(tile_cur)) {
return tile_cur;
}
END_TILE_LOOP(tile_cur, ind->width, ind->height, ind->xy);
return INVALID_TILE;
}
/* static */ bool AIIndustry::HasDock(IndustryID industry_id)
{
if (!IsValidIndustry(industry_id)) return false;
return (::GetIndustrySpec(::GetIndustry(industry_id)->type)->behaviour & INDUSTRYBEH_AI_AIRSHIP_ROUTES) != 0;
}
/* static */ TileIndex AIIndustry::GetDockLocation(IndustryID industry_id)
{
if (!IsValidIndustry(industry_id)) return INVALID_TILE;
if (!HasDock(industry_id)) return INVALID_TILE;
const Industry *ind = ::GetIndustry(industry_id);
BEGIN_TILE_LOOP(tile_cur, ind->width, ind->height, ind->xy);