mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 06:15:04 +00:00
(svn r19591) -Add: [NoAI] AIRail::GetMaxSpeed(RailType) to get the speed limit of railtypes
This commit is contained in:
parent
737b003c8a
commit
a7e31778b3
@ -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…
Reference in New Issue
Block a user