Add: AI function to get current usage of a group.

pull/78/head
Peter Nelson 5 years ago committed by Niels Martin Hansen
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…
Cancel
Save