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

pull/155/head
yexo 16 years ago
parent efc8a034b1
commit f20378dcf7

@ -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);

@ -132,21 +132,38 @@ public:
static bool IsBuiltOnWater(IndustryID industry_id);
/**
* Does this industry have a heliport and dock?
* Does this industry have a heliport?
* @param industry_id The index of the industry.
* @pre IsValidIndustry(industry_id).
* @return True when the industry has a heliport and dock.
* @return True when the industry has a heliport.
*/
static bool HasHeliportAndDock(IndustryID industry_id);
static bool HasHeliport(IndustryID industry_id);
/**
* Gets the location of the industry's heliport/dock.
* Gets the location of the industry's heliport.
* @param industry_id The index of the industry.
* @pre IsValidIndustry(industry_id).
* @pre HasHeliportAndDock(industry_id).
* @return The location of the industry's heliport/dock.
* @pre HasHeliport(industry_id).
* @return The location of the industry's heliport.
*/
static TileIndex GetHeliportAndDockLocation(IndustryID industry_id);
static TileIndex GetHeliportLocation(IndustryID industry_id);
/**
* Does this industry have a dock?
* @param industry_id The index of the industry.
* @pre IsValidIndustry(industry_id).
* @return True when the industry has a dock.
*/
static bool HasDock(IndustryID industry_id);
/**
* Gets the location of the industry's dock.
* @param industry_id The index of the industry.
* @pre IsValidIndustry(industry_id).
* @pre HasDock(industry_id).
* @return The location of the industry's dock.
*/
static TileIndex GetDockLocation(IndustryID industry_id);
/**
* Get the IndustryType of the industry.

@ -30,8 +30,10 @@ void SQAIIndustry_Register(Squirrel *engine) {
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetDistanceManhattanToTile, "GetDistanceManhattanToTile", 3, "?ii");
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetDistanceSquareToTile, "GetDistanceSquareToTile", 3, "?ii");
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::IsBuiltOnWater, "IsBuiltOnWater", 2, "?i");
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::HasHeliportAndDock, "HasHeliportAndDock", 2, "?i");
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetHeliportAndDockLocation, "GetHeliportAndDockLocation", 2, "?i");
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::HasHeliport, "HasHeliport", 2, "?i");
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetHeliportLocation, "GetHeliportLocation", 2, "?i");
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::HasDock, "HasDock", 2, "?i");
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetDockLocation, "GetDockLocation", 2, "?i");
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetIndustryType, "GetIndustryType", 2, "?i");
SQAIIndustry.PostRegister(engine);

Loading…
Cancel
Save