summaryrefslogtreecommitdiff
path: root/src/script/api/script_group.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/api/script_group.cpp')
-rw-r--r--src/script/api/script_group.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/script/api/script_group.cpp b/src/script/api/script_group.cpp
index 16a50bc17..fcae6c3d2 100644
--- a/src/script/api/script_group.cpp
+++ b/src/script/api/script_group.cpp
@@ -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;
+}