Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_ScenarioFrameworkActivationConditionBase.c
Go to the documentation of this file.
3{
4 [Attribute(desc: "If set to true, when this Condition performs certain methods, it will break the breakpoint in the Script Editor in respective methods. This can be also set during runtime via Debug Menu > ScenarioFramework > Condition Inspector")]
5 bool m_bDebug;
6
7 //------------------------------------------------------------------------------------------------
11 bool Init(IEntity entity);
12
13 //------------------------------------------------------------------------------------------------
21 static bool EvaluateEmptyOrConditions(SCR_EScenarioFrameworkLogicOperators operator, notnull array<ref SCR_ScenarioFrameworkActivationConditionBase> activationConditions, IEntity entity)
22 {
23 if (activationConditions.IsEmpty())
24 return true;
25 return EvaluateConditions(operator, activationConditions, entity);
26 }
27
28 //------------------------------------------------------------------------------------------------
36 static bool EvaluateConditions(SCR_EScenarioFrameworkLogicOperators operator, notnull array<ref SCR_ScenarioFrameworkActivationConditionBase> activationConditions, IEntity entity)
37 {
38 switch (operator)
39 {
41 return EvaluateConditionsAND(activationConditions, entity);
42
44 return EvaluateConditionsOR(activationConditions, entity);
45
47 return EvaluateConditionsNAND(activationConditions, entity);
48
50 return EvaluateConditionsXOR(activationConditions, entity);
51 }
52
53 PrintFormat("[SCR_ScenarioFrameworkActionBasedOnConditions] Unknown operator: %1", operator, level: LogLevel.ERROR);
54 return false;
55 }
56
57 //------------------------------------------------------------------------------------------------
64 static bool EvaluateConditionsAND(array<ref SCR_ScenarioFrameworkActivationConditionBase> activationConditions, IEntity entity)
65 {
66 if (activationConditions.IsEmpty())
67 return false;
68
69 foreach (SCR_ScenarioFrameworkActivationConditionBase activationCondition : activationConditions)
70 {
71 if (!activationCondition.Init(entity))
72 return false;
73 }
74
75 return true;
76 }
77
78 //------------------------------------------------------------------------------------------------
84 static bool EvaluateConditionsOR(array<ref SCR_ScenarioFrameworkActivationConditionBase> activationConditions, IEntity entity)
85 {
86 foreach (SCR_ScenarioFrameworkActivationConditionBase activationCondition : activationConditions)
87 {
88 if (activationCondition.Init(entity))
89 return true;
90 }
91
92 return false;
93 }
94
95 //------------------------------------------------------------------------------------------------
102 static bool EvaluateConditionsNAND(array<ref SCR_ScenarioFrameworkActivationConditionBase> activationConditions, IEntity entity)
103 {
104 return !EvaluateConditionsAND(activationConditions, entity);
105 }
106
107 //------------------------------------------------------------------------------------------------
113 static bool EvaluateConditionsXOR(array<ref SCR_ScenarioFrameworkActivationConditionBase> activationConditions, IEntity entity)
114 {
115 bool priorSuccess = false;
116 foreach (SCR_ScenarioFrameworkActivationConditionBase activationCondition : activationConditions)
117 {
118 bool success = activationCondition.Init(entity);
119 if (priorSuccess && success)
120 return false;
121
122 priorSuccess |= success;
123 }
124 return priorSuccess;
125 }
126}
override void Init()
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
LogLevel
Enum with severity of the logging message.
Definition LogLevel.c:14
proto void PrintFormat(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL, LogLevel level=LogLevel.NORMAL)
SCR_FieldOfViewSettings Attribute