Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_FactionAliasComponent.c
Go to the documentation of this file.
1
/*
2
The faction alias component allows using a mission specific alias for a side when placing down unit spawning slots.
3
The mission creator or admin playing the mission can quickly change which factions each alias represents.
4
*/
5
6
[
ComponentEditorProps
(
category
:
"GameScripted/FactionManager/Components"
, description:
"Base for FactionManager scripted component."
)]
7
class
SCR_FactionAliasComponentClass
:
ScriptComponentClass
8
{
9
}
10
11
class
SCR_FactionAliasComponent :
ScriptComponent
12
{
13
[
Attribute
(
desc
:
"Global faction aliases to allow quick switching of factions for slots."
)]
14
ref array<ref SCR_ScenarioFrameworkFactionAliasConfig> m_aFactionAliases;
15
16
ref
map<FactionKey, ref SCR_ScenarioFrameworkFactionAliasConfig>
m_mAliasToFactionKeyMap =
new
map<FactionKey, ref SCR_ScenarioFrameworkFactionAliasConfig>
();
17
18
static
SCR_FactionAliasComponent m_FactionAliasComponentInstanceForWB;
19
20
21
//------------------------------------------------------------------------------------------------
23
override
void
OnPostInit
(
IEntity
owner)
24
{
25
InitAliasMap
();
26
}
27
28
29
//------------------------------------------------------------------------------------------------
31
void
InitAliasMap
()
32
{
33
m_mAliasToFactionKeyMap.Clear();
34
foreach
(
SCR_ScenarioFrameworkFactionAliasConfig
aliasConfig : m_aFactionAliases)
35
{
36
m_mAliasToFactionKeyMap.Set(aliasConfig.m_sAlias, aliasConfig);
37
}
38
39
SCR_MissionHeader
header =
SCR_MissionHeader
.Cast(
GetGame
().GetMissionHeader());
40
if
(!header)
41
return
;
42
43
SCR_MissionHeaderScenarioFramework
scenarioFrameworkHeader =
SCR_MissionHeaderScenarioFramework
.Cast(header);
44
if
(!scenarioFrameworkHeader)
45
return
;
46
47
foreach
(
SCR_ScenarioFrameworkFactionAliasConfig
aliasConfig : scenarioFrameworkHeader.m_aFactionAliases)
48
{
49
m_mAliasToFactionKeyMap.Set(aliasConfig.m_sAlias, aliasConfig);
50
}
51
}
52
53
//------------------------------------------------------------------------------------------------
55
map<FactionKey, ref SCR_ScenarioFrameworkFactionAliasConfig>
GetFactionAliasMap
()
56
{
57
return
map<FactionKey, ref SCR_ScenarioFrameworkFactionAliasConfig>
.Cast(m_mAliasToFactionKeyMap.Clone());
58
}
59
60
//------------------------------------------------------------------------------------------------
64
FactionKey
ResolveFactionAlias
(
FactionKey
inputFactionKey)
65
{
66
SCR_ScenarioFrameworkFactionAliasConfig
aliasConfig;
67
if
(m_mAliasToFactionKeyMap.Find(inputFactionKey, aliasConfig))
68
return
aliasConfig.m_sFactionKey;
69
else
70
return
inputFactionKey;
71
}
72
73
//------------------------------------------------------------------------------------------------
74
array<string>
GetAllFactionKeyAliases
(
FactionKey
inputFactionKey)
75
{
76
array<ref SCR_ScenarioFrameworkFactionAliasConfig> aliasConfigs = SCR_MapHelperT<FactionKey, ref SCR_ScenarioFrameworkFactionAliasConfig>.GetElements(m_mAliasToFactionKeyMap);
77
array<string> aliases = {};
78
79
foreach
(
SCR_ScenarioFrameworkFactionAliasConfig
config : aliasConfigs)
80
{
81
if
(config.m_sFactionKey == inputFactionKey)
82
aliases.Insert(config.m_sAlias);
83
}
84
85
return
aliases;
86
}
87
88
//------------------------------------------------------------------------------------------------
93
override
void
_WB_OnInit
(
IEntity
owner, inout
vector
mat[4],
IEntitySource
src)
94
{
95
m_FactionAliasComponentInstanceForWB =
this
;
96
}
97
98
//------------------------------------------------------------------------------------------------
102
static
SCR_FactionAliasComponent GetFactionAliasComponentForWB()
103
{
104
#ifndef WORKBENCH
105
Print
(
"ScenarioFramework [SCR_FactionAliasComponent] GetFactionAliasComponentForWB called outside of WORKBENCH. In game time, use `GetGame().GetFactionManager().FindComponent(SCR_FactionAliasComponent)`"
,
LogLevel
.WARNING);
106
#endif
107
return
m_FactionAliasComponentInstanceForWB;
108
}
109
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
ComponentEditorProps
enum EAIGroupCombatMode ComponentEditorProps(category:"GameScripted/AI", description:"Component for utility AI system for groups")
Definition
SCR_AIGroupUtilityComponent.c:12
_WB_OnInit
override void _WB_OnInit(IEntity owner, inout vector mat[4], IEntitySource src)
Definition
SCR_DebugShapeHelperComponent.c:389
GetFactionAliasMap
map< FactionKey, ref SCR_ScenarioFrameworkFactionAliasConfig > GetFactionAliasMap()
Definition
SCR_FactionAliasComponent.c:55
InitAliasMap
void InitAliasMap()
Initializes alias map from both component instance and overriden by the mission header.
Definition
SCR_FactionAliasComponent.c:31
ResolveFactionAlias
FactionKey ResolveFactionAlias(FactionKey inputFactionKey)
Definition
SCR_FactionAliasComponent.c:64
GetAllFactionKeyAliases
array< string > GetAllFactionKeyAliases(FactionKey inputFactionKey)
Definition
SCR_FactionAliasComponent.c:74
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
category
params category
Definition
SCR_VehicleDamageManagerComponent.c:302
FactionKey
Definition
FactionKey.c:3
IEntity
Definition
IEntity.c:13
IEntitySource
Definition
IEntitySource.c:13
SCR_FactionAliasComponentClass
Definition
SCR_FactionAliasComponent.c:8
SCR_MissionHeader
Definition
SCR_MissionHeader.c:2
SCR_MissionHeaderScenarioFramework
Definition
SCR_MissionHeaderScenarioFramework.c:2
SCR_ScenarioFrameworkFactionAliasConfig
Definition
SCR_ScenarioFrameworkFactionAliasConfig.c:3
ScriptComponentClass
Definition
ScriptComponentClass.c:8
ScriptComponent
Definition
ScriptComponent.c:24
map
Definition
Types.c:486
vector
Definition
vector.c:13
Print
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
LogLevel
Enum with severity of the logging message.
Definition
LogLevel.c:14
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
OnPostInit
@ OnPostInit
Definition
SndComponentCallbacks.c:15
scripts
Game
GameMode
FactionManager
SCR_FactionAliasComponent.c
Generated by
1.17.0