@@ -31,17 +31,17 @@ if !(UO_FW_Server_ACREModule_Allowed) exitwith {};
31
31
// Channel names stuff
32
32
LOG (" ACRE Init" );
33
33
34
- _radioNetNamesBlufor = [(GETMVAR(RADIONET_NAME1_Blufor ," PLTNET 1" )),(GETMVAR(RADIONET_NAME2_Blufor ," PLTNET 2" )),(GETMVAR(RADIONET_NAME3_Blufor ," PLTNET 3" )),
35
- (GETMVAR(RADIONET_NAME4_Blufor ," PLTNET 4" )),(GETMVAR(RADIONET_NAME5_Blufor ," Coy" )),(GETMVAR(RADIONET_NAME6_Blufor ," Cas" )),(GETMVAR(RADIONET_NAME7_Blufor ," Fires" ))];
34
+ _radioNetNamesBlufor = [(GETMVAR(RADIONET_NAME1_Blufor," PLTNET 1" )),(GETMVAR(RADIONET_NAME2_Blufor," PLTNET 2" )),(GETMVAR(RADIONET_NAME3_Blufor," PLTNET 3" )),
35
+ (GETMVAR(RADIONET_NAME4_Blufor," PLTNET 4" )),(GETMVAR(RADIONET_NAME5_Blufor," Coy" )),(GETMVAR(RADIONET_NAME6_Blufor," Cas" )),(GETMVAR(RADIONET_NAME7_Blufor," Fires" ))];
36
36
37
- _radioNetNamesOpfor = [(GETMVAR(RADIONET_NAME1_Opfor ," PLTNET 1" )),(GETMVAR(RADIONET_NAME2_Opfor ," PLTNET 2" )),(GETMVAR(RADIONET_NAME3_Opfor ," PLTNET 3" )),
38
- (GETMVAR(RADIONET_NAME4_Opfor ," PLTNET 4" )),(GETMVAR(RADIONET_NAME5_Opfor ," Coy" )),(GETMVAR(RADIONET_NAME6_Opfor ," Cas" )),(GETMVAR(RADIONET_NAME7_Opfor ," Fires" ))];
37
+ _radioNetNamesOpfor = [(GETMVAR(RADIONET_NAME1_Opfor," PLTNET 1" )),(GETMVAR(RADIONET_NAME2_Opfor," PLTNET 2" )),(GETMVAR(RADIONET_NAME3_Opfor," PLTNET 3" )),
38
+ (GETMVAR(RADIONET_NAME4_Opfor," PLTNET 4" )),(GETMVAR(RADIONET_NAME5_Opfor," Coy" )),(GETMVAR(RADIONET_NAME6_Opfor," Cas" )),(GETMVAR(RADIONET_NAME7_Opfor," Fires" ))];
39
39
40
- _radioNetNamesIndfor = [(GETMVAR(RADIONET_NAME1_Indfor ," PLTNET 1" )),(GETMVAR(RADIONET_NAME2_Indfor ," PLTNET 2" )),(GETMVAR(RADIONET_NAME3_Indfor ," PLTNET 3" )),
41
- (GETMVAR(RADIONET_NAME4_Indfor ," PLTNET 4" )),(GETMVAR(RADIONET_NAME5_Indfor ," Coy" )),(GETMVAR(RADIONET_NAME6_Indfor ," Cas" )),(GETMVAR(RADIONET_NAME7_Indfor ," Fires" ))];
40
+ _radioNetNamesIndfor = [(GETMVAR(RADIONET_NAME1_Indfor," PLTNET 1" )),(GETMVAR(RADIONET_NAME2_Indfor," PLTNET 2" )),(GETMVAR(RADIONET_NAME3_Indfor," PLTNET 3" )),
41
+ (GETMVAR(RADIONET_NAME4_Indfor," PLTNET 4" )),(GETMVAR(RADIONET_NAME5_Indfor," Coy" )),(GETMVAR(RADIONET_NAME6_Indfor," Cas" )),(GETMVAR(RADIONET_NAME7_Indfor," Fires" ))];
42
42
43
- _radioNetNamesCiv = [(GETMVAR(RADIONET_NAME1_Civ ," PLTNET 1" )),(GETMVAR(RADIONET_NAME2_Civ ," PLTNET 2" )),(GETMVAR(RADIONET_NAME3_Civ ," PLTNET 3" )),
44
- (GETMVAR(RADIONET_NAME4_Civ ," PLTNET 4" )),(GETMVAR(RADIONET_NAME5_Civ ," Coy" )),(GETMVAR(RADIONET_NAME6_Civ ," Cas" )),(GETMVAR(RADIONET_NAME7_Civ ," Fires" ))];
43
+ _radioNetNamesCiv = [(GETMVAR(RADIONET_NAME1_Civ," PLTNET 1" )),(GETMVAR(RADIONET_NAME2_Civ," PLTNET 2" )),(GETMVAR(RADIONET_NAME3_Civ," PLTNET 3" )),
44
+ (GETMVAR(RADIONET_NAME4_Civ," PLTNET 4" )),(GETMVAR(RADIONET_NAME5_Civ," Coy" )),(GETMVAR(RADIONET_NAME6_Civ," Cas" )),(GETMVAR(RADIONET_NAME7_Civ," Fires" ))];
45
45
46
46
47
47
@@ -361,49 +361,93 @@ if !(UO_FW_Server_ACREModule_Allowed) exitwith {};
361
361
}] call CBA_fnc_addEventHandler ;
362
362
363
363
[QGVAR(SetChannelAndEar_Event),{
364
+
364
365
[{(CBA_missionTime > 1 ) && {[] call acre_api_fnc_isInitialized }},{
365
- if (GETPLVAR(UnitSettings_Enable,false )) then {
366
- {
367
- private _radioID = [_x ] call acre_api_fnc_getRadioByType ;
368
- if (! isNil " _radioID" ) then {
369
- private _result = (GETPLVAR(SR_RADIO_CHANNEL,1 ));
370
- if (_result < 1 ) then {
371
- ERROR_1(" %1 is not a valid Channel Number" ,_result );
372
- } else {
373
- [_radioID , _result ] call acre_api_fnc_setRadioChannel ;
374
- };
375
366
376
- [_radioID , ([" LEFT" ," CENTER" , " RIGHT" ] select (GETPLVAR(SR_RADIO_EAR,1 )))] call acre_api_fnc_setRadioSpatial ;
377
- };
378
- } forEach [" ACRE_PRC343" , " ACRE_SEM52SL" ];
379
367
380
- {
381
- private _radioID = [_x ] call acre_api_fnc_getRadioByType ;
382
- if ( ! isNil " _radioID" ) then {
383
- private _result = (GETPLVAR(LR_RADIO_CHANNEL,1 ));
384
- if (_result < 1 ) then {
385
- ERROR_1(" %1 is not a valid Channel Number" ,_result );
386
- } else {
387
- [_radioID , _result ] call acre_api_fnc_setRadioChannel ;
388
- };
389
- [_radioID , ([ " LEFT" ," CENTER" , " RIGHT" ] select (GETPLVAR(LR_RADIO_EAR,1 )))] call acre_api_fnc_setRadioSpatial ;
390
- };
391
- } forEach [" ACRE_PRC343" , " ACRE_PRC148" , " ACRE_PRC152" ];
368
+ private [" _SRType" ," _LRType" ," _PKType" ];
369
+ switch (side player ) do {
370
+ case west: {
371
+ _SRType = [" NONE" ," ACRE_PRC343" ," ACRE_SEM52SL" ] select GVAR(SR_Type_BLUFOR);
372
+ _LRType = [" NONE" ," ACRE_PRC343" ," ACRE_PRC148" ," ACRE_PRC152" ] select GVAR(LR_Type_BLUFOR);
373
+ _PKType = [" NONE" ," ACRE_PRC117F" ," ACRE_PRC77" ," ACRE_SEM70" ] select GVAR(PK_Type_BLUFOR);
374
+ };
375
+ case east: {
376
+ _SRType = [" NONE" ," ACRE_PRC343" ," ACRE_SEM52SL" ] select GVAR(SR_Type_OPFOR);
377
+ _LRType = [" NONE" ," ACRE_PRC343" ," ACRE_PRC148" ," ACRE_PRC152" ] select GVAR(LR_Type_OPFOR);
378
+ _PKType = [" NONE" ," ACRE_PRC117F" ," ACRE_PRC77" ," ACRE_SEM70" ] select GVAR(PK_Type_OPFOR);
379
+ };
380
+ case independent: {
381
+ _SRType = [" NONE" ," ACRE_PRC343" ," ACRE_SEM52SL" ] select GVAR(SR_Type_Indfor);
382
+ _LRType = [" NONE" ," ACRE_PRC343" ," ACRE_PRC148" ," ACRE_PRC152" ] select GVAR(LR_Type_Indfor);
383
+ _PKType = [" NONE" ," ACRE_PRC117F" ," ACRE_PRC77" ," ACRE_SEM70" ] select GVAR(PK_Type_Indfor);
384
+ };
385
+ case civilian: {
386
+ _SRType = [" NONE" ," ACRE_PRC343" ," ACRE_SEM52SL" ] select GVAR(SR_Type_Civ);
387
+ _LRType = [" NONE" ," ACRE_PRC343" ," ACRE_PRC148" ," ACRE_PRC152" ] select GVAR(LR_Type_Civ);
388
+ _PKType = [" NONE" ," ACRE_PRC117F" ," ACRE_PRC77" ," ACRE_SEM70" ] select GVAR(PK_Type_Civ);
389
+ };
390
+ default {};
391
+ };
392
+ if (GETPLVAR(UnitSettings_Enable,false )) then {
393
+ private _radioIDs = [] call acre_api_fnc_getCurrentRadioList ;
394
+ TRACE_1(" Found Radios" ,_radiosIDs );
392
395
393
- {
394
- private _radioID = [_x ] call acre_api_fnc_getRadioByType ;
395
- if (! isNil " _radioID" ) then {
396
- private _result = (GETPLVAR(PK_RADIO_CHANNEL,1 ));
397
- if (_result < 1 ) then {
398
- ERROR_1(" %1 is not a valid Channel Number" ,_result );
399
- } else {
400
- if ! (_x isEqualTo " ACRE_PRC77" ) then {
401
- [_radioID , _result ] call acre_api_fnc_setRadioChannel ;
396
+ if (_SRType ! = " NONE" ) then {
397
+
398
+ {
399
+ private _radioId = _x ;
400
+ if (([_radioId , _SRType ] call acre_api_fnc_isKindOf )) exitWith {
401
+ private _result = (GETPLVAR(SR_RADIO_CHANNEL,1 ));
402
+ if (_result < 1 ) then {
403
+ ERROR_1(" %1 is not a valid Channel Number" ,_result );
404
+ } else {
405
+
406
+ [_radioId , _result ] call acre_api_fnc_setRadioChannel ;
407
+ LOG_2(" Setting SR %1 to channel %2" ,_radioId ,_result );
402
408
};
403
- };
404
- [_radioID , ([" LEFT" ," CENTER" , " RIGHT" ] select (GETPLVAR(PK_RADIO_EAR,1 )))] call acre_api_fnc_setRadioSpatial ;
405
- };
406
- } forEach [" ACRE_PRC117F" , " ACRE_PRC77" , " ACRE_SEM70" ];
409
+ [_radioId , ([" LEFT" ," CENTER" , " RIGHT" ] select (GETPLVAR(SR_RADIO_EAR,1 )))] call acre_api_fnc_setRadioSpatial ;
410
+ _radioIDs deleteAt _forEachIndex ;
411
+ };
412
+ }forEach _radioIDs ;
413
+ };
414
+
415
+ if (_LRType ! = " NONE" ) then {
416
+ {
417
+ private _radioId = _x ;
418
+ if (([_radioId , _LRType ] call acre_api_fnc_isKindOf )) exitWith {
419
+ private _result = (GETPLVAR(LR_RADIO_CHANNEL,1 ));
420
+ if (_result < 1 ) then {
421
+ ERROR_1(" %1 is not a valid Channel Number" ,_result );
422
+ } else {
423
+
424
+ [_radioId , _result ] call acre_api_fnc_setRadioChannel ;
425
+ LOG_2(" Setting LR %1 to channel %2" ,_radioId ,_result );
426
+ };
427
+ [_radioId , ([" LEFT" ," CENTER" , " RIGHT" ] select (GETPLVAR(LR_RADIO_EAR,1 )))] call acre_api_fnc_setRadioSpatial ;
428
+ _radioIDs deleteAt _forEachIndex ;
429
+ };
430
+ }forEach _radioIDs ;
431
+ };
432
+
433
+ if (_PKType ! = " NONE" ) then {
434
+ {
435
+ private _radioId = _x ;
436
+ if (([_radioId , _PKType ] call acre_api_fnc_isKindOf )) exitWith {
437
+ private _result = (GETPLVAR(PK_RADIO_CHANNEL,1 ));
438
+ if (_result < 1 ) then {
439
+ ERROR_1(" %1 is not a valid Channel Number" ,_result );
440
+ } else {
441
+
442
+ [_radioId , _result ] call acre_api_fnc_setRadioChannel ;
443
+ LOG_2(" Setting PK %1 to channel %2" ,_radioId ,_result );
444
+ };
445
+ [_radioId , ([" LEFT" ," CENTER" , " RIGHT" ] select (GETPLVAR(PK_RADIO_EAR,1 )))] call acre_api_fnc_setRadioSpatial ;
446
+ _radioIDs deleteAt _forEachIndex ;
447
+ };
448
+ }forEach _radioIDs ;
449
+ };
450
+
407
451
};
408
452
}] call CBA_fnc_waitUntilAndExecute ;
409
453
}] call CBA_fnc_addEventHandler ;
0 commit comments