Changeset - r23419:6b552b72acc7
[Not reviewed]
master
0 4 0
PeterN - 5 years ago 2019-03-08 18:13:33
peter@fuzzle.org
Add: AI API for vehicle group colours (#7336)
4 files changed with 72 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/script/api/ai/ai_group.hpp.sq
Show inline comments
 
@@ -45,6 +45,10 @@ void SQAIGroup_Register(Squirrel *engine
 
	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.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);
 
}
src/script/api/ai_changelog.hpp
Show inline comments
 
@@ -19,6 +19,12 @@
 
 *
 
 * 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
 
 *
 
 * API additions:
src/script/api/script_group.cpp
Show inline comments
 
@@ -194,3 +194,35 @@
 

	
 
	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;
 
}
src/script/api/script_group.hpp
Show inline comments
 
@@ -214,6 +214,36 @@ public:
 
	 * @return The current usage of the group.
 
	 */
 
	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 */
0 comments (0 inline, 0 general)