(svn r19591) -Add: [NoAI] AIRail::GetMaxSpeed(RailType) to get the speed limit of railtypes

pull/155/head
yexo 14 years ago
parent 8e340fe226
commit 01bbb17cb1

@ -1027,6 +1027,7 @@ function Regression::RailTypeList()
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
print(" RailType: " + i);
print(" IsRailTypeAvailable(): " + AIRail.IsRailTypeAvailable(i));
print(" GetMaxSpeed(): " + AIRail.GetMaxSpeed(i));
}
}

@ -7208,6 +7208,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
ListDump:
RailType: 0
IsRailTypeAvailable(): true
GetMaxSpeed(): 0
--Road--
Road

@ -469,3 +469,10 @@ static bool IsValidSignalType(int signal_type)
default: return -1;
}
}
/* static */ int32 AIRail::GetMaxSpeed(RailType railtype)
{
if (!AIRail::IsRailTypeAvailable(railtype)) return -1;
return ::GetRailTypeInfo((::RailType)railtype)->max_speed;
}

@ -440,6 +440,18 @@ public:
* @return The baseprice of building the given object.
*/
static Money GetBuildCost(RailType railtype, BuildType build_type);
/**
* Get the maximum speed of trains running on this railtype.
* @param railtype The railtype to get the maximum speed of.
* @pre IsRailTypeAvailable(railtype)
* @return The maximum speed trains can run on this railtype
* or 0 if there is no limit.
* @note The speed is in OpenTTD's internal speed unit.
* This is mph / 1.6, which is roughly km/h.
* To get km/h multiply this number by 1.00584.
*/
static int32 GetMaxSpeed(RailType railtype);
};
#endif /* AI_RAIL_HPP */

@ -106,6 +106,7 @@ void SQAIRail_Register(Squirrel *engine)
SQAIRail.DefSQStaticMethod(engine, &AIRail::BuildSignal, "BuildSignal", 4, ".iii");
SQAIRail.DefSQStaticMethod(engine, &AIRail::RemoveSignal, "RemoveSignal", 3, ".ii");
SQAIRail.DefSQStaticMethod(engine, &AIRail::GetBuildCost, "GetBuildCost", 3, ".ii");
SQAIRail.DefSQStaticMethod(engine, &AIRail::GetMaxSpeed, "GetMaxSpeed", 2, ".i");
SQAIRail.PostRegister(engine);
}

Loading…
Cancel
Save