mirror of https://github.com/OpenTTD/OpenTTD
(svn r15485) -Change [API CHANGE]: Split AIIndustry::HasHeliportAndDock and GetHeliportAndDockLocation in HasHeliport/HasDock and GetHeliportLocation/GetDockLocation.
parent
58359b8d6e
commit
cea470e687
|
@ -134,17 +134,39 @@
|
||||||
return (::GetIndustrySpec(::GetIndustry(industry_id)->type)->behaviour & INDUSTRYBEH_BUILT_ONWATER) != 0;
|
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;
|
if (!IsValidIndustry(industry_id)) return false;
|
||||||
|
|
||||||
return (::GetIndustrySpec(::GetIndustry(industry_id)->type)->behaviour & INDUSTRYBEH_AI_AIRSHIP_ROUTES) != 0;
|
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 (!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);
|
const Industry *ind = ::GetIndustry(industry_id);
|
||||||
BEGIN_TILE_LOOP(tile_cur, ind->width, ind->height, ind->xy);
|
BEGIN_TILE_LOOP(tile_cur, ind->width, ind->height, ind->xy);
|
||||||
|
|
|
@ -132,21 +132,38 @@ public:
|
||||||
static bool IsBuiltOnWater(IndustryID industry_id);
|
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.
|
* @param industry_id The index of the industry.
|
||||||
* @pre IsValidIndustry(industry_id).
|
* @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.
|
* @param industry_id The index of the industry.
|
||||||
* @pre IsValidIndustry(industry_id).
|
* @pre IsValidIndustry(industry_id).
|
||||||
* @pre HasHeliportAndDock(industry_id).
|
* @pre HasHeliport(industry_id).
|
||||||
* @return The location of the industry's heliport/dock.
|
* @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.
|
* 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::GetDistanceManhattanToTile, "GetDistanceManhattanToTile", 3, "?ii");
|
||||||
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetDistanceSquareToTile, "GetDistanceSquareToTile", 3, "?ii");
|
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetDistanceSquareToTile, "GetDistanceSquareToTile", 3, "?ii");
|
||||||
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::IsBuiltOnWater, "IsBuiltOnWater", 2, "?i");
|
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::IsBuiltOnWater, "IsBuiltOnWater", 2, "?i");
|
||||||
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::HasHeliportAndDock, "HasHeliportAndDock", 2, "?i");
|
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::HasHeliport, "HasHeliport", 2, "?i");
|
||||||
SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetHeliportAndDockLocation, "GetHeliportAndDockLocation", 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.DefSQStaticMethod(engine, &AIIndustry::GetIndustryType, "GetIndustryType", 2, "?i");
|
||||||
|
|
||||||
SQAIIndustry.PostRegister(engine);
|
SQAIIndustry.PostRegister(engine);
|
||||||
|
|
Loading…
Reference in New Issue