mirror of https://github.com/OpenTTD/OpenTTD
Add: AI function to get current usage of a group.
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::StopAutoReplace, "StopAutoReplace", 3, ".ii");
|
||||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetProfitThisYear, "GetProfitThisYear", 2, ".i");
|
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetProfitThisYear, "GetProfitThisYear", 2, ".i");
|
||||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetProfitLastYear, "GetProfitLastYear", 2, ".i");
|
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetProfitLastYear, "GetProfitLastYear", 2, ".i");
|
||||||
|
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetCurrentUsage, "GetCurrentUsage", 2, ".i");
|
||||||
|
|
||||||
SQAIGroup.PostRegister(engine);
|
SQAIGroup.PostRegister(engine);
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,3 +173,24 @@
|
||||||
|
|
||||||
return ::Group::Get(group_id)->statistics.profit_last_year;
|
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.
|
* @return The current profit the group had last year.
|
||||||
*/
|
*/
|
||||||
static Money GetProfitLastYear(GroupID group_id);
|
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 */
|
#endif /* SCRIPT_GROUP_HPP */
|
||||||
|
|
Loading…
Reference in New Issue