Mercurial > hg > openttd
changeset 11540:90fff0ff5623 draft
(svn r15901) -Add: AIIndustryType::IsBuiltOnWater(), HasHeliport() and HasDock(). Just like AIIndustry.
author | frosch <frosch@openttd.org> |
---|---|
date | Mon, 30 Mar 2009 20:48:10 +0000 |
parents | 299754b9228a |
children | 400b48f0c92b |
files | bin/ai/regression/regression.nut bin/ai/regression/regression.txt src/ai/api/ai_industrytype.cpp src/ai/api/ai_industrytype.hpp src/ai/api/ai_industrytype.hpp.sq |
diffstat | 5 files changed, 87 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/bin/ai/regression/regression.nut +++ b/bin/ai/regression/regression.nut @@ -635,6 +635,9 @@ print(" GetName(): " + AIIndustryType.GetName(i)); print(" CanBuildIndustry(): " + AIIndustryType.CanBuildIndustry(i)); print(" CanProspectIndustry(): " + AIIndustryType.CanProspectIndustry(i)); + print(" IsBuiltOnWater(): " + AIIndustryType.IsBuiltOnWater(i)); + print(" HasHeliport(): " + AIIndustryType.HasHeliport(i)); + print(" HasDock(): " + AIIndustryType.HasDock(i)); } }
--- a/bin/ai/regression/regression.txt +++ b/bin/ai/regression/regression.txt @@ -6926,6 +6926,9 @@ GetName(): Farm CanBuildIndustry(): false CanProspectIndustry(): false + IsBuiltOnWater(): false + HasHeliport(): false + HasDock(): false Id: 5 IsRawIndustry(): true ProductionCanIncrease(): true @@ -6933,6 +6936,9 @@ GetName(): Oil Rig CanBuildIndustry(): false CanProspectIndustry(): false + IsBuiltOnWater(): true + HasHeliport(): true + HasDock(): true Id: 12 IsRawIndustry(): false ProductionCanIncrease(): true @@ -6940,6 +6946,9 @@ GetName(): Bank CanBuildIndustry(): true CanProspectIndustry(): false + IsBuiltOnWater(): false + HasHeliport(): false + HasDock(): false Id: 11 IsRawIndustry(): true ProductionCanIncrease(): false @@ -6947,6 +6956,9 @@ GetName(): Oil Wells CanBuildIndustry(): false CanProspectIndustry(): false + IsBuiltOnWater(): false + HasHeliport(): false + HasDock(): false Id: 1 IsRawIndustry(): false ProductionCanIncrease(): true @@ -6954,6 +6966,9 @@ GetName(): Power Station CanBuildIndustry(): true CanProspectIndustry(): false + IsBuiltOnWater(): false + HasHeliport(): false + HasDock(): false Id: 3 IsRawIndustry(): true ProductionCanIncrease(): true @@ -6961,6 +6976,9 @@ GetName(): Forest CanBuildIndustry(): false CanProspectIndustry(): false + IsBuiltOnWater(): false + HasHeliport(): false + HasDock(): false Id: 2 IsRawIndustry(): false ProductionCanIncrease(): true @@ -6968,6 +6986,9 @@ GetName(): Sawmill CanBuildIndustry(): true CanProspectIndustry(): false + IsBuiltOnWater(): false + HasHeliport(): false + HasDock(): false Id: 18 IsRawIndustry(): true ProductionCanIncrease(): true @@ -6975,6 +6996,9 @@ GetName(): Iron Ore Mine CanBuildIndustry(): false CanProspectIndustry(): false + IsBuiltOnWater(): false + HasHeliport(): false + HasDock(): false Id: 0 IsRawIndustry(): true ProductionCanIncrease(): true @@ -6982,6 +7006,9 @@ GetName(): Coal Mine CanBuildIndustry(): false CanProspectIndustry(): false + IsBuiltOnWater(): false + HasHeliport(): false + HasDock(): false Id: 8 IsRawIndustry(): false ProductionCanIncrease(): true @@ -6989,6 +7016,9 @@ GetName(): Steel Mill CanBuildIndustry(): true CanProspectIndustry(): false + IsBuiltOnWater(): false + HasHeliport(): false + HasDock(): false Id: 4 IsRawIndustry(): false ProductionCanIncrease(): true @@ -6996,6 +7026,9 @@ GetName(): Oil Refinery CanBuildIndustry(): true CanProspectIndustry(): false + IsBuiltOnWater(): false + HasHeliport(): false + HasDock(): false Id: 6 IsRawIndustry(): false ProductionCanIncrease(): true @@ -7003,6 +7036,9 @@ GetName(): Factory CanBuildIndustry(): true CanProspectIndustry(): false + IsBuiltOnWater(): false + HasHeliport(): false + HasDock(): false --Map-- GetMapSize(): 65536
--- a/src/ai/api/ai_industrytype.cpp +++ b/src/ai/api/ai_industrytype.cpp @@ -111,3 +111,24 @@ uint32 seed = ::InteractiveRandom(); return AIObject::DoCommand(0, industry_type, seed, CMD_BUILD_INDUSTRY); } + +/* static */ bool AIIndustryType::IsBuiltOnWater(IndustryType industry_type) +{ + if (!IsValidIndustryType(industry_type)) return false; + + return (::GetIndustrySpec(industry_type)->behaviour & INDUSTRYBEH_BUILT_ONWATER) != 0; +} + +/* static */ bool AIIndustryType::HasHeliport(IndustryType industry_type) +{ + if (!IsValidIndustryType(industry_type)) return false; + + return (::GetIndustrySpec(industry_type)->behaviour & INDUSTRYBEH_AI_AIRSHIP_ROUTES) != 0; +} + +/* static */ bool AIIndustryType::HasDock(IndustryType industry_type) +{ + if (!IsValidIndustryType(industry_type)) return false; + + return (::GetIndustrySpec(industry_type)->behaviour & INDUSTRYBEH_AI_AIRSHIP_ROUTES) != 0; +}
--- a/src/ai/api/ai_industrytype.hpp +++ b/src/ai/api/ai_industrytype.hpp @@ -113,6 +113,30 @@ * @note If true is returned the money is paid, whether a new industry was build or not. */ static bool ProspectIndustry(IndustryType industry_type); + + /** + * Is this type of industry built on water. + * @param industry_type The type of the industry. + * @pre IsValidIndustryType(industry_type). + * @return True when this type is built on water. + */ + static bool IsBuiltOnWater(IndustryType industry_type); + + /** + * Does this type of industry have a heliport? + * @param industry_type The type of the industry. + * @pre IsValidIndustryType(industry_type). + * @return True when this type has a heliport. + */ + static bool HasHeliport(IndustryType industry_type); + + /** + * Does this type of industry have a dock? + * @param industry_type The type of the industry. + * @pre IsValidIndustryType(industry_type). + * @return True when this type has a dock. + */ + static bool HasDock(IndustryType industry_type); }; #endif /* AI_INDUSTRYTYPE_HPP */
--- a/src/ai/api/ai_industrytype.hpp.sq +++ b/src/ai/api/ai_industrytype.hpp.sq @@ -28,6 +28,9 @@ SQAIIndustryType.DefSQStaticMethod(engine, &AIIndustryType::CanProspectIndustry, "CanProspectIndustry", 2, ".i"); SQAIIndustryType.DefSQStaticMethod(engine, &AIIndustryType::BuildIndustry, "BuildIndustry", 3, ".ii"); SQAIIndustryType.DefSQStaticMethod(engine, &AIIndustryType::ProspectIndustry, "ProspectIndustry", 2, ".i"); + SQAIIndustryType.DefSQStaticMethod(engine, &AIIndustryType::IsBuiltOnWater, "IsBuiltOnWater", 2, ".i"); + SQAIIndustryType.DefSQStaticMethod(engine, &AIIndustryType::HasHeliport, "HasHeliport", 2, ".i"); + SQAIIndustryType.DefSQStaticMethod(engine, &AIIndustryType::HasDock, "HasDock", 2, ".i"); SQAIIndustryType.PostRegister(engine); }