Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_DSConfig.c
Go to the documentation of this file.
1
4
6{
7 protected const string DEFAULT_FILE_NAME = "GeneratedServerConfig";
8
9 protected ref array<ref SCR_WidgetListEntry> m_aDSConfigEntries = {};
10
12
13 //------------------------------------------------------------------------------------------------
15 {
16 game = new DSGameConfig();
17 game.gameProperties = new SCR_DSGameProperties();
18 game.mods = {};
19
20 // Register queue settings
22 RegV("operating");
23 }
24
25 //------------------------------------------------------------------------------------------------
27 void StoreFullJson(array<ref SCR_WidgetListEntry> entries, array<ref DSMod> modList, WorkshopItem scenarioMod)
28 {
29 m_aDSConfigEntries = entries;
30
31 // Config
32 bindAddress = FindValue("bindAddress");
33 bindPort = StringToNumber(FindValue("bindPort"));
34 publicAddress = FindValue("publicAddress");
35 publicPort = StringToNumber(FindValue("publicPort"));
36
37 // Game
38 game.name = FindValue("name");
39 game.maxPlayers = StringToNumber(FindValue("maxPlayers"));
40 game.password = FindValue("password");
41 game.passwordAdmin = FindValue("passwordAdmin");
43 game.crossPlatform = SCR_JsonApiStructHandler.StringToBool(FindValue("crossPlatform"));
44
45 // Game properties
46 SCR_DSGameProperties gamePropertiesSCr = SCR_DSGameProperties.Cast(game.gameProperties);
47
48 if (gamePropertiesSCr)
49 {
50 gamePropertiesSCr.battlEye = SCR_JsonApiStructHandler.StringToBool(FindValue("battlEye"));
51 gamePropertiesSCr.disableThirdPerson = SCR_JsonApiStructHandler.StringToBool(FindValue("disableThirdPerson"));
52 gamePropertiesSCr.VONDisableUI = SCR_JsonApiStructHandler.StringToBool(FindValue("VONDisableUI"));
53 gamePropertiesSCr.VONDisableDirectSpeechUI = SCR_JsonApiStructHandler.StringToBool(FindValue("VONDisableDirectSpeechUI"));
54 gamePropertiesSCr.VONCanTransmitCrossFaction = SCR_JsonApiStructHandler.StringToBool(FindValue("VONCanTransmitCrossFaction"));
55 gamePropertiesSCr.serverMaxViewDistance = StringToNumber(FindValue("serverMaxViewDistance"));
56 gamePropertiesSCr.networkViewDistance = StringToNumber(FindValue("networkViewDistance"));
57 gamePropertiesSCr.serverMinGrassDistance = StringToNumber(FindValue("serverMinGrassDistance"));
58 }
59
60 // Scenario
61 game.scenarioId = FindValue("scenarioId");
62
63 // Mods
64 game.mods = modList;
65
66 /*if (!game.name.IsEmpty())
67 m_sConfigName = game.name; */
68
69 // Scenario mod
70 if (scenarioMod)
71 {
72 game.hostedScenarioModId = scenarioMod.Id();
73
74 // Check mod in list
75 bool inList = false;
76
77 for (int i = 0, count = game.mods.Count(); i < count; i++)
78 {
79 if (game.mods[i].modId == scenarioMod.Id())
80 {
81 inList = true;
82 break;
83 }
84 }
85
86 // Add to the list
87 if (!inList)
88 {
89 DSMod scenarioDSMod = new DSMod();
90 scenarioDSMod.modId = scenarioMod.Id();
91 scenarioDSMod.name = scenarioMod.Name();
92 scenarioDSMod.version = scenarioMod.GetActiveRevision().GetVersion();
93
94
95 game.mods.Insert(scenarioDSMod);
96 }
97 }
98
99 // Join queue
100 operating.joinQueue.maxSize = StringToNumber(FindValue("joinQueueMaxSize"));
101 }
102
103 //------------------------------------------------------------------------------------------------
105 {
106 string name = FindValue("fileName");
107 if (name != "")
108 return name;
109
110 name = FindValue("name");
111 if (name != "")
112 return name;
113
114 return DEFAULT_FILE_NAME;
115 }
116
117 //------------------------------------------------------------------------------------------------
118 // Protected
119 //------------------------------------------------------------------------------------------------
120
121 //------------------------------------------------------------------------------------------------
123 protected string FindValue(string propertyName, string groupTag = "")
124 {
125 string nameTrimmed = "";
126
127 for (int i = 0, count = m_aDSConfigEntries.Count(); i < count; i++)
128 {
129 nameTrimmed = m_aDSConfigEntries[i].GetPropertyName();
130 nameTrimmed = nameTrimmed.Trim();
131
132 if (groupTag == "")
133 {
134 // Has given property name
135 if (nameTrimmed == propertyName)
136 return m_aDSConfigEntries[i].ValueAsString();
137 }
138 else
139 {
140 // Has propery and group
141 if (nameTrimmed == propertyName && m_aDSConfigEntries[i].GetGroupTag() == groupTag)
142 return m_aDSConfigEntries[i].ValueAsString();
143 }
144 }
145
146 return "";
147 }
148
149 //------------------------------------------------------------------------------------------------
150 protected float StringToNumber(string str)
151 {
152 if (str.IsEmpty())
153 return 0;
154
155 return str.ToFloat();
156 }
157}
158
159//------------------------------------------------------------------------------------------------
160class SCR_DSGameProperties : DSGameProperties
161{
162 bool disableThirdPerson = false;
163 bool VONDisableUI = false;
169
170 //------------------------------------------------------------------------------------------------
172 {
173 RegV("serverMaxViewDistance");
174 RegV("networkViewDistance");
175 RegV("serverMinGrassDistance");
176 }
177
178 //------------------------------------------------------------------------------------------------
179 override void OnPack()
180 {
181 super.OnPack();
182
183 UnregV("disableThirdPerson");
184 StoreBoolean("disableThirdPerson", disableThirdPerson);
185 UnregV("VONDisableUI");
186 StoreBoolean("VONDisableUI", VONDisableUI);
187 UnregV("VONDisableDirectSpeechUI");
188 StoreBoolean("VONDisableDirectSpeechUI", VONDisableDirectSpeechUI);
189 UnregV("VONCanTransmitCrossFaction");
190 StoreBoolean("VONCanTransmitCrossFaction", VONCanTransmitCrossFaction);
191 }
192
193 //------------------------------------------------------------------------------------------------
194 override void OnExpand()
195 {
196 RegV("disableThirdPerson");
197 RegV("VONDisableUI");
198 RegV("VONDisableDirectSpeechUI");
199 RegV("VONCanTransmitCrossFaction");
200 }
201}
202
203class SCR_DSOperating : JsonApiStruct
204{
205 int slotReservationTimeout = 60;
206 ref SCR_DSJoinQueue joinQueue;
207
208 //------------------------------------------------------------------------------------------------
209 void SCR_DSOperating()
210 {
211 RegV("slotReservationTimeout");
212
213 joinQueue = new SCR_DSJoinQueue();
214 RegV("joinQueue");
215 }
216}
217
219{
221
222 //------------------------------------------------------------------------------------------------
224 {
225 RegV("maxSize");
226 }
227}
int publicPort
Definition DSConfig.c:79
void DSConfig()
Definition DSConfig.c:83
string publicAddress
Definition DSConfig.c:78
DSMod bindAddress
int bindPort
Definition DSConfig.c:76
ref DSGameConfig game
Definition DSConfig.c:81
override void OnPack()
void SCR_DSJoinQueue()
SCR_DSOperating maxSize
int networkViewDistance
float serverMaxViewDistance
SCR_DSConfig disableThirdPerson
bool VONCanTransmitCrossFaction
bool VONDisableDirectSpeechUI
bool VONDisableUI
void SCR_DSGameProperties()
int serverMinGrassDistance
override void OnExpand()
base classes for filtering in server browser
void SCR_DSConfig()
void StoreFullJson(array< ref SCR_WidgetListEntry > entries, array< ref DSMod > modList, WorkshopItem scenarioMod)
Store all json values by groups.
string FindValue(string propertyName, string groupTag="")
Return value as string by property name.
const string DEFAULT_FILE_NAME
Definition SCR_DSConfig.c:7
string GetConfigName()
ref array< ref SCR_WidgetListEntry > m_aDSConfigEntries
Definition SCR_DSConfig.c:9
ref SCR_DSOperating operating
float StringToNumber(string str)
Handler for json api struct values.
static bool StringToBool(string str)
Workshop Item instance.