mirror of https://github.com/OpenTTD/OpenTTD
Add: AI API for vehicle group colours (#7336)
parent
7ca1793ec4
commit
41563a871b
|
@ -45,6 +45,10 @@ void SQAIGroup_Register(Squirrel *engine)
|
||||||
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.DefSQStaticMethod(engine, &ScriptGroup::GetCurrentUsage, "GetCurrentUsage", 2, ".i");
|
||||||
|
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::SetPrimaryColour, "SetPrimaryColour", 3, ".ii");
|
||||||
|
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::SetSecondaryColour, "SetSecondaryColour", 3, ".ii");
|
||||||
|
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetPrimaryColour, "GetPrimaryColour", 2, ".i");
|
||||||
|
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetSecondaryColour, "GetSecondaryColour", 2, ".i");
|
||||||
|
|
||||||
SQAIGroup.PostRegister(engine);
|
SQAIGroup.PostRegister(engine);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,12 @@
|
||||||
*
|
*
|
||||||
* This version is not yet released. The following changes are not set in stone yet.
|
* This version is not yet released. The following changes are not set in stone yet.
|
||||||
*
|
*
|
||||||
|
* API additions:
|
||||||
|
* \li AIGroup::SetPrimaryColour
|
||||||
|
* \li AIGroup::SetSecondaryColour
|
||||||
|
* \li AIGroup::GetPrimaryColour
|
||||||
|
* \li AIGroup::GetSecondaryColour
|
||||||
|
*
|
||||||
* \b 1.9.0
|
* \b 1.9.0
|
||||||
*
|
*
|
||||||
* API additions:
|
* API additions:
|
||||||
|
|
|
@ -194,3 +194,35 @@
|
||||||
|
|
||||||
return occupancy / vehicle_count;
|
return occupancy / vehicle_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* static */ bool ScriptGroup::SetPrimaryColour(GroupID group_id, ScriptCompany::Colours colour)
|
||||||
|
{
|
||||||
|
EnforcePrecondition(false, IsValidGroup(group_id));
|
||||||
|
|
||||||
|
return ScriptObject::DoCommand(0, group_id, colour << 16, CMD_SET_GROUP_LIVERY);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* static */ bool ScriptGroup::SetSecondaryColour(GroupID group_id, ScriptCompany::Colours colour)
|
||||||
|
{
|
||||||
|
EnforcePrecondition(false, IsValidGroup(group_id));
|
||||||
|
|
||||||
|
return ScriptObject::DoCommand(0, group_id, (1 << 8) | (colour << 16), CMD_SET_GROUP_LIVERY);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* static */ ScriptCompany::Colours ScriptGroup::GetPrimaryColour(GroupID group_id)
|
||||||
|
{
|
||||||
|
EnforcePrecondition(ScriptCompany::Colours::COLOUR_INVALID, IsValidGroup(group_id));
|
||||||
|
|
||||||
|
const Group *g = ::Group::GetIfValid(group_id);
|
||||||
|
if (!HasBit(g->livery.in_use, 0)) return ScriptCompany::Colours::COLOUR_INVALID;
|
||||||
|
return (ScriptCompany::Colours)g->livery.colour1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* static */ ScriptCompany::Colours ScriptGroup::GetSecondaryColour(GroupID group_id)
|
||||||
|
{
|
||||||
|
EnforcePrecondition(ScriptCompany::Colours::COLOUR_INVALID, IsValidGroup(group_id));
|
||||||
|
|
||||||
|
const Group *g = ::Group::GetIfValid(group_id);
|
||||||
|
if (!HasBit(g->livery.in_use, 1)) return ScriptCompany::Colours::COLOUR_INVALID;
|
||||||
|
return (ScriptCompany::Colours)g->livery.colour2;
|
||||||
|
}
|
||||||
|
|
|
@ -214,6 +214,36 @@ public:
|
||||||
* @return The current usage of the group.
|
* @return The current usage of the group.
|
||||||
*/
|
*/
|
||||||
static uint32 GetCurrentUsage(GroupID group_id);
|
static uint32 GetCurrentUsage(GroupID group_id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set primary colour for a group.
|
||||||
|
* @param group_id The group id to set the colour of.
|
||||||
|
* @param colour Colour to set.
|
||||||
|
* @pre IsValidGroup(group_id).
|
||||||
|
*/
|
||||||
|
static bool SetPrimaryColour(GroupID group_id, ScriptCompany::Colours colour);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set secondary colour for a group.
|
||||||
|
* @param group_id The group id to set the colour of.
|
||||||
|
* @param colour Colour to set.
|
||||||
|
* @pre IsValidGroup(group_id).
|
||||||
|
*/
|
||||||
|
static bool SetSecondaryColour(GroupID group_id, ScriptCompany::Colours colour);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get primary colour of a group.
|
||||||
|
* @param group_id The group id to get the colour of.
|
||||||
|
* @pre IsValidGroup(group_id).
|
||||||
|
*/
|
||||||
|
static ScriptCompany::Colours GetPrimaryColour(GroupID group_id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get secondary colour for a group.
|
||||||
|
* @param group_id The group id to get the colour of.
|
||||||
|
* @pre IsValidGroup(group_id).
|
||||||
|
*/
|
||||||
|
static ScriptCompany::Colours GetSecondaryColour(GroupID group_id);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* SCRIPT_GROUP_HPP */
|
#endif /* SCRIPT_GROUP_HPP */
|
||||||
|
|
Loading…
Reference in New Issue