Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_AnalyticsDataCollectionTutorialCompletionModule.c
Go to the documentation of this file.
3{
4 protected ref array<string> m_aTutorialCourseNames = {};
5 protected ref array<string> m_aTutorialStartedCourses = {};
6 protected ref array<string> m_aTutorialFinishedCourses = {};
7
8 //------------------------------------------------------------------------------------------------
9 override void InitModule()
10 {
11 // We only care about Tutorial Game Mode
12 SCR_TutorialGamemodeComponent tutorial = SCR_TutorialGamemodeComponent.GetInstance();
13 if (!tutorial)
14 return;
15
16 SCR_TutorialCoursesConfig config = tutorial.GetCoursesConfig();
17 if (!config)
18 return;
19
20 array<ref SCR_TutorialCourse> tutorialCourses = {};
21 config.GetConfigs(tutorialCourses);
22
23 if (tutorialCourses.IsEmpty())
24 return;
25
26 // Get names of all Tutorial Courses
27 string courseName;
28 foreach (SCR_TutorialCourse tut : tutorialCourses)
29 {
30 courseName = SCR_Enum.GetEnumName(SCR_ETutorialCourses, tut.GetCourseType());
31 m_aTutorialCourseNames.Insert(courseName);
32 }
33
34 Enable();
35
37 if (!playerData)
38 return;
39
40 playerData.dataEvent.array_tutorialstep_id = SCR_AnalyticsDataCollectionHelper.GetShortDataArray(m_aTutorialCourseNames.ToString());
41 }
42
43 //------------------------------------------------------------------------------------------------
44 protected void OnCourseStarted(int courseId)
45 {
46 string courseName = SCR_Enum.GetEnumName(SCR_ETutorialCourses, courseId);
47 if (m_aTutorialStartedCourses.Contains(courseName))
48 return;
49
50 m_aTutorialStartedCourses.Insert(courseName);
51
53 if (!playerData)
54 return;
55
56 playerData.dataEvent.array_tutorialstep_id = SCR_AnalyticsDataCollectionHelper.GetShortDataArray(m_aTutorialCourseNames.ToString());
57 playerData.dataEvent.array_tutorialstep_started = SCR_AnalyticsDataCollectionHelper.GetShortDataArray(m_aTutorialStartedCourses.ToString());
58 }
59
60 //------------------------------------------------------------------------------------------------
61 protected void OnCourseFinished(int courseId)
62 {
63 string courseName = SCR_Enum.GetEnumName(SCR_ETutorialCourses, courseId);
64 if (m_aTutorialFinishedCourses.Contains(courseName))
65 return;
66
67 m_aTutorialFinishedCourses.Insert(courseName);
68
70 if (!playerData)
71 return;
72
73 playerData.dataEvent.array_tutorialstep_completed = SCR_AnalyticsDataCollectionHelper.GetShortDataArray(m_aTutorialFinishedCourses.ToString());
74 }
75
76 //------------------------------------------------------------------------------------------------
77 override void Enable()
78 {
79 SCR_TutorialGamemodeComponent tutorial = SCR_TutorialGamemodeComponent.GetInstance();
80 if (!tutorial)
81 return;
82
83 SCR_TutorialCoursesConfig config = tutorial.GetCoursesConfig();
84 if (!config)
85 return;
86
87 array<ref SCR_TutorialCourse> courses = {};
88 config.GetConfigs(courses);
89
90 if (courses.IsEmpty())
91 return;
92
93 foreach (SCR_TutorialCourse course : courses)
94 {
95 course.GetOnCourseStarted().Insert(OnCourseStarted);
96 course.GetOnCourseFinished().Insert(OnCourseFinished);
97 }
98
99 super.Enable();
100 }
101
102 //------------------------------------------------------------------------------------------------
103 override void Disable()
104 {
105 SCR_TutorialGamemodeComponent tutorial = SCR_TutorialGamemodeComponent.GetInstance();
106 if (!tutorial)
107 return;
108
109 SCR_TutorialCoursesConfig config = tutorial.GetCoursesConfig();
110 if (!config)
111 return;
112
113 array<ref SCR_TutorialCourse> courses = {};
114 config.GetConfigs(courses);
115
116 if (courses.IsEmpty())
117 return;
118
119 foreach (SCR_TutorialCourse course : courses)
120 {
121 course.GetOnCourseStarted().Remove(OnCourseStarted);
122 course.GetOnCourseFinished().Remove(OnCourseFinished);
123 }
124
125 super.Disable();
126 }
127
128 #ifdef ENABLE_DIAG
129 //------------------------------------------------------------------------------------------------
130 override void DrawContent()
131 {
132 DbgUI.Text("Started courses:");
133 foreach (string courseName : m_aTutorialStartedCourses)
134 {
135 DbgUI.Text(courseName);
136 }
137
138 DbgUI.Spacer(16);
139
140 DbgUI.Text("Finished courses:");
141 foreach (string courseName : m_aTutorialFinishedCourses)
142 {
143 DbgUI.Text(courseName);
144 }
145 }
146 #endif
147
148 //------------------------------------------------------------------------------------------------
153}
ArmaReforgerScripted GetGame()
Definition game.c:1398
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
SCR_ETutorialCourses
Definition DbgUI.c:66
ref SCR_PlayerDataEvent dataEvent
static SCR_PlayerData GetPlayerData(int playerID)
proto external PlayerController GetPlayerController()
proto external int GetPlayerId()