-
-
Notifications
You must be signed in to change notification settings - Fork 323
Expand file tree
/
Copy pathinit_presets.sqf
More file actions
327 lines (298 loc) · 20.4 KB
/
init_presets.sqf
File metadata and controls
327 lines (298 loc) · 20.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
KPLIB_initPresets = false;
private _start = diag_ticktime;
if (isServer) then {
["----- Server starts preset initialization -----", "PRESETS"] call KPLIB_fnc_log;
["Not found vehicles listed below are not an issue in general. It just sorts out vehicles from not loaded mods.", "PRESETS"] call KPLIB_fnc_log;
["Only if you e.g. use a CUP preset and you get messages about missing CUP classes, then check your loaded mods.", "PRESETS"] call KPLIB_fnc_log;
};
switch (KP_liberation_preset_blufor) do {
case 1: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\apex.sqf";};
case 2: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\3cbBAF_mtp.sqf";};
case 3: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\3cbBAF_des.sqf";};
case 4: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\bwmod.sqf";};
case 5: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\bwmod_des.sqf";};
case 6: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\rhs_usaf_wdl.sqf";};
case 7: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\rhs_usaf_des.sqf";};
case 8: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\rhs_afrf.sqf";};
case 9: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_west.sqf";};
case 10: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_west_win.sqf";};
case 11: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_east.sqf";};
case 12: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_east_win.sqf";};
case 13: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\csat.sqf";};
case 14: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\csat_apex.sqf";};
case 15: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\unsung.sqf";};
case 16: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_BAF_Desert.sqf";};
case 17: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_BAF_Woodland.sqf";};
case 18: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USMC_Desert.sqf";};
case 19: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USMC_Woodland.sqf";};
case 20: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USA_Desert.sqf";};
case 21: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USA_Woodland.sqf";};
case 22: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_CDF.sqf";};
case 23: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ACR_Desert.sqf";};
case 24: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ACR_Woodland.sqf";};
case 25: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ChDKZ.sqf";};
case 26: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_SLA.sqf";};
case 27: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_TakiArmy.sqf";};
case 28: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\sfp_wdl.sqf";};
case 29: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\sfp_des.sqf";};
case 30: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\enoch.sqf";};
default {[] call compileFinal preprocessFileLineNumbers "presets\blufor\custom.sqf";};
};
switch (KP_liberation_preset_opfor) do {
case 1: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\apex.sqf";};
case 2: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\rhs_afrf.sqf";};
case 3: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\takistan.sqf";};
case 4: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\islamic_state.sqf";};
case 5: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\SLA.sqf";};
case 6: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\aaf.sqf";};
case 7: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\nato.sqf";};
case 8: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\gm_west.sqf";};
case 9: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\gm_west_win.sqf";};
case 10: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\gm_east.sqf";};
case 11: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\gm_east_win.sqf";};
case 12: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\unsung.sqf";};
case 13: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_SLA.sqf";};
case 14: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_TakiArmy.sqf";};
case 15: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_ChDKZ.sqf";};
case 16: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_AFRF_MSV.sqf";};
case 17: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_AFRF_ModernMSV.sqf";};
case 18: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_CDF.sqf";};
case 19: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_BAF_Desert.sqf";};
case 20: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_BAF_Woodland.sqf";};
case 21: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\rhs_usaf_wdl.sqf";};
default {[] call compileFinal preprocessFileLineNumbers "presets\opfor\custom.sqf";};
};
switch (KP_liberation_preset_resistance) do {
case 1: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\apex.sqf";};
case 2: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\rhs_gref.sqf";};
case 3: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\middle_eastern.sqf";};
case 4: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\RACS.sqf";};
case 5: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\germany.sqf";};
case 6: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\unsung.sqf";};
case 7: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\CUP_TakiLocals.sqf";};
case 8: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\CUP_NAPA.sqf";};
default {[] call compileFinal preprocessFileLineNumbers "presets\resistance\custom.sqf";};
};
switch (KP_liberation_preset_civilians) do {
case 1: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\apex.sqf";};
case 2: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\middle_eastern.sqf";};
case 3: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\RDSCiv.sqf";};
case 4: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\germany.sqf";};
case 5: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\unsung.sqf";};
case 6: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\CUP_TakiCivs.sqf";};
case 7: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\CUP_ChernoCivs.sqf";};
default {[] call compileFinal preprocessFileLineNumbers "presets\civilians\custom.sqf";};
};
// Prices for the blufor infantry squads (supplies, ammo, fuel)
KPLIB_b_allSquads = [
[blufor_squad_inf_light,200,0,0],
[blufor_squad_inf,300,0,0],
[blufor_squad_at,200,250,0],
[blufor_squad_aa,200,250,0],
[blufor_squad_recon,250,0,0],
[blufor_squad_para,200,0,0]
];
// Squad names for build menu
squads_names = [
localize "STR_LIGHT_RIFLE_SQUAD",
localize "STR_RIFLE_SQUAD",
localize "STR_AT_SQUAD",
localize "STR_AA_SQUAD",
localize "STR_RECON_SQUAD",
localize "STR_PARA_SQUAD"
];
// Classnames of objects which should be ignored when building
GRLIB_ignore_colisions_when_building = [
"Land_HelipadSquare_F",
"Land_TentHangar_V1_F",
"Land_runway_edgelight",
"Land_runway_edgelight_blue_F",
"Land_Flush_Light_green_F",
"Land_Flush_Light_red_F",
"Land_Flush_Light_yellow_F",
"TMR_Autorest_Georef",
"Flag_NATO_F",
"Flag_White_F",
"Flag_RedCrystal_F",
"CamoNet_BLUFOR_F",
"CamoNet_BLUFOR_open_F",
"CamoNet_BLUFOR_big_F",
"Land_PortableLight_single_F",
"Land_PortableLight_double_F",
"Land_HelipadCircle_F",
"Land_HelipadRescue_F",
"Helipad",
"LAND_uns_Heli_pad",
"LAND_uns_evac_pad",
"PortableHelipadLight_01_blue_F",
"PortableHelipadLight_01_green_F",
"PortableHelipadLight_01_red_F",
"Land_BagFence_Round_F",
"Land_BagFence_Short_F",
"Land_BagFence_Long_F",
"Land_BagFence_Corner_F",
"Land_BagFence_End_F",
"Land_Sign_WarningMilitaryArea_F",
"Land_Sign_WarningMilAreaSmall_F",
"Land_Sign_WarningMilitaryVehicles_F",
"Land_Razorwire_F",
"Sign_Sphere100cm_F",
"Land_ClutterCutter_large_F",
"Land_HighVoltageColumnWire_F",
"Land_PowerWireBig_left_F",
"B_HMG_01_F", // Mk30A HMG .50
"B_HMG_01_high_F", // Mk30 HMG .50 (Raised)
"B_HMG_01_A_F", // Mk30 HMG .50 (Autonomous)
"B_GMG_01_F", // Mk32A GMG 20mm
"B_GMG_01_high_F", // Mk32 GMG 20mm (Raised)
"B_GMG_01_A_F", // Mk32 GMG 20mm (Autonomous)
"B_static_AT_F", // Static Titan Launcher (AT)
"B_static_AA_F", // Static Titan Launcher (AA)
"B_Mortar_01_F", // Mk6 Mortar
"ACE_friesAnchorBar", // ACE FRIES
"ACE_friesGantryReverse", // ACE FRIES
"ACE_friesGantry" // ACE FRIES
];
/*
Checking all preset arrays for missing mods and sort out not available classnames
*/
// Blufor
infantry_units = infantry_units select {[( _x select 0)] call KPLIB_fnc_checkClass};
light_vehicles = light_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass};
heavy_vehicles = heavy_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass};
air_vehicles = air_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass};
static_vehicles = static_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass};
buildings = buildings select {[( _x select 0)] call KPLIB_fnc_checkClass};
support_vehicles = support_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass};
blufor_squad_inf_light = blufor_squad_inf_light select {[_x] call KPLIB_fnc_checkClass};
blufor_squad_inf = blufor_squad_inf select {[_x] call KPLIB_fnc_checkClass};
blufor_squad_at = blufor_squad_at select {[_x] call KPLIB_fnc_checkClass};
blufor_squad_aa = blufor_squad_aa select {[_x] call KPLIB_fnc_checkClass};
blufor_squad_recon = blufor_squad_recon select {[_x] call KPLIB_fnc_checkClass};
blufor_squad_para = blufor_squad_para select {[_x] call KPLIB_fnc_checkClass};
elite_vehicles = elite_vehicles select {[_x] call KPLIB_fnc_checkClass};
// Opfor
militia_squad = militia_squad select {[_x] call KPLIB_fnc_checkClass};
militia_vehicles = militia_vehicles select {[_x] call KPLIB_fnc_checkClass};
opfor_vehicles = opfor_vehicles select {[_x] call KPLIB_fnc_checkClass};
opfor_vehicles_low_intensity = opfor_vehicles_low_intensity select {[_x] call KPLIB_fnc_checkClass};
opfor_battlegroup_vehicles = opfor_battlegroup_vehicles select {[_x] call KPLIB_fnc_checkClass};
opfor_battlegroup_vehicles_low_intensity = opfor_battlegroup_vehicles_low_intensity select {[_x] call KPLIB_fnc_checkClass};
opfor_troup_transports = opfor_troup_transports select {[_x] call KPLIB_fnc_checkClass};
opfor_choppers = opfor_choppers select {[_x] call KPLIB_fnc_checkClass};
opfor_air = opfor_air select {[_x] call KPLIB_fnc_checkClass};
// Resistance
KP_liberation_guerilla_units = KP_liberation_guerilla_units select {[_x] call KPLIB_fnc_checkClass};
KP_liberation_guerilla_vehicles = KP_liberation_guerilla_vehicles select {[_x] call KPLIB_fnc_checkClass};
// Civilians
civilians = civilians select {[_x] call KPLIB_fnc_checkClass};
civilian_vehicles = civilian_vehicles select {[_x] call KPLIB_fnc_checkClass};
// Misc
KPLIB_transportConfigs = KPLIB_transportConfigs select {[_x select 0] call KPLIB_fnc_checkClass};
KPLIB_aiResupplySources = KPLIB_aiResupplySources select {[_x] call KPLIB_fnc_checkClass};
/*
Fetch arrays with only classnames from the blufor preset build arrays
Beware that all classnames are converted to lowercase. Important for e.g. `in` checks, as it's case-sensitive.
*/
KPLIB_b_infantry_classes = infantry_units apply {toLower (_x select 0)};
KPLIB_b_light_classes = light_vehicles apply {toLower (_x select 0)};
KPLIB_b_heavy_classes = heavy_vehicles apply {toLower (_x select 0)};
KPLIB_b_air_classes = air_vehicles apply {toLower (_x select 0)};
KPLIB_b_static_classes = static_vehicles apply {toLower (_x select 0)};
KPLIB_b_buildings_classes = buildings apply {toLower (_x select 0)};
KPLIB_b_support_classes = support_vehicles apply {toLower (_x select 0)};
KPLIB_transport_classes = KPLIB_transportConfigs apply {toLower (_x select 0)};
KPLIB_b_infantry_classes append (blufor_squad_inf_light + blufor_squad_inf + blufor_squad_at + blufor_squad_aa + blufor_squad_recon + blufor_squad_para);
KPLIB_b_infantry_classes = KPLIB_b_infantry_classes apply {toLower _x};
KPLIB_b_infantry_classes = KPLIB_b_infantry_classes arrayIntersect KPLIB_b_infantry_classes;
/*
Opfor squad compositions
*/
KPLIB_o_squadStd = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_heavygunner, opfor_medic, opfor_marksman, opfor_grenadier, opfor_rpg];
KPLIB_o_squadInf = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_heavygunner, opfor_heavygunner, opfor_marksman, opfor_sharpshooter, opfor_sniper];
KPLIB_o_squadTank = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_rpg, opfor_rpg, opfor_at, opfor_at, opfor_at];
KPLIB_o_squadAir = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_rpg, opfor_rpg, opfor_aa, opfor_aa, opfor_aa];
/*
Liberation specific collections
*/
KPLIB_buildList = [[], infantry_units, light_vehicles, heavy_vehicles, air_vehicles, static_vehicles, buildings, support_vehicles, KPLIB_b_allSquads];
KPLIB_crates = [KP_liberation_supply_crate, KP_liberation_ammo_crate, KP_liberation_fuel_crate];
KPLIB_airSlots = [KP_liberation_heli_slot_building, KP_liberation_plane_slot_building];
KPLIB_storageBuildings = [KP_liberation_small_storage_building, KP_liberation_large_storage_building];
KPLIB_upgradeBuildings = [KP_liberation_recycle_building, KP_liberation_air_vehicle_building, KP_liberation_heli_slot_building, KP_liberation_plane_slot_building];
KPLIB_aiResupplySources append [Respawn_truck_typename, huron_typename, Arsenal_typename];
KPLIB_crates = KPLIB_crates apply {toLower _x};
KPLIB_airSlots = KPLIB_airSlots apply {toLower _x};
KPLIB_storageBuildings = KPLIB_storageBuildings apply {toLower _x};
KPLIB_upgradeBuildings = KPLIB_upgradeBuildings apply {toLower _x};
KPLIB_aiResupplySources = KPLIB_aiResupplySources apply {toLower _x};
/*
Classname collections
*/
// All land vehicle classnames
KPLIB_allLandVeh_classes = [[], [huron_typename]] select (huron_typename isKindOf "Air");;
{
KPLIB_allLandVeh_classes append _x;
} forEach [
militia_vehicles apply {toLower _x},
opfor_vehicles apply {toLower _x},
opfor_vehicles_low_intensity apply {toLower _x},
opfor_battlegroup_vehicles apply {toLower _x},
opfor_battlegroup_vehicles_low_intensity apply {toLower _x},
opfor_troup_transports apply {toLower _x},
KPLIB_b_light_classes,
KPLIB_b_heavy_classes,
KPLIB_b_support_classes select {_x isKindOf "Car" || _x isKindOf "Tank"}
];
KPLIB_allLandVeh_classes = KPLIB_allLandVeh_classes arrayIntersect KPLIB_allLandVeh_classes;
// All air vehicle classnames
KPLIB_allAirVeh_classes = [[], [huron_typename]] select (huron_typename isKindOf "Air");
{
KPLIB_allAirVeh_classes append _x;
} forEach [opfor_choppers apply {toLower _x}, opfor_air apply {toLower _x}, KPLIB_b_air_classes, KPLIB_b_support_classes select {_x isKindOf "Air"}];
// All blufor vehicle (land and air) classnames
KPLIB_b_allVeh_classes = [];
{
KPLIB_b_allVeh_classes append _x;
} forEach [KPLIB_b_light_classes, KPLIB_b_heavy_classes, KPLIB_b_air_classes, KPLIB_b_static_classes, KPLIB_b_support_classes];
// All opfor vehicle (land and air) classnames
KPLIB_o_allVeh_classes = [];
{
KPLIB_o_allVeh_classes append _x;
} forEach [
militia_vehicles,
opfor_vehicles,
opfor_vehicles_low_intensity,
opfor_battlegroup_vehicles,
opfor_battlegroup_vehicles_low_intensity,
opfor_troup_transports,
opfor_choppers,
opfor_air
];
KPLIB_o_allVeh_classes = KPLIB_o_allVeh_classes apply {toLower _x};
KPLIB_o_allVeh_classes = KPLIB_o_allVeh_classes arrayIntersect KPLIB_o_allVeh_classes;
// All regular opfor soldier classnames
KPLIB_o_inf_classes = [opfor_sentry, opfor_rifleman, opfor_grenadier, opfor_squad_leader, opfor_team_leader, opfor_marksman, opfor_machinegunner, opfor_heavygunner, opfor_medic, opfor_rpg, opfor_at, opfor_aa, opfor_officer, opfor_sharpshooter, opfor_sniper,opfor_engineer];
KPLIB_o_inf_classes = KPLIB_o_inf_classes apply {toLower _x};
/*
Vehicle type permission arrays
*/
KPLIB_typeLightClasses = +KPLIB_b_light_classes;
KPLIB_typeHeavyClasses = +KPLIB_b_heavy_classes;
KPLIB_typeAirClasses = +KPLIB_b_air_classes;
{
switch (true) do {
case (_x isKindOf "Tank"): {KPLIB_typeHeavyClasses pushBack _x};
case (_x isKindOf "Air"): {KPLIB_typeAirClasses pushBack _x};
default {KPLIB_typeLightClasses pushBack _x};
};
} forEach (KPLIB_b_support_classes + [toLower huron_typename]);
// Military alphabet used for FOBs and convois
military_alphabet = ["Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-Ray", "Yankee", "Zulu"];
// Misc variables
markers_reset = [99999,99999,0];
zeropos = [0,0,0];
KPLIB_sarWreck = "Land_Wreck_Heli_Attack_01_F";
KPLIB_sarFire = "test_EmptyObjectForFireBig";
KPLIB_initPresets = true;
if (isServer) then {[format ["----- Preset initialization finished. Time needed: %1 seconds -----", diag_ticktime - _start], "PRESETS"] call KPLIB_fnc_log;};