mirror of https://github.com/OpenTTD/OpenTTD.git
Add: AI function to get current usage of a group.
This commit is contained in:
parent
e0c2ad1b65
commit
5d3ccae6c5
|
@ -44,6 +44,7 @@ void SQAIGroup_Register(Squirrel *engine)
|
|||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::StopAutoReplace, "StopAutoReplace", 3, ".ii");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetProfitThisYear, "GetProfitThisYear", 2, ".i");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetProfitLastYear, "GetProfitLastYear", 2, ".i");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetCurrentUsage, "GetCurrentUsage", 2, ".i");
|
||||
|
||||
SQAIGroup.PostRegister(engine);
|
||||
}
|
||||
|
|
|
@ -173,3 +173,24 @@
|
|||
|
||||
return ::Group::Get(group_id)->statistics.profit_last_year;
|
||||
}
|
||||
|
||||
/* static */ uint32 ScriptGroup::GetCurrentUsage(GroupID group_id)
|
||||
{
|
||||
if (!IsValidGroup(group_id)) return -1;
|
||||
|
||||
uint32 occupancy = 0;
|
||||
uint32 vehicle_count = 0;
|
||||
|
||||
const Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
if (v->group_id != group_id) continue;
|
||||
if (!v->IsPrimaryVehicle()) continue;
|
||||
|
||||
occupancy += v->trip_occupancy;
|
||||
vehicle_count++;
|
||||
}
|
||||
|
||||
if (vehicle_count == 0) return -1;
|
||||
|
||||
return occupancy / vehicle_count;
|
||||
}
|
||||
|
|
|
@ -205,6 +205,14 @@ public:
|
|||
* @return The current profit the group had last year.
|
||||
*/
|
||||
static Money GetProfitLastYear(GroupID group_id);
|
||||
|
||||
/**
|
||||
* Get the current vehicle usage of a group.
|
||||
* @param group_id The group to get the current usage of.
|
||||
* @pre IsValidGroup(group_id).
|
||||
* @return The current usage of the group.
|
||||
*/
|
||||
static uint32 GetCurrentUsage(GroupID group_id);
|
||||
};
|
||||
|
||||
#endif /* SCRIPT_GROUP_HPP */
|
||||
|
|
Loading…
Reference in New Issue