From b3c2b0d668f6753cb4ab57c70e7bf99213b4a906 Mon Sep 17 00:00:00 2001 From: TheTrainDoctor Date: Wed, 8 May 2019 09:59:52 -0700 Subject: [PATCH] 1.0.6 Warmfix (#128) * Fix Acre Channel bug, Export Formatting * Add ACRE Vehicle Preset to vehicle variables * Fix duplicate Briefing * Fix itemRandomOrg error * Fix Endscreen client side * Fix JIP bug, JIP teleport to vehicles * Add build number * Add AI Driver logging * Fix aiDrivers * Make game-mastering dependent on mission notes * Add force removal for vehicle teleport action in edge cases * Fix for wrong ACRE channels being set (#131) --- .../cfgAttributeCategories/Object.hpp | 19 ++ uo_sys_framework/ACREModule/cfgAttributes.hpp | 3 +- .../VehicleRadioPresetAttribute.hpp | 30 +++ .../ACREModule/cfgXEH/PreInit.hpp | 1 + .../ACREModule/cfgXEH/init/ClientPreInit.sqf | 136 +++++++----- .../ACREModule/cfgXEH/init/ServerPreInit.sqf | 41 ++++ .../cfgFunctions/EH/fn_InitPost.sqf | 26 ++- .../cfgFunctions/common/fn_EnableAIDriver.sqf | 2 +- .../cfgXEH/init/ClientPreInit.sqf | 1 + .../cfgFunctions/common/fn_Init.sqf | 12 +- .../common/fn_ExportBriefings.sqf | 193 ++++++++++-------- .../defines/blufor_briefing.hpp | 26 +-- .../defines/civilian_briefing.hpp | 27 +-- .../defines/indfor_briefing.hpp | 26 +-- .../BriefingModule/defines/opfor_briefing.hpp | 26 +-- .../cfgFunctions/EndScreen/fn_endscreen.sqf | 6 +- .../Core/cfgFunctions/JiP/fn_GiveActions.sqf | 8 +- .../Core/cfgFunctions/JiP/fn_Teleport.sqf | 23 ++- .../cfgFunctions/common/fn_endMission.sqf | 2 +- .../Core/cfgXEH/init/ClientPostInit.sqf | 2 +- .../Core/cfgXEH/init/GlobalPreInit.sqf | 5 + .../cfgXEH/initPost/CAManBaseInitPost.sqf | 2 +- .../cfgFunctions/Olsen/fn_OlsenGearScript.sqf | 2 +- .../Olsen/fn_addItemRandomOrg.sqf | 3 +- .../cfgFunctions/init/fn_initPost.sqf | 1 + .../cfgFunctions/common/fn_addEH.sqf | 2 +- .../cfgFunctions/init/fn_initPost.sqf | 2 +- uo_sys_framework/script_mod.hpp | 2 + 28 files changed, 412 insertions(+), 217 deletions(-) create mode 100644 uo_sys_framework/ACREModule/cfgAttributes/VehicleRadioPresetAttribute.hpp create mode 100644 uo_sys_framework/ACREModule/cfgXEH/init/ServerPreInit.sqf diff --git a/uo_sys_framework/ACREModule/cfgAttributeCategories/Object.hpp b/uo_sys_framework/ACREModule/cfgAttributeCategories/Object.hpp index d1ad82f5..bd483b3a 100644 --- a/uo_sys_framework/ACREModule/cfgAttributeCategories/Object.hpp +++ b/uo_sys_framework/ACREModule/cfgAttributeCategories/Object.hpp @@ -102,5 +102,24 @@ class EGVAR(ACRE,UnitOptions) { condition = "objectControllable"; defaultValue = "'None'"; }; + class EGVAR(ACRE,VehicleACRE_Enabled) { + property = QEGVAR(ACRE,VehicleACRE_Enabled); + displayName = "Enable ACRE Vehicle Settings"; + tooltip = "Enable ACRE Vehicle Settings"; + control = "CheckBox"; + expression = ENTITY_EXPRESSION; + condition = "objectVehicle"; + defaultValue = "false"; + }; + class EGVAR(ACRE,VehicleACREPreset) { + property = QEGVAR(ACRE,VehicleACREPreset); + displayName = "Vehicle Rack Preset"; + tooltip = "Will set the vehicles ACRE rack to the selected side. Selecting Default will skip this setting. Requires ACRE Scrambling to be enabled."; + control = QEGVAR(ACRE,VehicleRadioPresetAttribute); + typeName = "STRING"; + expression = ENTITY_EXPRESSION; + condition = "objectVehicle"; + defaultValue = "''"; + }; }; }; diff --git a/uo_sys_framework/ACREModule/cfgAttributes.hpp b/uo_sys_framework/ACREModule/cfgAttributes.hpp index 8adc5f7c..40dea979 100644 --- a/uo_sys_framework/ACREModule/cfgAttributes.hpp +++ b/uo_sys_framework/ACREModule/cfgAttributes.hpp @@ -1,4 +1,5 @@ #include "CfgAttributes\EarSettingAttribute.hpp" #include "CfgAttributes\RadioSelectAttribute.hpp" #include "CfgAttributes\ChannelSelectAttribute.hpp" -#include "CfgAttributes\AdditionalLanguageAttribute.hpp" \ No newline at end of file +#include "CfgAttributes\AdditionalLanguageAttribute.hpp" +#include "CfgAttributes\VehicleRadioPresetAttribute.hpp" \ No newline at end of file diff --git a/uo_sys_framework/ACREModule/cfgAttributes/VehicleRadioPresetAttribute.hpp b/uo_sys_framework/ACREModule/cfgAttributes/VehicleRadioPresetAttribute.hpp new file mode 100644 index 00000000..d1906e76 --- /dev/null +++ b/uo_sys_framework/ACREModule/cfgAttributes/VehicleRadioPresetAttribute.hpp @@ -0,0 +1,30 @@ +class EGVAR(ACRE,VehicleRadioPresetAttribute): Combo { + //save the lbData from the selected entry upon exit + attributeSave = "\ + private _value = ((_this controlsGroupCtrl 100) lbData lbCurSel (_this controlsGroupCtrl 100));\ + private _unit = ((get3denselected 'object') select 0);\ + private _name = gettext (_config >> 'property');\ + _unit setvariable [_name,_value];\ + _value\ + "; + //_this - config, _value - saved value + attributeLoad="\ + private _control = (_this controlsGroupCtrl 100);\ + private _name = gettext (_config >> 'property');\ + private _unit = ((get3denselected 'object') select 0);\ + private _nameArray = ['Default','Blufor','Opfor','Indfor','Civilian'];\ + {\ + private _index = _control lbadd _x;\ + _control lbsetdata [_index,_x];\ + _control lbsetValue [_index,_foreachIndex];\ + if (_value isEqualto (_control lbData _index)) then {\ + _control lbSetCurSel _index;\ + _unit setvariable [_name,_value];\ + };\ + } foreach _nameArray;\ + "; + class Controls: Controls { + class Title: Title {}; + class Value: Value {}; + }; +}; diff --git a/uo_sys_framework/ACREModule/cfgXEH/PreInit.hpp b/uo_sys_framework/ACREModule/cfgXEH/PreInit.hpp index 245ead7f..6bee028c 100644 --- a/uo_sys_framework/ACREModule/cfgXEH/PreInit.hpp +++ b/uo_sys_framework/ACREModule/cfgXEH/PreInit.hpp @@ -1,3 +1,4 @@ class EGVAR(ACRE,PreInit) { clientInit = "call compile preProcessFileLineNumbers '\x\UO_FW\addons\Main\ACREModule\cfgXEH\init\ClientPreInit.sqf';"; + serverInit = "call compile preProcessFileLineNumbers '\x\UO_FW\addons\Main\ACREModule\cfgXEH\init\ServerPreInit.sqf';"; }; diff --git a/uo_sys_framework/ACREModule/cfgXEH/init/ClientPreInit.sqf b/uo_sys_framework/ACREModule/cfgXEH/init/ClientPreInit.sqf index 2e69c3f3..ab29ca4f 100644 --- a/uo_sys_framework/ACREModule/cfgXEH/init/ClientPreInit.sqf +++ b/uo_sys_framework/ACREModule/cfgXEH/init/ClientPreInit.sqf @@ -31,17 +31,17 @@ if !(UO_FW_Server_ACREModule_Allowed) exitwith {}; //Channel names stuff LOG("ACRE Init"); - _radioNetNamesBlufor = [(GETMVAR(RADIONET_NAME1_Blufor ,"PLTNET 1")),(GETMVAR(RADIONET_NAME2_Blufor ,"PLTNET 2")),(GETMVAR(RADIONET_NAME3_Blufor ,"PLTNET 3")), - (GETMVAR(RADIONET_NAME4_Blufor ,"PLTNET 4")),(GETMVAR(RADIONET_NAME5_Blufor ,"Coy")),(GETMVAR(RADIONET_NAME6_Blufor ,"Cas")),(GETMVAR(RADIONET_NAME7_Blufor ,"Fires"))]; + _radioNetNamesBlufor = [(GETMVAR(RADIONET_NAME1_Blufor,"PLTNET 1")),(GETMVAR(RADIONET_NAME2_Blufor,"PLTNET 2")),(GETMVAR(RADIONET_NAME3_Blufor,"PLTNET 3")), + (GETMVAR(RADIONET_NAME4_Blufor,"PLTNET 4")),(GETMVAR(RADIONET_NAME5_Blufor,"Coy")),(GETMVAR(RADIONET_NAME6_Blufor,"Cas")),(GETMVAR(RADIONET_NAME7_Blufor,"Fires"))]; - _radioNetNamesOpfor = [(GETMVAR(RADIONET_NAME1_Opfor ,"PLTNET 1")),(GETMVAR(RADIONET_NAME2_Opfor ,"PLTNET 2")),(GETMVAR(RADIONET_NAME3_Opfor ,"PLTNET 3")), - (GETMVAR(RADIONET_NAME4_Opfor ,"PLTNET 4")),(GETMVAR(RADIONET_NAME5_Opfor ,"Coy")),(GETMVAR(RADIONET_NAME6_Opfor ,"Cas")),(GETMVAR(RADIONET_NAME7_Opfor ,"Fires"))]; + _radioNetNamesOpfor = [(GETMVAR(RADIONET_NAME1_Opfor,"PLTNET 1")),(GETMVAR(RADIONET_NAME2_Opfor,"PLTNET 2")),(GETMVAR(RADIONET_NAME3_Opfor,"PLTNET 3")), + (GETMVAR(RADIONET_NAME4_Opfor,"PLTNET 4")),(GETMVAR(RADIONET_NAME5_Opfor,"Coy")),(GETMVAR(RADIONET_NAME6_Opfor,"Cas")),(GETMVAR(RADIONET_NAME7_Opfor,"Fires"))]; - _radioNetNamesIndfor = [(GETMVAR(RADIONET_NAME1_Indfor ,"PLTNET 1")),(GETMVAR(RADIONET_NAME2_Indfor ,"PLTNET 2")),(GETMVAR(RADIONET_NAME3_Indfor ,"PLTNET 3")), - (GETMVAR(RADIONET_NAME4_Indfor ,"PLTNET 4")),(GETMVAR(RADIONET_NAME5_Indfor ,"Coy")),(GETMVAR(RADIONET_NAME6_Indfor ,"Cas")),(GETMVAR(RADIONET_NAME7_Indfor ,"Fires"))]; + _radioNetNamesIndfor = [(GETMVAR(RADIONET_NAME1_Indfor,"PLTNET 1")),(GETMVAR(RADIONET_NAME2_Indfor,"PLTNET 2")),(GETMVAR(RADIONET_NAME3_Indfor,"PLTNET 3")), + (GETMVAR(RADIONET_NAME4_Indfor,"PLTNET 4")),(GETMVAR(RADIONET_NAME5_Indfor,"Coy")),(GETMVAR(RADIONET_NAME6_Indfor,"Cas")),(GETMVAR(RADIONET_NAME7_Indfor,"Fires"))]; - _radioNetNamesCiv = [(GETMVAR(RADIONET_NAME1_Civ ,"PLTNET 1")),(GETMVAR(RADIONET_NAME2_Civ ,"PLTNET 2")),(GETMVAR(RADIONET_NAME3_Civ ,"PLTNET 3")), - (GETMVAR(RADIONET_NAME4_Civ ,"PLTNET 4")),(GETMVAR(RADIONET_NAME5_Civ ,"Coy")),(GETMVAR(RADIONET_NAME6_Civ ,"Cas")),(GETMVAR(RADIONET_NAME7_Civ ,"Fires"))]; + _radioNetNamesCiv = [(GETMVAR(RADIONET_NAME1_Civ,"PLTNET 1")),(GETMVAR(RADIONET_NAME2_Civ,"PLTNET 2")),(GETMVAR(RADIONET_NAME3_Civ,"PLTNET 3")), + (GETMVAR(RADIONET_NAME4_Civ,"PLTNET 4")),(GETMVAR(RADIONET_NAME5_Civ,"Coy")),(GETMVAR(RADIONET_NAME6_Civ,"Cas")),(GETMVAR(RADIONET_NAME7_Civ,"Fires"))]; @@ -361,49 +361,93 @@ if !(UO_FW_Server_ACREModule_Allowed) exitwith {}; }] call CBA_fnc_addEventHandler; [QGVAR(SetChannelAndEar_Event),{ + [{(CBA_missionTime > 1) && {[] call acre_api_fnc_isInitialized}},{ - if (GETPLVAR(UnitSettings_Enable,false)) then { - { - private _radioID = [_x] call acre_api_fnc_getRadioByType; - if (!isNil "_radioID") then { - private _result = (GETPLVAR(SR_RADIO_CHANNEL,1)); - if (_result < 1) then { - ERROR_1("%1 is not a valid Channel Number",_result); - } else { - [_radioID, _result] call acre_api_fnc_setRadioChannel; - }; - [_radioID, (["LEFT","CENTER", "RIGHT"] select (GETPLVAR(SR_RADIO_EAR,1)))] call acre_api_fnc_setRadioSpatial; - }; - } forEach ["ACRE_PRC343", "ACRE_SEM52SL"]; - { - private _radioID = [_x] call acre_api_fnc_getRadioByType; - if ( ! isNil "_radioID") then { - private _result = (GETPLVAR(LR_RADIO_CHANNEL,1)); - if (_result < 1) then { - ERROR_1("%1 is not a valid Channel Number",_result); - } else { - [_radioID, _result] call acre_api_fnc_setRadioChannel; - }; - [_radioID, ([ "LEFT","CENTER", "RIGHT"] select (GETPLVAR(LR_RADIO_EAR,1)))] call acre_api_fnc_setRadioSpatial; - }; - } forEach ["ACRE_PRC343", "ACRE_PRC148", "ACRE_PRC152"]; + private ["_SRType","_LRType","_PKType"]; + switch (side player) do { + case west: { + _SRType = ["NONE","ACRE_PRC343","ACRE_SEM52SL"] select GVAR(SR_Type_BLUFOR); + _LRType = ["NONE","ACRE_PRC343","ACRE_PRC148","ACRE_PRC152"] select GVAR(LR_Type_BLUFOR); + _PKType = ["NONE","ACRE_PRC117F","ACRE_PRC77","ACRE_SEM70"] select GVAR(PK_Type_BLUFOR); + }; + case east: { + _SRType = ["NONE","ACRE_PRC343","ACRE_SEM52SL"] select GVAR(SR_Type_OPFOR); + _LRType = ["NONE","ACRE_PRC343","ACRE_PRC148","ACRE_PRC152"] select GVAR(LR_Type_OPFOR); + _PKType = ["NONE","ACRE_PRC117F","ACRE_PRC77","ACRE_SEM70"] select GVAR(PK_Type_OPFOR); + }; + case independent: { + _SRType = ["NONE","ACRE_PRC343","ACRE_SEM52SL"] select GVAR(SR_Type_Indfor); + _LRType = ["NONE","ACRE_PRC343","ACRE_PRC148","ACRE_PRC152"] select GVAR(LR_Type_Indfor); + _PKType = ["NONE","ACRE_PRC117F","ACRE_PRC77","ACRE_SEM70"] select GVAR(PK_Type_Indfor); + }; + case civilian: { + _SRType = ["NONE","ACRE_PRC343","ACRE_SEM52SL"] select GVAR(SR_Type_Civ); + _LRType = ["NONE","ACRE_PRC343","ACRE_PRC148","ACRE_PRC152"] select GVAR(LR_Type_Civ); + _PKType = ["NONE","ACRE_PRC117F","ACRE_PRC77","ACRE_SEM70"] select GVAR(PK_Type_Civ); + }; + default {}; + }; + if (GETPLVAR(UnitSettings_Enable,false)) then { + private _radioIDs = [] call acre_api_fnc_getCurrentRadioList; + TRACE_1("Found Radios",_radiosIDs); - { - private _radioID = [_x] call acre_api_fnc_getRadioByType; - if (!isNil "_radioID") then { - private _result = (GETPLVAR(PK_RADIO_CHANNEL,1)); - if (_result < 1) then { - ERROR_1("%1 is not a valid Channel Number",_result); - } else { - if !(_x isEqualTo "ACRE_PRC77") then { - [_radioID, _result] call acre_api_fnc_setRadioChannel; + if (_SRType != "NONE") then { + + { + private _radioId = _x; + if(([_radioId, _SRType] call acre_api_fnc_isKindOf)) exitWith { + private _result = (GETPLVAR(SR_RADIO_CHANNEL,1)); + if (_result < 1) then { + ERROR_1("%1 is not a valid Channel Number",_result); + } else { + + [_radioId, _result] call acre_api_fnc_setRadioChannel; + LOG_2("Setting SR %1 to channel %2",_radioId,_result); }; - }; - [_radioID, (["LEFT","CENTER", "RIGHT"] select (GETPLVAR(PK_RADIO_EAR,1)))] call acre_api_fnc_setRadioSpatial; - }; - } forEach ["ACRE_PRC117F", "ACRE_PRC77", "ACRE_SEM70"]; + [_radioId, (["LEFT","CENTER", "RIGHT"] select (GETPLVAR(SR_RADIO_EAR,1)))] call acre_api_fnc_setRadioSpatial; + _radioIDs deleteAt _forEachIndex; + }; + }forEach _radioIDs; + }; + + if(_LRType != "NONE") then { + { + private _radioId = _x; + if(([_radioId, _LRType] call acre_api_fnc_isKindOf)) exitWith { + private _result = (GETPLVAR(LR_RADIO_CHANNEL,1)); + if (_result < 1) then { + ERROR_1("%1 is not a valid Channel Number",_result); + } else { + + [_radioId, _result] call acre_api_fnc_setRadioChannel; + LOG_2("Setting LR %1 to channel %2",_radioId,_result); + }; + [_radioId, (["LEFT","CENTER", "RIGHT"] select (GETPLVAR(LR_RADIO_EAR,1)))] call acre_api_fnc_setRadioSpatial; + _radioIDs deleteAt _forEachIndex; + }; + }forEach _radioIDs; + }; + + if(_PKType != "NONE") then { + { + private _radioId = _x; + if(([_radioId, _PKType] call acre_api_fnc_isKindOf)) exitWith { + private _result = (GETPLVAR(PK_RADIO_CHANNEL,1)); + if (_result < 1) then { + ERROR_1("%1 is not a valid Channel Number",_result); + } else { + + [_radioId, _result] call acre_api_fnc_setRadioChannel; + LOG_2("Setting PK %1 to channel %2",_radioId,_result); + }; + [_radioId, (["LEFT","CENTER", "RIGHT"] select (GETPLVAR(PK_RADIO_EAR,1)))] call acre_api_fnc_setRadioSpatial; + _radioIDs deleteAt _forEachIndex; + }; + }forEach _radioIDs; + }; + }; }] call CBA_fnc_waitUntilAndExecute; }] call CBA_fnc_addEventHandler; diff --git a/uo_sys_framework/ACREModule/cfgXEH/init/ServerPreInit.sqf b/uo_sys_framework/ACREModule/cfgXEH/init/ServerPreInit.sqf new file mode 100644 index 00000000..e2e8a838 --- /dev/null +++ b/uo_sys_framework/ACREModule/cfgXEH/init/ServerPreInit.sqf @@ -0,0 +1,41 @@ +/* Description: Sets ACRE Presets and ACRE unit settings + * Arguments: + * N/A + * Return Value: + * ARRAY + * Author + * PiZZADOX & Sacher + */ + +#define COMPONENT ACRE +#include "\x\UO_FW\addons\Main\script_macros.hpp" +EXEC_CHECK(SERVER); +if !(UO_FW_Server_ACREModule_Allowed) exitwith {}; + +[QEGVAR(Core,SettingsLoaded), { + if(GETMVAR(SCRAMBLE_Enabled,false)) then + { + { + private _vehicle = _x; + if(GETVAR(_vehicle,VehicleACRE_Enabled,false)) then { + + private _preset = ["default2", "default3", "default4", "default"]; + private _names = ["Default","Blufor","Opfor","Indfor","Civilian"]; + private _var = GETVAR(_vehicle,VehicleACREPreset,"Default"); + private _index = _names find _var; + //ignore if Default or not found + if(_index > 0) then { + private _selectedPresetIndex = _index - 1; + private _selectedPreset = _preset select _selectedPresetIndex; + LOG_2("Setting vehicle %1 to preset %2",_vehicle,_selectedPreset); + [_vehicle, _selectedPreset] call acre_api_fnc_setVehicleRacksPreset; + + }; + + }; + + + }forEach vehicles; + }; + +}] call CBA_fnc_addEventHandler; diff --git a/uo_sys_framework/AIDriversModule/cfgFunctions/EH/fn_InitPost.sqf b/uo_sys_framework/AIDriversModule/cfgFunctions/EH/fn_InitPost.sqf index 03a078ba..44dbbf72 100644 --- a/uo_sys_framework/AIDriversModule/cfgFunctions/EH/fn_InitPost.sqf +++ b/uo_sys_framework/AIDriversModule/cfgFunctions/EH/fn_InitPost.sqf @@ -1,28 +1,34 @@ #define COMPONENT AIDrivers #include "\x\UO_FW\addons\Main\script_macros.hpp" -EXEC_CHECK(ALL); +EXEC_CHECK(SERVER); if !(UO_FW_Server_AIDRIVERSMODULE_Allowed) exitwith {}; params ["_vehicle"]; //IGNORE_PRIVATE_WARNING ["_thisArgs"]; - -[QEGVAR(Core,SettingsLoaded), { - private _vehicle = _thisArgs; +[{(CBA_missionTime > 0)},{ + params ["_vehicle"]; private _allowNV = GETMVAR(NVEnabled,false); - private _allowFlip = GETMVAR(FlipEnabled,false); - if (GETMVAR(AllVehs,false)) exitwith { + private _allowFlip = GETMVAR(FlipEnabled,false); + private _allVeh = GETMVAR(AllVehs,false); + private _inClasses = (typeOf _vehicle) in (GETMVAR(VehClasses,[])); + private _option = GETVAR(_vehicle,VehEnabled,false); + + LOG_4("Trying to add AI Drivers to %1 _allVehicles=%2 _inClasses=%3 _option=%4", _vehicle,_allVeh,_inClasses,_option); + + if (_allVeh) exitwith { [QGVAR(Enabled_Event),[_vehicle,_allowNV,_allowFlip]] call CBA_fnc_globalEventJIP; [QEGVAR(Core,RegisterModuleEvent), ["AI Drivers", "Module for adding AI Drivers to vehicles", "BlackHawk, PiZZADOX and Sacher"]] call CBA_fnc_globalEventJIP; }; - if ((typeOf _vehicle) in (GETMVAR(VehClasses,[]))) exitwith { + if (_inClasses) exitwith { [QEGVAR(Core,RegisterModuleEvent), ["AI Drivers", "Module for adding AI Drivers to vehicles", "BlackHawk, PiZZADOX and Sacher"]] call CBA_fnc_globalEventJIP; [QGVAR(Enabled_Event),[_vehicle,_allowNV,_allowFlip]] call CBA_fnc_globalEventJIP; }; - if (GETVAR(_vehicle,VehEnabled,false)) then { + if (_option) then { private _allowNV = GETVAR(_vehicle,VehNVEnabled,false); - private _allowFlip = GETVAR(_vehicle,VehFlipEnabled,false); + private _allowFlip = GETVAR(_vehicle,VehFlipEnabled,false); [QGVAR(Enabled_Event),[_vehicle,_allowNV,_allowFlip]] call CBA_fnc_globalEventJIP; [QEGVAR(Core,RegisterModuleEvent), ["AI Drivers", "Module for adding AI Drivers to vehicles", "BlackHawk, PiZZADOX and Sacher"]] call CBA_fnc_globalEventJIP; }; -}, _vehicle] call CBA_fnc_addEventHandlerArgs; + +}, _vehicle] call CBA_fnc_WaitUntilAndExecute; \ No newline at end of file diff --git a/uo_sys_framework/AIDriversModule/cfgFunctions/common/fn_EnableAIDriver.sqf b/uo_sys_framework/AIDriversModule/cfgFunctions/common/fn_EnableAIDriver.sqf index b959b0d2..215453e2 100644 --- a/uo_sys_framework/AIDriversModule/cfgFunctions/common/fn_EnableAIDriver.sqf +++ b/uo_sys_framework/AIDriversModule/cfgFunctions/common/fn_EnableAIDriver.sqf @@ -75,4 +75,4 @@ if (_enableNV) then { [_veh, 1, ["ACE_SelfActions"], _pipNvAction] call ace_interact_menu_fnc_addActionToObject; }; -SETPVAR(_veh,hasActions,true); +SETVAR(_veh,hasActions,true); diff --git a/uo_sys_framework/AIDriversModule/cfgXEH/init/ClientPreInit.sqf b/uo_sys_framework/AIDriversModule/cfgXEH/init/ClientPreInit.sqf index 07fce537..d90c2e5d 100644 --- a/uo_sys_framework/AIDriversModule/cfgXEH/init/ClientPreInit.sqf +++ b/uo_sys_framework/AIDriversModule/cfgXEH/init/ClientPreInit.sqf @@ -14,5 +14,6 @@ EXEC_CHECK(CLIENT); [QGVAR(Enabled_Event), { params ["_vehicle","_allowNV","_allowFlip"]; + LOG_1("Enabling AI Driver for %1",_vehicle); [_vehicle,_allowNV,_allowFlip] call FUNC(EnableAIDriver); }] call CBA_fnc_addEventHandler; diff --git a/uo_sys_framework/AOLimitModule/cfgFunctions/common/fn_Init.sqf b/uo_sys_framework/AOLimitModule/cfgFunctions/common/fn_Init.sqf index 8c6ee6d2..39e7addd 100644 --- a/uo_sys_framework/AOLimitModule/cfgFunctions/common/fn_Init.sqf +++ b/uo_sys_framework/AOLimitModule/cfgFunctions/common/fn_Init.sqf @@ -77,15 +77,15 @@ EXEC_CHECK(CLIENT); _argNested params ["_unit","_args","_startedInside","_outSide","_enteredZone","_arrayname","_softAOMode","_recheckDead","_pos"]; _args params ["","_area","","_entryMode","_airsetting","","_softAOtime","_softAOtimeAir"]; - LOG_1("_argNested: %1",_argNested); - LOG_1("_area: %1",_area); - LOG_1("(vehicle _unit): %1",(vehicle _unit)); + //LOG_1("_argNested: %1",_argNested); + //LOG_1("_area: %1",_area); + //LOG_1("(vehicle _unit): %1",(vehicle _unit)); private _air = ((vehicle _unit) isKindOf "Air"); if ((_airsetting) && {_air}) exitwith {}; if ((count ((missionNamespace getvariable _arrayname))) isEqualto 1) then { if ((vehicle _unit) inArea _area) then { - LOG("unit in area"); + // LOG("unit in area"); _outSide = false; _argNested set [3,_outSide]; _enteredZone = true; @@ -117,7 +117,7 @@ EXEC_CHECK(CLIENT); }; } else { if (({(vehicle _unit) inArea _x} count (missionNamespace getvariable _arrayname)) > 0) then { - LOG("unit in area b"); + //LOG("unit in area b"); _enteredZone = true; _argNested set [4,_enteredZone]; _outSide = false; @@ -150,7 +150,7 @@ EXEC_CHECK(CLIENT); }; SETMVAR(Display,_outSide); - LOG_1("_outSide: %1",_outSide); + //LOG_1("_outSide: %1",_outSide); if ((count (missionNamespace getvariable _arrayname)) == 1) then { if ((!(_startedInside) && {!_softAOMode} && {(_entryMode)} && {!((vehicle _unit) inArea _area)}) || {(_recheckDead && !_softAOMode)}) then { diff --git a/uo_sys_framework/BriefingModule/cfgFunctions/common/fn_ExportBriefings.sqf b/uo_sys_framework/BriefingModule/cfgFunctions/common/fn_ExportBriefings.sqf index 12454200..8f8aca42 100644 --- a/uo_sys_framework/BriefingModule/cfgFunctions/common/fn_ExportBriefings.sqf +++ b/uo_sys_framework/BriefingModule/cfgFunctions/common/fn_ExportBriefings.sqf @@ -9,14 +9,29 @@ LOG("Exporting Briefing"); private _br = (toString [13,10]);//(carriage return & line feed) -private _export = "_briefing = [];" + _br + +private _export = "private _briefing = [];" + _br + + + +"#define NEWTAB(NAME) _briefing set [count _briefing, [""Diary"",[NAME,""" + _br + +"#define ENDTAB ""]]];" + _br + + +"#define DISPLAYBRIEFING() \"+ _br + +"_size = count _briefing - 1; \"+ _br + +"for '_i' from 0 to _size do \"+ _br + +"{ \" + _br + + "player createDiaryRecord (_briefing select _size - _i); \"+ _br + +" }; "+ _br + +_br + +_br + + + "switch (side player) do " + _br + "{" + _br + "case west:" + _br + "{" + _br; if (GETMVALUE(NATO_BLUFOR,false)) then { //Situation - _export = _export + "NEWTAB(""I. Situation:"")," + _br + + _export = _export + "NEWTAB(""I. Situation:"")" + _br + "

Situation:


" + _br + (GETMVALUE(NATO_SIT_Main_BLUFOR,"")) + "

" + _br + "

Terrain:


" + _br + (GETMVALUE(NATO_SIT_Terrain_BLUFOR,"")) + "

" + _br + "

Key Terrain:


" + _br + (GETMVALUE(NATO_SIT_KEYTerrain_BLUFOR,"")) + "

" + _br + @@ -24,7 +39,7 @@ if (GETMVALUE(NATO_BLUFOR,false)) then { "ENDTAB;" + _br + _br + //Enemy - "NEWTAB("" A. Enemy Forces:"")," + _br + + "NEWTAB("" A. Enemy Forces:"")" + _br + "

Disposition:


" + _br + (GETMVALUE(NATO_Enemy_DIS_BLUFOR,"")) + "

" + _br + "

Strength:


" + _br + (GETMVALUE(NATO_Enemy_STRENGTH_BLUFOR,"")) + "

" + _br + "

Equipment:


" + _br + (GETMVALUE(NATO_Enemy_EQUIPMENT_BLUFOR,"")) + "

" + _br + @@ -34,7 +49,7 @@ if (GETMVALUE(NATO_BLUFOR,false)) then { "ENDTAB;" + _br + _br + //Friendly - "NEWTAB("" B. Friendly Forces:"")," + _br + + "NEWTAB("" B. Friendly Forces:"")" + _br + "

Disposition:


" + (GETMVALUE(NATO_FRIENDLY_DIS_BLUFOR,"")) + "

" + _br + "

Higher Units:


" + (GETMVALUE(NATO_FRIENDLY_Higher_BLUFOR,"")) + "

" + _br + "

Strength:


" + (GETMVALUE(NATO_Enemy_STRENGTH_BLUFOR,"")) + "

" + _br + @@ -42,35 +57,38 @@ if (GETMVALUE(NATO_BLUFOR,false)) then { "ENDTAB;" + _br + _br + //Mission - "NEWTAB(""II. Mission:"")," + _br + + "NEWTAB(""II. Mission:"")" + _br + "

Mission:


" + _br + (GETMVALUE(NATO_Mission_BLUFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""III. Execution:"")," + _br + + "NEWTAB(""III. Execution:"")" + _br + "

Commanders Intent:


" + _br + (GETMVALUE(NATO_EXECUTION_INTENT_BLUFOR,"")) + "

" + _br + "

Maneuver:


" + _br + (GETMVALUE(NATO_EXECUTION_MANEUVER_BLUFOR,"")) + "

" + _br + "

Timings:


" + _br + (GETMVALUE(NATO_EXECUTION_Timings_BLUFOR,"")) + "

" + _br + "

Tasks:


" + _br + (GETMVALUE(NATO_EXECUTION_Tasks_BLUFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""IV. Service Support:"")," + _br + + "NEWTAB(""IV. Service Support:"")" + _br + " " + _br + "ENDTAB;" + _br + - "NEWTAB("" A. Support:"")," + _br + + "NEWTAB("" A. Support:"")" + _br + "

Fires:


" + _br + (GETMVALUE(NATO_SANDS_SUPPORT_FIRES_BLUFOR,"")) + "

" + _br + "

Ammo:


" + _br + (GETMVALUE(NATO_SANDS_SUPPORT_AMMO_BLUFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB("" B. Support: "")," + _br + + "NEWTAB("" B. Support: "")" + _br + "

General:


" + _br + (GETMVALUE(NATO_SANDS_SERVICE_GENERAL_BLUFOR,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""V. Command and Signal:"")," + _br + - "" + _br + + + "NEWTAB(""V. Command and Signal:"")" + _br + + _br + "ENDTAB;" + _br + - "NEWTAB("" A. Command:"")," + _br + + + "NEWTAB("" A. Command:"")" + _br + "

General:


" + _br + (GETMVALUE(NATO_CANDS_COMMAND_BLUFOR,"")) + _br + "ENDTAB;" + _br + - "NEWTAB("" B. Signals:"")," + _br + + + "NEWTAB("" B. Signals:"")" + _br + "

Frequencies:


" + _br + (GETMVALUE(NATO_CANDS_Signals_FREQ_BLUFOR,"")) + "

" + _br + "

Codewords:


" + _br + (GETMVALUE(NATO_CANDS_Signals_CODEWORDS_BLUFOR,"")) + "

" + _br + "

Special Signals:


" + _br + (GETMVALUE(NATO_CANDS_Signals_SPECIAL_BLUFOR,"")) + "

" + _br + @@ -86,15 +104,17 @@ _br + _br + _br; if (GETMVALUE(Warsaw_BLUFOR,false)) then { - _export = _export + "NEWTAB(""I. Preliminaries:"")," + _br + + _export = _export + "NEWTAB(""I. Preliminaries:"")" + _br + "

Weather:


" + _br + (GETMVALUE(Warsaw_Preliminaries_Weather_BLUFOR,"")) + "

" + _br + "

Terrain:


" + _br + (GETMVALUE(Warsaw_Preliminaries_Terrain_BLUFOR,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""II. Reference Points:"")," + _br + + + "NEWTAB(""II. Reference Points:"")" + _br + "

Deployment Reference Points:


" + _br + (GETMVALUE(Warsaw_Reference_DeploymentPoints_BLUFOR,"")) + "

" + _br + "

Subsequent Reference Points:


" + _br + (GETMVALUE(Warsaw_Reference_SubsequentPoints_BLUFOR,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""III. Enemy:"")," + _br + + + "NEWTAB(""III. Enemy:"")" + _br + "

Enemy Disposition:


" + _br + (GETMVALUE(Warsaw_Enemy_Disp_BLUFOR,"")) + "

" + _br + "

Enemy Equipment:


" + _br + (GETMVALUE(Warsaw_Enemy_Equip_BLUFOR,"")) + "

" + _br + "

Probable Enemy HQ Location:


" + _br + (GETMVALUE(Warsaw_Enemy_Prob_HQ_BLUFOR,"")) + "

" + _br + @@ -102,29 +122,30 @@ if (GETMVALUE(Warsaw_BLUFOR,false)) then { "

Probable Enemy Direction of Attack:


" + _br + (GETMVALUE(Warsaw_Enemy_Prob_Dir_Attack_BLUFOR,"")) + "

" + _br + "

Probable Enemy Artillery Positions and Capability:


" + _br + (GETMVALUE(Warsaw_Enemy_Prob_Arty_BLUFOR,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""IV. Higher and Adjacent Units:"")," + _br + + + "NEWTAB(""IV. Higher and Adjacent Units:"")" + _br + "

Description:


" + _br + (GETMVALUE(Warsaw_Higher_Disp_BLUFOR,"")) + "

" + _br + "

Boundaries:


" + _br + (GETMVALUE(Warsaw_Higher_Boundary_BLUFOR,"")) + "

" + _br + "

Location and Capability of Artillery:


" + _br + (GETMVALUE(Warsaw_Higher_Arty_BLUFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""V. Mission:"")," + _br + + "NEWTAB(""V. Mission:"")" + _br + "

Statement:


" + _br + (GETMVALUE(Warsaw_Mission_Desc_BLUFOR,"")) + "

" + _br + "

End State Direction:


" + _br + (GETMVALUE(Warsaw_Mission_DIR_BLUFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""VI. Order:"")," + _br + + "NEWTAB(""VI. Order:"")" + _br + "

Tasks:


" + _br + (GETMVALUE(Warsaw_Order_Tasks_BLUFOR,"")) + "

" + "

Tasks for Artillery Elements:


" + _br + (GETMVALUE(Warsaw_Order_Tasks_Arty_BLUFOR,"")) + "

" + _br + "

Readiness Timings:


" + _br + (GETMVALUE(Warsaw_Order_Timings_BLUFOR,"")) + "

" + _br + "

Signals:


" + _br + (GETMVALUE(Warsaw_Order_Signals_BLUFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""VII. Location of the Commander:"")," + _br + + "NEWTAB(""VII. Location of the Commander:"")" + _br + "

Location of the Commander:


" + _br + (GETMVALUE(Warsaw_COMM_LOC_BLUFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""VIII. Succession of Command:"")," + _br + + "NEWTAB(""VIII. Succession of Command:"")" + _br + "

Succession of Command:


" + _br + (GETMVALUE(Warsaw_SUCC_DESC_BLUFOR,"")) + _br + "ENDTAB;" + _br; }; @@ -137,7 +158,7 @@ _export = _export + "case east:" + _br + "{" + _br; if (GETMVALUE(NATO_OPFOR,false)) then { //Situation - _export = _export + "NEWTAB(""I. Situation:"")," + _br + + _export = _export + "NEWTAB(""I. Situation:"")" + _br + "

Situation:


" + _br + (GETMVALUE(NATO_SIT_Main_OPFOR,"")) + "

" + _br + "

Terrain:


" + _br + (GETMVALUE(NATO_SIT_Terrain_OPFOR,"")) + "

" + _br + "

Key Terrain:


" + _br + (GETMVALUE(NATO_SIT_KEYTerrain_OPFOR,"")) + "

" + _br + @@ -145,7 +166,7 @@ if (GETMVALUE(NATO_OPFOR,false)) then { "ENDTAB;" + _br + _br + //Enemy - "NEWTAB("" A. Enemy Forces:"")," + _br + + "NEWTAB("" A. Enemy Forces:"")" + _br + "

Disposition:


" + _br + (GETMVALUE(NATO_Enemy_DIS_OPFOR,"")) + "

" + _br + "

Strength:


" + _br + (GETMVALUE(NATO_Enemy_STRENGTH_OPFOR,"")) + "

" + _br + "

Equipment:


" + _br + (GETMVALUE(NATO_Enemy_EQUIPMENT_OPFOR,"")) + "

" + _br + @@ -155,7 +176,7 @@ if (GETMVALUE(NATO_OPFOR,false)) then { "ENDTAB;" + _br + _br + //Friendly - "NEWTAB("" B. Friendly Forces:"")," + _br + + "NEWTAB("" B. Friendly Forces:"")" + _br + "

Disposition:


" + (GETMVALUE(NATO_FRIENDLY_DIS_OPFOR,"")) + "

" + _br + "

Higher Units:


" + (GETMVALUE(NATO_FRIENDLY_Higher_OPFOR,"")) + "

" + _br + "

Strength:


" + (GETMVALUE(NATO_Enemy_STRENGTH_OPFOR,"")) + "

" + _br + @@ -163,35 +184,39 @@ if (GETMVALUE(NATO_OPFOR,false)) then { "ENDTAB;" + _br + _br + //Mission - "NEWTAB(""II. Mission:"")," + _br + + "NEWTAB(""II. Mission:"")" + _br + "

Mission:


" + _br + (GETMVALUE(NATO_Mission_OPFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""III. Execution:"")," + _br + + "NEWTAB(""III. Execution:"")" + _br + "

Commanders Intent:


" + _br + (GETMVALUE(NATO_EXECUTION_INTENT_OPFOR,"")) + "

" + _br + "

Maneuver:


" + _br + (GETMVALUE(NATO_EXECUTION_MANEUVER_OPFOR,"")) + "

" + _br + "

Timings:


" + _br + (GETMVALUE(NATO_EXECUTION_Timings_OPFOR,"")) + "

" + _br + "

Tasks:


" + _br + (GETMVALUE(NATO_EXECUTION_Tasks_OPFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""IV. Service Support:"")," + _br + + "NEWTAB(""IV. Service Support:"")" + _br + " " + _br + "ENDTAB;" + _br + - "NEWTAB("" A. Support:"")," + _br + + + "NEWTAB("" A. Support:"")" + _br + "

Fires:


" + _br + (GETMVALUE(NATO_SANDS_SUPPORT_FIRES_OPFOR,"")) + "

" + _br + "

Ammo:


" + _br + (GETMVALUE(NATO_SANDS_SUPPORT_AMMO_OPFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB("" B. Support: "")," + _br + + "NEWTAB("" B. Support: "")" + _br + "

General:


" + _br + (GETMVALUE(NATO_SANDS_SERVICE_GENERAL_OPFOR,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""V. Command and Signal:"")," + _br + + + "NEWTAB(""V. Command and Signal:"")" + _br + "" + _br + "ENDTAB;" + _br + - "NEWTAB("" A. Command:"")," + _br + + + "NEWTAB("" A. Command:"")" + _br + "

General:


" + _br + (GETMVALUE(NATO_CANDS_COMMAND_OPFOR,"")) + _br + "ENDTAB;" + _br + - "NEWTAB("" B. Signals:"")," + _br + + + "NEWTAB("" B. Signals:"")" + _br + "

Frequencies:


" + _br + (GETMVALUE(NATO_CANDS_Signals_FREQ_OPFOR,"")) + "

" + _br + "

Codewords:


" + _br + (GETMVALUE(NATO_CANDS_Signals_CODEWORDS_OPFOR,"")) + "

" + _br + "

Special Signals:


" + _br + (GETMVALUE(NATO_CANDS_Signals_SPECIAL_OPFOR,"")) + "

" + _br + @@ -208,15 +233,16 @@ _br + _br + _br; if (GETMVALUE(Warsaw_OPFOR,false)) then { - _export = _export + "NEWTAB(""I. Preliminaries:"")," + _br + + _export = _export + "NEWTAB(""I. Preliminaries:"")" + _br + "

Weather:


" + _br + (GETMVALUE(Warsaw_Preliminaries_Weather_OPFOR,"")) + "

" + _br + "

Terrain:


" + _br + (GETMVALUE(Warsaw_Preliminaries_Terrain_OPFOR,"")) + _br + - "ENDTAB;" + _br + - "NEWTAB(""II. Reference Points:"")," + _br + + "ENDTAB;" + _br + + "NEWTAB(""II. Reference Points:"")" + _br + "

Deployment Reference Points:


" + _br + (GETMVALUE(Warsaw_Reference_DeploymentPoints_OPFOR,"")) + "

" + _br + "

Subsequent Reference Points:


" + _br + (GETMVALUE(Warsaw_Reference_SubsequentPoints_OPFOR,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""III. Enemy:"")," + _br + + + "NEWTAB(""III. Enemy:"")" + _br + "

Enemy Disposition:


" + _br + (GETMVALUE(Warsaw_Enemy_Disp_OPFOR,"")) + "

" + _br + "

Enemy Equipment:


" + _br + (GETMVALUE(Warsaw_Enemy_Equip_OPFOR,"")) + "

" + _br + "

Probable Enemy HQ Location:


" + _br + (GETMVALUE(Warsaw_Enemy_Prob_HQ_OPFOR,"")) + "

" + _br + @@ -224,29 +250,30 @@ if (GETMVALUE(Warsaw_OPFOR,false)) then { "

Probable Enemy Direction of Attack:


" + _br + (GETMVALUE(Warsaw_Enemy_Prob_Dir_Attack_OPFOR,"")) + "

" + _br + "

Probable Enemy Artillery Positions and Capability:


" + _br + (GETMVALUE(Warsaw_Enemy_Prob_Arty_OPFOR,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""IV. Higher and Adjacent Units:"")," + _br + + + "NEWTAB(""IV. Higher and Adjacent Units:"")" + _br + "

Description:


" + _br + (GETMVALUE(Warsaw_Higher_Disp_OPFOR,"")) + "

" + _br + "

Boundaries:


" + _br + (GETMVALUE(Warsaw_Higher_Boundary_OPFOR,"")) + "

" + _br + "

Location and Capability of Artillery:


" + _br + (GETMVALUE(Warsaw_Higher_Arty_OPFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""V. Mission:"")," + _br + + "NEWTAB(""V. Mission:"")" + _br + "

Statement:


" + _br + (GETMVALUE(Warsaw_Mission_Desc_OPFOR,"")) + "

" + _br + "

End State Direction:


" + _br + (GETMVALUE(Warsaw_Mission_DIR_OPFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""VI. Order:"")," + _br + + "NEWTAB(""VI. Order:"")" + _br + "

Tasks:


" + _br + (GETMVALUE(Warsaw_Order_Tasks_OPFOR,"")) + "

" + "

Tasks for Artillery Elements:


" + _br + (GETMVALUE(Warsaw_Order_Tasks_Arty_OPFOR,"")) + "

" + _br + "

Readiness Timings:


" + _br + (GETMVALUE(Warsaw_Order_Timings_OPFOR,"")) + "

" + _br + "

Signals:


" + _br + (GETMVALUE(Warsaw_Order_Signals_OPFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""VII. Location of the Commander:"")," + _br + + "NEWTAB(""VII. Location of the Commander:"")" + _br + "

Location of the Commander:


" + _br + (GETMVALUE(Warsaw_COMM_LOC_OPFOR,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""VIII. Succession of Command:"")," + _br + + "NEWTAB(""VIII. Succession of Command:"")" + _br + "

Succession of Command:


" + _br + (GETMVALUE(Warsaw_SUCC_DESC_OPFOR,"")) + _br + "ENDTAB;" + _br; }; @@ -258,7 +285,7 @@ _export = _export + "case independent:" + _br + "{" + _br; if (GETMVALUE(NATO_Indfor,false)) then { //Situation - _export = _export + "NEWTAB(""I. Situation:"")," + _br + + _export = _export + "NEWTAB(""I. Situation:"")" + _br + "

Situation:


" + _br + (GETMVALUE(NATO_SIT_Main_Indfor,"")) + "

" + _br + "

Terrain:


" + _br + (GETMVALUE(NATO_SIT_Terrain_Indfor,"")) + "

" + _br + "

Key Terrain:


" + _br + (GETMVALUE(NATO_SIT_KEYTerrain_Indfor,"")) + "

" + _br + @@ -266,7 +293,7 @@ if (GETMVALUE(NATO_Indfor,false)) then { "ENDTAB;" + _br + _br + //Enemy - "NEWTAB("" A. Enemy Forces:"")," + _br + + "NEWTAB("" A. Enemy Forces:"")" + _br + "

Disposition:


" + _br + (GETMVALUE(NATO_Enemy_DIS_Indfor,"")) + "

" + _br + "

Strength:


" + _br + (GETMVALUE(NATO_Enemy_STRENGTH_Indfor,"")) + "

" + _br + "

Equipment:


" + _br + (GETMVALUE(NATO_Enemy_EQUIPMENT_Indfor,"")) + "

" + _br + @@ -276,7 +303,7 @@ if (GETMVALUE(NATO_Indfor,false)) then { "ENDTAB;" + _br + _br + //Friendly - "NEWTAB("" B. Friendly Forces:"")," + _br + + "NEWTAB("" B. Friendly Forces:"")" + _br + "

Disposition:


" + (GETMVALUE(NATO_FRIENDLY_DIS_Indfor,"")) + "

" + _br + "

Higher Units:


" + (GETMVALUE(NATO_FRIENDLY_Higher_Indfor,"")) + "

" + _br + "

Strength:


" + (GETMVALUE(NATO_Enemy_STRENGTH_Indfor,"")) + "

" + _br + @@ -284,35 +311,39 @@ if (GETMVALUE(NATO_Indfor,false)) then { "ENDTAB;" + _br + _br + //Mission - "NEWTAB(""II. Mission:"")," + _br + + "NEWTAB(""II. Mission:"")" + _br + "

Mission:


" + _br + (GETMVALUE(NATO_Mission_Indfor,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""III. Execution:"")," + _br + + "NEWTAB(""III. Execution:"")" + _br + "

Commanders Intent:


" + _br + (GETMVALUE(NATO_EXECUTION_INTENT_Indfor,"")) + "

" + _br + "

Maneuver:


" + _br + (GETMVALUE(NATO_EXECUTION_MANEUVER_Indfor,"")) + "

" + _br + "

Timings:


" + _br + (GETMVALUE(NATO_EXECUTION_Timings_Indfor,"")) + "

" + _br + "

Tasks:


" + _br + (GETMVALUE(NATO_EXECUTION_Tasks_Indfor,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""IV. Service Support:"")," + _br + + "NEWTAB(""IV. Service Support:"")" + _br + " " + _br + "ENDTAB;" + _br + - "NEWTAB("" A. Support:"")," + _br + + + "NEWTAB("" A. Support:"")" + _br + "

Fires:


" + _br + (GETMVALUE(NATO_SANDS_SUPPORT_FIRES_Indfor,"")) + "

" + _br + "

Ammo:


" + _br + (GETMVALUE(NATO_SANDS_SUPPORT_AMMO_Indfor,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB("" B. Support: "")," + _br + + "NEWTAB("" B. Support: "")" + _br + "

General:


" + _br + (GETMVALUE(NATO_SANDS_SERVICE_GENERAL_Indfor,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""V. Command and Signal:"")," + _br + + + "NEWTAB(""V. Command and Signal:"")" + _br + "" + _br + "ENDTAB;" + _br + - "NEWTAB("" A. Command:"")," + _br + + + "NEWTAB("" A. Command:"")" + _br + "

General:


" + _br + (GETMVALUE(NATO_CANDS_COMMAND_Indfor,"")) + _br + "ENDTAB;" + _br + - "NEWTAB("" B. Signals:"")," + _br + + + "NEWTAB("" B. Signals:"")" + _br + "

Frequencies:


" + _br + (GETMVALUE(NATO_CANDS_Signals_FREQ_Indfor,"")) + "

" + _br + "

Codewords:


" + _br + (GETMVALUE(NATO_CANDS_Signals_CODEWORDS_Indfor,"")) + "

" + _br + "

Special Signals:


" + _br + (GETMVALUE(NATO_CANDS_Signals_SPECIAL_Indfor,"")) + "

" + _br + @@ -329,15 +360,15 @@ _br + _br + _br; if (GETMVALUE(Warsaw_Indfor,false)) then { - _export = _export + "NEWTAB(""I. Preliminaries:"")," + _br + + _export = _export + "NEWTAB(""I. Preliminaries:"")" + _br + "

Weather:


" + _br + (GETMVALUE(Warsaw_Preliminaries_Weather_Indfor,"")) + "

" + _br + "

Terrain:


" + _br + (GETMVALUE(Warsaw_Preliminaries_Terrain_Indfor,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""II. Reference Points:"")," + _br + + "NEWTAB(""II. Reference Points:"")" + _br + "

Deployment Reference Points:


" + _br + (GETMVALUE(Warsaw_Reference_DeploymentPoints_Indfor,"")) + "

" + _br + "

Subsequent Reference Points:


" + _br + (GETMVALUE(Warsaw_Reference_SubsequentPoints_Indfor,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""III. Enemy:"")," + _br + + "NEWTAB(""III. Enemy:"")" + _br + "

Enemy Disposition:


" + _br + (GETMVALUE(Warsaw_Enemy_Disp_Indfor,"")) + "

" + _br + "

Enemy Equipment:


" + _br + (GETMVALUE(Warsaw_Enemy_Equip_Indfor,"")) + "

" + _br + "

Probable Enemy HQ Location:


" + _br + (GETMVALUE(Warsaw_Enemy_Prob_HQ_Indfor,"")) + "

" + _br + @@ -345,29 +376,29 @@ if (GETMVALUE(Warsaw_Indfor,false)) then { "

Probable Enemy Direction of Attack:


" + _br + (GETMVALUE(Warsaw_Enemy_Prob_Dir_Attack_Indfor,"")) + "

" + _br + "

Probable Enemy Artillery Positions and Capability:


" + _br + (GETMVALUE(Warsaw_Enemy_Prob_Arty_Indfor,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""IV. Higher and Adjacent Units:"")," + _br + + "NEWTAB(""IV. Higher and Adjacent Units:"")" + _br + "

Description:


" + _br + (GETMVALUE(Warsaw_Higher_Disp_Indfor,"")) + "

" + _br + "

Boundaries:


" + _br + (GETMVALUE(Warsaw_Higher_Boundary_Indfor,"")) + "

" + _br + "

Location and Capability of Artillery:


" + _br + (GETMVALUE(Warsaw_Higher_Arty_Indfor,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""V. Mission:"")," + _br + + "NEWTAB(""V. Mission:"")" + _br + "

Statement:


" + _br + (GETMVALUE(Warsaw_Mission_Desc_Indfor,"")) + "

" + _br + "

End State Direction:


" + _br + (GETMVALUE(Warsaw_Mission_DIR_Indfor,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""VI. Order:"")," + _br + + "NEWTAB(""VI. Order:"")" + _br + "

Tasks:


" + _br + (GETMVALUE(Warsaw_Order_Tasks_Indfor,"")) + "

" + "

Tasks for Artillery Elements:


" + _br + (GETMVALUE(Warsaw_Order_Tasks_Arty_Indfor,"")) + "

" + _br + "

Readiness Timings:


" + _br + (GETMVALUE(Warsaw_Order_Timings_Indfor,"")) + "

" + _br + "

Signals:


" + _br + (GETMVALUE(Warsaw_Order_Signals_Indfor,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""VII. Location of the Commander:"")," + _br + + "NEWTAB(""VII. Location of the Commander:"")" + _br + "

Location of the Commander:


" + _br + (GETMVALUE(Warsaw_COMM_LOC_Indfor,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""VIII. Succession of Command:"")," + _br + + "NEWTAB(""VIII. Succession of Command:"")" + _br + "

Succession of Command:


" + _br + (GETMVALUE(Warsaw_SUCC_DESC_Indfor,"")) + _br + "ENDTAB;" + _br; }; @@ -380,7 +411,7 @@ _export = _export + "case civilian:" + _br + "{" + _br; if (GETMVALUE(NATO_Civ,false)) then { //Situation - _export = _export + "NEWTAB(""I. Situation:"")," + _br + + _export = _export + "NEWTAB(""I. Situation:"")" + _br + "

Situation:


" + _br + (GETMVALUE(NATO_SIT_Main_Civ,"")) + "

" + _br + "

Terrain:


" + _br + (GETMVALUE(NATO_SIT_Terrain_Civ,"")) + "

" + _br + "

Key Terrain:


" + _br + (GETMVALUE(NATO_SIT_KEYTerrain_Civ,"")) + "

" + _br + @@ -388,7 +419,7 @@ if (GETMVALUE(NATO_Civ,false)) then { "ENDTAB;" + _br + _br + //Enemy - "NEWTAB("" A. Enemy Forces:"")," + _br + + "NEWTAB("" A. Enemy Forces:"")" + _br + "

Disposition:


" + _br + (GETMVALUE(NATO_Enemy_DIS_Civ,"")) + "

" + _br + "

Strength:


" + _br + (GETMVALUE(NATO_Enemy_STRENGTH_Civ,"")) + "

" + _br + "

Equipment:


" + _br + (GETMVALUE(NATO_Enemy_EQUIPMENT_Civ,"")) + "

" + _br + @@ -398,7 +429,7 @@ if (GETMVALUE(NATO_Civ,false)) then { "ENDTAB;" + _br + _br + //Friendly - "NEWTAB("" B. Friendly Forces:"")," + _br + + "NEWTAB("" B. Friendly Forces:"")" + _br + "

Disposition:


" + (GETMVALUE(NATO_FRIENDLY_DIS_Civ,"")) + "

" + _br + "

Higher Units:


" + (GETMVALUE(NATO_FRIENDLY_Higher_Civ,"")) + "

" + _br + "

Strength:


" + (GETMVALUE(NATO_Enemy_STRENGTH_Civ,"")) + "

" + _br + @@ -406,35 +437,35 @@ if (GETMVALUE(NATO_Civ,false)) then { "ENDTAB;" + _br + _br + //Mission - "NEWTAB(""II. Mission:"")," + _br + + "NEWTAB(""II. Mission:"")" + _br + "

Mission:


" + _br + (GETMVALUE(NATO_Mission_Civ,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""III. Execution:"")," + _br + + "NEWTAB(""III. Execution:"")" + _br + "

Commanders Intent:


" + _br + (GETMVALUE(NATO_EXECUTION_INTENT_Civ,"")) + "

" + _br + "

Maneuver:


" + _br + (GETMVALUE(NATO_EXECUTION_MANEUVER_Civ,"")) + "

" + _br + "

Timings:


" + _br + (GETMVALUE(NATO_EXECUTION_Timings_Civ,"")) + "

" + _br + "

Tasks:


" + _br + (GETMVALUE(NATO_EXECUTION_Tasks_Civ,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""IV. Service Support:"")," + _br + + "NEWTAB(""IV. Service Support:"")" + _br + " " + _br + "ENDTAB;" + _br + - "NEWTAB("" A. Support:"")," + _br + + "NEWTAB("" A. Support:"")" + _br + "

Fires:


" + _br + (GETMVALUE(NATO_SANDS_SUPPORT_FIRES_Civ,"")) + "

" + _br + "

Ammo:


" + _br + (GETMVALUE(NATO_SANDS_SUPPORT_AMMO_Civ,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB("" B. Support: "")," + _br + + "NEWTAB("" B. Support: "")" + _br + "

General:


" + _br + (GETMVALUE(NATO_SANDS_SERVICE_GENERAL_Civ,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""V. Command and Signal:"")," + _br + + "NEWTAB(""V. Command and Signal:"")" + _br + "" + _br + "ENDTAB;" + _br + - "NEWTAB("" A. Command:"")," + _br + + "NEWTAB("" A. Command:"")" + _br + "

General:


" + _br + (GETMVALUE(NATO_CANDS_COMMAND_Civ,"")) + _br + "ENDTAB;" + _br + - "NEWTAB("" B. Signals:"")," + _br + + "NEWTAB("" B. Signals:"")" + _br + "

Frequencies:


" + _br + (GETMVALUE(NATO_CANDS_Signals_FREQ_Civ,"")) + "

" + _br + "

Codewords:


" + _br + (GETMVALUE(NATO_CANDS_Signals_CODEWORDS_Civ,"")) + "

" + _br + "

Special Signals:


" + _br + (GETMVALUE(NATO_CANDS_Signals_SPECIAL_Civ,"")) + "

" + _br + @@ -451,15 +482,15 @@ _br + _br + _br; if (GETMVALUE(Warsaw_Civ,false)) then { - _export = _export + "NEWTAB(""I. Preliminaries:"")," + _br + + _export = _export + "NEWTAB(""I. Preliminaries:"")" + _br + "

Weather:


" + _br + (GETMVALUE(Warsaw_Preliminaries_Weather_Civ,"")) + "

" + _br + "

Terrain:


" + _br + (GETMVALUE(Warsaw_Preliminaries_Terrain_Civ,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""II. Reference Points:"")," + _br + + "NEWTAB(""II. Reference Points:"")" + _br + "

Deployment Reference Points:


" + _br + (GETMVALUE(Warsaw_Reference_DeploymentPoints_Civ,"")) + "

" + _br + "

Subsequent Reference Points:


" + _br + (GETMVALUE(Warsaw_Reference_SubsequentPoints_Civ,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""III. Enemy:"")," + _br + + "NEWTAB(""III. Enemy:"")" + _br + "

Enemy Disposition:


" + _br + (GETMVALUE(Warsaw_Enemy_Disp_Civ,"")) + "

" + _br + "

Enemy Equipment:


" + _br + (GETMVALUE(Warsaw_Enemy_Equip_Civ,"")) + "

" + _br + "

Probable Enemy HQ Location:


" + _br + (GETMVALUE(Warsaw_Enemy_Prob_HQ_Civ,"")) + "

" + _br + @@ -467,29 +498,29 @@ if (GETMVALUE(Warsaw_Civ,false)) then { "

Probable Enemy Direction of Attack:


" + _br + (GETMVALUE(Warsaw_Enemy_Prob_Dir_Attack_Civ,"")) + "

" + _br + "

Probable Enemy Artillery Positions and Capability:


" + _br + (GETMVALUE(Warsaw_Enemy_Prob_Arty_Civ,"")) + _br + "ENDTAB;" + _br + - "NEWTAB(""IV. Higher and Adjacent Units:"")," + _br + + "NEWTAB(""IV. Higher and Adjacent Units:"")" + _br + "

Description:


" + _br + (GETMVALUE(Warsaw_Higher_Disp_Civ,"")) + "

" + _br + "

Boundaries:


" + _br + (GETMVALUE(Warsaw_Higher_Boundary_Civ,"")) + "

" + _br + "

Location and Capability of Artillery:


" + _br + (GETMVALUE(Warsaw_Higher_Arty_Civ,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""V. Mission:"")," + _br + + "NEWTAB(""V. Mission:"")" + _br + "

Statement:


" + _br + (GETMVALUE(Warsaw_Mission_Desc_Civ,"")) + "

" + _br + "

End State Direction:


" + _br + (GETMVALUE(Warsaw_Mission_DIR_Civ,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""VI. Order:"")," + _br + + "NEWTAB(""VI. Order:"")" + _br + "

Tasks:


" + _br + (GETMVALUE(Warsaw_Order_Tasks_Civ,"")) + "

" + "

Tasks for Artillery Elements:


" + _br + (GETMVALUE(Warsaw_Order_Tasks_Arty_Civ,"")) + "

" + _br + "

Readiness Timings:


" + _br + (GETMVALUE(Warsaw_Order_Timings_Civ,"")) + "

" + _br + "

Signals:


" + _br + (GETMVALUE(Warsaw_Order_Signals_Civ,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""VII. Location of the Commander:"")," + _br + + "NEWTAB(""VII. Location of the Commander:"")" + _br + "

Location of the Commander:


" + _br + (GETMVALUE(Warsaw_COMM_LOC_Civ,"")) + _br + "ENDTAB;" + _br + _br + - "NEWTAB(""VIII. Succession of Command:"")," + _br + + "NEWTAB(""VIII. Succession of Command:"")" + _br + "

Succession of Command:


" + _br + (GETMVALUE(Warsaw_SUCC_DESC_Civ,"")) + _br + "ENDTAB;" + _br; }; @@ -498,7 +529,7 @@ _export = _export + "};" + _br + "};" + _br + //Mission Notes -"NEWTAB(""Mission Notes:"")," + _br + +"NEWTAB(""Mission Notes:"")" + _br + "

Author:


" + _br + (GETMVALUE(MissionNotes_Author,"")) + "

" + _br + "

Testers:


" + _br + (GETMVALUE(MissionNotes_Testers,"")) + "

" + _br + "

End Conditions:


" + _br + (GETMVALUE(MissionNotes_Conditions,"")) + "

" + _br + @@ -518,7 +549,7 @@ progressLoadingScreen 0.9; //Game Mastering _export = _export + -"NEWTAB(""Game Mastering"")," + _br + +"NEWTAB(""Game Mastering"")" + _br + "

Game Mastering:


" + _gamemastermsg + _br + "ENDTAB;" + _br + diff --git a/uo_sys_framework/BriefingModule/defines/blufor_briefing.hpp b/uo_sys_framework/BriefingModule/defines/blufor_briefing.hpp index eab627e4..3d8d6959 100644 --- a/uo_sys_framework/BriefingModule/defines/blufor_briefing.hpp +++ b/uo_sys_framework/BriefingModule/defines/blufor_briefing.hpp @@ -1,6 +1,6 @@ if (GETMVAR(File_BLUFOR,false)) exitwith { if !(GETMVAR(File_Path_BLUFOR,"") isEqualto "") then { - "" call (compile preprocessFileLineNumbers GETMVAR(File_Path_BLUFOR,"")); + "" call (compile preprocessFileLineNumbers (GETMVAR(File_Path_BLUFOR,""))); } else { ERROR("No briefing found for BLUFOR!"); }; @@ -73,7 +73,7 @@ if (GETMVAR(NATO_BLUFOR,false)) then { if !(_friendlyDisposition isEqualTo "") then { _friendlyStr = _friendlyStr + "

Disposition:


" + _friendlyDisposition + "

"; }; - private _friendlyHigher = GETMVAR(NATO_FRIENDLY_DIS_BLUFOR,""); + private _friendlyHigher = GETMVAR(NATO_FRIENDLY_Higher_BLUFOR,""); if !(_friendlyHigher isEqualTo "") then { _friendlyStr = _friendlyStr + "

Higher Units:


" + _friendlyHigher + "

"; }; @@ -440,20 +440,20 @@ if (GETMVAR(MissionNotes_Enable,false)) then { _notesStr ENDTAB; }; + private _gamemastermsg = ""; -}; - -private _gamemastermsg = ""; + if (GETMVAR(MissionNotes_GM,false)) then { + _gamemastermsg = "This mission is designed for game mastering and can be manipulated as per Mission Notes"; + } else { + _gamemastermsg = "This mission is not designed for game mastering and should only be manipulated for technical, administrative or diagnostic purposes."; + }; -if (GETMVAR(MissionNotes_GM,false)) then { - _gamemastermsg = "This mission is designed for game mastering and can be manipulated as per Mission Notes"; -} else { - _gamemastermsg = "This mission is not designed for game mastering and should only be manipulated for technical, administrative or diagnostic purposes."; + //Game Mastering + NEWTAB("Game Mastering"), + "

Game Mastering:


" + _gamemastermsg + ENDTAB; }; -//Game Mastering -NEWTAB("Game Mastering"), - "

Game Mastering:


" + _gamemastermsg -ENDTAB; + DISPLAYBRIEFING(); diff --git a/uo_sys_framework/BriefingModule/defines/civilian_briefing.hpp b/uo_sys_framework/BriefingModule/defines/civilian_briefing.hpp index 04568cbb..1d1db48c 100644 --- a/uo_sys_framework/BriefingModule/defines/civilian_briefing.hpp +++ b/uo_sys_framework/BriefingModule/defines/civilian_briefing.hpp @@ -1,6 +1,6 @@ if (GETMVAR(File_Civ,false)) exitwith { if !(GETMVAR(File_Path_Civ,"") isEqualto "") then { - "" call (compile preprocessFileLineNumbers GETMVAR(File_Path_Civ,"")); + "" call (compile preprocessFileLineNumbers (GETMVAR(File_Path_Civ,""))); } else { ERROR("No briefing found for CIVILIAN!"); }; @@ -73,7 +73,7 @@ if (GETMVAR(NATO_Civ,false)) then { if !(_friendlyDisposition isEqualTo "") then { _friendlyStr = _friendlyStr + "

Disposition:


" + _friendlyDisposition + "

"; }; - private _friendlyHigher = GETMVAR(NATO_FRIENDLY_DIS_Civ,""); + private _friendlyHigher = GETMVAR(NATO_FRIENDLY_Higher_Civ,""); if !(_friendlyHigher isEqualTo "") then { _friendlyStr = _friendlyStr + "

Higher Units:


" + _friendlyHigher + "

"; }; @@ -440,21 +440,22 @@ if (GETMVAR(MissionNotes_Enable,false)) then { _notesStr ENDTAB; }; + + private _gamemastermsg = ""; -}; + if (GETMVAR(MissionNotes_GM,false)) then { + _gamemastermsg = "This mission is designed for game mastering and can be manipulated as per Mission Notes"; + } else { + _gamemastermsg = "This mission is not designed for game mastering and should only be manipulated for technical, administrative or diagnostic purposes."; + }; + //Game Mastering + NEWTAB("Game Mastering"), + "

Game Mastering:


" + _gamemastermsg + ENDTAB; +}; -private _gamemastermsg = ""; -if (GETMVAR(MissionNotes_GM,false)) then { - _gamemastermsg = "This mission is designed for game mastering and can be manipulated as per Mission Notes"; -} else { - _gamemastermsg = "This mission is not designed for game mastering and should only be manipulated for technical, administrative or diagnostic purposes."; -}; -//Game Mastering -NEWTAB("Game Mastering"), - "

Game Mastering:


" + _gamemastermsg -ENDTAB; DISPLAYBRIEFING(); diff --git a/uo_sys_framework/BriefingModule/defines/indfor_briefing.hpp b/uo_sys_framework/BriefingModule/defines/indfor_briefing.hpp index acf16cfc..11502901 100644 --- a/uo_sys_framework/BriefingModule/defines/indfor_briefing.hpp +++ b/uo_sys_framework/BriefingModule/defines/indfor_briefing.hpp @@ -1,6 +1,6 @@ if (GETMVAR(File_INDFOR,false)) exitwith { if !(GETMVAR(File_Path_INDFOR,"") isEqualto "") then { - "" call (compile preprocessFileLineNumbers GETMVAR(File_Path_INDFOR,"")); + "" call (compile preprocessFileLineNumbers (GETMVAR(File_Path_INDFOR,""))); } else { ERROR("No briefing found for INDFOR!"); }; @@ -73,7 +73,7 @@ if (GETMVAR(NATO_INDFOR,false)) then { if !(_friendlyDisposition isEqualTo "") then { _friendlyStr = _friendlyStr + "

Disposition:


" + _friendlyDisposition + "

"; }; - private _friendlyHigher = GETMVAR(NATO_FRIENDLY_DIS_INDFOR,""); + private _friendlyHigher = GETMVAR(NATO_FRIENDLY_Higher_Indfor,""); if !(_friendlyHigher isEqualTo "") then { _friendlyStr = _friendlyStr + "

Higher Units:


" + _friendlyHigher + "

"; }; @@ -441,20 +441,20 @@ if (GETMVAR(MissionNotes_Enable,false)) then { ENDTAB; }; -}; - + private _gamemastermsg = ""; -private _gamemastermsg = ""; + if (GETMVAR(MissionNotes_GM,false)) then { + _gamemastermsg = "This mission is designed for game mastering and can be manipulated as per Mission Notes"; + } else { + _gamemastermsg = "This mission is not designed for game mastering and should only be manipulated for technical, administrative or diagnostic purposes."; + }; -if (GETMVAR(MissionNotes_GM,false)) then { - _gamemastermsg = "This mission is designed for game mastering and can be manipulated as per Mission Notes"; -} else { - _gamemastermsg = "This mission is not designed for game mastering and should only be manipulated for technical, administrative or diagnostic purposes."; + //Game Mastering + NEWTAB("Game Mastering"), + "

Game Mastering:


" + _gamemastermsg + ENDTAB; }; -//Game Mastering -NEWTAB("Game Mastering"), - "

Game Mastering:


" + _gamemastermsg -ENDTAB; + DISPLAYBRIEFING(); diff --git a/uo_sys_framework/BriefingModule/defines/opfor_briefing.hpp b/uo_sys_framework/BriefingModule/defines/opfor_briefing.hpp index 44c9d6ea..062514c4 100644 --- a/uo_sys_framework/BriefingModule/defines/opfor_briefing.hpp +++ b/uo_sys_framework/BriefingModule/defines/opfor_briefing.hpp @@ -1,6 +1,6 @@ if (GETMVAR(File_OPFOR,false)) exitwith { if !(GETMVAR(File_Path_OPFOR,"") isEqualto "") then { - "" call (compile preprocessFileLineNumbers GETMVAR(File_Path_OPFOR,"")); + "" call (compile preprocessFileLineNumbers (GETMVAR(File_Path_OPFOR,""))); } else { ERROR("No briefing found for OPFOR!"); }; @@ -73,7 +73,7 @@ if (GETMVAR(NATO_OPFOR,false)) then { if !(_friendlyDisposition isEqualTo "") then { _friendlyStr = _friendlyStr + "

Disposition:


" + _friendlyDisposition + "

"; }; - private _friendlyHigher = GETMVAR(NATO_FRIENDLY_DIS_OPFOR,""); + private _friendlyHigher = GETMVAR(NATO_FRIENDLY_Higher_OPFOR,""); if !(_friendlyHigher isEqualTo "") then { _friendlyStr = _friendlyStr + "

Higher Units:


" + _friendlyHigher + "

"; }; @@ -441,20 +441,22 @@ if (GETMVAR(MissionNotes_Enable,false)) then { ENDTAB; }; -}; + private _gamemastermsg = ""; + if (GETMVAR(MissionNotes_GM,false)) then { + _gamemastermsg = "This mission is designed for game mastering and can be manipulated as per Mission Notes"; + } else { + _gamemastermsg = "This mission is not designed for game mastering and should only be manipulated for technical, administrative or diagnostic purposes."; + }; -private _gamemastermsg = ""; + //Game Mastering + NEWTAB("Game Mastering"), + "

Game Mastering:


" + _gamemastermsg + ENDTAB; -if (GETMVAR(MissionNotes_GM,false)) then { - _gamemastermsg = "This mission is designed for game mastering and can be manipulated as per Mission Notes"; -} else { - _gamemastermsg = "This mission is not designed for game mastering and should only be manipulated for technical, administrative or diagnostic purposes."; }; -//Game Mastering -NEWTAB("Game Mastering"), - "

Game Mastering:


" + _gamemastermsg -ENDTAB; + + DISPLAYBRIEFING(); diff --git a/uo_sys_framework/Core/cfgFunctions/EndScreen/fn_endscreen.sqf b/uo_sys_framework/Core/cfgFunctions/EndScreen/fn_endscreen.sqf index e2be26f9..bfe72810 100644 --- a/uo_sys_framework/Core/cfgFunctions/EndScreen/fn_endscreen.sqf +++ b/uo_sys_framework/Core/cfgFunctions/EndScreen/fn_endscreen.sqf @@ -2,7 +2,7 @@ #include "\x\UO_FW\addons\Main\script_macros.hpp" EXEC_CHECK(CLIENT); -params ["_scenario"]; +params ["_scenario", "_timeLimit", "_teams"]; (vehicle player) enableSimulation false; player enableSimulation false; @@ -41,9 +41,9 @@ private _textSide = 0; _rightText = _rightText + _temp; }; }; -} forEach GVAR(Teams); +} forEach _teams; private _endTitleText = _scenario; -if !((EGETMVAR(EndConditions,Timelimit,60)) isEqualto 0) then { +if !((EGETMVAR(EndConditions,Timelimit,0)) isEqualto 0) then { private _time = ceil(CBA_missiontime / 60); if (_time >= (EGETMVAR(EndConditions,Timelimit,60))) then { _time = (EGETMVAR(EndConditions,Timelimit,60)); diff --git a/uo_sys_framework/Core/cfgFunctions/JiP/fn_GiveActions.sqf b/uo_sys_framework/Core/cfgFunctions/JiP/fn_GiveActions.sqf index d316b5d9..6949def3 100644 --- a/uo_sys_framework/Core/cfgFunctions/JiP/fn_GiveActions.sqf +++ b/uo_sys_framework/Core/cfgFunctions/JiP/fn_GiveActions.sqf @@ -31,14 +31,14 @@ switch (side player) do { _distance = GETMVAR(Distance_Civ,200); }; }; - +LOG_1("Adding Jip Actions: Type=%1",_type); switch (_type) do { case 0: { private _teleportAction = ["Jip_Teleport_Action", "Teleport To Squad", "", { params ["_target", "_player", "_args"]; _args params ["_distance"]; [_target,_args] call FUNC(Teleport); - }, {(player distance (MGETMVAR(SpawnPos,(getpos player))) > (_this select 0))}, {}, [_distance]] call ace_interact_menu_fnc_createAction; + }, {((player distance (EGETMVAR(Core,SpawnPos,(getpos player)))) < ((_this select 2 ) select 0))}, {}, [_distance]] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions"], _teleportAction] call ace_interact_menu_fnc_addActionToObject; [{ params ["_args","_idPFH"]; @@ -48,7 +48,7 @@ switch (_type) do { [_idPFH] call CBA_fnc_removePerFrameHandler; ["JIP teleport option lost, it has been %1 minutes since you spawned.",(GETMVAR(EXPIRETIME,5))] call EFUNC(Core,parsedTextDisplay); }; - if (player distance (MGETMVAR(SpawnPos,(getpos player))) > _distance) exitwith { + if (player distance (EGETMVAR(Core,SpawnPos,(getpos player))) > _distance) exitwith { [player,1,["ACE_SelfActions","Jip_Teleport_Action"]] call ace_interact_menu_fnc_removeActionFromObject; [_idPFH] call CBA_fnc_removePerFrameHandler; [["JIP teleport option lost, you went beyond %1 meters from your spawn location",_distance]] call EFUNC(Core,parsedTextDisplay); @@ -60,7 +60,7 @@ switch (_type) do { params ["_target", "_player", "_args"]; _args params ["_distance"]; [_target,_args] call FUNC(Transport); - }, {(player distance (EGETMVAR(Core,SpawnPos,(getpos player))) > (_this select 0))}, {}, [_distance]] call ace_interact_menu_fnc_createAction; + }, {((player distance (EGETMVAR(Core,SpawnPos,(getpos player)))) < ((_this select 2 ) select 0))}, {}, [_distance]] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions"], _transportAction] call ace_interact_menu_fnc_addActionToObject; [{ params ["_args","_idPFH"]; diff --git a/uo_sys_framework/Core/cfgFunctions/JiP/fn_Teleport.sqf b/uo_sys_framework/Core/cfgFunctions/JiP/fn_Teleport.sqf index 152ebc23..2f71bb6c 100644 --- a/uo_sys_framework/Core/cfgFunctions/JiP/fn_Teleport.sqf +++ b/uo_sys_framework/Core/cfgFunctions/JiP/fn_Teleport.sqf @@ -12,6 +12,7 @@ EXEC_CHECK(CLIENT); params ["_target"]; + private _target = (leader player); if (player isEqualto _target || !(_target call EFUNC(Core,Alive))) then { private _rank = -1; @@ -20,7 +21,7 @@ if (player isEqualto _target || !(_target call EFUNC(Core,Alive))) then { _rank = rankId _x; _target = _x; }; - } forEach ((units group player) - [player]); + } forEach ((units (group player)) - [player]); }; if (!((_target call EFUNC(Core,Alive)) && {((_target isEqualto vehicle _target) || ((vehicle _target) call EFUNC(Core,HasEmptyPositions)))})) then { private _rank = -1; @@ -44,18 +45,21 @@ if (!((_target call EFUNC(Core,Alive)) && {((_target isEqualto vehicle _target) }; }; }; +LOG_1("Jip Teleport to %1",_target); if (!isNull(_target)) then { - if (_target isEqualto vehicle _target) then { + if !(_target isEqualto vehicle _target) then { private _moveInSuccess = player moveInAny (vehicle _target); - [{!(isNil (this select 0))}, { - params ["_moveInSuccess"]; + [{(vehicle player) isEqualTo (vehicle (_this select 0))}, { + params ["_target","_moveInSuccess"]; if (_moveInSuccess) then { [player,1,["ACE_SelfActions","Jip_Teleport_Action"]] call ace_interact_menu_fnc_removeActionFromObject; ["ace_common_displayTextStructured", [["%1 joined the mission and teleported into the vehicle.", name player], 1.5, _target], [_target]] call CBA_fnc_targetEvent; + LOG_1("Sucessful Teleport to vehicle %1",_target); } else { ["Failed to move into leader's vehicle, please try again later."] call EFUNC(Core,parsedTextDisplay); + LOG_1("Failed Teleport due to vehicle %1",_target); }; - }, [_moveInSuccess]] call CBA_fnc_WaitUntilAndExecute; + }, [_target,_moveInSuccess],10,{[player,1,["ACE_SelfActions","Jip_Teleport_Action"]] call ace_interact_menu_fnc_removeActionFromObject;}] call CBA_fnc_WaitUntilAndExecute; } else { private _stance = stance _target; switch (_stance) do { @@ -70,8 +74,8 @@ if (!isNull(_target)) then { }; default {}; }; - private _pos = [(_target getpos [getdir _target, -2]), 1, 10, 1, 0, 25, 0] call BIS_fnc_findSafePos; - if (_pos distance _target <= 10) then { + private _pos = [(_target getpos [-2,getdir _target]), 1, 10, 1, 0, 25, 0] call BIS_fnc_findSafePos; + if (_pos distance _target <= 15) then { private _enemy = false; if ((GETMVAR(EnemyDISTANCE,100)) > 0) then { private _nearestentitiesArray = _target nearEntities [["Car", "Motorcycle", "Tank", "Man"], GETMVAR(EnemyDISTANCE,100)]; @@ -81,6 +85,7 @@ if (!isNull(_target)) then { }; if !(_enemy) then { player setPos (_pos); + LOG_2("Jip Teleport to %1. pos=%2",_target,_pos); [player,1,["ACE_SelfActions","Jip_Teleport_Action"]] call ace_interact_menu_fnc_removeActionFromObject; ["ace_common_displayTextStructured", [["%1 joined the mission and teleported to you.", name player], 1.5, _target], [_target]] call CBA_fnc_targetEvent; private _eventhandlerdamage = player addEventHandler ["HandleDamage",{ @@ -89,15 +94,19 @@ if (!isNull(_target)) then { _damage }]; [{ + params ["_eventhandlerdamage"]; player removeEventHandler ["HandleDamage", _eventhandlerdamage]; }, [_eventhandlerdamage], 3] call CBA_fnc_WaitAndExecute; } else { + LOG_1("Jip Teleport failed due enemies %1",_target); ["Enemies are too close to group leader, please try again later"] call EFUNC(Core,parsedTextDisplay); }; } else { + LOG_1("Jip Teleport failed due due space %1",_target); ["Not possible to JIP teleport to group leader, please try again later"] call EFUNC(Core,parsedTextDisplay); }; }; } else { + LOG_1("Jip Teleport failed to %1",_target); ["Something went wrong, target doesn't exist."] call EFUNC(Core,parsedTextDisplay); }; diff --git a/uo_sys_framework/Core/cfgFunctions/common/fn_endMission.sqf b/uo_sys_framework/Core/cfgFunctions/common/fn_endMission.sqf index d7e6fc21..e6c1ad7c 100644 --- a/uo_sys_framework/Core/cfgFunctions/common/fn_endMission.sqf +++ b/uo_sys_framework/Core/cfgFunctions/common/fn_endMission.sqf @@ -32,7 +32,7 @@ if (CBA_missiontime > (60 + (EGETMVAR(EndConditions,ConditionSleep,0)))) then { [_team, 5, _assets select 0] call FUNC(SetTeamVariable); [_team, 6, _assets select 1] call FUNC(SetTeamVariable); } forEach GVAR(Teams); - [QGVAR(EndmissionEvent), [_message]] call CBA_fnc_globalEvent; + [QGVAR(EndmissionEvent), [_message,EGETMVAR(EndConditions,Timelimit,0),GVAR(Teams)]] call CBA_fnc_globalEvent; } else { ERROR_2("End Conditions have just been triggered. Mission might need to be ended manually! Time:%2 Safetime:%1",(60 + (EGETMVAR(EndConditions,ConditionSleep,0))),CBA_missiontime); }; diff --git a/uo_sys_framework/Core/cfgXEH/init/ClientPostInit.sqf b/uo_sys_framework/Core/cfgXEH/init/ClientPostInit.sqf index 6088b259..8425d97d 100644 --- a/uo_sys_framework/Core/cfgXEH/init/ClientPostInit.sqf +++ b/uo_sys_framework/Core/cfgXEH/init/ClientPostInit.sqf @@ -23,7 +23,7 @@ if (hasInterface) then { }] call CBA_fnc_execNextFrame; }] call CBA_fnc_execNextFrame; - if (didJIP && {(CBA_missionTime > ((EGETMVAR(JIP,Denytime,5)) * 60))}) exitwith { + if (didJIP && {(CBA_missionTime < ((EGETMVAR(JIP,Denytime,5)) * 60))}) exitwith { [QEGVAR(JiP,PlayerEvent), []] call CBA_fnc_localEvent; [QEGVAR(JiP,ServerEvent), [player]] call CBA_fnc_serverEvent; }; diff --git a/uo_sys_framework/Core/cfgXEH/init/GlobalPreInit.sqf b/uo_sys_framework/Core/cfgXEH/init/GlobalPreInit.sqf index e7add936..0e1b52d6 100644 --- a/uo_sys_framework/Core/cfgXEH/init/GlobalPreInit.sqf +++ b/uo_sys_framework/Core/cfgXEH/init/GlobalPreInit.sqf @@ -25,16 +25,21 @@ if (_missionFrameworkVersionCreatedStr isEqualto "") then { private _missionFrameworkVersionCreated = parseNumber ((_missionFrameworkVersionCreatedStr splitString ".") joinString ""); SETMVAR(Version_CreatedNum,_missionFrameworkVersionCreated); INFO_1("Mission Created with Framework Version:%1",_missionFrameworkVersionCreated); + }; private _missionFrameworkVersionStr = (GETMVALUE(Version_Updated,"")); if (_missionFrameworkVersionStr isEqualto "") then { SETMVAR(Version_UpdatedNumber,102); INFO("Mission Updated with Framework Version: Legacy"); + private _build = UO_BUILD_NUMBER; + INFO_1("Framework Build Number: %1",_build); } else { private _missionFrameworkVersion = parseNumber ((_missionFrameworkVersionStr splitString ".") joinString ""); SETMVAR(Version_UpdatedNumber,_missionFrameworkVersion); INFO_1("Mission Updated with Framework Version:%1",_missionFrameworkVersion); + private _build = UO_BUILD_NUMBER; + INFO_1("Framework Build Number: %1",_build); }; [QGVAR(EntityAttributeLoad), { diff --git a/uo_sys_framework/Core/cfgXEH/initPost/CAManBaseInitPost.sqf b/uo_sys_framework/Core/cfgXEH/initPost/CAManBaseInitPost.sqf index 4a806437..0b93d580 100644 --- a/uo_sys_framework/Core/cfgXEH/initPost/CAManBaseInitPost.sqf +++ b/uo_sys_framework/Core/cfgXEH/initPost/CAManBaseInitPost.sqf @@ -1,6 +1,6 @@ #define COMPONENT Core #include "\x\UO_FW\addons\Main\script_macros.hpp" EXEC_CHECK(ALL); - +if !(local _obj) exitWith {}; LOG("Spawned_Event called"); [QGVAR(SpawnedEvent), _this] call CBA_fnc_serverEvent; diff --git a/uo_sys_framework/GearModule/cfgFunctions/Olsen/fn_OlsenGearScript.sqf b/uo_sys_framework/GearModule/cfgFunctions/Olsen/fn_OlsenGearScript.sqf index 19c55635..a086da10 100644 --- a/uo_sys_framework/GearModule/cfgFunctions/Olsen/fn_OlsenGearScript.sqf +++ b/uo_sys_framework/GearModule/cfgFunctions/Olsen/fn_OlsenGearScript.sqf @@ -32,7 +32,7 @@ FNC_AddItem = { FNC_AddItemRandom = { private _args = [_unit, _type]; TRACE_4("addItem Parameters:",_unit,_type,_args,_this); - _args append _this; + _args pushBack _this; TRACE_1("addItem parameters after append:",_args); _args call FUNC(AddItemRandomOrg); }; diff --git a/uo_sys_framework/GearModule/cfgFunctions/Olsen/fn_addItemRandomOrg.sqf b/uo_sys_framework/GearModule/cfgFunctions/Olsen/fn_addItemRandomOrg.sqf index 27b48a5b..3f0b369c 100644 --- a/uo_sys_framework/GearModule/cfgFunctions/Olsen/fn_addItemRandomOrg.sqf +++ b/uo_sys_framework/GearModule/cfgFunctions/Olsen/fn_addItemRandomOrg.sqf @@ -17,6 +17,7 @@ #include "\x\UO_FW\addons\Main\script_macros.hpp" EXEC_CHECK(ALL); +private ["_randomPick"]; params ["_unit", "_loadoutType", "_items", ["_amount",1,[1]], ["_position", "NONE", [""]]]; if (count _items > 1) then { @@ -33,7 +34,7 @@ if (count _items > 1) then { }; }; -private _randomPick = (_items select (([1, count _items] call FUNC(RandomRange)) - 1)); +private _randomPick = (_items select (([1, count _items] call EFUNC(Core,RandomRange)) - 1)); if (_position == "ARRAY") then { if ((_randomPick select 0) isEqualType "ARRAY") then { { diff --git a/uo_sys_framework/MapAndCompassRemoverModule/cfgFunctions/init/fn_initPost.sqf b/uo_sys_framework/MapAndCompassRemoverModule/cfgFunctions/init/fn_initPost.sqf index d7ad9e4f..32fd8531 100644 --- a/uo_sys_framework/MapAndCompassRemoverModule/cfgFunctions/init/fn_initPost.sqf +++ b/uo_sys_framework/MapAndCompassRemoverModule/cfgFunctions/init/fn_initPost.sqf @@ -6,6 +6,7 @@ if !(GETMVAR(Enabled,false)) exitwith {}; params ["_obj"]; if !(_obj isKindOf "Man") exitwith {}; +if !(local _obj) exitWith {}; [QEGVAR(Core,RegisterModuleEvent), ["Map and Compass Remover", "Removes Map and Compass after briefing", "TinfoilHate, Sacher and PiZZADOX"]] call CBA_fnc_localEvent; diff --git a/uo_sys_framework/ShotCountModule/cfgFunctions/common/fn_addEH.sqf b/uo_sys_framework/ShotCountModule/cfgFunctions/common/fn_addEH.sqf index 954ad803..d18dcf4d 100644 --- a/uo_sys_framework/ShotCountModule/cfgFunctions/common/fn_addEH.sqf +++ b/uo_sys_framework/ShotCountModule/cfgFunctions/common/fn_addEH.sqf @@ -16,7 +16,7 @@ if !(GETMVAR(Enabled,false)) exitwith {}; [QEGVAR(Core,RegisterModuleEvent), ["Shot Count", "Count shots fired by units", "Beta, TinfoilHate, PiZZADOX and Sacher"]] call CBA_fnc_localEvent; params ["_obj"]; - +if(!local _obj) exitWith {}; if !((_obj getVariable [QGVAR(firedEh), ""]) isEqualto "") exitWith {}; SETVAR(_obj,originalSide,side _obj); diff --git a/uo_sys_framework/StartInParachuteModule/cfgFunctions/init/fn_initPost.sqf b/uo_sys_framework/StartInParachuteModule/cfgFunctions/init/fn_initPost.sqf index d098041b..48efe3b1 100644 --- a/uo_sys_framework/StartInParachuteModule/cfgFunctions/init/fn_initPost.sqf +++ b/uo_sys_framework/StartInParachuteModule/cfgFunctions/init/fn_initPost.sqf @@ -6,7 +6,7 @@ if !(GETMVAR(Enabled,false)) exitwith {}; params ["_obj"]; if !(_obj isKindOf "Man") exitwith {}; - +if !(local _obj) exitWith {}; [{!isNull (_this select 0)},{ params ["_obj"]; private _parachuteType = ["NONE","NONSTEERABLE","STEERABLE"] select (GETVAR(_obj,Type,0)); diff --git a/uo_sys_framework/script_mod.hpp b/uo_sys_framework/script_mod.hpp index 5cd7bd9b..e37e1d13 100644 --- a/uo_sys_framework/script_mod.hpp +++ b/uo_sys_framework/script_mod.hpp @@ -11,3 +11,5 @@ #define VERSIONSTR QUOTE(VERSION) #define REQUIRED_VERSION 1.56 + +#define UO_BUILD_NUMBER 100011