From e964b2c13533a5bc6522698fb6f9f5879f52e92d Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 8 Dec 2015 20:31:40 -0600 Subject: [PATCH 01/75] Fix PostRepairDamage and toolkit consumtion setting Fix #2982 --- addons/repair/ACE_Repair.hpp | 6 +++++- addons/repair/ACE_Settings.hpp | 2 +- addons/repair/functions/fnc_getPostRepairDamage.sqf | 13 +++++++++---- addons/repair/functions/fnc_isEngineer.sqf | 2 +- addons/repair/functions/fnc_repair.sqf | 2 +- 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/addons/repair/ACE_Repair.hpp b/addons/repair/ACE_Repair.hpp index 251302a93a..9aa8fe7b22 100644 --- a/addons/repair/ACE_Repair.hpp +++ b/addons/repair/ACE_Repair.hpp @@ -34,10 +34,11 @@ class ACE_Repair { displayName = CSTRING(Repairing); // let's make empty string an auto generated string displayNameProgress = CSTRING(RepairingHitPoint); condition = QUOTE(call FUNC(canMiscRepair)); - requiredEngineer = 0; + requiredEngineer = QGVAR(engineerSetting_Repair); repairingTime = 15; callbackSuccess = QUOTE(call FUNC(doRepair)); items[] = {"ToolKit"}; + itemConsumed = QGVAR(consumeItem_ToolKit); claimObjects[] = {}; }; class RepairTrack: MiscRepair { @@ -47,6 +48,7 @@ class ACE_Repair { callbackSuccess = QUOTE(call FUNC(doRepairTrack)); requiredEngineer = QGVAR(engineerSetting_Wheel); claimObjects[] = {{"ACE_Track"}}; + itemConsumed = 0; }; class RemoveTrack: MiscRepair { displayName = CSTRING(RemoveTrack); @@ -54,6 +56,7 @@ class ACE_Repair { condition = QUOTE(call FUNC(canRemove)); callbackSuccess = QUOTE(call FUNC(doRemoveTrack)); requiredEngineer = QGVAR(engineerSetting_Wheel); + itemConsumed = 0; }; class ReplaceTrack: RemoveTrack { displayName = CSTRING(ReplaceTrack); @@ -71,6 +74,7 @@ class ACE_Repair { repairingTime = 30; condition = "damage _target > 0"; callbackSuccess = QUOTE(call FUNC(doFullRepair)); + itemConsumed = 0; }; }; }; diff --git a/addons/repair/ACE_Settings.hpp b/addons/repair/ACE_Settings.hpp index 22e68ce3e9..c3c8daad16 100644 --- a/addons/repair/ACE_Settings.hpp +++ b/addons/repair/ACE_Settings.hpp @@ -41,7 +41,7 @@ class ACE_Settings { displayName = CSTRING(consumeItem_ToolKit_name); description = CSTRING(consumeItem_ToolKit_description); typeName = "SCALAR"; - value = 1; + value = 0; values[] = {ECSTRING(common,No), ECSTRING(common,Yes)}; category = ECSTRING(OptionsMenu,CategoryLogistics); }; diff --git a/addons/repair/functions/fnc_getPostRepairDamage.sqf b/addons/repair/functions/fnc_getPostRepairDamage.sqf index 36e4bf39ae..9388f4474d 100644 --- a/addons/repair/functions/fnc_getPostRepairDamage.sqf +++ b/addons/repair/functions/fnc_getPostRepairDamage.sqf @@ -17,10 +17,15 @@ params ["_unit"]; TRACE_1("params",_unit); -// TODO when near repair station, full repair? +//If in facility or near vehicle then complete repair of hitpoint: if (([_unit] call FUNC(isInRepairFacility) || {[_unit] call FUNC(isNearRepairVehicle)})) exitWith {0}; -if ([_unit, GVAR(engineerSetting_Repair) + 1] call FUNC(isEngineer)) exitWith {GVAR(repairDamageThreshold_Engineer)}; -if ([_unit, GVAR(engineerSetting_Repair)] call FUNC(isEngineer)) exitWith {GVAR(repairDamageThreshold)}; -0.3; +private _class = _unit getVariable ["ACE_IsEngineer", getNumber (configFile >> "CfgVehicles" >> typeOf _unit >> "engineer")]; +//If specialist or more qualified than min, then use engineer threshold: +if ((_class isEqualTo 2) || {[_unit, GVAR(engineerSetting_Repair) + 1] call FUNC(isEngineer)}) exitWith { + (GVAR(repairDamageThreshold_Engineer) min GVAR(repairDamageThreshold)) +}; + +//Return default threshold: +GVAR(repairDamageThreshold) diff --git a/addons/repair/functions/fnc_isEngineer.sqf b/addons/repair/functions/fnc_isEngineer.sqf index 485a300260..d07c12af64 100644 --- a/addons/repair/functions/fnc_isEngineer.sqf +++ b/addons/repair/functions/fnc_isEngineer.sqf @@ -26,4 +26,4 @@ _class = _unit getVariable ["ACE_IsEngineer", getNumber (configFile >> "CfgVehic // We cannot move this function to common because we require the GVAR(engineerSetting_Repair), which only makes sense to include in the repair module. if (_class isEqualType false) then {_class = [0, 1] select _class}; -_class >= (_engineerN min GVAR(engineerSetting_Repair)); +_class >= _engineerN; diff --git a/addons/repair/functions/fnc_repair.sqf b/addons/repair/functions/fnc_repair.sqf index 04dfe523fa..40e5b3bfaa 100644 --- a/addons/repair/functions/fnc_repair.sqf +++ b/addons/repair/functions/fnc_repair.sqf @@ -128,7 +128,7 @@ _consumeItems = if (isNumber (_config >> "itemConsumed")) then { _usersOfItems = []; if (_consumeItems > 0) then { - _usersOfItems = ([_caller, _target, _items] call FUNC(useItems)) select 1; + _usersOfItems = ([_caller, _items] call FUNC(useItems)) select 1; }; // Parse the config for the progress callback From 0eed4799afcf1b0e877f9c2b6691a7d6c4aae579 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 8 Dec 2015 21:31:03 -0600 Subject: [PATCH 02/75] MicroDagr - Prevent Home Key being blocked Fix #2974 --- addons/microdagr/functions/fnc_updateDisplay.sqf | 6 ++++++ addons/microdagr/gui_controls.hpp | 2 +- addons/microdagr/script_component.hpp | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/microdagr/functions/fnc_updateDisplay.sqf b/addons/microdagr/functions/fnc_updateDisplay.sqf index 826ea55e6c..4b609085a8 100644 --- a/addons/microdagr/functions/fnc_updateDisplay.sqf +++ b/addons/microdagr/functions/fnc_updateDisplay.sqf @@ -171,6 +171,9 @@ case (APP_MODE_WAYPOINTS): { _currentIndex = (_currentIndex max 0) min (count _waypoints); _wpListBox lbSetCurSel _currentIndex; + + //Reset focus to a dummy ctrl (top button), otherwise HOME/POS1 key goes to top of listBox and has keybind blocked + ctrlSetFocus (_display displayCtrl IDC_TOPMENUBUTTON); }; case (APP_MODE_SETUP): { @@ -190,5 +193,8 @@ case (APP_MODE_SETUP): { } else { _settingListBox lbSetTextRight [1, (localize LSTRING(settingOff))]; }; + + //Reset focus to a dummy ctrl (top button), otherwise HOME/POS1 key goes to top of listBox and has keybind blocked + ctrlSetFocus (_display displayCtrl IDC_TOPMENUBUTTON); }; }; diff --git a/addons/microdagr/gui_controls.hpp b/addons/microdagr/gui_controls.hpp index 270a3325bd..a8fbb8f83f 100644 --- a/addons/microdagr/gui_controls.hpp +++ b/addons/microdagr/gui_controls.hpp @@ -140,7 +140,7 @@ class controlsBackground { class controls { class TopMenuClick: GVAR(RscActiveTextPicture) { - idc = -1; + idc = IDC_TOPMENUBUTTON; text = "#(argb,8,8,3)color(0,0,0,0)"; x = X_PART(0); y = Y_PART(0); diff --git a/addons/microdagr/script_component.hpp b/addons/microdagr/script_component.hpp index 72c5c125bc..0710649aaa 100644 --- a/addons/microdagr/script_component.hpp +++ b/addons/microdagr/script_component.hpp @@ -54,6 +54,7 @@ #define IDC_MODEDISPLAY_TARGETRANGENUM 144023 #define IDC_MODEDISPLAY_TARGETELEVATIONNUM 144024 #define IDC_MODEDISPLAY_TARGETNAME 144025 +#define IDC_TOPMENUBUTTON 144030 #define IDC_MODECOMPASS 144100 #define IDC_MODECOMPASS_HEADING 144110 From 3d560108a31a2cdfe6107def5d68a45300c78526 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 8 Dec 2015 23:08:09 -0600 Subject: [PATCH 03/75] Setting For Gestures - Fix BI* gestures --- addons/gestures/ACE_Settings.hpp | 11 +++++++++++ addons/gestures/CfgVehicles.hpp | 2 +- addons/gestures/config.cpp | 1 + addons/gestures/functions/fnc_playSignal.sqf | 7 ++++++- addons/gestures/key.sqf | 10 +++++++--- addons/gestures/stringtable.xml | 12 ++++++++++++ 6 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 addons/gestures/ACE_Settings.hpp diff --git a/addons/gestures/ACE_Settings.hpp b/addons/gestures/ACE_Settings.hpp new file mode 100644 index 0000000000..a9e77807c0 --- /dev/null +++ b/addons/gestures/ACE_Settings.hpp @@ -0,0 +1,11 @@ +class ACE_Settings { + class GVAR(showOnInteractionMenu) { + value = 2; + typeName = "SCALAR"; + isClientSettable = 1; + category = ECSTRING(interact_menu,Category_InteractionMenu); + displayName = CSTRING(showOnInteractionMenu_displayName); + description = CSTRING(showOnInteractionMenu_description); + values[] = {"$STR_A3_OPTIONS_DISABLED", CSTRING(justKeybinds), CSTRING(keysAndInteractionMenu)}; + }; +}; diff --git a/addons/gestures/CfgVehicles.hpp b/addons/gestures/CfgVehicles.hpp index 019cffdb45..ffc20c0588 100644 --- a/addons/gestures/CfgVehicles.hpp +++ b/addons/gestures/CfgVehicles.hpp @@ -5,7 +5,7 @@ class CfgVehicles { class ACE_SelfActions { class ADDON { displayName = CSTRING(Gestures); - condition = QUOTE(canStand _target && GVAR(ReloadMutex)); + condition = QUOTE((canStand _target) && GVAR(ReloadMutex) && {GVAR(showOnInteractionMenu) == 2}); statement = ""; showDisabled = 1; priority = 3.5; diff --git a/addons/gestures/config.cpp b/addons/gestures/config.cpp index 6a3fa402d0..39cb8f0951 100644 --- a/addons/gestures/config.cpp +++ b/addons/gestures/config.cpp @@ -12,6 +12,7 @@ class CfgPatches { }; }; +#include "ACE_Settings.hpp" #include "CfgMovesBasic.hpp" #include "CfgEventHandlers.hpp" #include "CfgVehicles.hpp" diff --git a/addons/gestures/functions/fnc_playSignal.sqf b/addons/gestures/functions/fnc_playSignal.sqf index b8a218f565..feb79f5370 100644 --- a/addons/gestures/functions/fnc_playSignal.sqf +++ b/addons/gestures/functions/fnc_playSignal.sqf @@ -18,10 +18,14 @@ TRACE_1("params",_this); if (!GVAR(ReloadMutex)) exitWith {false}; +if (GVAR(showOnInteractionMenu) == 0) exitWith {false}; +if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false}; -private _gesture = if (_this select [0,2] == "BI") then { +private _gesture = if ((_this select [0,2]) == "BI") then { + //If it starts with BI, just strip off the leading BI and use it directly _this select [2] } else { + //Adjust gesture based on stance: if (((animationState ACE_player) select [0, 12]) in ["amovpercmstp", "amovpercmwlk", "amovpercmtac"] && weaponLowered ACE_player) then { format ["%1StandLowered", _this] } else { @@ -29,5 +33,6 @@ private _gesture = if (_this select [0,2] == "BI") then { }; }; +TRACE_1("playing gesture",_gesture); ACE_player playAction _gesture; true diff --git a/addons/gestures/key.sqf b/addons/gestures/key.sqf index 125463d4d1..54d6d50c0c 100644 --- a/addons/gestures/key.sqf +++ b/addons/gestures/key.sqf @@ -3,11 +3,15 @@ { _x params ["_currentName","_key"]; - if (_currentName select [0,1] == "BI") then { - _currentName = _currentName select [2]; + private _signalName = format [QGVAR(%1), _currentName]; + if (_currentName select [0,2] == "BI") then { + //Don't add "ace_gestures_" prefix to BI gestures + _signalName = _currentName; }; - private _code = (compile format [QUOTE(QUOTE(QGVAR(%1)) call FUNC(playSignal);), _currentName]); + private _code = (compile format [QUOTE('%1' call FUNC(playSignal);), _signalName]); + + TRACE_4("Adding KeyBind",_currentName,_signalName,_code,_key); [ "ACE3 Gestures", diff --git a/addons/gestures/stringtable.xml b/addons/gestures/stringtable.xml index cc9b776cd1..e9d3cd060d 100644 --- a/addons/gestures/stringtable.xml +++ b/addons/gestures/stringtable.xml @@ -194,5 +194,17 @@ Atacar Attaccare + + Show Gestures On Interaction Menu + + + Show the gestures on the self interaction menu, or just keybinds, or disable completely + + + Just Keybinds + + + KeyBinds + Interaction Menu + \ No newline at end of file From 3ae7cd15bde1f64cb054c8e46f1e9122c62af78f Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 9 Dec 2015 12:27:47 -0600 Subject: [PATCH 04/75] cleanup stringtable phrasing --- addons/gestures/stringtable.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/gestures/stringtable.xml b/addons/gestures/stringtable.xml index e9d3cd060d..05bb087c88 100644 --- a/addons/gestures/stringtable.xml +++ b/addons/gestures/stringtable.xml @@ -198,13 +198,13 @@ Show Gestures On Interaction Menu - Show the gestures on the self interaction menu, or just keybinds, or disable completely + Show gestures on the self interaction menu, or just use keybinds, or disable completely Just Keybinds - KeyBinds + Interaction Menu + Keybinds + Interaction Menu \ No newline at end of file From a08cf691493072abf84f9fb450cad7eac34e576f Mon Sep 17 00:00:00 2001 From: commy2 Date: Wed, 9 Dec 2015 22:56:14 +0100 Subject: [PATCH 05/75] tweak size of laserpointer, fix #2975 --- addons/laserpointer/functions/fnc_drawLaserpoint.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/laserpointer/functions/fnc_drawLaserpoint.sqf b/addons/laserpointer/functions/fnc_drawLaserpoint.sqf index 29befe96cd..3ea9ed158b 100644 --- a/addons/laserpointer/functions/fnc_drawLaserpoint.sqf +++ b/addons/laserpointer/functions/fnc_drawLaserpoint.sqf @@ -81,7 +81,7 @@ _camPos = AGLToASL _camPos; if (terrainIntersectASL [_camPos, _pL2]) exitWith {}; if (lineIntersects [_camPos, _pL2]) exitWith {}; -private _size = 2 * (_range - (positionCameraToWorld [0,0,0] vectorDistance _pL)) / _range; +private _size = 2 * sqrt (1 / _distance) * (call EFUNC(common,getZoom)); drawIcon3D [ format ["\a3\weapons_f\acc\data\collimdot_%1_ca.paa", ["red", "green"] select _isGreen], From 7748131e73f5b3c8b5a1b8786e12d007339b36a8 Mon Sep 17 00:00:00 2001 From: commy2 Date: Thu, 10 Dec 2015 15:32:31 +0100 Subject: [PATCH 06/75] code cleanup markers --- addons/markers/CfgEventHandlers.hpp | 1 + addons/markers/InsertMarker.hpp | 32 +-- addons/markers/XEH_postInit.sqf | 7 +- addons/markers/XEH_preInit.sqf | 37 +-- .../functions/fnc_getEnabledChannels.sqf | 54 +++++ .../functions/fnc_initInsertMarker.sqf | 217 ++++++++++-------- addons/markers/functions/fnc_mapDrawEH.sqf | 40 ++-- .../functions/fnc_onLBSelChangedChannel.sqf | 21 ++ .../functions/fnc_onLBSelChangedColor.sqf | 8 +- .../functions/fnc_onLBSelChangedShape.sqf | 8 +- .../functions/fnc_onSliderPosChangedAngle.sqf | 5 +- addons/markers/functions/fnc_placeMarker.sqf | 13 +- addons/markers/functions/fnc_setMarkerJIP.sqf | 27 ++- .../functions/fnc_setMarkerNetwork.sqf | 29 ++- addons/markers/script_component.hpp | 11 +- 15 files changed, 303 insertions(+), 207 deletions(-) create mode 100644 addons/markers/functions/fnc_getEnabledChannels.sqf create mode 100644 addons/markers/functions/fnc_onLBSelChangedChannel.sqf diff --git a/addons/markers/CfgEventHandlers.hpp b/addons/markers/CfgEventHandlers.hpp index e75956f440..0cd959a047 100644 --- a/addons/markers/CfgEventHandlers.hpp +++ b/addons/markers/CfgEventHandlers.hpp @@ -1,3 +1,4 @@ + class Extended_PreInit_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preInit)); diff --git a/addons/markers/InsertMarker.hpp b/addons/markers/InsertMarker.hpp index 82712fa8f1..5d7cc987e2 100644 --- a/addons/markers/InsertMarker.hpp +++ b/addons/markers/InsertMarker.hpp @@ -1,3 +1,4 @@ + class RscPicture; class RscText; class RscStructuredText; @@ -12,21 +13,9 @@ class RscXSliderH; class RscDisplayInsertMarker { onLoad = QUOTE(_this call DFUNC(initInsertMarker);); onUnload = QUOTE(_this call DFUNC(placeMarker);); - // idd = 54; movingEnable = 1; - class controlsBackground { - // class RscText_1000: RscText {idc = 1000;}; - }; - class controls { - // class ButtonMenuOK: RscButtonMenuOK {idc = 1;}; - // class ButtonMenuCancel: RscButtonMenuCancel {idc = 2;}; - // class Title: RscText {idc = 1001;}; - // class Description: RscStructuredText {idc = 1100;}; - // class DescriptionChannel: RscStructuredText {idc = 1101;}; - // class MarkerPicture: RscPicture {idc = 102;}; - // class MarkerText: RscEdit {idc = 101;}; - // class MarkerChannel: RscCombo {idc = 103;}; + class controls { class MarkerShape: RscCombo { idc = 1210; }; @@ -39,22 +28,5 @@ class RscDisplayInsertMarker { class MarkerAngleText: RscText { idc = 1221; }; - - /*class SizeX: RscEdit { - idc = 1200; - text = "10"; - x = "14 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; - y = "12.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; - w = "5 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; - h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - }; - class SizeY: RscEdit { - idc = 1201; - text = "10"; - x = "19 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; - y = "12.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; - w = "5 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; - h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - };*/ }; }; diff --git a/addons/markers/XEH_postInit.sqf b/addons/markers/XEH_postInit.sqf index ecb4d579fe..f7bf35093c 100644 --- a/addons/markers/XEH_postInit.sqf +++ b/addons/markers/XEH_postInit.sqf @@ -9,14 +9,13 @@ // request marker data for JIP if (isMultiplayer && {!isServer} && {hasInterface}) then { - private "_logic"; - _logic = createGroup sideLogic createUnit ["Logic", [0,0,0], [], 0, "NONE"]; + private _logic = createGroup sideLogic createUnit ["Logic", [0,0,0], [], 0, "NONE"]; + [QGVAR(sendMarkersJIP), [_logic]] call EFUNC(common,serverEvent); }; - GVAR(mapDisplaysWithDrawEHs) = []; GVAR(currentMarkerPosition) = []; GVAR(currentMarkerAngle) = 0; GVAR(currentMarkerColorConfigName) = ""; -GVAR(currentMarkerConfigName) = ""; \ No newline at end of file +GVAR(currentMarkerConfigName) = ""; diff --git a/addons/markers/XEH_preInit.sqf b/addons/markers/XEH_preInit.sqf index 264658aa81..477632d225 100644 --- a/addons/markers/XEH_preInit.sqf +++ b/addons/markers/XEH_preInit.sqf @@ -2,8 +2,10 @@ ADDON = false; +PREP(getEnabledChannels); PREP(initInsertMarker); PREP(mapDrawEH); +PREP(onLBSelChangedChannel); PREP(onLBSelChangedColor); PREP(onLBSelChangedShape); PREP(onSliderPosChangedAngle); @@ -12,19 +14,19 @@ PREP(sendMarkersJIP); PREP(setMarkerJIP); PREP(setMarkerNetwork); -private ["_config", "_marker", "_a", "_scope", "_icon", "_rgba", "_name"]; - // init marker types if (isNil QGVAR(MarkersCache)) then { - _config = configfile >> "CfgMarkers"; GVAR(MarkersCache) = []; + private _config = configfile >> "CfgMarkers"; + for "_a" from 0 to (count _config - 1) do { - _marker = _config select _a; - _scope = getNumber (_marker >> "scope"); - if (_scope == 2) then { - _name = getText (_marker >> "name"); - _icon = getText (_marker >> "icon"); + private _marker = _config select _a; + + if (getNumber (_marker >> "scope") == 2) then { + private _name = getText (_marker >> "name"); + private _icon = getText (_marker >> "icon"); + GVAR(MarkersCache) pushBack [_name, _a, _icon]; }; }; @@ -32,22 +34,25 @@ if (isNil QGVAR(MarkersCache)) then { // init marker colors if (isNil QGVAR(MarkerColorsCache)) then { - _config = configfile >> "CfgMarkerColors"; GVAR(MarkerColorsCache) = []; + private _config = configfile >> "CfgMarkerColors"; + for "_a" from 0 to (count _config - 1) do { - _marker = _config select _a; - _scope = getNumber (_marker >> "scope"); - if (_scope == 2) then { - _name = getText (_marker >> "name"); - _rgba = getArray (_marker >> "color"); + private _marker = _config select _a; + + if (getNumber (_marker >> "scope") == 2) then { + private _name = getText (_marker >> "name"); + private _rgba = getArray (_marker >> "color"); + { - if (!( _x isEqualType 0)) then { + if !( _x isEqualType 0) then { _rgba set [_forEachIndex, call compile _x]; }; } forEach _rgba; + _rgba params ["_red", "_green", "_blue", "_alpha"]; - _icon = format ["#(argb,8,8,3)color(%1,%2,%3,%4)", _red, _green, _blue, _alpha]; + private _icon = format ["#(argb,8,8,3)color(%1,%2,%3,%4)", _red, _green, _blue, _alpha]; GVAR(MarkerColorsCache) pushBack [_name, _a, _icon]; }; diff --git a/addons/markers/functions/fnc_getEnabledChannels.sqf b/addons/markers/functions/fnc_getEnabledChannels.sqf new file mode 100644 index 0000000000..9a64ff06d4 --- /dev/null +++ b/addons/markers/functions/fnc_getEnabledChannels.sqf @@ -0,0 +1,54 @@ +/* + * Author: commy2 + * Return enabled channels. + * + * Arguments: + * 0: false - use channel id, true - use localized channel names (default: false) + * + * Return Value: + * Enabled Channels + * + * Public: No + */ +#include "script_component.hpp" + +params [["_localize", false, [false]]]; + +private _currentChannel = currentChannel; +private _enabledChannels = []; + +if (_localize) then { + if (setCurrentChannel 0) then { + _enabledChannels pushBack localize "str_channel_global"; + }; + + if (setCurrentChannel 1) then { + _enabledChannels pushBack localize "str_channel_side"; + }; + + if (setCurrentChannel 2) then { + _enabledChannels pushBack localize "str_channel_command"; + }; + + if (setCurrentChannel 3) then { + _enabledChannels pushBack localize "str_channel_group"; + }; + + if (setCurrentChannel 4) then { + _enabledChannels pushBack localize "str_channel_vehicle"; + }; + + if (setCurrentChannel 5) then { + _enabledChannels pushBack localize "str_channel_direct"; + }; +} else { + for "_i" from 0 to 5 do { + if (setCurrentChannel _i) then { + _enabledChannels pushBack _i; + }; + }; +}; + +setCurrentChannel _currentChannel; + +_enabledChannels diff --git a/addons/markers/functions/fnc_initInsertMarker.sqf b/addons/markers/functions/fnc_initInsertMarker.sqf index 07e2bc46c4..08c078c4f5 100644 --- a/addons/markers/functions/fnc_initInsertMarker.sqf +++ b/addons/markers/functions/fnc_initInsertMarker.sqf @@ -16,53 +16,61 @@ */ #include "script_component.hpp" -#define BORDER 0.005 +#define BORDER 0.005 [{ - private ["_text", "_picture", "_channel", "_buttonOK", "_buttonCancel", "_description", "_title", "_descriptionChannel", "_sizeX", "_sizeY", "_aceShapeLB", "_aceColorLB", "_aceAngleSlider", "_aceAngleSliderText", "_mapIDD", "_pos", "_offsetButtons", "_buttonOk", "_curSelShape", "_curSelColor", "_curSelAngle"]; - disableserialization; params ["_display"]; TRACE_1("params",_display); //Can't place markers when can't interact - if (!([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith))) exitWith { + if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith { _display closeDisplay 2; //emulate "Cancel" button }; //BIS Controls: - _text = _display displayctrl 101; - _picture = _display displayctrl 102; - _channel = _display displayctrl 103; - _buttonOK = _display displayctrl 1; - _buttonCancel = _display displayctrl 2; - _description = _display displayctrl 1100; - _title = _display displayctrl 1001; - _descriptionChannel = _display displayctrl 1101; + private _text = _display displayctrl 101; + private _picture = _display displayctrl 102; + private _channel = _display displayctrl 103; + private _buttonOK = _display displayctrl 1; + private _buttonCancel = _display displayctrl 2; + private _description = _display displayctrl 1100; + private _title = _display displayctrl 1001; + private _descriptionChannel = _display displayctrl 1101; //ACE Controls: // _sizeX = _display displayctrl 1200; // _sizeY = _display displayctrl 1201; - _aceShapeLB = _display displayctrl 1210; - _aceColorLB = _display displayctrl 1211; - _aceAngleSlider = _display displayctrl 1220; - _aceAngleSliderText = _display displayctrl 1221; + private _aceShapeLB = _display displayctrl 1210; + private _aceColorLB = _display displayctrl 1211; + private _aceAngleSlider = _display displayctrl 1220; + private _aceAngleSliderText = _display displayctrl 1221; + //////////////////// + // Install MapDrawEH on current map + private _mapIDD = -1; - //Install MapDrawEH on current map - _mapIDD = -1; { - if (!isNull (findDisplay _x)) exitWith {_mapIDD = _x}; - } forEach [12, 37, 52, 53, 160]; - if (_mapIDD == -1) exitWith {ERROR("No Map?");}; - if (!(_mapIDD in GVAR(mapDisplaysWithDrawEHs))) then { - GVAR(mapDisplaysWithDrawEHs) pushBack _mapIDD; - ((finddisplay _mapIDD) displayctrl 51) ctrlAddEventHandler ["Draw", {_this call FUNC(mapDrawEH)}]; + if (!isNull (findDisplay _x)) exitWith { + _mapIDD = _x; + }; + false + } count [12, 37, 52, 53, 160]; + + if (_mapIDD == -1) exitWith { + ERROR("No Map?"); }; - //Calculate center position of the marker placement ctrl - _pos = ctrlPosition _picture; + if !(_mapIDD in GVAR(mapDisplaysWithDrawEHs)) then { + GVAR(mapDisplaysWithDrawEHs) pushBack _mapIDD; + ((finddisplay _mapIDD) displayctrl 51) ctrlAddEventHandler ["Draw", {_this call FUNC(mapDrawEH)}]; // @todo check if persistent + }; + + //////////////////// + // Calculate center position of the marker placement ctrl + private _pos = ctrlPosition _picture; _pos = [(_pos select 0) + (_pos select 2) / 2, (_pos select 1) + (_pos select 3) / 2]; + GVAR(currentMarkerPosition) = ((findDisplay _mapIDD) displayCtrl 51) ctrlMapScreenToWorld _pos; //Hide the bis picture: @@ -77,98 +85,116 @@ //--- Background _pos = ctrlposition _text; - _pos params ["_posX", "_posY", "_posW", "_posH"]; + _pos params ["_posX", "_posY", "_posW", "_posH"]; _posX = _posX + 0.01; _posY = _posY min ((safeZoneH + safeZoneY) - (8 * _posH + 8 * BORDER)); //prevent buttons being placed below bottom edge of screen - _pos set [0,_posX]; - _pos set [1,_posY]; - _text ctrlsetposition _pos; - _text ctrlcommit 0; + _pos set [0, _posX]; + _pos set [1, _posY]; + _text ctrlSetPosition _pos; + _text ctrlCommit 0; //--- Title - _pos set [1,_posY - 2*_posH - BORDER]; - _pos set [3,_posH]; - _title ctrlsetposition _pos; - _title ctrlcommit 0; + _pos set [1, _posY - 2 * _posH - BORDER]; + _pos set [3, _posH]; + _title ctrlSetPosition _pos; + _title ctrlCommit 0; //--- Description - _pos set [1,_posY - 1*_posH]; - _pos set [3,6*_posH + 6 * BORDER]; - _description ctrlenable false; - _description ctrlsetposition _pos; - _description ctrlsetstructuredtext parsetext format ["%1", (localize "str_lib_label_description")]; - _description ctrlcommit 0; + _pos set [1, _posY - 1 * _posH]; + _pos set [3,6 * _posH + 6 * BORDER]; + _description ctrlEnable false; + _description ctrlSetPosition _pos; + _description ctrlSetStructuredText parseText format ["%1", localize "str_lib_label_description"]; + _description ctrlCommit 0; //--- Shape - _pos set [1,_posY + 1 * _posH + 2 * BORDER]; - _pos set [2,_posW]; - _pos set [3,_posH]; - _aceShapeLB ctrlsetposition _pos; - _aceShapeLB ctrlcommit 0; + _pos set [1, _posY + 1 * _posH + 2 * BORDER]; + _pos set [2, _posW]; + _pos set [3, _posH]; + _aceShapeLB ctrlSetPosition _pos; + _aceShapeLB ctrlCommit 0; //--- Color - _pos set [1,_posY + 2 * _posH + 3 * BORDER]; - _pos set [2,_posW]; - _aceColorLB ctrlsetposition _pos; - _aceColorLB ctrlcommit 0; + _pos set [1, _posY + 2 * _posH + 3 * BORDER]; + _pos set [2, _posW]; + _aceColorLB ctrlSetPosition _pos; + _aceColorLB ctrlCommit 0; //--- Angle - _pos set [1,_posY + 3 * _posH + 4 * BORDER]; - _pos set [2,_posW]; - _aceAngleSlider ctrlsetposition _pos; - _aceAngleSlider ctrlcommit 0; + _pos set [1, _posY + 3 * _posH + 4 * BORDER]; + _pos set [2, _posW]; + _aceAngleSlider ctrlSetPosition _pos; + _aceAngleSlider ctrlCommit 0; //--- Angle Text - _pos set [1,_posY + 4 * _posH + 5 * BORDER]; - _pos set [2,_posW]; - _aceAngleSliderText ctrlsetposition _pos; - _aceAngleSliderText ctrlcommit 0; + _pos set [1, _posY + 4 * _posH + 5 * BORDER]; + _pos set [2, _posW]; + _aceAngleSliderText ctrlSetPosition _pos; + _aceAngleSliderText ctrlCommit 0; + + private _offsetButtons = 0; - _offsetButtons = 0; if (isMultiplayer) then { _pos set [1,_posY + 5 * _posH + 7 * BORDER]; _pos set [3,_posH]; - _descriptionChannel ctrlsetstructuredtext parsetext format ["%1", (localize "str_a3_cfgvehicles_modulerespawnposition_f_arguments_marker_0") + ":"]; - _descriptionChannel ctrlsetposition _pos; - _descriptionChannel ctrlcommit 0; + _descriptionChannel ctrlSetStructuredText parseText format ["%1:", localize "str_a3_cfgvehicles_modulerespawnposition_f_arguments_marker_0"]; + _descriptionChannel ctrlSetPosition _pos; + _descriptionChannel ctrlCommit 0; _pos set [1,_posY + 6 * _posH + 7 * BORDER]; _pos set [3,_posH]; - _channel ctrlsetposition _pos; - _channel ctrlcommit 0; + _channel ctrlSetPosition _pos; + _channel ctrlCommit 0; + + // channels are added by engine and not script. we have to manually delete them. requires channel names to be unique? + private _enabledChannels = true call FUNC(getEnabledChannels); + private _i = 0; + + while {_i < lbSize _channel} do { + private _channelName = _channel lbText _i; + + // _enabledChannels can not include custom channels names. Therefore also check if it's a custom one. Blame BI if the unit should not access the channel. + if (_channelName in _enabledChannels || {!(_channelName in CHANNEL_NAMES)}) then { + _i = _i + 1; + } else { + _channel lbDelete _i; + }; + }; + + private _currentChannelName = CHANNEL_NAMES param [currentChannel, localize "str_channel_group"]; + + // select current channel in list box, must be done after lbDelete + for "_j" from 0 to (lbSize _channel - 1) do { + if (_channel lbText _j == _currentChannelName) then { + _channel lbSetCurSel _j; + }; + }; + + _channel ctrlAddEventHandler ["LBSelChanged", {_this call FUNC(onLBSelChangedChannel)}]; + _offsetButtons = 7 * _posH + 8 * BORDER; } else { - _descriptionChannel ctrlshow false; - _channel ctrlshow false; + _descriptionChannel ctrlShow false; + _channel ctrlShow false; _offsetButtons = 5 * _posH + 7 * BORDER; }; //--- ButtonOK - _pos set [1,_posY + _offsetButtons]; - _pos set [2,_posW / 2 - BORDER]; - _pos set [3,_posH]; - _buttonOk ctrlsetposition _pos; - _buttonOk ctrlcommit 0; + _pos set [1, _posY + _offsetButtons]; + _pos set [2, _posW / 2 - BORDER]; + _pos set [3, _posH]; + _buttonOk ctrlSetPosition _pos; + _buttonOk ctrlCommit 0; //--- ButtonCancel - _pos set [0,_posX + _posW / 2]; - _pos set [1,_posY + _offsetButtons]; - _pos set [2,_posW / 2]; - _pos set [3,_posH]; - _buttonCancel ctrlsetposition _pos; - _buttonCancel ctrlcommit 0; - - //--- PositionX - /*_pos set [1,_posY + 2 * _posH + 3 * BORDER]; - _sizeX ctrlsetposition _pos; - _sizeX ctrlcommit 0;*/ - - //--- PositionY - /*_pos set [1,_posY + 2 * _posH + 3 * BORDER]; - _sizeY ctrlsetposition _pos; - _sizeY ctrlcommit 0;*/ - + _pos set [0, _posX + _posW / 2]; + _pos set [1, _posY + _offsetButtons]; + _pos set [2, _posW / 2]; + _pos set [3, _posH]; + _buttonCancel ctrlSetPosition _pos; + _buttonCancel ctrlCommit 0; + //////////////////// // init marker shape lb lbClear _aceShapeLB; { @@ -177,14 +203,15 @@ _aceShapeLB lbSetValue [_forEachIndex, _set]; _aceShapeLB lbSetPicture [_forEachIndex, _pic]; } forEach GVAR(MarkersCache); - _curSelShape = GETGVAR(curSelMarkerShape,0); + + private _curSelShape = GETGVAR(curSelMarkerShape,0); _aceShapeLB lbSetCurSel _curSelShape; //Update now and add eventHandler: [_aceShapeLB, _curSelShape] call FUNC(onLBSelChangedShape); _aceShapeLB ctrlAddEventHandler ["LBSelChanged", {_this call FUNC(onLBSelChangedShape)}]; - + //////////////////// // init marker color lb lbClear _aceColorLB; { @@ -193,20 +220,22 @@ _aceColorLB lbSetValue [_forEachIndex, _set]; _aceColorLB lbSetPicture [_forEachIndex, _pic]; } forEach GVAR(MarkerColorsCache); - _curSelColor = GETGVAR(curSelMarkerColor,0); + + private _curSelColor = GETGVAR(curSelMarkerColor,0); _aceColorLB lbSetCurSel _curSelColor; //Update now and add eventHandler: [_aceColorLB, _curSelColor] call FUNC(onLBSelChangedColor); _aceColorLB ctrlAddEventHandler ["LBSelChanged", {_this call FUNC(onLBSelChangedColor)}]; - + //////////////////// // init marker angle slider _aceAngleSlider sliderSetRange [-180, 180]; - _curSelAngle = GETGVAR(currentMarkerAngle,0); + + private _curSelAngle = GETGVAR(currentMarkerAngle,0); _aceAngleSlider sliderSetPosition _curSelAngle; + //Update now and add eventHandler: [_aceAngleSlider, _curSelAngle] call FUNC(onSliderPosChangedAngle); _aceAngleSlider ctrlAddEventHandler ["SliderPosChanged", {_this call FUNC(onSliderPosChangedAngle)}]; - }, _this] call EFUNC(common,execNextFrame); diff --git a/addons/markers/functions/fnc_mapDrawEH.sqf b/addons/markers/functions/fnc_mapDrawEH.sqf index 05ab4f1ed4..7197c90cc7 100644 --- a/addons/markers/functions/fnc_mapDrawEH.sqf +++ b/addons/markers/functions/fnc_mapDrawEH.sqf @@ -15,32 +15,42 @@ */ #include "script_component.hpp" -private ["_sizeX", "_sizeY", "_textureConfig", "_texture", "_markerSize", "_markerShadow", "_colorConfig", "_drawColor"]; - params ["_theMap"]; // TRACE_1("params",_theMap); //Only show if marker place is open: -if (isNull (findDisplay 54)) exitWith {}; +if (isNull findDisplay 54) exitWith {}; //Error checking: -if ((GVAR(currentMarkerConfigName) == "") || {GVAR(currentMarkerColorConfigName) == ""} || {GVAR(currentMarkerPosition) isEqualTo []}) exitWith {ERROR("Bad Data");}; +if (GVAR(currentMarkerConfigName) == "" || {GVAR(currentMarkerColorConfigName) == ""} || {GVAR(currentMarkerPosition) isEqualTo []}) exitWith { + ERROR("Bad Data"); +}; -_sizeX = 1; -_sizeY = 1; +private _sizeX = 1; +private _sizeY = 1; -_textureConfig = configFile >> "CfgMarkers" >> GVAR(currentMarkerConfigName); -_texture = getText (_textureConfig >> "icon"); -_markerSize = getNumber (_textureConfig >> "size"); -_markerShadow = getNumber (_textureConfig >> "shadow"); -_colorConfig = (configFile >> "CfgMarkerColors" >> GVAR(currentMarkerColorConfigName)); -_drawColor = getArray (_colorConfig >> "color"); +private _textureConfig = configFile >> "CfgMarkers" >> GVAR(currentMarkerConfigName); +private _texture = getText (_textureConfig >> "icon"); +private _markerSize = getNumber (_textureConfig >> "size"); +private _markerShadow = getNumber (_textureConfig >> "shadow"); +private _colorConfig = (configFile >> "CfgMarkerColors" >> GVAR(currentMarkerColorConfigName)); +private _drawColor = getArray (_colorConfig >> "color"); //Convert possible code into numbers { if (_x isEqualType "") then { - _drawColor set [_forEachIndex, (call compile _x)]; + _drawColor set [_forEachIndex, call compile _x]; }; } forEach _drawColor; -_drawColor set [3, ((_drawColor select 3) * 0.875)]; //Arma adds a slight transparency -_theMap drawIcon [_texture, _drawColor, GVAR(currentMarkerPosition), (_sizeX * _markerSize), (_sizeY * _markerSize), GVAR(currentMarkerAngle), "", _markerShadow]; +_drawColor set [3, (_drawColor select 3) * 0.875]; //Arma adds a slight transparency + +_theMap drawIcon [ + _texture, + _drawColor, + GVAR(currentMarkerPosition), + _sizeX * _markerSize, + _sizeY * _markerSize, + GVAR(currentMarkerAngle), + "", + _markerShadow +]; diff --git a/addons/markers/functions/fnc_onLBSelChangedChannel.sqf b/addons/markers/functions/fnc_onLBSelChangedChannel.sqf new file mode 100644 index 0000000000..f63c4e5cf4 --- /dev/null +++ b/addons/markers/functions/fnc_onLBSelChangedChannel.sqf @@ -0,0 +1,21 @@ +/* + * Author: commy2 + * When the channel list box is changed. + * + * Arguments: + * 0: Channel ListBox (idc 103) + * 1: Selected Index + * + * Return Value: + * None + * + * Public: No + */ +#include "script_component.hpp" + +params ["_ctrl", "_index"]; +TRACE_2("params",_ctrl,_index); + +private _channelName = _ctrl lbText _index; + +setCurrentChannel (CHANNEL_NAMES find _channelName); diff --git a/addons/markers/functions/fnc_onLBSelChangedColor.sqf b/addons/markers/functions/fnc_onLBSelChangedColor.sqf index 0b9c5af209..ca63a3d0a7 100644 --- a/addons/markers/functions/fnc_onLBSelChangedColor.sqf +++ b/addons/markers/functions/fnc_onLBSelChangedColor.sqf @@ -16,15 +16,13 @@ */ #include "script_component.hpp" -private ["_data", "_config"]; - params ["_ctrl", "_index"]; TRACE_2("params",_ctrl,_index); -_data = _ctrl lbValue _index; +private _data = _ctrl lbValue _index; GVAR(curSelMarkerColor) = _index; -_config = (configfile >> "CfgMarkerColors") select _data; +private _config = (configfile >> "CfgMarkerColors") select _data; -GVAR(currentMarkerColorConfigName) = (configName _config); +GVAR(currentMarkerColorConfigName) = configName _config; diff --git a/addons/markers/functions/fnc_onLBSelChangedShape.sqf b/addons/markers/functions/fnc_onLBSelChangedShape.sqf index c8587e6205..07530c113a 100644 --- a/addons/markers/functions/fnc_onLBSelChangedShape.sqf +++ b/addons/markers/functions/fnc_onLBSelChangedShape.sqf @@ -16,15 +16,13 @@ */ #include "script_component.hpp" -private ["_data", "_config"]; - params ["_ctrl", "_index"]; TRACE_2("params",_ctrl,_index); -_data = _ctrl lbValue _index; +private _data = _ctrl lbValue _index; GVAR(curSelMarkerShape) = _index; -_config = (configfile >> "CfgMarkers") select _data; +private _config = (configfile >> "CfgMarkers") select _data; -GVAR(currentMarkerConfigName) = (configName _config); +GVAR(currentMarkerConfigName) = configName _config; diff --git a/addons/markers/functions/fnc_onSliderPosChangedAngle.sqf b/addons/markers/functions/fnc_onSliderPosChangedAngle.sqf index 16c6acfad9..030e2314ab 100644 --- a/addons/markers/functions/fnc_onSliderPosChangedAngle.sqf +++ b/addons/markers/functions/fnc_onSliderPosChangedAngle.sqf @@ -16,12 +16,11 @@ */ #include "script_component.hpp" -private ["_direction"]; - params ["_ctrl", "_data"]; TRACE_2("params",_ctrl,_data); -_direction = round _data; +private _direction = round _data; + if (_direction < 0) then { _direction = _direction + 360; }; diff --git a/addons/markers/functions/fnc_placeMarker.sqf b/addons/markers/functions/fnc_placeMarker.sqf index 36b61151ee..5b0783b454 100644 --- a/addons/markers/functions/fnc_placeMarker.sqf +++ b/addons/markers/functions/fnc_placeMarker.sqf @@ -21,16 +21,15 @@ params ["_display", "_closeNum"]; TRACE_2("params",_display,_closeNum); if (_closeNum == 1) then { - // set and send marker data the next frame. the actual marker isn't created yet [{ [QGVAR(setMarkerNetwork), [ - allMapMarkers select (count allMapMarkers - 1), [ - GETGVAR(currentMarkerConfigName,""), - GETGVAR(currentMarkerColorConfigName,""), - GETGVAR(currentMarkerPosition,[]), - GETGVAR(currentMarkerAngle,0) - ] + allMapMarkers select (count allMapMarkers - 1), [ + GETGVAR(currentMarkerConfigName,""), + GETGVAR(currentMarkerColorConfigName,""), + GETGVAR(currentMarkerPosition,[]), + GETGVAR(currentMarkerAngle,0) + ] ]] call EFUNC(common,globalEvent); }, []] call EFUNC(common,execNextFrame); diff --git a/addons/markers/functions/fnc_setMarkerJIP.sqf b/addons/markers/functions/fnc_setMarkerJIP.sqf index 4e6b47b46b..bd8832fb36 100644 --- a/addons/markers/functions/fnc_setMarkerJIP.sqf +++ b/addons/markers/functions/fnc_setMarkerJIP.sqf @@ -21,31 +21,34 @@ params ["_allMapMarkers", "_allMapMarkersProperties", "_logic"]; TRACE_3("params",_allMapMarkers,_allMapMarkersProperties,_logic); { - private ["_index", "_data", "_config"]; - - _index = _allMapMarkers find _x; + private _index = _allMapMarkers find _x; if (_index != -1) then { - _data = _allMapMarkersProperties select _index; - _data params ["_name", "_color", "_pos", "_dir"]; + private _data = _allMapMarkersProperties select _index; + _data params ["_markerClassname", "_colorClassname", "_pos", "_dir"]; + + private _config = (configfile >> "CfgMarkers") >> _markerClassname; - _config = (configfile >> "CfgMarkers") >> _name; if (!isClass _config) then { WARNING("CfgMarker not found, changed to milDot"); - _config == (configFile >> "CfgMarkers" >> "MilDot"); + _config = configFile >> "CfgMarkers" >> "MilDot"; }; - _x setMarkerTypeLocal (configName _config); - _config = (configfile >> "CfgMarkerColors") >> _color; + _x setMarkerTypeLocal configName _config; + + _config = configfile >> "CfgMarkerColors" >> _colorClassname; + if (!isClass _config) then { WARNING("CfgMarkerColors not found, changed to Default"); - _config == (configFile >> "CfgMarkerColors" >> "Default"); + _config = configFile >> "CfgMarkerColors" >> "Default"; }; - _x setMarkerColorLocal (configName _config); + + _x setMarkerColorLocal configName _config; _x setMarkerPosLocal _pos; _x setMarkerDirLocal _dir; }; -} forEach allMapMarkers; + false +} count allMapMarkers; deleteVehicle _logic; diff --git a/addons/markers/functions/fnc_setMarkerNetwork.sqf b/addons/markers/functions/fnc_setMarkerNetwork.sqf index c56a1fb93c..9d6d2d8ecf 100644 --- a/addons/markers/functions/fnc_setMarkerNetwork.sqf +++ b/addons/markers/functions/fnc_setMarkerNetwork.sqf @@ -17,38 +17,37 @@ */ #include "script_component.hpp" -private ["_config"]; - params ["_marker", "_data"]; -_data params ["_markerClassname", "_colorClassname", "_markerPos", "_markerDir"]; TRACE_2("params",_marker,_data); +_data params ["_markerClassname", "_colorClassname", "_pos", "_dir"]; +private _config = configfile >> "CfgMarkers" >> _markerClassname; -_config = (configfile >> "CfgMarkers") >> _markerClassname; if (!isClass _config) then { WARNING("CfgMarker not found, changed to milDot"); - _config == (configFile >> "CfgMarkers" >> "MilDot"); + _config = configFile >> "CfgMarkers" >> "MilDot"; }; -_marker setMarkerTypeLocal (configName _config); -_config = (configfile >> "CfgMarkerColors") >> _colorClassname; +_marker setMarkerTypeLocal configName _config; + +_config = configfile >> "CfgMarkerColors" >> _colorClassname; + if (!isClass _config) then { WARNING("CfgMarkerColors not found, changed to Default"); - _config == (configFile >> "CfgMarkerColors" >> "Default"); + _config = configFile >> "CfgMarkerColors" >> "Default"; }; + _marker setMarkerColorLocal configName _config; -_marker setMarkerPosLocal _markerPos; -_marker setMarkerDirLocal _markerDir; +_marker setMarkerPosLocal _pos; +_marker setMarkerDirLocal _dir; // save properties on server machine for JIP, marker editing ready if (isMultiplayer && {isServer}) then { - private ["_allMapMarkers", "_allMapMarkersProperties", "_index"]; + private _allMapMarkers = GETGVAR(allMapMarkers,[]); + private _allMapMarkersProperties = GETGVAR(allMapMarkersProperties,[]); - _allMapMarkers = GETGVAR(allMapMarkers,[]); - _allMapMarkersProperties = GETGVAR(allMapMarkersProperties,[]); - - _index = _allMapMarkers find _marker; + private _index = _allMapMarkers find _marker; if (_index == -1) then { _allMapMarkers pushBack _marker; diff --git a/addons/markers/script_component.hpp b/addons/markers/script_component.hpp index 2b1cb586a7..80ffa23b5b 100644 --- a/addons/markers/script_component.hpp +++ b/addons/markers/script_component.hpp @@ -9,4 +9,13 @@ #define DEBUG_SETTINGS DEBUG_ENABLED_MARKERS #endif -#include "\z\ace\addons\main\script_macros.hpp" \ No newline at end of file +#include "\z\ace\addons\main\script_macros.hpp" + +#define CHANNEL_NAMES [ \ + localize "str_channel_global", \ + localize "str_channel_side", \ + localize "str_channel_command", \ + localize "str_channel_group", \ + localize "str_channel_vehicle", \ + localize "str_channel_direct" \ +] From 077b9827e894c510b25886d98e0f3b265e65654a Mon Sep 17 00:00:00 2001 From: commy2 Date: Thu, 10 Dec 2015 16:00:14 +0100 Subject: [PATCH 07/75] code cleanup fcs --- addons/fcs/CfgEventHandlers.hpp | 3 +- addons/fcs/CfgVehicles.hpp | 26 ++- .../{XEH_clientInit.sqf => XEH_postInit.sqf} | 2 +- addons/fcs/XEH_preInit.sqf | 1 + addons/fcs/functions/fnc_adjustRange.sqf | 22 +- addons/fcs/functions/fnc_canResetFCS.sqf | 12 +- addons/fcs/functions/fnc_canUseFCS.sqf | 14 +- .../fcs/functions/fnc_canUseRangefinder.sqf | 14 +- addons/fcs/functions/fnc_firedEH.sqf | 37 ++-- addons/fcs/functions/fnc_getAngle.sqf | 99 +++++---- addons/fcs/functions/fnc_getRange.sqf | 19 +- .../fnc_handleAirBurstAmmunitionPFH.sqf | 27 ++- addons/fcs/functions/fnc_keyDown.sqf | 25 +-- addons/fcs/functions/fnc_keyUp.sqf | 189 +++++++----------- addons/fcs/functions/fnc_onForceUpdate.sqf | 12 +- addons/fcs/functions/fnc_reset.sqf | 12 +- addons/fcs/functions/fnc_updateRangeHUD.sqf | 18 ++ addons/fcs/functions/fnc_vehicleInit.sqf | 14 +- addons/fcs/initKeybinds.sqf | 6 +- 19 files changed, 263 insertions(+), 289 deletions(-) rename addons/fcs/{XEH_clientInit.sqf => XEH_postInit.sqf} (83%) create mode 100644 addons/fcs/functions/fnc_updateRangeHUD.sqf diff --git a/addons/fcs/CfgEventHandlers.hpp b/addons/fcs/CfgEventHandlers.hpp index a03ca847ea..ab41fa904b 100644 --- a/addons/fcs/CfgEventHandlers.hpp +++ b/addons/fcs/CfgEventHandlers.hpp @@ -1,3 +1,4 @@ + class Extended_PreInit_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preInit)); @@ -6,7 +7,7 @@ class Extended_PreInit_EventHandlers { class Extended_PostInit_EventHandlers { class ADDON { - clientInit = QUOTE(call COMPILE_FILE(XEH_clientInit)); + init = QUOTE(call COMPILE_FILE(XEH_postInit)); }; }; diff --git a/addons/fcs/CfgVehicles.hpp b/addons/fcs/CfgVehicles.hpp index 53b279ef88..f1b896c612 100644 --- a/addons/fcs/CfgVehicles.hpp +++ b/addons/fcs/CfgVehicles.hpp @@ -26,7 +26,7 @@ class CfgVehicles { class ACE_SelfActions { class ResetFCS { displayName = CSTRING(ResetFCS); - condition = QUOTE(call FUNC(canResetFCS)); + condition = QUOTE(_player call FUNC(canResetFCS)); statement = QUOTE([ARR_2(vehicle _player,[_player] call DEFUNC(common,getTurretIndex))] call DFUNC(reset);); showDisabled = 0; priority = 1; @@ -39,7 +39,7 @@ class CfgVehicles { class ACE_SelfActions { class ResetFCS { displayName = CSTRING(ResetFCS); - condition = QUOTE(call FUNC(canResetFCS)); + condition = QUOTE(_player call FUNC(canResetFCS)); statement = QUOTE([ARR_2(vehicle _player,[_player] call DEFUNC(common,getTurretIndex))] call DFUNC(reset);); showDisabled = 0; priority = 1; @@ -321,9 +321,13 @@ class CfgVehicles { discreteDistance[] = {}; discreteDistanceInitIndex = 0; - /*class Turrets: Turrets { - class CommanderOptics: CommanderOptics {}; - };*/ + class Turrets: Turrets { + class CommanderOptics: CommanderOptics { + GVAR(Enabled) = 1; + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; + }; + }; }; }; }; @@ -346,9 +350,13 @@ class CfgVehicles { discreteDistance[] = {}; discreteDistanceInitIndex = 0; - /*class Turrets: Turrets { - class CommanderOptics: CommanderOptics {}; - };*/ + class Turrets: Turrets { + class CommanderOptics: CommanderOptics { + GVAR(Enabled) = 1; + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; + }; + }; }; }; }; @@ -362,6 +370,8 @@ class CfgVehicles { class Turrets: Turrets { class CommanderOptics: CommanderOptics { GVAR(Enabled) = 1; + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; }; }; }; diff --git a/addons/fcs/XEH_clientInit.sqf b/addons/fcs/XEH_postInit.sqf similarity index 83% rename from addons/fcs/XEH_clientInit.sqf rename to addons/fcs/XEH_postInit.sqf index 3338e739e1..8a8b379318 100644 --- a/addons/fcs/XEH_clientInit.sqf +++ b/addons/fcs/XEH_postInit.sqf @@ -16,4 +16,4 @@ if (!hasInterface) exitWith {}; }] call EFUNC(common,addEventHandler); // Register event for global updates -[QGVAR(forceUpdate), FUNC(onForceUpdate)] call EFUNC(common,addEventHandler); +[QGVAR(forceUpdate), {ACE_player call FUNC(onForceUpdate)}] call EFUNC(common,addEventHandler); diff --git a/addons/fcs/XEH_preInit.sqf b/addons/fcs/XEH_preInit.sqf index 8fdc43df11..2bcda4f464 100644 --- a/addons/fcs/XEH_preInit.sqf +++ b/addons/fcs/XEH_preInit.sqf @@ -14,6 +14,7 @@ PREP(onForceUpdate); PREP(keyDown); PREP(keyUp); PREP(reset); +PREP(updateRangeHUD); PREP(vehicleInit); ADDON = true; diff --git a/addons/fcs/functions/fnc_adjustRange.sqf b/addons/fcs/functions/fnc_adjustRange.sqf index 4b7f4b6b88..f6f543d35a 100644 --- a/addons/fcs/functions/fnc_adjustRange.sqf +++ b/addons/fcs/functions/fnc_adjustRange.sqf @@ -1,29 +1,27 @@ /* * Author: KoffeinFlummi - * * Adjusts the currently zeroed distance. * * Arguments: - * 0: The vehicle in question - * 1: The amount to add to the distance (can be negative) + * 0: The vehicle in question + * 1: The Turrets that the Vehicle has + * 2: The amount to add to the distance (can be negative) * * Return Value: * None + * + * Public: No */ - #include "script_component.hpp" -private ["_vehicle", "_turret", "_delta", "_turretConfig", "_min", "_max", "_distance"]; +params ["_vehicle", "_turret", "_delta"]; -_vehicle = _this select 0; -_turret = _this select 1; -_delta = _this select 2; +private _turretConfig = [configFile >> "CfgVehicles" >> typeOf _vehicle, _turret] call EFUNC(common,getTurretConfigPath); -_turretConfig = [configFile >> "CfgVehicles" >> typeOf _vehicle, _turret] call EFUNC(common,getTurretConfigPath); +private _min = getNumber (_turretConfig >> QGVAR(MinDistance)); +private _max = getNumber (_turretConfig >> QGVAR(MaxDistance)); -_min = getNumber (_turretConfig >> QGVAR(MinDistance)); -_max = getNumber (_turretConfig >> QGVAR(MaxDistance)); -_distance = _vehicle getVariable [format ["%1_%2", QGVAR(Distance), _turret], _min]; +private _distance = _vehicle getVariable [format ["%1_%2", QGVAR(Distance), _turret], _min]; _distance = _distance + _delta; _distance = _distance min _max; diff --git a/addons/fcs/functions/fnc_canResetFCS.sqf b/addons/fcs/functions/fnc_canResetFCS.sqf index 488f1eebf4..b57435f388 100644 --- a/addons/fcs/functions/fnc_canResetFCS.sqf +++ b/addons/fcs/functions/fnc_canResetFCS.sqf @@ -1,15 +1,17 @@ /* * Author: KoffeinFlummi - * * Called from config. Can player reset FCS? * * Argument: * Nothing * - * Return value: - * Boolean (Bool) + * Return Value: + * Boolean + * + * Public: No */ - #include "script_component.hpp" -count ((vehicle ACE_player) getVariable [format ["%1_%2", QGVAR(Magazines), [ACE_player] call EFUNC(common,getTurretIndex)], []]) > 1 +params ["_unit"]; + +count ((vehicle _unit) getVariable [format ["%1_%2", QGVAR(Magazines), [_unit] call EFUNC(common,getTurretIndex)], []]) > 1 // return diff --git a/addons/fcs/functions/fnc_canUseFCS.sqf b/addons/fcs/functions/fnc_canUseFCS.sqf index cb4a1b608d..91b49554c2 100644 --- a/addons/fcs/functions/fnc_canUseFCS.sqf +++ b/addons/fcs/functions/fnc_canUseFCS.sqf @@ -1,16 +1,16 @@ /* * Author: commy2 - * * Called from config. Returns true if the player is a gunner and the players current vehicle has a FCS. * - * Argument: - * Nothing + * Arguments: + * None * - * Return value: - * Boolean (Bool) + * Return Value: + * Boolean + * + * Public: No */ - #include "script_component.hpp" getNumber ([configFile >> "CfgVehicles" >> typeOf vehicle ACE_player, [ACE_player] call EFUNC(common,getTurretIndex)] call EFUNC(common,getTurretConfigPath) >> QGVAR(Enabled)) == 1 -&& {cameraView == "GUNNER"} +&& {cameraView == "GUNNER"} // return diff --git a/addons/fcs/functions/fnc_canUseRangefinder.sqf b/addons/fcs/functions/fnc_canUseRangefinder.sqf index f6bb3b2e52..7403c74ac1 100644 --- a/addons/fcs/functions/fnc_canUseRangefinder.sqf +++ b/addons/fcs/functions/fnc_canUseRangefinder.sqf @@ -1,16 +1,16 @@ /* * Author: commy2 - * * Returns true if the laser distance measurement can be read from the engine. * - * Argument: - * Nothing + * Arguments: + * None * - * Return value: - * Boolean (Bool) + * Return Value: + * Boolean + * + * Public: No */ - #include "script_component.hpp" !isNull ((uiNamespace getVariable ["ACE_dlgRangefinder", displayNull]) displayCtrl 1713151) -&& {cameraView == "GUNNER"} +&& {cameraView == "GUNNER"} // return diff --git a/addons/fcs/functions/fnc_firedEH.sqf b/addons/fcs/functions/fnc_firedEH.sqf index 31fe38335d..237aed8ac1 100644 --- a/addons/fcs/functions/fnc_firedEH.sqf +++ b/addons/fcs/functions/fnc_firedEH.sqf @@ -1,6 +1,5 @@ /* * Author: KoffeinFlummi - * * Adjusts the direction of a shell. * * Arguments: @@ -8,58 +7,48 @@ * * Return Value: * None + * + * Public: No */ - #include "script_component.hpp" -private ["_vehicle", "_weapon", "_ammo", "_magazine", "_projectile", "_sumVelocity"]; +params ["_vehicle", "_weapon", "", "", "_ammo", "_magazine", "_projectile"]; -_vehicle = _this select 0; -_weapon = _this select 1; -_ammo = _this select 4; -_magazine = _this select 5; -_projectile = _this select 6; - -private ["_gunner", "_turret"]; - -_gunner = [_vehicle, _weapon] call EFUNC(common,getGunner); -_turret = [_gunner] call EFUNC(common,getTurretIndex); +private _gunner = [_vehicle, _weapon] call EFUNC(common,getGunner); +private _turret = _gunner call EFUNC(common,getTurretIndex); // Exit if the unit isn't a player if !([_gunner] call EFUNC(common,isPlayer)) exitWith {}; -private ["_FCSMagazines", "_FCSElevation", "_offset"]; - -_FCSMagazines = _vehicle getVariable [(format ["%1_%2", QGVAR(Magazines), _turret]), []]; -_FCSElevation = _vehicle getVariable format ["%1_%2", QGVAR(Elevation), _turret]; +private _FCSMagazines = _vehicle getVariable [format ["%1_%2", QGVAR(Magazines), _turret], []]; +private _FCSElevation = _vehicle getVariable format ["%1_%2", QGVAR(Elevation), _turret]; if !(_magazine in _FCSMagazines) exitWith {}; // GET ELEVATION OFFSET OF CURRENT MAGAZINE -_offset = 0; +private _offset = 0; + { if (_x == _magazine) exitWith { _offset = _FCSElevation select _forEachIndex; }; } forEach _FCSMagazines; - [_projectile, (_vehicle getVariable format ["%1_%2", QGVAR(Azimuth), _turret]), _offset, 0] call EFUNC(common,changeProjectileDirection); // Remove the platform velocity -if( (vectorMagnitude velocity _vehicle) > 2) then { - _sumVelocity = (velocity _projectile) vectorDiff (velocity _vehicle); +if (vectorMagnitude velocity _vehicle > 2) then { + private _sumVelocity = (velocity _projectile) vectorDiff (velocity _vehicle); + _projectile setVelocity _sumVelocity; }; // Air burst missile - // handle locally only if (!local _gunner) exitWith {}; if (getNumber (configFile >> "CfgAmmo" >> _ammo >> QGVAR(Airburst)) == 1) then { - private "_zeroing"; - _zeroing = _vehicle getVariable [format ["%1_%2", QGVAR(Distance), _turret], currentZeroing _vehicle]; + private _zeroing = _vehicle getVariable [format ["%1_%2", QGVAR(Distance), _turret], currentZeroing _vehicle]; if (_zeroing < 50) exitWith {}; if (_zeroing > 1500) exitWith {}; diff --git a/addons/fcs/functions/fnc_getAngle.sqf b/addons/fcs/functions/fnc_getAngle.sqf index 91150c110d..d2c51a9542 100644 --- a/addons/fcs/functions/fnc_getAngle.sqf +++ b/addons/fcs/functions/fnc_getAngle.sqf @@ -1,91 +1,82 @@ /* * Author: KoffeinFlummi - * * Calculates the angle offset necessary to hit the current target. * * Arguments: - * 0: distance to target in meters - * 1: current angle of the turret - * 2: maximum elevation of the turret - * 3: initSpeed of the projectile - * 4: airFriction of the projectile - * 5: maximum timeToLive of the projectile - * 6: simulationStep of the projectile + * 0: distance to target in meters + * 1: current angle of the turret + * 2: maximum elevation of the turret + * 3: initSpeed of the projectile + * 4: airFriction of the projectile + * 5: maximum timeToLive of the projectile + * 6: simulationStep of the projectile * * Return Value: - * offset from the current angle necessary to hit the target + * offset from the current angle necessary to hit the target + * + * Public: No */ - #include "script_component.hpp" + #define PRECISION 0.1 -private ["_distance", "_angleTarget", "_maxElev", "_initSpeed", "_airFriction", "_timeToLive", "_simulationStep", "_angle1", "_angle2", "_it2", "_f1", "_f2", "_temp", "_it1", "_angle"]; - -_distance = _this select 0; -_angleTarget = _this select 1; -_maxElev = _this select 2; -_initSpeed = _this select 3; -_airFriction = _this select 4; -_timeToLive = _this select 5; -_simulationStep = _this select 6; +params ["_distance", "_angleTarget", "_maxElev", "_initSpeed", "_airFriction", "_timeToLive", "_simulationStep"]; if (_simulationStep == 0) exitWith {_angleTarget}; -FUNC(traceBullet) = { - private ["_distance", "_angleTarget", "_maxElev", "_initSpeed", "_airFriction", "_timeToLive", "_simulationStep", "_angle", "_posTargetX", "_posTargetY", "_posX", "_posY", "_velocityX", "_velocityY", "_velocityMagnitude", "_i"]; - - _distance = _this select 0; - _angleTarget = _this select 1; - _maxElev = _this select 2; - _initSpeed = _this select 3; - _airFriction = _this select 4; - _timeToLive = _this select 5; - _simulationStep = _this select 6; - _angle = _this select 7; +private _fnc_traceBullet = { + params ["_distance", "_angleTarget", "_maxElev", "_initSpeed", "_airFriction", "_timeToLive", "_simulationStep", "_angle"]; _angle = _angle - _angleTarget; _angleTarget = 0; - _posTargetX = (cos _angleTarget) * _distance; - _posTargetY = (sin _angleTarget) * _distance; + private _posTargetX = (cos _angleTarget) * _distance; + private _posTargetY = (sin _angleTarget) * _distance; - _posX = 0; - _posY = 0; + private _posX = 0; + private _posY = 0; - _velocityX = (cos _angle) * _initSpeed; - _velocityY = (sin _angle) * _initSpeed; + private _velocityX = (cos _angle) * _initSpeed; + private _velocityY = (sin _angle) * _initSpeed; // trace the path of the bullet for "_i" from 1 to ((floor (_timeToLive / _simulationStep)) + 1) do { - _velocityMagnitude = sqrt (_velocityX^2 + _velocityY^2); + private _velocityMagnitude = sqrt (_velocityX^2 + _velocityY^2); + _velocityX = _velocityX + _simulationStep * (_velocityX * _velocityMagnitude * _airFriction); _velocityY = _velocityY + _simulationStep * (_velocityY * _velocityMagnitude * _airFriction - 9.81); + _posX = _posX + _velocityX * _simulationStep; _posY = _posY + _velocityY * _simulationStep; + if (_posX >= _posTargetX) exitWith {}; // bullet passed the target }; - _posY - _posTargetY }; -if ((_this + [_maxElev]) call FUNC(traceBullet) < 0) exitWith {_maxElev - _angleTarget}; +private _data = [_distance, _angleTarget, _maxElev, _initSpeed, _airFriction, _timeToLive, _simulationStep, _maxElev]; + +if (_data call _fnc_traceBullet < 0) exitWith {_maxElev - _angleTarget}; // Newton Method / Secand Method -_angle1 = _angleTarget; -_angle2 = _maxElev; -_it2 = 0; -_f1 = (_this + [_angle1]) call FUNC(traceBullet); +private _angle1 = _angleTarget; +private _angle2 = _maxElev; +private _it2 = 0; + +_data set [7, _maxElev]; +private _f1 = _data call _fnc_traceBullet; + +if (abs _f1 <= PRECISION) exitWith {0}; + +while {abs _f1 > PRECISION} do { + _data set [7, _angle2]; + private _f2 = _data call _fnc_traceBullet; -if ((abs _f1) <= PRECISION) exitWith {0}; -while {(abs _f1) > PRECISION} do { - _f2 = (_this + [_angle2]) call FUNC(traceBullet); - _temp = _angle2-_f2*(_angle2-_angle1)/(_f2-_f1); _angle1 = _angle2; - _angle2 = _temp; - _f1 = _f2; - _it2 = _it2+1; -}; -//player globalChat format ["it1: %1 | _angle1: %2 | it2: %3 | _angle2: %4",_it1, _angle-_angleTarget, _it2, _angle2-_angleTarget]; + _angle2 = _angle2 - _f2 * (_angle2 - _angle1) / (_f2 - _f1); -_angle=_angle2; -_angle - _angleTarget + _f1 = _f2; + _it2 = _it2 + 1; +}; + +_angle2 - _angleTarget diff --git a/addons/fcs/functions/fnc_getRange.sqf b/addons/fcs/functions/fnc_getRange.sqf index 3618fa446e..51cdf564df 100644 --- a/addons/fcs/functions/fnc_getRange.sqf +++ b/addons/fcs/functions/fnc_getRange.sqf @@ -1,23 +1,18 @@ /* * Author: commy2 - * - * Read laser distance measurement from engine and update compatible info elements. + * Read laser distance measurement from engine. * * Argument: - * Nothing + * None * * Return value: - * Measured distance (Number) + * Measured distance + * + * Public: No */ - #include "script_component.hpp" -private ["_dlgRangefinder", "_range"]; - disableSerialization; -_dlgRangefinder = uiNamespace getVariable ["ACE_dlgRangefinder", displayNull]; +private _dlgRangefinder = uiNamespace getVariable ["ACE_dlgRangefinder", displayNull]; -_range = ctrlText (_dlgRangefinder displayCtrl 151); -(_dlgRangefinder displayCtrl 1713151) ctrlSetText _range; - -parseNumber _range +parseNumber ctrlText (_dlgRangefinder displayCtrl 151); diff --git a/addons/fcs/functions/fnc_handleAirBurstAmmunitionPFH.sqf b/addons/fcs/functions/fnc_handleAirBurstAmmunitionPFH.sqf index 899cf0da76..aa166ece12 100644 --- a/addons/fcs/functions/fnc_handleAirBurstAmmunitionPFH.sqf +++ b/addons/fcs/functions/fnc_handleAirBurstAmmunitionPFH.sqf @@ -1,21 +1,32 @@ -// by commy2 +/* + * Author: commy2 + * Handle Air burst ammunition. Called from per frame handler. + * + * Arguments: + * - + * + * Return Value: + * None + * + * Public: No + */ #include "script_component.hpp" -private ["_vehicle", "_projectile", "_zeroing", "_position", "_subMunition"]; - -_vehicle = _this select 0 select 0; -_projectile = _this select 0 select 1; -_zeroing = _this select 0 select 2; +(_this select 0) params ["_vehicle", "_projectile", "_zeroing"]; +// remove pfh if the projectile died before arriving if (isNull _projectile || {!alive _projectile}) exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; }; +// wait if not there if (_projectile distance _vehicle < _zeroing) exitWith {}; -_position = getPosATL _projectile; +// explode +private _position = getPosATL _projectile; + +private _subMunition = createVehicle ["ACE_B_35mm_ABM_Helper", _position, [], 0, "FLY"]; -_subMunition = createVehicle ["ACE_B_35mm_ABM_Helper", _position, [], 0, "FLY"]; _subMunition setPosATL _position; _subMunition setVelocity [0, 0, -10]; diff --git a/addons/fcs/functions/fnc_keyDown.sqf b/addons/fcs/functions/fnc_keyDown.sqf index cea7196570..a34233bc91 100644 --- a/addons/fcs/functions/fnc_keyDown.sqf +++ b/addons/fcs/functions/fnc_keyDown.sqf @@ -1,23 +1,22 @@ /* * Author: KoffeinFlummi - * * Starts watching the target for sideways correction. * * Arguments: - * 0: Vehicle + * 0: Vehicle + * 1: Turret * * Return Value: - * none + * None + * + * Public: No */ - #include "script_component.hpp" -private ["_vehicle", "_turret", "_distance", "_weaponDirection"]; +params ["_vehicle", "_turret"]; -_vehicle = _this select 0; -_turret = _this select 1; - -_distance = call FUNC(getRange); +private _distance = call FUNC(getRange); +call (updateRangeHUD); if !(!GVAR(enabled) && FUNC(canUseFCS)) exitWith {}; @@ -28,7 +27,7 @@ if (_distance == 0) then { _distance = [5, 5000, 0] call EFUNC(common,getTargetDistance); // maximum distance: 5000m, 5m precision }; -_weaponDirection = _vehicle weaponDirection (_vehicle currentWeaponTurret _turret); // @todo doesn't work for sub turrets +private _weaponDirection = _vehicle weaponDirection (_vehicle currentWeaponTurret _turret); // @todo doesn't work for sub turrets if (_turret isEqualTo ([_vehicle] call EFUNC(common,getTurretCommander))) then { _weaponDirection = eyeDirection _vehicle; @@ -38,8 +37,4 @@ if (_weaponDirection isEqualTo [0,0,0]) then { // dummy value for non main turr _weaponDirection = [1,0,0]; }; -GVAR(Position) = [ - (getPos _vehicle select 0) + _distance * (_weaponDirection select 0), - (getPos _vehicle select 1) + _distance * (_weaponDirection select 1), - (getPos _vehicle select 2) + _distance * (_weaponDirection select 2) -]; +GVAR(Position) = (getPosASL _vehicle) vectorAdd (_weaponDirection vectorMultiply _distance); diff --git a/addons/fcs/functions/fnc_keyUp.sqf b/addons/fcs/functions/fnc_keyUp.sqf index 37390c0b47..ebbd6e3a06 100644 --- a/addons/fcs/functions/fnc_keyUp.sqf +++ b/addons/fcs/functions/fnc_keyUp.sqf @@ -1,40 +1,38 @@ /* * Author: KoffeinFlummi - * * Calculates the offsets for all weapons needed to hit the current target. * * Arguments: - * 0: The vehicle + * 0: Vehicle + * 1: Turret * * Return Value: - * none + * None + * + * Public: No */ - #include "script_component.hpp" -private ["_vehicle", "_turret", "_turretConfig", "_distance", "_weapons", "_magazines", "_showHint", "_playSound", "_i"]; +params ["_vehicle", "_turret", "_distance", ["_showHint", false], ["_playSound", true]]; -_vehicle = _this select 0; -_turret = _this select 1; +private _turretConfig = [configFile >> "CfgVehicles" >> typeOf _vehicle, _turret] call EFUNC(common,getTurretConfigPath); -_turretConfig = [configFile >> "CfgVehicles" >> typeOf _vehicle, _turret] call EFUNC(common,getTurretConfigPath); +call (updateRangeHUD); -_distance = call FUNC(getRange); +if (isNil "_distance") then { + _distance = call FUNC(getRange); -_weapons = _vehicle weaponsTurret _turret; -_magazines = _vehicle magazinesTurret _turret; - -if (_distance == 0) then { - _distance = [ - getNumber (_turretConfig >> QGVAR(DistanceInterval)), - getNumber (_turretConfig >> QGVAR(MaxDistance)), - getNumber (_turretConfig >> QGVAR(MinDistance)) - ] call EFUNC(common,getTargetDistance); // maximum distance: 5000m, 5m precision + if (_distance == 0) then { + _distance = [ + getNumber (_turretConfig >> QGVAR(DistanceInterval)), + getNumber (_turretConfig >> QGVAR(MaxDistance)), + getNumber (_turretConfig >> QGVAR(MinDistance)) + ] call EFUNC(common,getTargetDistance); // maximum distance: 5000m, 5m precision + }; }; -private ["_weapon", "_weaponDirection", "_angleTarget"]; -_weapon = _vehicle currentWeaponTurret _turret; -_weaponDirection = _vehicle weaponDirection _weapon; // @todo doesn't work for sub turrets +private _weapon = _vehicle currentWeaponTurret _turret; +private _weaponDirection = _vehicle weaponDirection _weapon; // @todo doesn't work for sub turrets if (_turret isEqualTo ([_vehicle] call EFUNC(common,getTurretCommander))) then { _weaponDirection = eyeDirection _vehicle; @@ -44,176 +42,139 @@ if (_weaponDirection isEqualTo [0,0,0]) then { // dummy value for non main turr _weaponDirection = [1,0,0]; }; -_angleTarget = asin (_weaponDirection select 2); - -if (count _this > 2) then { - if((_this select 2) > -1) then { - _distance = _this select 2; - }; -}; - -if (!(isNil QGVAR(backgroundCalculation)) and {!(scriptDone GVAR(backgroundCalculation))}) then { - terminate GVAR(backgroundCalculation); -}; - -private ["_movingAzimuth", "_posTarget", "_velocityTarget"]; +private _angleTarget = asin (_weaponDirection select 2); // MOVING TARGETS -_movingAzimuth = 0; -if (ACE_time - GVAR(time) > 1 and GVAR(time) != -1 and count _this < 3) then { - // calculate speed of target - _posTarget = [ - (getPos _vehicle select 0) + _distance * (_weaponDirection select 0), - (getPos _vehicle select 1) + _distance * (_weaponDirection select 1), - (getPos _vehicle select 2) + _distance * (_weaponDirection select 2) - ]; - _velocityTarget = [ - ((_posTarget select 0) - (GVAR(position) select 0)) / (ACE_time - GVAR(time)), - ((_posTarget select 1) - (GVAR(position) select 1)) / (ACE_time - GVAR(time)), - ((_posTarget select 2) - (GVAR(position) select 2)) / (ACE_time - GVAR(time)) - ]; +private _movingAzimuth = 0; - private ["_magazineType", "_ammoType", "_initSpeed", "_airFriction", "_timeToLive", "_simulationStep", "_initSpeedCoef", "_velocityMagnitude"]; +if (ACE_time - GVAR(time) > 1 && GVAR(time) != -1 && isNil {_this select 2}) then { + // calculate speed of target + private _posTarget = (getPosASL _vehicle) vectorAdd (_weaponDirection vectorMultiply _distance); + private _velocityTarget = (_posTarget vectorDiff GVAR(position)) vectorMultiply (1 / (ACE_time - GVAR(time))); // estimate time to target - _magazineType = _vehicle currentMagazineTurret _turret; - _ammoType = getText (configFile >> "CfgMagazines" >> _magazineType >> "ammo"); - _initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazineType >> "initSpeed"); - _airFriction = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "airFriction"); - _timeToLive = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "timeToLive"); - _simulationStep = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "simulationStep"); + private _magazine = _vehicle currentMagazineTurret _turret; + private _ammo = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo"); + private _initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazine >> "initSpeed"); + private _airFriction = getNumber (configFile >> "CfgAmmo" >> _ammo >> "airFriction"); + private _timeToLive = getNumber (configFile >> "CfgAmmo" >> _ammo >> "timeToLive"); + private _simulationStep = getNumber (configFile >> "CfgAmmo" >> _ammo >> "simulationStep"); + private _initSpeedCoef = getNumber (configFile >> "CfgWeapons" >> _weapon >> "initSpeed"); - _initSpeedCoef = getNumber(configFile >> "CfgWeapons" >> _weapon >> "initSpeed"); if (_initSpeedCoef < 0) then { - _initSpeed = _initSpeed * -_initSpeedCoef; + _initSpeed = _initSpeed * - _initSpeedCoef; }; + if (_initSpeedCoef > 0) then { _initSpeed = _initSpeedCoef; }; if (_simulationStep != 0) then { - private ["_posX", "_velocityX", "_velocityY", "_timeToTarget"]; + private _posX = 0; + private _velocityX = _initSpeed; + private _velocityY = 0; + private _timeToTarget = 0; - _posX = 0; - _velocityX = _initSpeed; - _velocityY = 0; - _timeToTarget = 0; - - for "_i" from 1 to ((floor (_timeToLive / _simulationStep)) + 1) do { + for "_i" from 1 to (floor (_timeToLive / _simulationStep) + 1) do { _posX = _posX + _velocityX * _simulationStep; + if (_posX >= _distance) exitWith { // bullet passed the target _timeToTarget = _i * _simulationStep; }; - _velocityMagnitude = sqrt (_velocityX^2 + _velocityY^2); + + private _velocityMagnitude = sqrt (_velocityX ^ 2 + _velocityY ^ 2); + _velocityX = _velocityX + _velocityX * _velocityMagnitude * _airFriction * _simulationStep; _velocityY = _velocityY + _velocityY * _velocityMagnitude * _airFriction * _simulationStep - 9.81 * _simulationStep; }; - private ["_posArrival", "_dirArrival"]; - // calculate offsets - _posArrival = [ - (_posTarget select 0) + (_velocityTarget select 0) * _timeToTarget, - (_posTarget select 1) + (_velocityTarget select 1) * _timeToTarget, - (_posTarget select 2) + (_velocityTarget select 2) * _timeToTarget - ]; - - _dirArrival = [ - ((_posArrival select 0) - (getPos _vehicle select 0)) / (_posArrival distance (getPos _vehicle)), - ((_posArrival select 1) - (getPos _vehicle select 1)) / (_posArrival distance (getPos _vehicle)), - ((_posArrival select 2) - (getPos _vehicle select 2)) / (_posArrival distance (getPos _vehicle)) - ]; + private _posArrival = _posTarget vectorAdd (_velocityTarget vectorMultiply _timeToTarget); + private _dirArrival = (_posArrival vectorDiff getPosASL _vehicle) vectorMultiply (1 / (_posArrival vectorDistance getPosASL _vehicle)); _movingAzimuth = ((_dirArrival select 0) atan2 (_dirArrival select 1)) - ((_weaponDirection select 0) atan2 (_weaponDirection select 1)); _angleTarget = asin (_dirArrival select 2); - _distance = floor (_posArrival distance (getPos _vehicle)); + _distance = floor (_posArrival distance (getPosASL _vehicle)); }; }; + GVAR(enabled) = false; GVAR(time) = -1; -private ["_viewDiff", "_FCSAzimuth", "_FCSMagazines", "_FCSElevation"]; - // CALCULATE AZIMUTH CORRECTION -_viewDiff = _vehicle getVariable format ["%1_%2", QGVAR(ViewDiff), _turret]; -_FCSAzimuth = _movingAzimuth; +private _viewDiff = _vehicle getVariable format ["%1_%2", QGVAR(ViewDiff), _turret]; +private _FCSAzimuth = _movingAzimuth; if (_viewDiff != 0) then { _FCSAzimuth = (atan (_distance / _viewDiff) - (abs _viewDiff / _viewDiff) * 90) + _movingAzimuth; }; // CALCULATE OFFSET -_FCSMagazines = []; -_FCSElevation = []; +private _FCSMagazines = []; +private _FCSElevation = []; { - private ["_magazine", "_ammoType"]; - _magazine = _x; - _ammoType = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo"); + private _magazine = _x; + private _ammo = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo"); - if !(getText (configFile >> "CfgAmmo" >> _ammoType >> "simulation") == "shotMissile") then { - private ["_maxElev", "_initSpeed", "_airFriction", "_offset"]; - - _maxElev = getNumber (_turretConfig >> "maxElev"); - _initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazine >> "initSpeed"); - _airFriction = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "airFriction"); + if !(getText (configFile >> "CfgAmmo" >> _ammo >> "simulation") == "shotMissile") then { + private _maxElev = getNumber (_turretConfig >> "maxElev"); + private _initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazine >> "initSpeed"); + private _airFriction = getNumber (configFile >> "CfgAmmo" >> _ammo >> "airFriction"); { private ["_weapon", "_muzzles", "_weaponMagazines", "_muzzleMagazines"]; _weapon = _x; _muzzles = getArray (configFile >> "CfgWeapons" >> _weapon >> "muzzles"); _weaponMagazines = getArray (configFile >> "CfgWeapons" >> _weapon >> "magazines"); + { if (_x != "this") then { _muzzleMagazines = getArray (configFile >> "CfgWeapons" >> _weapon >> _x >> "magazines"); _weaponMagazines append _muzzleMagazines; }; - } forEach _muzzles; + false + } count _muzzles; + if (_magazine in _weaponMagazines) exitWith { _initSpeedCoef = getNumber(configFile >> "CfgWeapons" >> _weapon >> "initSpeed"); + if (_initSpeedCoef < 0) then { _initSpeed = _initSpeed * -_initSpeedCoef; }; + if (_initSpeedCoef > 0) then { _initSpeed = _initSpeedCoef; }; }; - } forEach _weapons; + false + } count (_vehicle weaponsTurret _turret); - _offset = "ace_fcs" callExtension format ["%1,%2,%3,%4", _initSpeed, _airFriction, _angleTarget, _distance]; + private _offset = "ace_fcs" callExtension format ["%1,%2,%3,%4", _initSpeed, _airFriction, _angleTarget, _distance]; _offset = parseNumber _offset; - _FCSMagazines = _FCSMagazines + [_magazine]; - _FCSElevation = _FCSElevation + [_offset]; + _FCSMagazines pushBack _magazine; + _FCSElevation pushBack _offset; }; -} forEach _magazines; + false +} count (_vehicle magazinesTurret _turret); -[_vehicle, format ["%1_%2", QGVAR(Distance), _turret], _distance] call EFUNC(common,setVariablePublic); +[_vehicle, format ["%1_%2", QGVAR(Distance), _turret], _distance] call EFUNC(common,setVariablePublic); [_vehicle, format ["%1_%2", QGVAR(Magazines), _turret], _FCSMagazines] call EFUNC(common,setVariablePublic); [_vehicle, format ["%1_%2", QGVAR(Elevation), _turret], _FCSElevation] call EFUNC(common,setVariablePublic); -[_vehicle, format ["%1_%2", QGVAR(Azimuth), _turret], _FCSAzimuth] call EFUNC(common,setVariablePublic); +[_vehicle, format ["%1_%2", QGVAR(Azimuth), _turret], _FCSAzimuth] call EFUNC(common,setVariablePublic); -_showHint = false; -if( (count _this) > 3) then { - _showHint = _this select 3; -}; - -_playSound = true; -if( (count _this) > 3) then { - _playSound = _this select 4; -}; - -if(_playSound) then { +if (_playSound) then { playSound "ACE_Sound_Click"; }; -if(_showHint) then { +if (_showHint) then { [format ["%1: %2", localize LSTRING(ZeroedTo), _distance]] call EFUNC(common,displayTextStructured); }; //Update the hud's distance display to the new value or "----" if out of range //(10m fudge because of EFUNC(common,getTargetDistance)) -if ((_distance + 10) >= (getNumber (_turretConfig >> QGVAR(MaxDistance)))) then { +if (_distance + 10 >= getNumber (_turretConfig >> QGVAR(MaxDistance))) then { ((uiNamespace getVariable ["ACE_dlgRangefinder", displayNull]) displayCtrl 1713151) ctrlSetText "----"; } else { ((uiNamespace getVariable ["ACE_dlgRangefinder", displayNull]) displayCtrl 1713151) ctrlSetText ([_distance, 4, 0] call CBA_fnc_formatNumber); diff --git a/addons/fcs/functions/fnc_onForceUpdate.sqf b/addons/fcs/functions/fnc_onForceUpdate.sqf index 6f477fd3f6..005a0d7801 100644 --- a/addons/fcs/functions/fnc_onForceUpdate.sqf +++ b/addons/fcs/functions/fnc_onForceUpdate.sqf @@ -1,7 +1,13 @@ #include "script_component.hpp" -if !([ACE_player, vehicle ACE_player, []] call EFUNC(common,canInteractWith)) exitWith {false}; +params ["_unit"]; + +private _vehicle = vehicle _unit; + +if !([_unit, _vehicle, []] call EFUNC(common,canInteractWith)) exitWith {false}; if !((!GVAR(enabled) && FUNC(canUseFCS)) || FUNC(canUseRangefinder)) exitWith {false}; -[vehicle ACE_player, [ACE_player] call EFUNC(common,getTurretIndex), -1, false] call FUNC(keyDown); -[vehicle ACE_player, [ACE_player] call EFUNC(common,getTurretIndex), -1, false, false] call FUNC(keyUp); \ No newline at end of file +private _turret = _unit call EFUNC(common,getTurretIndex); + +[_vehicle, _turret, -1, false] call FUNC(keyDown); +[_vehicle, _turret, -1, false, false] call FUNC(keyUp); diff --git a/addons/fcs/functions/fnc_reset.sqf b/addons/fcs/functions/fnc_reset.sqf index 48e3803c83..dcb1718b3f 100644 --- a/addons/fcs/functions/fnc_reset.sqf +++ b/addons/fcs/functions/fnc_reset.sqf @@ -1,21 +1,19 @@ /* * Author: KoffeinFlummi - * * Resets the FCS to default. * * Arguments: - * 0: Vehicle + * 0: Vehicle + * 1: Turret * * Return Value: * none + * + * Public: No */ - #include "script_component.hpp" -private ["_vehicle", "_turret"]; - -_vehicle = _this select 0; -_turret = _this select 1; +params ["_vehicle", "_turret"]; [_vehicle, format ["%1_%2", QGVAR(Distance), _turret], 0] call EFUNC(common,setVariablePublic); [_vehicle, format ["%1_%2", QGVAR(Magazines), _turret], []] call EFUNC(common,setVariablePublic); diff --git a/addons/fcs/functions/fnc_updateRangeHUD.sqf b/addons/fcs/functions/fnc_updateRangeHUD.sqf new file mode 100644 index 0000000000..374254c620 --- /dev/null +++ b/addons/fcs/functions/fnc_updateRangeHUD.sqf @@ -0,0 +1,18 @@ +/* + * Author: commy2 + * Update compatible info elements. + * + * Argument: + * None + * + * Return value: + * None + * + * Public: No + */ +#include "script_component.hpp" + +disableSerialization; +private _dlgRangefinder = uiNamespace getVariable ["ACE_dlgRangefinder", displayNull]; + +(_dlgRangefinder displayCtrl 1713151) ctrlSetText ctrlText (_dlgRangefinder displayCtrl 151); diff --git a/addons/fcs/functions/fnc_vehicleInit.sqf b/addons/fcs/functions/fnc_vehicleInit.sqf index 8ac23073f6..901e0477ab 100644 --- a/addons/fcs/functions/fnc_vehicleInit.sqf +++ b/addons/fcs/functions/fnc_vehicleInit.sqf @@ -1,6 +1,5 @@ /* * Author: KoffeinFlummi, commy2 - * * Checks if a vehicle is equipped with an FCS and if so, adds the fired event handler. Execute on server. * * Arguments: @@ -8,17 +7,15 @@ * * Return Value: * none + * + * Public: No */ - #include "script_component.hpp" -private "_vehicle"; - -_vehicle = _this select 0; +params ["_vehicle"]; { - private "_turretConfig"; - _turretConfig = [configFile >> "CfgVehicles" >> typeOf _vehicle, _x] call EFUNC(common,getTurretConfigPath); + private _turretConfig = [configFile >> "CfgVehicles" >> typeOf _vehicle, _x] call EFUNC(common,getTurretConfigPath); if (getNumber (_turretConfig >> QGVAR(Enabled)) == 1) then { _vehicle setVariable [format ["%1_%2", QGVAR(Distance), _x], 0, true]; @@ -42,4 +39,5 @@ _vehicle = _this select 0; _vehicle setVariable [format ["%1_%2", QGVAR(ViewDiff), _x], 0, true]; }; }; -} forEach allTurrets _vehicle; + false +} count allTurrets _vehicle; diff --git a/addons/fcs/initKeybinds.sqf b/addons/fcs/initKeybinds.sqf index 3b22cb2262..a302776741 100644 --- a/addons/fcs/initKeybinds.sqf +++ b/addons/fcs/initKeybinds.sqf @@ -28,7 +28,7 @@ [vehicle ACE_player, [ACE_player] call EFUNC(common,getTurretIndex)] call FUNC(keyUp); false }, -[15, [false, false, false]], false] call cba_fnc_addKeybind; //Tab Key +[15, [false, false, false]], false] call CBA_fnc_addKeybind; //Tab Key ["ACE3 Vehicles", QGVAR(adjustRangeUp), localize LSTRING(AdjustRangeUp), { @@ -42,7 +42,7 @@ true }, {false}, -[201, [false, false, false]], false] call cba_fnc_addKeybind; //PageUp Key +[201, [false, false, false]], false] call CBA_fnc_addKeybind; //PageUp Key ["ACE3 Vehicles", QGVAR(adjustRangDown), localize LSTRING(AdjustRangeDown), { @@ -56,4 +56,4 @@ true }, {false}, -[209, [false, false, false]], false] call cba_fnc_addKeybind; //PageDown Key +[209, [false, false, false]], false] call CBA_fnc_addKeybind; //PageDown Key From aec2c3fef2c2e20c57e2f43b06d4d5d7c0b61873 Mon Sep 17 00:00:00 2001 From: "[OMCB]kaban" Date: Thu, 10 Dec 2015 18:24:28 +0300 Subject: [PATCH 08/75] HotFix: removed duplicated key. Removed duplicated German key for STR_ACE_Common_DoNotForce. It caused Tabler.exe couldn't read stringtable files. --- addons/common/stringtable.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index 6d935f27a5..111300e87c 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -705,7 +705,6 @@ Nicht erzwingen Nie wymuszaj No forzar - Nicht erzwingen Nevynucovat Não forçar Не обязывать From fd06472f4daeaed981a13fe3869d2171e715cfb5 Mon Sep 17 00:00:00 2001 From: kaban Date: Thu, 10 Dec 2015 20:32:16 +0300 Subject: [PATCH 09/75] Russian Translations - Update --- AUTHORS.txt | 2 +- addons/cargo/stringtable.xml | 4 ++++ addons/gestures/stringtable.xml | 9 +++++++- addons/hearing/stringtable.xml | 2 ++ addons/interact_menu/stringtable.xml | 2 ++ addons/interaction/stringtable.xml | 5 +++++ addons/medical/stringtable.xml | 1 + addons/nightvision/stringtable.xml | 6 +++++- addons/rearm/stringtable.xml | 29 ++++++++++++++++++++++++++ addons/refuel/stringtable.xml | 31 ++++++++++++++++++++++++++++ addons/viewdistance/stringtable.xml | 5 +++-- 11 files changed, 91 insertions(+), 5 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 8cdf9a99a9..5eee93a7f6 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -54,7 +54,7 @@ Crusty Dharma Bellamkonda Dimaslg Drill -Dudakov +Dudakov aka [OMCB]Kaban Dslyecxi eRazeri evromalarkey diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index cdd718006c..65c0ceb433 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -110,24 +110,28 @@ Carregando carga Ładowanie cargo Nakládám + Погрузка Unloading Cargo Descarregando carga Rozładowywanie cargo Vykládám + Выгрузка %1<br/>could not be loaded %1<br/>não pode ser carregado %1<br/>nie mógł zostać załadowany %1<br/>nemůže být naloženo + %1<br/>не может быть погружен %1<br/>could not be unloaded %1<br/>não pode ser descarregado %1<br/>nie mógł zostać rozładowany %1<br/>nemůže být vyloženo + %1<br/>не может быть выгружен \ No newline at end of file diff --git a/addons/gestures/stringtable.xml b/addons/gestures/stringtable.xml index cc9b776cd1..1891b6e763 100644 --- a/addons/gestures/stringtable.xml +++ b/addons/gestures/stringtable.xml @@ -92,7 +92,7 @@ Wskazać Ukázat Pointer - Точка + Показать направление Mutat Apontar Puntare a @@ -115,6 +115,7 @@ Stop Stop Stop + Стоп @@ -135,6 +136,7 @@ Regroupement Sammeln Zbiórka + Собраться @@ -142,12 +144,14 @@ En avant Vorwärts Bewegen Naprzód + Вперед Engage Engager Atak + Открыть огонь @@ -155,6 +159,7 @@ Pointer Zeigen Wskaż + Показать направление @@ -162,6 +167,7 @@ Tenir Anhalten Wstrzymać + Ждать @@ -169,6 +175,7 @@ Attention Achtung Uwaga + Внимание Hi diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index 14517b54ce..a060a2bfac 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -172,10 +172,12 @@ Add earplugs to units Dodaj stopery dla jednostek + Добавлять юнитам беруши Add the `ACE_EarPlugs` item to all units that have loud weapons. Can disable if using custom loadouts. Dodaje `ACE_EarPlugs` - stopery - do wszystkich jednostek, które posiadają głośną broń. Można wyłaczyć w przypadku korzystania z niestandardowych loadoutów. + Добавляет предмет `ACE_EarPlugs` всем юнитам, которые имеют громкое оружие. Можно отключить при ручной настройке снаряжения. \ No newline at end of file diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 424426f653..6de2ed05ed 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -302,10 +302,12 @@ Interaction Animation Speed Szybkość animacji interakcji + Скорость анимации меню взаимодействия Makes menu animations faster and decreases the time needed to hover to show sub actions Przyśpiesza animacje menu interakcji oraz czas wymagany do pokazania podmenu + Ускоряет анимацию меню и уменьшает задержку при наведении мыши для раскрытия подменю \ No newline at end of file diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index b84a987a9c..dc5f511c95 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -695,26 +695,31 @@ Pass magazine Magazin geben Podaj magazynek + Передать магазин Primary magazine Gewehrmagazin Magazynek karabinowy + Основной магазин Pistol magazine Pistolenmagazin Magazynek pistoletowy + Магазин к пистолету %1 passed you a %2 magazine. %1 hat dir ein %2 Magazin gegeben. %1 podał Ci magazynek %2. + %1 передал вам магазин %2. Show "pass magazine" interaction Zeige "Magazine geben" Interaktion Pokaż interakcję "podaj magazynek" + Показывать действие "передать магазин" \ No newline at end of file diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 533bd12a2d..a3ae483065 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -2115,6 +2115,7 @@ %1 użył apteczki %1 utilizou KPS %1 používá PAK + %1 использовал аптечку Heavily wounded diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index b6e35147f9..a25c8e0cee 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -136,18 +136,22 @@ Nightvision Nachtsicht + Ночное виденье Settings for night vision. Einstellungen für Nachtsichtgeräte. + Настройки ночного виденья Disable NVGs in scope Deakt. NVGs mit Visier + Убирать ПНВ при прицеливании Blocks the usage of night vision goggles whilst aiming down the sight. Blockiert das Benutzen von Nachtsichtbrillen beim Benutzen des Visiers. + Блокирует использование головного ПНВ при прицеливании через прицел. - + \ No newline at end of file diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index da36dc4410..ebcf6dd2a9 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -5,85 +5,102 @@ Rearm Settings Aufmunitioniereinstellungen Ustawienia przezbrajania + Настройки перевооружения This module allows you to tweak rearm system settings. Ten moduł pozwala dostosować ustawienia przezbrajania. + Этот модуль позволяет изменить настройки системы перевооружения. Rearm Amount Aufmunitioniermenge Szybkość przezbrajania + Количество вооружения How fast should a vehicle be rearmed? Wie schnell soll ein Fahrzeug aufmunitioniert werden? Jak szybko pojazd zostanie przezbrojony? + Как быстро техника должна перевооружаться? Entire Vehicle Gesamtes Fahrzeug Cały pojazd + Полностью техника Entire Magazine Gesamtes Magazin Cały magazynek + Полный магазин Amount based on caliber Kaliberbasierte Anzahl Ilość zależna od kalibru + Количество зависит от калибра Rearm Aufmunitionieren Przezbrój + Перевооружить Rearming %1 with %2 ... Munitioniere %1 auf mit %2 ... Przezbrajanie %1 przy pomocy %2 ... + Перевооружается %1 снарядами %2 ... Rearming %1 ... Munitioniere %1 auf ... Przezbrajanie %1 ... + Перевооружается %1 ... Taking %1 for %2 ... Nehme %1 für %2 ... Pobieranie %1 dla %2 ... + Забираем %1 для %2 ... Take ammo Munition nehmen Pobierz amunicję + Взять боекомплект Pick up ammo Munition aufnehmen Podnieś amunicję + Поднять боекомплект Store ammo Munition verstauen Przechowaj amunicję + Сохранить боекомплект Storing %1 in %2 ... Verstaue %1 in %2 ... Przechowywanie %1 w %2 ... + Сохраняется %1 в %2 ... Picking up ammo ... Nehme Munition ... Podnoszenie amunicji ... + Поднятие боекомплекта ... Rearmed %1 rounds of %2 on %3 %1 Schuss %2 an %3 aufmunitioniert Przezbrojono %1 pocisków %2 na %3 + Перевооружено %1 снарядов %2 на %3 Smoke Screen @@ -111,61 +128,73 @@ 30mm HEI 30mm HEI 30mm HEI + 30мм ОФЗ 30mm HEI-T 30mm HEI-T 30mm HEI-T + 30мм ОФЗТ AIM-9 Sidewinder AIM-9 Sidewinder AIM-9 Sidewinder + AIM-9 Sidewinder Wympel R-73 Wympel R-73 Wympel R-73 + Р-73 (Вымпел) AGM-65 Maverick AGM-65 Maverick AGM-65 Maverick + AGM-65 Maverick Kh-25MTP Kh-25MTP Ch-25MTP + Х-25МТП Hydra 70 HE Hydra 70 HE Hydra 70 HE + Hydra 70 HE S-8 HE S-8 HE S-8 HE + С-8 ОФ Hydra 70 AP Hydra 70 AP Hydra 70 AP + Hydra 70 AP S-8 AP S-8 AP S-8 AP + С-8КОМ GBU-12 GBU-12 GBU-12 + GBU-12 FAB-250M-54 FAB-250M-54 FAB-250M-54 + ФАБ-250М-54 \ No newline at end of file diff --git a/addons/refuel/stringtable.xml b/addons/refuel/stringtable.xml index 908fad6d91..fe10e76afb 100644 --- a/addons/refuel/stringtable.xml +++ b/addons/refuel/stringtable.xml @@ -5,156 +5,187 @@ Refuel Settings Betankungseinst. Ustawienia tankowania + Настройки дозаправки Flow Rate Fließrate Szybkość przepływu + Скорость заправки How fast should a vehicle be refueled? Wie schnell soll ein Fahrzeug aufgetankt sein? Jak szybko pojazd powinien zostać zatankowany? + Как быстро техника должна быть заправлена? Refuel Betankung Zatankuj + Дозаправка Take fuel nozzle Zapfpistole nehmen Weź nalewak + Взять топливный шланг Taking fuel nozzle ... Nehme Zapfpistole ... Pobieranie nalewaka ... + Берем топливный шланг ... Connect fuel nozzle Zapfpistole anschließen Podłącz nalewak + Присоединить топливный шланг Connecting fuel nozzle ... Zapfpistole anschließen ... Podłączanie nalewaka ... + Присоединяем топливный шланг ... Disconnect fuel nozzle Zapfpistole entfernen Odepnij nalewak + Отсоединить топливный шланг Connect Anschließen Podłącz + Присоединить Check remaining fuel Verbleibenden Kraftstoff überprüfen Sprawdź ilość paliwa + Проверить остаток топлива Checking remaining fuel ... Überprüfe verbleibenden Kraftstoff ... Sprawdzanie ilości paliwa ... + Проверяем остаток топлива ... There are %1 liters left. Es sind noch %1 Liter übrig. Zostało %1 litrów. + Осталось %1 л. There is no fuel left. Es ist kein Kraftstoff übrig. W zbiorniku nie ma paliwa. + Топлива нет. Cancel Abbrechen Anuluj + Отменить Failed Gescheitert Porażka + Не удалось Stop fueling Betankung stoppen Zatrzymaj tankowanie + Остановить заправку Stopping fueling ... Stoppe Betankung ... Zatrzymywanie tankowania ... + Останавливаем заправку ... Start fueling Betankung beginnen Rozpocznij tankowanie + Начать заправку Starting fueling ... Beginne Betankung ... Rozpoczynanie tankowania ... + Начинаем заправку ... %1 Liters fueled %1 Liters getankt Zatankowano %1 litrów + %1 литров заправлено The fuel source is empty. Die Treibstoffquelle ist leer. Źródło paliwa jest puste. + Источник топлива пустой. Maximum fuel hose length reached. Maximale Schlauchlänge erreicht. Osiągnięto maksymalną długość przewodu paliwowego. + Достигнута максимальная длина шланга. Fueling completed Betankung abgeschlossen Tankowanie ukończone + Заправка завершена Fueling stopped Betankung angehalten Tankowanie zatrzymane + Заправка остановлена Fueling started Betankung begonnen Tankowanie rozpoczęte + Заправка начата Return fuel nozzle Zapfpistole zurückstecken Zwróć nalewak + Вернуть топливный шланг Returning fuel nozzle ... Stecke Zapfpistole zurück ... Zwracanie nalewaka ... + Возвращаем топливный шланг ... Check fuel counter Tankuhr ansehen Sprawdź wskaźnik paliwa + Проверить счетчик топлива Checking fuel counter ... Betrachte Tankuhr ... Sprawdzanie wskaźnika paliwa ... + Проверяем счетчик топлива ... %1 liters have been fueled. %1 Liter wurden getankt. %1 litrów zostało zatankowane. + Было заправлено %1 л. \ No newline at end of file diff --git a/addons/viewdistance/stringtable.xml b/addons/viewdistance/stringtable.xml index 9d92c58332..d4bba3b23f 100644 --- a/addons/viewdistance/stringtable.xml +++ b/addons/viewdistance/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -234,6 +234,7 @@ FoV Based + Зависит от зума View Distance: @@ -280,4 +281,4 @@ Видео настройки - + \ No newline at end of file From 8e6a057f52d5923184ce409c6f6db2fcd6300826 Mon Sep 17 00:00:00 2001 From: bux Date: Thu, 10 Dec 2015 18:48:00 +0100 Subject: [PATCH 10/75] fix common stringtable --- addons/common/stringtable.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index 63a70f60ce..111300e87c 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -528,7 +528,7 @@ Warn (permanent) Ostrzeżenie (permanentne) Avisar (permanente) - Verwarnen (permanent)/German> + Verwarnen (permanent) Upozornit (permanentně) Avisar (permanente) Avertir (permanent) @@ -705,7 +705,6 @@ Nicht erzwingen Nie wymuszaj No forzar - Nicht erzwingen Nevynucovat Não forçar Не обязывать @@ -764,4 +763,4 @@ ACE3 Vehículos - \ No newline at end of file + From 68388bc97631b78c54af39def3773bd0c920e4ed Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 11 Dec 2015 01:02:15 +0100 Subject: [PATCH 11/75] add more filters to ammo boxes --- addons/filters/$PBOPREFIX$ | 1 + addons/filters/CfgEventHandlers.hpp | 12 ++++ addons/filters/XEH_postInit.sqf | 32 ++++++++++ addons/filters/XEH_preInit.sqf | 50 +++++++++++++++ addons/filters/config.cpp | 15 +++++ .../filters/functions/fnc_addCustomFilter.sqf | 6 ++ .../functions/fnc_currentItemListBox.sqf | 17 ++++++ .../functions/fnc_forceItemListUpdate.sqf | 29 +++++++++ .../functions/fnc_inventoryDisplayLoaded.sqf | 61 +++++++++++++++++++ .../filters/functions/fnc_onLBSelChanged.sqf | 14 +++++ addons/filters/functions/script_component.hpp | 1 + addons/filters/script_component.hpp | 12 ++++ addons/filters/stringtable.xml | 29 +++++++++ 13 files changed, 279 insertions(+) create mode 100644 addons/filters/$PBOPREFIX$ create mode 100644 addons/filters/CfgEventHandlers.hpp create mode 100644 addons/filters/XEH_postInit.sqf create mode 100644 addons/filters/XEH_preInit.sqf create mode 100644 addons/filters/config.cpp create mode 100644 addons/filters/functions/fnc_addCustomFilter.sqf create mode 100644 addons/filters/functions/fnc_currentItemListBox.sqf create mode 100644 addons/filters/functions/fnc_forceItemListUpdate.sqf create mode 100644 addons/filters/functions/fnc_inventoryDisplayLoaded.sqf create mode 100644 addons/filters/functions/fnc_onLBSelChanged.sqf create mode 100644 addons/filters/functions/script_component.hpp create mode 100644 addons/filters/script_component.hpp create mode 100644 addons/filters/stringtable.xml diff --git a/addons/filters/$PBOPREFIX$ b/addons/filters/$PBOPREFIX$ new file mode 100644 index 0000000000..06f96465a9 --- /dev/null +++ b/addons/filters/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\filters \ No newline at end of file diff --git a/addons/filters/CfgEventHandlers.hpp b/addons/filters/CfgEventHandlers.hpp new file mode 100644 index 0000000000..0cd959a047 --- /dev/null +++ b/addons/filters/CfgEventHandlers.hpp @@ -0,0 +1,12 @@ + +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_postInit)); + }; +}; diff --git a/addons/filters/XEH_postInit.sqf b/addons/filters/XEH_postInit.sqf new file mode 100644 index 0000000000..5769f1fe13 --- /dev/null +++ b/addons/filters/XEH_postInit.sqf @@ -0,0 +1,32 @@ +#include "script_component.hpp" + +if (!hasInterface) exitWith {}; + +disableSerialization; + +GVAR(customFilters) = []; +GVAR(selectedFilterIndex) = -1; + +["inventoryDisplayLoaded", {_this call FUNC(inventoryDisplayLoaded)}] call EFUNC(common,addEventHandler); + +// add custom filters +DFUNC(filterBackpacks) = { + params ["_config"]; + getNumber (_config >> "isBackpack") == 1 +}; + +[localize LSTRING(Backpacks), QFUNC(filterBackpacks)] call FUNC(addCustomFilter); + +DFUNC(filterUniforms) = { + params ["_config"]; + getNumber (_config >> "ItemInfo" >> "type") == 801 +}; + +[localize LSTRING(Uniforms), QFUNC(filterUniforms)] call FUNC(addCustomFilter); + +DFUNC(filterVests) = { + params ["_config"]; + getNumber (_config >> "ItemInfo" >> "type") == 701 +}; + +[localize LSTRING(Vests), QFUNC(filterVests)] call FUNC(addCustomFilter); diff --git a/addons/filters/XEH_preInit.sqf b/addons/filters/XEH_preInit.sqf new file mode 100644 index 0000000000..df7b74d8e2 --- /dev/null +++ b/addons/filters/XEH_preInit.sqf @@ -0,0 +1,50 @@ +#include "script_component.hpp" + +ADDON = false; + +PREP(addCustomFilter); +PREP(currentItemListBox); +PREP(forceItemListUpdate); +PREP(inventoryDisplayLoaded); +PREP(onLBSelChanged); + +// cache config +if !(uiNamespace getVariable [QGVAR(configCached), false]) then { + // weapons, magazines, items + { + if (getNumber (_x >> "scope") > 0) then { + private _displayName = getText (_x >> "displayName"); + private _picture = getText (_x >> "picture"); + + if (_picture select [0,1] == "\") then { + _picture = _picture select [1]; + }; + + uiNamespace setVariable [format [QGVAR(ItemKey:%1), _displayName, _picture], _x]; + }; + false + } count ( + ("true" configClasses (configFile >> "CfgWeapons")) + + ("true" configClasses (configFile >> "CfgMagazines")) + + ("true" configClasses (configFile >> "CfgGlasses")) + ); + + // backpacks + { + if (getNumber (_x >> "scope") > 0 && {getNumber (_x >> "isBackpack") == 1}) then { + private _displayName = getText (_x >> "displayName"); + private _picture = getText (_x >> "picture"); + + if (_picture select [0,1] == "\") then { + _picture = _picture select [1]; + }; + + uiNamespace setVariable [format [QGVAR(ItemKey:%1), _displayName, _picture], _x]; + }; + false + } count ("true" configClasses (configFile >> "CfgVehicles")); + + uiNamespace setVariable [QGVAR(configCached), true]; +}; + +ADDON = true; diff --git a/addons/filters/config.cpp b/addons/filters/config.cpp new file mode 100644 index 0000000000..a7b7bae6df --- /dev/null +++ b/addons/filters/config.cpp @@ -0,0 +1,15 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"ace_common"}; + author[] = {""}; + authorUrl = ""; + VERSION_CONFIG; + }; +}; + +#include "CfgEventHandlers.hpp" diff --git a/addons/filters/functions/fnc_addCustomFilter.sqf b/addons/filters/functions/fnc_addCustomFilter.sqf new file mode 100644 index 0000000000..6c9c9b876e --- /dev/null +++ b/addons/filters/functions/fnc_addCustomFilter.sqf @@ -0,0 +1,6 @@ +// by commy2 +#include "script_component.hpp" + +params [["_filterName", "ERROR: No Name", [""]], ["_fncName", "", [""]]]; + +GVAR(customFilters) pushBack [_filterName, _fncName]; diff --git a/addons/filters/functions/fnc_currentItemListBox.sqf b/addons/filters/functions/fnc_currentItemListBox.sqf new file mode 100644 index 0000000000..e284cd9a5f --- /dev/null +++ b/addons/filters/functions/fnc_currentItemListBox.sqf @@ -0,0 +1,17 @@ +// by commy2 +#include "script_component.hpp" + +params ["_display"]; + +scopeName "main"; + +{ + private _control = _display displayCtrl _x; + + if (ctrlShown _control) then { + _control breakOut "main" + }; + false +} count [632, 640, 633, 638, 619]; + +-1 diff --git a/addons/filters/functions/fnc_forceItemListUpdate.sqf b/addons/filters/functions/fnc_forceItemListUpdate.sqf new file mode 100644 index 0000000000..77d9bd3449 --- /dev/null +++ b/addons/filters/functions/fnc_forceItemListUpdate.sqf @@ -0,0 +1,29 @@ +// by commy2 +#include "script_component.hpp" + +disableSerialization; +params ["_display"]; + +private _index = GVAR(selectedFilterIndex); +private _itemList = _display call FUNC(currentItemListBox); +private _filterFunction = missionNamespace getVariable ((_display displayCtrl 6554) lbData _index); + +if (_filterFunction isEqualType {}) then { + private _i = 0; + + while {_i < lbSize _itemList} do { + private _config = uiNamespace getVariable [ + format [QGVAR(ItemKey:%1), _itemList lbText _i, _itemList lbPicture _i], + configNull + ]; + + if (!isNull _config && {!(_config call _filterFunction)}) then { + _itemList lbDelete _i; + + // in case the filter function returns nil. Otherwise could lock up the game. + _i = _i - 1; + }; + + _i = _i + 1; + }; +}; diff --git a/addons/filters/functions/fnc_inventoryDisplayLoaded.sqf b/addons/filters/functions/fnc_inventoryDisplayLoaded.sqf new file mode 100644 index 0000000000..8c4433197b --- /dev/null +++ b/addons/filters/functions/fnc_inventoryDisplayLoaded.sqf @@ -0,0 +1,61 @@ +// by commy2 +#include "script_component.hpp" + +disableSerialization; +params ["_display"]; + +private _filter = _display displayCtrl 6554; + +// engine defined behaviour is the following: +// lb value, data and text don't matter, only the index. +// the first three indecies are hard coded: 0 - weapons , 1 - magazines, 2 - items +// all of them show backpacks, because BI +// all other indecies show everything, so all we have to do is delete stuff we dont like +_filter ctrlAddEventHandler ["LBSelChanged", {_this call FUNC(onLBSelChanged)}]; + +// have to add these a frame later, because this event happens before the engine adds the default filters +[{ + disableSerialization; + params ["_filter"]; + + // remove "All", so we can push it to the back later. + // to keep localization we can keep the lbText (displayed name). + private _index = lbSize _filter - 1; + private _nameAll = _filter lbText _index; + _filter lbDelete _index; + + // add our custom filters + { + _x params ["_name", "_fncName"]; + + _index = _filter lbAdd _name; + _filter lbSetData [_index, _fncName]; + + false + } count GVAR(customFilters); + + // readd "All" filter to last position and select it + _index = _filter lbAdd _nameAll; + _filter lbSetCurSel _index; +}, [_filter]] call EFUNC(common,execNextFrame); + +// monitor changes that can happen and force our upate +private _dummyControl = _display ctrlCreate ["RscMapControl", -1]; + +_dummyControl ctrlSetPosition [0,0,0,0]; +_dummyControl ctrlCommit 0; + +_dummyControl ctrlAddEventHandler ["Draw", { + disableSerialization; + params ["_dummyControl"]; + + private _display = ctrlParent _dummyControl; + + private _itemList = _display call FUNC(currentItemListBox); + + // monitoring is done by setting a lb value. These are unused here and are reset every time the list box updates. 127 is just a random constant number. + if (_itemList lbValue 0 != 127) then { + _display call FUNC(forceItemListUpdate); + _itemList lbSetValue [0, 127]; + }; +}]; diff --git a/addons/filters/functions/fnc_onLBSelChanged.sqf b/addons/filters/functions/fnc_onLBSelChanged.sqf new file mode 100644 index 0000000000..a5e020f78c --- /dev/null +++ b/addons/filters/functions/fnc_onLBSelChanged.sqf @@ -0,0 +1,14 @@ +// by commy2 +#include "script_component.hpp" + +disableSerialization; +params ["_filter", "_index"]; + +GVAR(selectedFilterIndex) = _index; + +[{ + disableSerialization; + params ["_display"]; + + [_display] call FUNC(forceItemListUpdate); +}, [ctrlParent _filter]] call EFUNC(common,execNextFrame); diff --git a/addons/filters/functions/script_component.hpp b/addons/filters/functions/script_component.hpp new file mode 100644 index 0000000000..500275e357 --- /dev/null +++ b/addons/filters/functions/script_component.hpp @@ -0,0 +1 @@ +#include "\z\ace\addons\filters\script_component.hpp" \ No newline at end of file diff --git a/addons/filters/script_component.hpp b/addons/filters/script_component.hpp new file mode 100644 index 0000000000..27873602d3 --- /dev/null +++ b/addons/filters/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT filters +#include "\z\ace\addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_FILTERS + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_ENABLED_FILTERS + #define DEBUG_SETTINGS DEBUG_ENABLED_FILTERS +#endif + +#include "\z\ace\addons\main\script_macros.hpp" \ No newline at end of file diff --git a/addons/filters/stringtable.xml b/addons/filters/stringtable.xml new file mode 100644 index 0000000000..75b7101da3 --- /dev/null +++ b/addons/filters/stringtable.xml @@ -0,0 +1,29 @@ + + + + + Backpacks + Rucksäcke + + + Headgear + Helme + + + Glasses + Brillen + + + Uniforms + Uniformen + + + Vests + Westen + + + Grenades + Granaten + + + From ee0812ad15486f1e2e0feecf003aba9915081bc3 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 10 Dec 2015 20:57:23 -0600 Subject: [PATCH 12/75] RHS Compat - Combine all ERA Hitpoints Put all ERA hitpoints (up to 46 of them) onto a single point and put that point on the main interaction point --- addons/repair/stringtable.xml | 3 +++ optionals/compat_rhs_afrf3/CfgVehicles.hpp | 19 +++++++++++++++++- optionals/compat_rhs_usf3/CfgVehicles.hpp | 23 ++++++++++++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 2c0c4300c5..64fecd5de8 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -682,6 +682,9 @@ Üveg Стекло + + ERA + Repair Settings Reperatureinstellungen diff --git a/optionals/compat_rhs_afrf3/CfgVehicles.hpp b/optionals/compat_rhs_afrf3/CfgVehicles.hpp index 963913d74d..8bed04004c 100644 --- a/optionals/compat_rhs_afrf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_afrf3/CfgVehicles.hpp @@ -125,7 +125,20 @@ class cfgVehicles { }; }; }; - class rhs_t72bd_tv: rhs_a3t72tank_base {}; + class rhs_t72bb_tv: rhs_a3t72tank_base { + ace_repair_hitpointPositions[] = {{"era_1_hitpoint", {0,0,0}}}; + ace_repair_hitpointGroups[] = {{"era_1_hitpoint", {"era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint", "era_8_hitpoint", "era_9_hitpoint", "era_10_hitpoint", "era_11_hitpoint", "era_12_hitpoint", "era_13_hitpoint", "era_14_hitpoint", "era_15_hitpoint", "era_16_hitpoint", "era_17_hitpoint", "era_18_hitpoint", "era_19_hitpoint", "era_20_hitpoint", "era_21_hitpoint", "era_22_hitpoint", "era_23_hitpoint", "era_24_hitpoint", "era_25_hitpoint", "era_26_hitpoint", "era_27_hitpoint", "era_28_hitpoint", "era_29_hitpoint", "era_30_hitpoint", "era_31_hitpoint"}}}; + }; + class rhs_t72bc_tv: rhs_a3t72tank_base { + ace_repair_hitpointPositions[] = {{"era_1_hitpoint", {0,0,0}}}; + ace_repair_hitpointGroups[] = {{"era_1_hitpoint", {"era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint", "era_8_hitpoint", "era_9_hitpoint", "era_10_hitpoint", "era_11_hitpoint", "era_12_hitpoint", "era_13_hitpoint", "era_14_hitpoint", "era_15_hitpoint", "era_16_hitpoint", "era_17_hitpoint", "era_18_hitpoint", "era_19_hitpoint", "era_20_hitpoint", "era_21_hitpoint", "era_22_hitpoint", "era_23_hitpoint", "era_24_hitpoint", "era_25_hitpoint", "era_26_hitpoint", "era_27_hitpoint", "era_28_hitpoint", "era_29_hitpoint", "era_30_hitpoint", "era_31_hitpoint", "era_32_hitpoint"}}}; + }; + class rhs_t72bd_tv: rhs_a3t72tank_base { + class rhs_t72bd_tv: rhs_a3t72tank_base { + ace_repair_hitpointPositions[] = {{"era_1_hitpoint", {0,0,0}}}; + ace_repair_hitpointGroups[] = {{"era_1_hitpoint", {"era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint", "era_8_hitpoint", "era_9_hitpoint", "era_10_hitpoint", "era_11_hitpoint", "era_12_hitpoint", "era_13_hitpoint", "era_14_hitpoint", "era_15_hitpoint", "era_16_hitpoint", "era_17_hitpoint", "era_18_hitpoint", "era_19_hitpoint", "era_20_hitpoint", "era_21_hitpoint", "era_22_hitpoint", "era_23_hitpoint", "era_24_hitpoint", "era_25_hitpoint", "era_26_hitpoint", "era_27_hitpoint", "era_28_hitpoint", "era_29_hitpoint", "era_30_hitpoint", "era_31_hitpoint", "era_32_hitpoint"}}}; + }; + }; class rhs_t90_tv: rhs_t72bd_tv { class Turrets: Turrets { class MainTurret: MainTurret { @@ -183,6 +196,10 @@ class cfgVehicles { class rhs_t80b : rhs_tank_base { EGVAR(refuel,fuelCapacity) = 1100; }; + class rhs_t80bv: rhs_t80b { + ace_repair_hitpointPositions[] = {{"era_1_hitpoint", {0,0,0}}}; + ace_repair_hitpointGroups[] = {{"era_1_hitpoint", {"era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint", "era_8_hitpoint", "era_9_hitpoint", "era_10_hitpoint", "era_11_hitpoint", "era_12_hitpoint", "era_13_hitpoint", "era_14_hitpoint", "era_15_hitpoint", "era_16_hitpoint", "era_17_hitpoint", "era_18_hitpoint", "era_19_hitpoint", "era_20_hitpoint", "era_21_hitpoint", "era_22_hitpoint", "era_23_hitpoint", "era_24_hitpoint", "era_25_hitpoint", "era_26_hitpoint", "era_27_hitpoint", "era_28_hitpoint"}}}; + }; class Truck_F; class RHS_Ural_BaseTurret : Truck_F { diff --git a/optionals/compat_rhs_usf3/CfgVehicles.hpp b/optionals/compat_rhs_usf3/CfgVehicles.hpp index 3c56b91aa9..6f31ce399c 100644 --- a/optionals/compat_rhs_usf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_usf3/CfgVehicles.hpp @@ -30,6 +30,19 @@ class cfgVehicles { }; }; }; + class rhsusf_m1a1aim_tuski_wd: rhsusf_m1a1tank_base { + ace_repair_hitpointPositions[] = {{"era_1_hitpoint", {0,0,0}}}; + ace_repair_hitpointGroups[] = {{"era_1_hitpoint", {"era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint", "era_8_hitpoint", "era_9_hitpoint", "era_10_hitpoint", "era_11_hitpoint", "era_12_hitpoint", "era_13_hitpoint", "era_14_hitpoint", "era_15_hitpoint", "era_16_hitpoint", "era_17_hitpoint", "era_18_hitpoint", "era_19_hitpoint", "era_20_hitpoint", "era_21_hitpoint", "era_22_hitpoint", "era_23_hitpoint", "era_24_hitpoint", "era_25_hitpoint", "era_26_hitpoint", "era_27_hitpoint", "era_28_hitpoint", "era_29_hitpoint", "era_30_hitpoint", "era_31_hitpoint", "era_32_hitpoint", "era_33_hitpoint", "era_34_hitpoint"}}}; + }; + class rhsusf_m1a2tank_base; + class rhsusf_m1a2sep1tuskid_usarmy: rhsusf_m1a2tank_base { + ace_repair_hitpointPositions[] = {{"era_1_hitpoint", {0,0,0}}}; + ace_repair_hitpointGroups[] = {{"era_1_hitpoint", {"era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint", "era_8_hitpoint", "era_9_hitpoint", "era_10_hitpoint", "era_11_hitpoint", "era_12_hitpoint", "era_13_hitpoint", "era_14_hitpoint", "era_15_hitpoint", "era_16_hitpoint", "era_17_hitpoint", "era_18_hitpoint", "era_19_hitpoint", "era_20_hitpoint", "era_21_hitpoint", "era_22_hitpoint", "era_23_hitpoint", "era_24_hitpoint", "era_25_hitpoint", "era_26_hitpoint", "era_27_hitpoint", "era_28_hitpoint", "era_29_hitpoint", "era_30_hitpoint", "era_31_hitpoint", "era_32_hitpoint", "era_33_hitpoint", "era_34_hitpoint"}}}; + }; + class rhsusf_m1a2sep1tuskiiwd_usarmy: rhsusf_m1a2sep1tuskid_usarmy { + ace_repair_hitpointPositions[] = {{"era_1_hitpoint", {0,0,0}}}; + ace_repair_hitpointGroups[] = {{"era_1_hitpoint", {"era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint", "era_8_hitpoint", "era_9_hitpoint", "era_10_hitpoint", "era_11_hitpoint", "era_12_hitpoint", "era_13_hitpoint", "era_14_hitpoint", "era_15_hitpoint", "era_16_hitpoint", "era_17_hitpoint", "era_18_hitpoint", "era_19_hitpoint", "era_20_hitpoint", "era_21_hitpoint", "era_22_hitpoint", "era_23_hitpoint", "era_24_hitpoint", "era_25_hitpoint", "era_26_hitpoint", "era_27_hitpoint", "era_28_hitpoint", "era_29_hitpoint", "era_30_hitpoint", "era_31_hitpoint", "era_32_hitpoint", "era_33_hitpoint", "era_34_hitpoint", "era_35_hitpoint", "era_36_hitpoint", "era_37_hitpoint", "era_38_hitpoint", "era_39_hitpoint", "era_40_hitpoint", "era_41_hitpoint", "era_42_hitpoint", "era_43_hitpoint", "era_44_hitpoint", "era_45_hitpoint", "era_46_hitpoint"}}}; + }; class Heli_light_03_base_F; class RHS_UH1_Base : Heli_light_03_base_F { @@ -83,6 +96,16 @@ class cfgVehicles { class RHS_M2A2_Base : APC_Tracked_03_base_F { EGVAR(refuel,fuelCapacity) = 746; }; + class RHS_M2A2: RHS_M2A2_Base {}; + class RHS_M2A2_BUSKI: RHS_M2A2 { + ace_repair_hitpointPositions[] = {{"era_1_hitpoint", {0,0,0}}}; + ace_repair_hitpointGroups[] = {{"era_1_hitpoint", {"era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint", "era_8_hitpoint", "era_9_hitpoint", "era_10_hitpoint", "era_11_hitpoint", "era_12_hitpoint", "era_13_hitpoint", "era_14_hitpoint", "era_15_hitpoint", "era_16_hitpoint", "era_17_hitpoint", "era_18_hitpoint", "era_19_hitpoint"}}}; + }; + class RHS_M2A3: RHS_M2A2 {}; + class RHS_M2A3_BUSKI: RHS_M2A3 { + ace_repair_hitpointPositions[] = {{"era_1_hitpoint", {0,0,0}}}; + ace_repair_hitpointGroups[] = {{"era_1_hitpoint", {"era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint", "era_8_hitpoint", "era_9_hitpoint", "era_10_hitpoint", "era_11_hitpoint", "era_12_hitpoint", "era_13_hitpoint", "era_14_hitpoint", "era_15_hitpoint", "era_16_hitpoint", "era_17_hitpoint", "era_18_hitpoint", "era_19_hitpoint"}}}; + }; class Plane_CAS_01_base_F; class RHS_A10 : Plane_CAS_01_base_F { From e9be05209a9f81baa1a38e64ff89080e59f93ea4 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 10 Dec 2015 22:58:44 -0600 Subject: [PATCH 13/75] Fix litter for adv - Add bloody p3d for Pack/qClot Fix #2950 Get correct bloodLossOnSelection for both basic and advanced Adds bloody versions of packing bandage and quickClot --- addons/medical/ACE_Medical_Treatments.hpp | 26 +++++++++++++----- addons/medical/CfgVehicles.hpp | 6 ++++ .../data/littergeneric_QuikclotBloody.p3d | Bin 0 -> 33228 bytes .../littergeneric_packingbandageBloody.p3d | Bin 0 -> 36146 bytes addons/medical/functions/fnc_createLitter.sqf | 9 ++++-- .../functions/fnc_treatment_success.sqf | 23 ++++++++++++---- 6 files changed, 49 insertions(+), 15 deletions(-) create mode 100644 addons/medical/data/littergeneric_QuikclotBloody.p3d create mode 100644 addons/medical/data/littergeneric_packingbandageBloody.p3d diff --git a/addons/medical/ACE_Medical_Treatments.hpp b/addons/medical/ACE_Medical_Treatments.hpp index 91f7c3aaf1..8e9815ac1f 100644 --- a/addons/medical/ACE_Medical_Treatments.hpp +++ b/addons/medical/ACE_Medical_Treatments.hpp @@ -27,7 +27,10 @@ class ACE_Medical_Actions { animationCallerProne = "AinvPpneMstpSlayW[wpn]Dnon_medicOther"; animationCallerSelf = "AinvPknlMstpSlayW[wpn]Dnon_medic"; animationCallerSelfProne = "AinvPpneMstpSlayW[wpn]Dnon_medic"; - litter[] = { {"All", "_previousDamage > 0", {{"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, {"All", "_previousDamage <= 0", {"ACE_MedicalLitter_clean"}} }; + litter[] = { + {"All", "_bloodLossOnSelection > 0", {{"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, + {"All", "_bloodLossOnSelection <= 0", {"ACE_MedicalLitter_clean"}} + }; }; class Morphine: Bandage { displayName = CSTRING(Inject_Morphine); @@ -163,12 +166,18 @@ class ACE_Medical_Actions { animationCallerProne = "AinvPpneMstpSlayW[wpn]Dnon_medicOther"; animationCallerSelf = "AinvPknlMstpSlayW[wpn]Dnon_medic"; animationCallerSelfProne = "AinvPpneMstpSlayW[wpn]Dnon_medic"; - litter[] = { {"All", "_previousDamage > 0", {{"ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, {"All", "_previousDamage <= 0", {"ACE_MedicalLitter_clean"}} }; + litter[] = { + {"All", "_bloodLossOnSelection > 0", {{"ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, + {"All", "_bloodLossOnSelection <= 0", {"ACE_MedicalLitter_clean"}} + }; }; class PackingBandage: fieldDressing { displayName = CSTRING(Actions_PackingBandage); items[] = {"ACE_packingBandage"}; - litter[] = { {"All", "", {"ACE_MedicalLitter_packingBandage"}}}; + litter[] = { + {"All", "_bloodLossOnSelection > 0", {"ACE_MedicalLitter_packingBandageBloody"}}, + {"All", "_bloodLossOnSelection <= 0", {"ACE_MedicalLitter_packingBandage"}} + }; }; class ElasticBandage: fieldDressing { displayName = CSTRING(Actions_ElasticBandage); @@ -177,7 +186,10 @@ class ACE_Medical_Actions { class QuikClot: fieldDressing { displayName = CSTRING(Actions_QuikClot); items[] = {"ACE_quikclot"}; - litter[] = { {"All", "", {"ACE_MedicalLitter_QuickClot"}}}; + litter[] = { + {"All", "_bloodLossOnSelection > 0", {"ACE_MedicalLitter_QuickClotBloody"}}, + {"All", "_bloodLossOnSelection <= 0", {"ACE_MedicalLitter_QuickClot"}} + }; }; class Tourniquet: fieldDressing { displayName = CSTRING(Apply_Tourniquet); @@ -296,9 +308,9 @@ class ACE_Medical_Actions { animationCallerSelf = ""; animationCallerSelfProne = ""; litter[] = { {"All", "", {"ACE_MedicalLitter_gloves"}}, - {"All", "_previousDamage > 0", {{"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}} }, - {"All", "_previousDamage > 0", {{"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, - {"All", "_previousDamage <= 0", {"ACE_MedicalLitter_clean"}} + {"All", "_bloodLossOnSelection > 0", {{"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, + {"All", "_bloodLossOnSelection > 0", {{"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, + {"All", "_bloodLossOnSelection <= 0", {"ACE_MedicalLitter_clean"}} }; }; class CheckPulse: fieldDressing { diff --git a/addons/medical/CfgVehicles.hpp b/addons/medical/CfgVehicles.hpp index ba7d413364..a2d3c451d6 100644 --- a/addons/medical/CfgVehicles.hpp +++ b/addons/medical/CfgVehicles.hpp @@ -651,6 +651,9 @@ class CfgVehicles { class ACE_MedicalLitter_packingBandage: ACE_MedicalLitterBase { model = QUOTE(PATHTOF(data\littergeneric_packingBandage.p3d)); }; + class ACE_MedicalLitter_packingBandageBloody: ACE_MedicalLitterBase { + model = QUOTE(PATHTOF(data\littergeneric_packingbandageBloody.p3d)); + }; class ACE_MedicalLitter_gloves: ACE_MedicalLitterBase { model = QUOTE(PATHTOF(data\littergeneric_gloves.p3d)); }; @@ -666,6 +669,9 @@ class CfgVehicles { class ACE_MedicalLitter_QuickClot: ACE_MedicalLitterBase { model = QUOTE(PATHTOF(data\littergeneric_Quikclot.p3d)); }; + class ACE_MedicalLitter_QuickClotBloody: ACE_MedicalLitterBase { + model = QUOTE(PATHTOF(data\littergeneric_QuikclotBloody.p3d)); + }; class Item_Base_F; class ACE_fieldDressingItem: Item_Base_F { scope = 2; diff --git a/addons/medical/data/littergeneric_QuikclotBloody.p3d b/addons/medical/data/littergeneric_QuikclotBloody.p3d new file mode 100644 index 0000000000000000000000000000000000000000..6a684719f0e46560598105a30b34269a0af6af0a GIT binary patch literal 33228 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 literal 0 HcmV?d00001 diff --git a/addons/medical/data/littergeneric_packingbandageBloody.p3d b/addons/medical/data/littergeneric_packingbandageBloody.p3d new file mode 100644 index 0000000000000000000000000000000000000000..f79e83b51215af518002828017c002575f8eea01 GIT binary patch literal 36146 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 * 4: ? * 5: Users of Items - * 6: Previous Damage + * 6: Blood Loss on selection (previously called _previousDamage) * * Return Value: * None @@ -22,7 +22,10 @@ #define MIN_ENTRIES_LITTER_CONFIG 3 private ["_config", "_litter", "_createLitter", "_position", "_createdLitter"]; -params ["_caller", "_target", "_selectionName", "_className", "", "_usersOfItems", "_previousDamage"]; +params ["_caller", "_target", "_selectionName", "_className", "", "_usersOfItems", "_bloodLossOnSelection"]; + +//Ensures comptibilty with other possible medical treatment configs +private _previousDamage = _bloodLossOnSelection; if !(GVAR(allowLitterCreation)) exitwith {}; if (vehicle _caller != _caller || vehicle _target != _target) exitwith {}; @@ -72,7 +75,7 @@ _createdLitter = []; _litterCondition = missionNamespace getvariable _litterCondition; if (!(_litterCondition isEqualType {})) then {_litterCondition = {false}}; }; - if !([_caller, _target, _selectionName, _className, _usersOfItems, _previousDamage] call _litterCondition) exitwith {}; + if !([_caller, _target, _selectionName, _className, _usersOfItems, _bloodLossOnSelection] call _litterCondition) exitwith {}; if (_litterOptions isEqualType []) then { // Loop through through the litter options and place the litter diff --git a/addons/medical/functions/fnc_treatment_success.sqf b/addons/medical/functions/fnc_treatment_success.sqf index 559a83885f..cb95b0e6c9 100644 --- a/addons/medical/functions/fnc_treatment_success.sqf +++ b/addons/medical/functions/fnc_treatment_success.sqf @@ -65,15 +65,28 @@ if (isNil _callback) then { _callback = missionNamespace getvariable _callback; }; -//Get current damage before treatment (for litter) -_previousDamage = if (_selectionName in GVAR(SELECTIONS)) then { - _target getHitPointDamage ([_target, _selectionName, true] call FUNC(translateSelections)); +//Get current blood loose on limb (for "bloody" litter) +private _bloodLossOnSelection = 0; +private _partNumber = ([_selectionName] call FUNC(selectionNameToNumber)) max 0; +if ((GVAR(level) >= 2) && {([_target] call FUNC(hasMedicalEnabled))}) then { + //Advanced Medical - Add all bleeding from wounds on selection + private _openWounds = _target getvariable [QGVAR(openWounds), []]; + { + _x params ["", "", "_selectionX", "_amountOf", "_bleedingRatio"]; + if (_selectionX == _partNumber) then { + _bloodLossOnSelection = _bloodLossOnSelection + (_amountOf * _bleedingRatio); + }; + } forEach _openWounds; + TRACE_1("advanced",_bloodLossOnSelection); } else { - damage _target; + //Basic Medical (just use blodyPartStatus): + private _damageBodyParts = _target getvariable [QGVAR(bodyPartStatus), [0,0,0,0,0,0]]; + _bloodLossOnSelection = _damageBodyParts select _partNumber + TRACE_1("basic",_bloodLossOnSelection); }; _args call _callback; -_args pushBack _previousDamage; +_args pushBack _bloodLossOnSelection; _args call FUNC(createLitter); //If we're not already tracking vitals, start: From c7b637509280f831d270535174c0a4378379a2a4 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 10 Dec 2015 23:29:05 -0600 Subject: [PATCH 14/75] Sanitize less/greater-than symbol to square Fix #2912 The raw `<` showed up in nametags and anything besides strucText `[ / ]` is fairly close and will work in either text mode. --- addons/common/functions/fnc_sanitizeString.sqf | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/addons/common/functions/fnc_sanitizeString.sqf b/addons/common/functions/fnc_sanitizeString.sqf index fff3288db6..749b36ded7 100644 --- a/addons/common/functions/fnc_sanitizeString.sqf +++ b/addons/common/functions/fnc_sanitizeString.sqf @@ -7,7 +7,10 @@ * 1: Remove html tags (default: false) * * Return Value: - * Sanitized string + * Sanitized string + * + * Example: + * ["CoolGuy", true] call ace_common_fnc_sanitizeString; * * Public: Yes */ @@ -20,16 +23,16 @@ _array = []; { switch _x do { - case 60 : { + case 60 : { // less than symbol: `<` if (_removeTags) then { - _array append toArray "<"; + _array append toArray "["; } else { _array pushBack _x; }; }; - case 62 : { + case 62 : { // greater than symbol: `>` if (_removeTags) then { - _array append toArray ">"; + _array append toArray "]"; } else { _array pushBack _x; }; From 2b63b2efa86aabd2a050306c7201f5eb1f0dee21 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 11 Dec 2015 13:14:58 +0100 Subject: [PATCH 15/75] add more filters to ammo boxes --- addons/filters/XEH_postInit.sqf | 54 ++++++++++++------- addons/filters/XEH_preInit.sqf | 46 +++++++++------- .../filters/functions/fnc_addCustomFilter.sqf | 15 +++++- .../functions/fnc_currentItemListBox.sqf | 19 +++++-- .../filters/functions/fnc_filterBackpacks.sqf | 17 ++++++ .../filters/functions/fnc_filterGrenades.sqf | 17 ++++++ .../filters/functions/fnc_filterHeadgear.sqf | 17 ++++++ .../filters/functions/fnc_filterMedical.sqf | 17 ++++++ .../filters/functions/fnc_filterUniforms.sqf | 17 ++++++ addons/filters/functions/fnc_filterVests.sqf | 17 ++++++ .../functions/fnc_forceItemListUpdate.sqf | 17 ++++-- .../functions/fnc_inventoryDisplayLoaded.sqf | 23 +++++--- .../filters/functions/fnc_onLBSelChanged.sqf | 15 +++++- addons/filters/script_component.hpp | 11 +++- addons/filters/stringtable.xml | 6 ++- addons/main/script_macros.hpp | 39 +++++++++++--- 16 files changed, 285 insertions(+), 62 deletions(-) create mode 100644 addons/filters/functions/fnc_filterBackpacks.sqf create mode 100644 addons/filters/functions/fnc_filterGrenades.sqf create mode 100644 addons/filters/functions/fnc_filterHeadgear.sqf create mode 100644 addons/filters/functions/fnc_filterMedical.sqf create mode 100644 addons/filters/functions/fnc_filterUniforms.sqf create mode 100644 addons/filters/functions/fnc_filterVests.sqf diff --git a/addons/filters/XEH_postInit.sqf b/addons/filters/XEH_postInit.sqf index 5769f1fe13..d0e3fb042a 100644 --- a/addons/filters/XEH_postInit.sqf +++ b/addons/filters/XEH_postInit.sqf @@ -2,31 +2,49 @@ if (!hasInterface) exitWith {}; -disableSerialization; - GVAR(customFilters) = []; GVAR(selectedFilterIndex) = -1; ["inventoryDisplayLoaded", {_this call FUNC(inventoryDisplayLoaded)}] call EFUNC(common,addEventHandler); // add custom filters -DFUNC(filterBackpacks) = { - params ["_config"]; - getNumber (_config >> "isBackpack") == 1 -}; + +// generate list of grenades +GVAR(Grenades_ItemList) = []; + +{ + GVAR(Grenades_ItemList) append getArray (configFile >> "CfgWeapons" >> "Throw" >> _x >> "magazines"); + false +} count getArray (configFile >> "CfgWeapons" >> "Throw" >> "muzzles"); + +// make list case insensitive +GVAR(Grenades_ItemList) = [GVAR(Grenades_ItemList), {toLower _this}] call EFUNC(common,map); + +// filter duplicates +GVAR(Grenades_ItemList) = GVAR(Grenades_ItemList) arrayIntersect GVAR(Grenades_ItemList); + +[localize LSTRING(Grenades), QFUNC(filterGrenades)] call FUNC(addCustomFilter); [localize LSTRING(Backpacks), QFUNC(filterBackpacks)] call FUNC(addCustomFilter); - -DFUNC(filterUniforms) = { - params ["_config"]; - getNumber (_config >> "ItemInfo" >> "type") == 801 -}; - [localize LSTRING(Uniforms), QFUNC(filterUniforms)] call FUNC(addCustomFilter); - -DFUNC(filterVests) = { - params ["_config"]; - getNumber (_config >> "ItemInfo" >> "type") == 701 -}; - [localize LSTRING(Vests), QFUNC(filterVests)] call FUNC(addCustomFilter); +[localize LSTRING(Headgear), QFUNC(filterHeadgear)] call FUNC(addCustomFilter); + +// generate list of medical items +GVAR(Medical_ItemList) = []; + +{ + GVAR(Medical_ItemList) append getArray (_x >> "items"); + false +} count ( + ("true" configClasses (configFile >> QEGVAR(Medical,Actions) >> "Basic")) + + ("true" configClasses (configFile >> QEGVAR(Medical,Actions) >> "Advanced")) +); + +// make list case insensitive +GVAR(Medical_ItemList) = [GVAR(Medical_ItemList), {if (_this isEqualType "") then {toLower _this}}] call EFUNC(common,map); + +// filter duplicates +GVAR(Medical_ItemList) = GVAR(Medical_ItemList) arrayIntersect GVAR(Medical_ItemList); + +[localize LSTRING(Medical), QFUNC(filterMedical)] call FUNC(addCustomFilter); diff --git a/addons/filters/XEH_preInit.sqf b/addons/filters/XEH_preInit.sqf index df7b74d8e2..2b0fa93678 100644 --- a/addons/filters/XEH_preInit.sqf +++ b/addons/filters/XEH_preInit.sqf @@ -9,19 +9,27 @@ PREP(inventoryDisplayLoaded); PREP(onLBSelChanged); // cache config +// items in the inventory display can only be distinguished by their lb names and pictures +// this can cause collisions (mainly weapons with attachments), +// but if the item has the same name and picture it at least shouldn't change the filter anyway +// luckily we don't need private items, so dummy and parent classes are out of the picture + if !(uiNamespace getVariable [QGVAR(configCached), false]) then { + private _fnc_addToCache = { + private _displayName = getText (_x >> "displayName"); + private _picture = getText (_x >> "picture"); + + // list box seems to delete the leading backslash + if (_picture select [0,1] == "\") then { + _picture = _picture select [1]; + }; + + uiNamespace setVariable [format [QGVAR(ItemKey:%1:%2), _displayName, _picture], _x]; + }; + // weapons, magazines, items { - if (getNumber (_x >> "scope") > 0) then { - private _displayName = getText (_x >> "displayName"); - private _picture = getText (_x >> "picture"); - - if (_picture select [0,1] == "\") then { - _picture = _picture select [1]; - }; - - uiNamespace setVariable [format [QGVAR(ItemKey:%1), _displayName, _picture], _x]; - }; + if (getNumber (_x >> "scope") > 0) then _fnc_addToCache; false } count ( ("true" configClasses (configFile >> "CfgWeapons")) + @@ -31,20 +39,18 @@ if !(uiNamespace getVariable [QGVAR(configCached), false]) then { // backpacks { - if (getNumber (_x >> "scope") > 0 && {getNumber (_x >> "isBackpack") == 1}) then { - private _displayName = getText (_x >> "displayName"); - private _picture = getText (_x >> "picture"); - - if (_picture select [0,1] == "\") then { - _picture = _picture select [1]; - }; - - uiNamespace setVariable [format [QGVAR(ItemKey:%1), _displayName, _picture], _x]; - }; + if (getNumber (_x >> "scope") > 0 && {getNumber (_x >> "isBackpack") == 1}) then _fnc_addToCache; false } count ("true" configClasses (configFile >> "CfgVehicles")); uiNamespace setVariable [QGVAR(configCached), true]; }; +PREP(filterHeadgear); +PREP(filterUniforms); +PREP(filterVests); +PREP(filterBackpacks); +PREP(filterGrenades); +PREP(filterMedical); + ADDON = true; diff --git a/addons/filters/functions/fnc_addCustomFilter.sqf b/addons/filters/functions/fnc_addCustomFilter.sqf index 6c9c9b876e..44e43bdbf0 100644 --- a/addons/filters/functions/fnc_addCustomFilter.sqf +++ b/addons/filters/functions/fnc_addCustomFilter.sqf @@ -1,4 +1,17 @@ -// by commy2 +/* + * Author: commy2 + * Adds a custom filter list to the inventory display. + * Functions are here as strings, because list boxes can only store numbers and strings. + * + * Arguments: + * 0: Localized filter display name + * 1: Filter function name + * + * Return Value: + * None + * + * Public: No + */ #include "script_component.hpp" params [["_filterName", "ERROR: No Name", [""]], ["_fncName", "", [""]]]; diff --git a/addons/filters/functions/fnc_currentItemListBox.sqf b/addons/filters/functions/fnc_currentItemListBox.sqf index e284cd9a5f..1f1b528e93 100644 --- a/addons/filters/functions/fnc_currentItemListBox.sqf +++ b/addons/filters/functions/fnc_currentItemListBox.sqf @@ -1,4 +1,17 @@ -// by commy2 +/* + * Author: commy2 + * Returns the current item list box of given inventory display. + * These can be Ground, Soldier, Uniform, Backpack or Vest. + * Can also be Weapon since 1.52, but that apparently uses one of the above. + * + * Arguments: + * 0: Inventory display + * + * Return Value: + * Currently selected item list box + * + * Public: No + */ #include "script_component.hpp" params ["_display"]; @@ -9,9 +22,9 @@ scopeName "main"; private _control = _display displayCtrl _x; if (ctrlShown _control) then { - _control breakOut "main" + _control breakOut "main"; }; false -} count [632, 640, 633, 638, 619]; +} count [IDC_ITEMLIST_GROUND, IDC_ITEMLIST_SOLDIER, IDC_ITEMLIST_UNIFORM, IDC_ITEMLIST_VEST, IDC_ITEMLIST_BACKPACK]; -1 diff --git a/addons/filters/functions/fnc_filterBackpacks.sqf b/addons/filters/functions/fnc_filterBackpacks.sqf new file mode 100644 index 0000000000..9b629de66f --- /dev/null +++ b/addons/filters/functions/fnc_filterBackpacks.sqf @@ -0,0 +1,17 @@ +/* + * Author: commy2 + * Filter condition for the Backpacks filter list + * + * Arguments: + * 0: Item config entry + * + * Return Value: + * Item should appear in this list? + * + * Public: No + */ +#include "script_component.hpp" + +params ["_config"]; + +getNumber (_config >> "isBackpack") == 1 diff --git a/addons/filters/functions/fnc_filterGrenades.sqf b/addons/filters/functions/fnc_filterGrenades.sqf new file mode 100644 index 0000000000..0acfbcaa2c --- /dev/null +++ b/addons/filters/functions/fnc_filterGrenades.sqf @@ -0,0 +1,17 @@ +/* + * Author: commy2 + * Filter condition for the Grenades filter list + * + * Arguments: + * 0: Item config entry + * + * Return Value: + * Item should appear in this list? + * + * Public: No + */ +#include "script_component.hpp" + +params ["_config"]; + +toLower configName _config in GVAR(Grenades_ItemList) diff --git a/addons/filters/functions/fnc_filterHeadgear.sqf b/addons/filters/functions/fnc_filterHeadgear.sqf new file mode 100644 index 0000000000..056406a3d1 --- /dev/null +++ b/addons/filters/functions/fnc_filterHeadgear.sqf @@ -0,0 +1,17 @@ +/* + * Author: commy2 + * Filter condition for the Headgear filter list + * + * Arguments: + * 0: Item config entry + * + * Return Value: + * Item should appear in this list? + * + * Public: No + */ +#include "script_component.hpp" + +params ["_config"]; + +getNumber (_config >> "ItemInfo" >> "type") in [TYPE_HEADGEAR, TYPE_HMD] || {isClass (configFile >> "CfgGlasses" >> configName _config)} diff --git a/addons/filters/functions/fnc_filterMedical.sqf b/addons/filters/functions/fnc_filterMedical.sqf new file mode 100644 index 0000000000..397be50f06 --- /dev/null +++ b/addons/filters/functions/fnc_filterMedical.sqf @@ -0,0 +1,17 @@ +/* + * Author: commy2 + * Filter condition for the Medical filter list + * + * Arguments: + * 0: Item config entry + * + * Return Value: + * Item should appear in this list? + * + * Public: No + */ +#include "script_component.hpp" + +params ["_config"]; + +toLower configName _config in GVAR(Medical_ItemList) diff --git a/addons/filters/functions/fnc_filterUniforms.sqf b/addons/filters/functions/fnc_filterUniforms.sqf new file mode 100644 index 0000000000..4c135dfa88 --- /dev/null +++ b/addons/filters/functions/fnc_filterUniforms.sqf @@ -0,0 +1,17 @@ +/* + * Author: commy2 + * Filter condition for the Uniforms filter list + * + * Arguments: + * 0: Item config entry + * + * Return Value: + * Item should appear in this list? + * + * Public: No + */ +#include "script_component.hpp" + +params ["_config"]; + +getNumber (_config >> "ItemInfo" >> "type") == TYPE_UNIFORM diff --git a/addons/filters/functions/fnc_filterVests.sqf b/addons/filters/functions/fnc_filterVests.sqf new file mode 100644 index 0000000000..646e23d04d --- /dev/null +++ b/addons/filters/functions/fnc_filterVests.sqf @@ -0,0 +1,17 @@ +/* + * Author: commy2 + * Filter condition for the Vests filter list + * + * Arguments: + * 0: Item config entry + * + * Return Value: + * Item should appear in this list? + * + * Public: No + */ +#include "script_component.hpp" + +params ["_config"]; + +getNumber (_config >> "ItemInfo" >> "type") == TYPE_VEST diff --git a/addons/filters/functions/fnc_forceItemListUpdate.sqf b/addons/filters/functions/fnc_forceItemListUpdate.sqf index 77d9bd3449..89142b99ff 100644 --- a/addons/filters/functions/fnc_forceItemListUpdate.sqf +++ b/addons/filters/functions/fnc_forceItemListUpdate.sqf @@ -1,4 +1,15 @@ -// by commy2 +/* + * Author: commy2 + * Updates item list and removes every entry that does not fit in the currently selected filter list. + * + * Arguments: + * 0: Inventory display + * + * Return Value: + * None + * + * Public: No + */ #include "script_component.hpp" disableSerialization; @@ -6,14 +17,14 @@ params ["_display"]; private _index = GVAR(selectedFilterIndex); private _itemList = _display call FUNC(currentItemListBox); -private _filterFunction = missionNamespace getVariable ((_display displayCtrl 6554) lbData _index); +private _filterFunction = missionNamespace getVariable ((_display displayCtrl IDC_FILTERLISTS) lbData _index); if (_filterFunction isEqualType {}) then { private _i = 0; while {_i < lbSize _itemList} do { private _config = uiNamespace getVariable [ - format [QGVAR(ItemKey:%1), _itemList lbText _i, _itemList lbPicture _i], + format [QGVAR(ItemKey:%1:%2), _itemList lbText _i, _itemList lbPicture _i], configNull ]; diff --git a/addons/filters/functions/fnc_inventoryDisplayLoaded.sqf b/addons/filters/functions/fnc_inventoryDisplayLoaded.sqf index 8c4433197b..3cb15853d3 100644 --- a/addons/filters/functions/fnc_inventoryDisplayLoaded.sqf +++ b/addons/filters/functions/fnc_inventoryDisplayLoaded.sqf @@ -1,10 +1,21 @@ -// by commy2 +/* + * Author: commy2 + * Executed every time an inventory display is opened. + * + * Arguments: + * 0: Inventory display + * + * Return Value: + * None + * + * Public: No + */ #include "script_component.hpp" disableSerialization; params ["_display"]; -private _filter = _display displayCtrl 6554; +private _filter = _display displayCtrl IDC_FILTERLISTS; // engine defined behaviour is the following: // lb value, data and text don't matter, only the index. @@ -39,7 +50,7 @@ _filter ctrlAddEventHandler ["LBSelChanged", {_this call FUNC(onLBSelChanged)}]; _filter lbSetCurSel _index; }, [_filter]] call EFUNC(common,execNextFrame); -// monitor changes that can happen and force our upate +// monitor changes that can happen and force our update private _dummyControl = _display ctrlCreate ["RscMapControl", -1]; _dummyControl ctrlSetPosition [0,0,0,0]; @@ -53,9 +64,9 @@ _dummyControl ctrlAddEventHandler ["Draw", { private _itemList = _display call FUNC(currentItemListBox); - // monitoring is done by setting a lb value. These are unused here and are reset every time the list box updates. 127 is just a random constant number. - if (_itemList lbValue 0 != 127) then { + // monitoring is done by setting a lb value. These are unused here and are reset every time the list box updates. + if (_itemList lbValue 0 != DUMMY_VALUE) then { _display call FUNC(forceItemListUpdate); - _itemList lbSetValue [0, 127]; + _itemList lbSetValue [0, DUMMY_VALUE]; }; }]; diff --git a/addons/filters/functions/fnc_onLBSelChanged.sqf b/addons/filters/functions/fnc_onLBSelChanged.sqf index a5e020f78c..61e4b12b10 100644 --- a/addons/filters/functions/fnc_onLBSelChanged.sqf +++ b/addons/filters/functions/fnc_onLBSelChanged.sqf @@ -1,4 +1,17 @@ -// by commy2 +/* + * Author: commy2 + * Executed when the filter list box is changed. + * Sets new filter list index. + * + * Arguments: + * 0: Filter list box + * 1: Filter list index + * + * Return Value: + * None + * + * Public: No + */ #include "script_component.hpp" disableSerialization; diff --git a/addons/filters/script_component.hpp b/addons/filters/script_component.hpp index 27873602d3..e96072de4b 100644 --- a/addons/filters/script_component.hpp +++ b/addons/filters/script_component.hpp @@ -9,4 +9,13 @@ #define DEBUG_SETTINGS DEBUG_ENABLED_FILTERS #endif -#include "\z\ace\addons\main\script_macros.hpp" \ No newline at end of file +#include "\z\ace\addons\main\script_macros.hpp" + +#define IDC_FILTERLISTS 6554 +#define IDC_ITEMLIST_GROUND 632 +#define IDC_ITEMLIST_SOLDIER 640 +#define IDC_ITEMLIST_UNIFORM 633 +#define IDC_ITEMLIST_VEST 638 +#define IDC_ITEMLIST_BACKPACK 619 + +#define DUMMY_VALUE 127 diff --git a/addons/filters/stringtable.xml b/addons/filters/stringtable.xml index 75b7101da3..a7f9e30ec6 100644 --- a/addons/filters/stringtable.xml +++ b/addons/filters/stringtable.xml @@ -7,7 +7,7 @@ Headgear - Helme + Kopfbedeckungen Glasses @@ -25,5 +25,9 @@ Grenades Granaten + + Medical + Sanimaterial + diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index a65d126110..0864fcdfbe 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -38,25 +38,48 @@ #define MACRO_ADDWEAPON(WEAPON,COUNT) class _xx_##WEAPON { \ - weapon = #WEAPON; \ - count = COUNT; \ + weapon = #WEAPON; \ + count = COUNT; \ } #define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \ - name = #ITEM; \ - count = COUNT; \ + name = #ITEM; \ + count = COUNT; \ } #define MACRO_ADDMAGAZINE(MAGAZINE,COUNT) class _xx_##MAGAZINE { \ - magazine = #MAGAZINE; \ - count = COUNT; \ + magazine = #MAGAZINE; \ + count = COUNT; \ } #define MACRO_ADDBACKPACK(BACKPACK,COUNT) class _xx_##BACKPACK { \ - backpack = #BACKPACK; \ - count = COUNT; \ + backpack = #BACKPACK; \ + count = COUNT; \ } +// item types +#define TYPE_DEFAULT 0 +#define TYPE_MUZZLE 101 +#define TYPE_OPTICS 201 +#define TYPE_FLASHLIGHT 301 +#define TYPE_BIPOD 302 +#define TYPE_FIRST_AID_KIT 401 +#define TYPE_FINS 501 // not implemented +#define TYPE_BREATHING_BOMB 601 // not implemented +#define TYPE_NVG 602 +#define TYPE_GOGGLE 603 +#define TYPE_SCUBA 604 // not implemented +#define TYPE_HEADGEAR 605 +#define TYPE_FACTOR 607 +#define TYPE_RADIO 611 +#define TYPE_HMD 616 +#define TYPE_BINOCULAR 617 +#define TYPE_MEDIKIT 619 +#define TYPE_TOOLKIT 620 +#define TYPE_UAV_TERMINAL 621 +#define TYPE_VEST 701 +#define TYPE_UNIFORM 801 +#define TYPE_BACKPACK 901 #ifdef DISABLE_COMPILE_CACHE #define PREP(fncName) DFUNC(fncName) = compile preprocessFileLineNumbers QUOTE(PATHTOF(functions\DOUBLES(fnc,fncName).sqf)) From 5d9a05716591bdf061238b976fee8c34cdbefc47 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 11 Dec 2015 14:18:11 +0100 Subject: [PATCH 16/75] add more filters to ammo boxes --- addons/filters/XEH_preInit.sqf | 22 +++++++++++++------ addons/filters/functions/fnc_filterItems.sqf | 17 ++++++++++++++ .../filters/functions/fnc_filterMagazines.sqf | 15 +++++++++++++ .../filters/functions/fnc_filterWeapons.sqf | 15 +++++++++++++ .../functions/fnc_forceItemListUpdate.sqf | 2 +- .../functions/fnc_inventoryDisplayLoaded.sqf | 5 +++++ 6 files changed, 68 insertions(+), 8 deletions(-) create mode 100644 addons/filters/functions/fnc_filterItems.sqf create mode 100644 addons/filters/functions/fnc_filterMagazines.sqf create mode 100644 addons/filters/functions/fnc_filterWeapons.sqf diff --git a/addons/filters/XEH_preInit.sqf b/addons/filters/XEH_preInit.sqf index 2b0fa93678..d574cacf3b 100644 --- a/addons/filters/XEH_preInit.sqf +++ b/addons/filters/XEH_preInit.sqf @@ -16,36 +16,44 @@ PREP(onLBSelChanged); if !(uiNamespace getVariable [QGVAR(configCached), false]) then { private _fnc_addToCache = { - private _displayName = getText (_x >> "displayName"); - private _picture = getText (_x >> "picture"); + private _displayName = getText (_this >> "displayName"); + private _picture = getText (_this >> "picture"); // list box seems to delete the leading backslash if (_picture select [0,1] == "\") then { _picture = _picture select [1]; }; - uiNamespace setVariable [format [QGVAR(ItemKey:%1:%2), _displayName, _picture], _x]; + uiNamespace setVariable [format [QGVAR(ItemKey:%1:%2), _displayName, _picture], _this]; }; - // weapons, magazines, items + // weapons and items { - if (getNumber (_x >> "scope") > 0) then _fnc_addToCache; + if (getNumber (_x >> "scope") > 0) then {_x call _fnc_addToCache}; false } count ( ("true" configClasses (configFile >> "CfgWeapons")) + - ("true" configClasses (configFile >> "CfgMagazines")) + ("true" configClasses (configFile >> "CfgGlasses")) ); + // magazines + { + if (getNumber (_x >> "scope") == 2) then {_x call _fnc_addToCache}; + false + } count ("true" configClasses (configFile >> "CfgMagazines")); + // backpacks { - if (getNumber (_x >> "scope") > 0 && {getNumber (_x >> "isBackpack") == 1}) then _fnc_addToCache; + if (getNumber (_x >> "scope") > 0 && {getNumber (_x >> "isBackpack") == 1}) then {_x call _fnc_addToCache}; false } count ("true" configClasses (configFile >> "CfgVehicles")); uiNamespace setVariable [QGVAR(configCached), true]; }; +PREP(filterWeapons); +PREP(filterMagazines); +PREP(filterItems); PREP(filterHeadgear); PREP(filterUniforms); PREP(filterVests); diff --git a/addons/filters/functions/fnc_filterItems.sqf b/addons/filters/functions/fnc_filterItems.sqf new file mode 100644 index 0000000000..b2990d977e --- /dev/null +++ b/addons/filters/functions/fnc_filterItems.sqf @@ -0,0 +1,17 @@ +/* + * Author: commy2 + * Remove uniforms, vests and backpacks from Items filter. + * + * Arguments: + * 0: Item config entry + * + * Return Value: + * Item should appear in this list? + * + * Public: No + */ +#include "script_component.hpp" + +params ["_config"]; + +!(_this call FUNC(filterUniforms)) && {!(_this call FUNC(filterVests))} && {!(_this call FUNC(filterBackpacks))} diff --git a/addons/filters/functions/fnc_filterMagazines.sqf b/addons/filters/functions/fnc_filterMagazines.sqf new file mode 100644 index 0000000000..dfd357f61d --- /dev/null +++ b/addons/filters/functions/fnc_filterMagazines.sqf @@ -0,0 +1,15 @@ +/* + * Author: commy2 + * Remove backpacks and grenades from Magazines filter. + * + * Arguments: + * 0: Item config entry + * + * Return Value: + * Item should appear in this list? + * + * Public: No + */ +#include "script_component.hpp" + +!(_this call FUNC(filterBackpacks)) && {!(_this call FUNC(filterGrenades))} diff --git a/addons/filters/functions/fnc_filterWeapons.sqf b/addons/filters/functions/fnc_filterWeapons.sqf new file mode 100644 index 0000000000..94a92814ae --- /dev/null +++ b/addons/filters/functions/fnc_filterWeapons.sqf @@ -0,0 +1,15 @@ +/* + * Author: commy2 + * Remove backpacks from Weapons filter. + * + * Arguments: + * 0: Item config entry + * + * Return Value: + * Item should appear in this list? + * + * Public: No + */ +#include "script_component.hpp" + +!(_this call FUNC(filterBackpacks)) diff --git a/addons/filters/functions/fnc_forceItemListUpdate.sqf b/addons/filters/functions/fnc_forceItemListUpdate.sqf index 89142b99ff..9aae70c042 100644 --- a/addons/filters/functions/fnc_forceItemListUpdate.sqf +++ b/addons/filters/functions/fnc_forceItemListUpdate.sqf @@ -27,7 +27,7 @@ if (_filterFunction isEqualType {}) then { format [QGVAR(ItemKey:%1:%2), _itemList lbText _i, _itemList lbPicture _i], configNull ]; - +diag_log text format [QGVAR(ItemKey:%1:%2), _itemList lbText _i, _itemList lbPicture _i]; if (!isNull _config && {!(_config call _filterFunction)}) then { _itemList lbDelete _i; diff --git a/addons/filters/functions/fnc_inventoryDisplayLoaded.sqf b/addons/filters/functions/fnc_inventoryDisplayLoaded.sqf index 3cb15853d3..6e48c1ec2a 100644 --- a/addons/filters/functions/fnc_inventoryDisplayLoaded.sqf +++ b/addons/filters/functions/fnc_inventoryDisplayLoaded.sqf @@ -35,6 +35,11 @@ _filter ctrlAddEventHandler ["LBSelChanged", {_this call FUNC(onLBSelChanged)}]; private _nameAll = _filter lbText _index; _filter lbDelete _index; + // add additional filter functions to the default filters. These remove backpacks etc. + _filter lbSetData [0, QFUNC(filterWeapons)]; + _filter lbSetData [1, QFUNC(filterMagazines)]; + _filter lbSetData [2, QFUNC(filterItems)]; + // add our custom filters { _x params ["_name", "_fncName"]; From ee7f8f82f59f81dec64d3d211b31353ef511b92d Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 11 Dec 2015 14:24:54 +0100 Subject: [PATCH 17/75] remove debug --- addons/filters/functions/fnc_forceItemListUpdate.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/filters/functions/fnc_forceItemListUpdate.sqf b/addons/filters/functions/fnc_forceItemListUpdate.sqf index 9aae70c042..89142b99ff 100644 --- a/addons/filters/functions/fnc_forceItemListUpdate.sqf +++ b/addons/filters/functions/fnc_forceItemListUpdate.sqf @@ -27,7 +27,7 @@ if (_filterFunction isEqualType {}) then { format [QGVAR(ItemKey:%1:%2), _itemList lbText _i, _itemList lbPicture _i], configNull ]; -diag_log text format [QGVAR(ItemKey:%1:%2), _itemList lbText _i, _itemList lbPicture _i]; + if (!isNull _config && {!(_config call _filterFunction)}) then { _itemList lbDelete _i; From ff95aab100fb31800dd436f617496df604393727 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 11 Dec 2015 15:05:43 +0100 Subject: [PATCH 18/75] remove helmets from items filter --- addons/filters/functions/fnc_filterItems.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/filters/functions/fnc_filterItems.sqf b/addons/filters/functions/fnc_filterItems.sqf index b2990d977e..b9bf9baeea 100644 --- a/addons/filters/functions/fnc_filterItems.sqf +++ b/addons/filters/functions/fnc_filterItems.sqf @@ -14,4 +14,4 @@ params ["_config"]; -!(_this call FUNC(filterUniforms)) && {!(_this call FUNC(filterVests))} && {!(_this call FUNC(filterBackpacks))} +!(getNumber (_config >> "ItemInfo" >> "type") in [TYPE_UNIFORM, TYPE_VESTS, TYPE_HEADGEAR]) && {!(_this call FUNC(filterBackpacks))} From db50b5313d6fdd9a32305a2c3ed8b151bc36b629 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 11 Dec 2015 12:01:50 -0600 Subject: [PATCH 19/75] getName can return raw or sanatized html tags --- addons/common/functions/fnc_getName.sqf | 13 ++++++++----- addons/common/functions/fnc_receiveRequest.sqf | 4 ++-- addons/common/functions/fnc_sanitizeString.sqf | 4 ++-- addons/common/functions/fnc_setName.sqf | 12 +++++++++--- addons/disarming/functions/fnc_openDisarmDialog.sqf | 2 +- addons/finger/functions/fnc_incomingFinger.sqf | 2 +- .../functions/fnc_actionCheckBloodPressureLocal.sqf | 4 ++-- .../medical/functions/fnc_actionCheckResponse.sqf | 4 ++-- .../functions/fnc_treatmentAdvanced_CPRLocal.sqf | 4 ++-- .../functions/fnc_treatmentAdvanced_bandage.sqf | 4 ++-- .../fnc_treatmentAdvanced_fullHealLocal.sqf | 4 ++-- .../functions/fnc_treatmentAdvanced_medication.sqf | 4 ++-- addons/medical/functions/fnc_treatmentIV.sqf | 4 ++-- .../medical/functions/fnc_treatmentTourniquet.sqf | 4 ++-- addons/movement/XEH_postInit.sqf | 2 +- addons/nametags/functions/fnc_drawNameTagIcon.sqf | 2 +- .../functions/fnc_showFriendlyFireMessage.sqf | 2 +- 17 files changed, 42 insertions(+), 33 deletions(-) diff --git a/addons/common/functions/fnc_getName.sqf b/addons/common/functions/fnc_getName.sqf index a7facd2c6d..8857fb306b 100644 --- a/addons/common/functions/fnc_getName.sqf +++ b/addons/common/functions/fnc_getName.sqf @@ -5,24 +5,27 @@ * Arguments: * 0: Object * 1: Use effective commander name when used on vehicles (default: false) + * 1: Get Raw Name (Don't sanatize HTML tags ``) (default: false) * * Return Value: * Object Name * + * Example: + * [player, false, true] call ace_common_fnc_getName; + * * Public: Yes */ #include "script_component.hpp" -params ["_unit", ["_showEffective", false]]; +params ["_unit", ["_showEffective", false], ["_useRaw", false]]; -private "_name"; -_name = ""; +private _name = ""; if (_unit isKindOf "CAManBase") then { - _name = _unit getVariable ["ACE_Name", localize QUOTE(DOUBLES(STR,GVAR(Unknown)))]; + _name = _unit getVariable [(["ACE_Name", "ACE_NameRaw"] select _useRaw), localize QUOTE(DOUBLES(STR,GVAR(Unknown)))]; } else { if (_showEffective) then { - _name = [effectiveCommander _unit] call FUNC(getName); + _name = [effectiveCommander _unit, false, _useRaw] call FUNC(getName); } else { _name = getText (configFile >> "CfgVehicles" >> typeOf _unit >> "displayName"); }; diff --git a/addons/common/functions/fnc_receiveRequest.sqf b/addons/common/functions/fnc_receiveRequest.sqf index 1377f4ec35..0f0ede52b8 100644 --- a/addons/common/functions/fnc_receiveRequest.sqf +++ b/addons/common/functions/fnc_receiveRequest.sqf @@ -19,9 +19,9 @@ _requestID = ("ace_recieveRequest_f_id_"+_requestID); _target setVariable [_requestID, _this]; if (isLocalized _requestMessage) then { - _requestMessage = format [localize _requestMessage, [_caller] call FUNC(getName)]; + _requestMessage = format [localize _requestMessage, [_caller, false, true] call FUNC(getName)]; } else { - _requestMessage = format [_requestMessage, [_caller] call FUNC(getName)]; + _requestMessage = format [_requestMessage, [_caller, false, true] call FUNC(getName)]; }; hint format ["%1", _requestMessage]; // @todo ? diff --git a/addons/common/functions/fnc_sanitizeString.sqf b/addons/common/functions/fnc_sanitizeString.sqf index 749b36ded7..2450ba5be5 100644 --- a/addons/common/functions/fnc_sanitizeString.sqf +++ b/addons/common/functions/fnc_sanitizeString.sqf @@ -25,14 +25,14 @@ _array = []; switch _x do { case 60 : { // less than symbol: `<` if (_removeTags) then { - _array append toArray "["; + _array append toArray "<"; } else { _array pushBack _x; }; }; case 62 : { // greater than symbol: `>` if (_removeTags) then { - _array append toArray "]"; + _array append toArray ">"; } else { _array pushBack _x; }; diff --git a/addons/common/functions/fnc_setName.sqf b/addons/common/functions/fnc_setName.sqf index 117445b561..b9ecbdc3a6 100644 --- a/addons/common/functions/fnc_setName.sqf +++ b/addons/common/functions/fnc_setName.sqf @@ -17,9 +17,15 @@ params ["_unit"]; if (isNull _unit || {!alive _unit}) exitWith {}; if (_unit isKindOf "CAManBase") then { - _name = [name _unit, true] call FUNC(sanitizeString); - + private _sanitizedName = [name _unit, true] call FUNC(sanitizeString); + private _rawName = [name _unit, false] call FUNC(sanitizeString); + + //Debug Testing Code (with html tags): + // private _sanitizedName = ["Name", true] call FUNC(sanitizeString); + // private _rawName = ["Name", false] call FUNC(sanitizeString); + //if (_name != _unit getVariable ["ACE_Name", ""]) then { - _unit setVariable ["ACE_Name", _name, true]; + _unit setVariable ["ACE_Name", _sanitizedName, true]; + _unit setVariable ["ACE_NameRaw", _rawName, true]; //}; }; diff --git a/addons/disarming/functions/fnc_openDisarmDialog.sqf b/addons/disarming/functions/fnc_openDisarmDialog.sqf index c2a3a6396e..213aa85c61 100644 --- a/addons/disarming/functions/fnc_openDisarmDialog.sqf +++ b/addons/disarming/functions/fnc_openDisarmDialog.sqf @@ -72,7 +72,7 @@ GVAR(disarmTarget) = _target; _icon = format [DEFUALTPATH, toLower (rank _target)]; if (_icon isEqualTo DEFUALTPATH) then {_icon = ""}; _rankPicture ctrlSetText _icon; - _playerName ctrlSetText ([GVAR(disarmTarget)] call EFUNC(common,getName)); + _playerName ctrlSetText ([GVAR(disarmTarget), false, true] call EFUNC(common,getName)); //Clear both inventory lists: lbClear _groundContainer; diff --git a/addons/finger/functions/fnc_incomingFinger.sqf b/addons/finger/functions/fnc_incomingFinger.sqf index 5a1e23a278..02c870a519 100644 --- a/addons/finger/functions/fnc_incomingFinger.sqf +++ b/addons/finger/functions/fnc_incomingFinger.sqf @@ -27,7 +27,7 @@ _fingerPos = if (_sourceUnit == ACE_player) then { _fingerPosPrecise vectorAdd [random (2*FP_RANDOMIZATION_X) - FP_RANDOMIZATION_X, random (2*FP_RANDOMIZATION_X) - FP_RANDOMIZATION_X, random (2*FP_RANDOMIZATION_Y) - FP_RANDOMIZATION_Y] }; -_data = [ACE_diagTime, _fingerPos, ([_sourceUnit] call EFUNC(common,getName))]; +_data = [ACE_diagTime, _fingerPos, ([_sourceUnit, false, true] call EFUNC(common,getName))]; HASH_SET(GVAR(fingersHash), _sourceUnit, _data); if (GVAR(pfeh_id) == -1) then { diff --git a/addons/medical/functions/fnc_actionCheckBloodPressureLocal.sqf b/addons/medical/functions/fnc_actionCheckBloodPressureLocal.sqf index 24b5bf4c6e..0fd9394f92 100644 --- a/addons/medical/functions/fnc_actionCheckBloodPressureLocal.sqf +++ b/addons/medical/functions/fnc_actionCheckBloodPressureLocal.sqf @@ -60,6 +60,6 @@ if (_selectionName in ["hand_l","hand_r"] && {[_unit, _selectionName] call FUNC( ["displayTextStructured", [_caller], [[_output, [_target] call EFUNC(common,getName), round(_bloodPressureHigh),round(_bloodPressureLow)], 1.75, _caller]] call EFUNC(common,targetEvent); if (_logOutPut != "") then { - [_target,"activity", LSTRING(Check_Bloodpressure_Log), [[_caller] call EFUNC(common,getName), _logOutPut]] call FUNC(addToLog); - [_target,"quick_view", LSTRING(Check_Bloodpressure_Log), [[_caller] call EFUNC(common,getName), _logOutPut]] call FUNC(addToLog); + [_target,"activity", LSTRING(Check_Bloodpressure_Log), [[_caller, false, true] call EFUNC(common,getName), _logOutPut]] call FUNC(addToLog); + [_target,"quick_view", LSTRING(Check_Bloodpressure_Log), [[_caller, false, true] call EFUNC(common,getName), _logOutPut]] call FUNC(addToLog); }; diff --git a/addons/medical/functions/fnc_actionCheckResponse.sqf b/addons/medical/functions/fnc_actionCheckResponse.sqf index 6910545a9d..d69fa90c86 100644 --- a/addons/medical/functions/fnc_actionCheckResponse.sqf +++ b/addons/medical/functions/fnc_actionCheckResponse.sqf @@ -21,5 +21,5 @@ _output = [LSTRING(Check_Response_Unresponsive), LSTRING(Check_Response_Responsi ["displayTextStructured", [_caller], [[_output, [_target] call EFUNC(common,getName)], 2, _caller]] call EFUNC(common,targetEvent); -[_target,"activity",_output, [[_target] call EFUNC(common,getName)]] call FUNC(addToLog); -[_target,"quick_view",_output, [[_target] call EFUNC(common,getName)]] call FUNC(addToLog); +[_target,"activity",_output, [[_target, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); +[_target,"quick_view",_output, [[_target, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); diff --git a/addons/medical/functions/fnc_treatmentAdvanced_CPRLocal.sqf b/addons/medical/functions/fnc_treatmentAdvanced_CPRLocal.sqf index 9024489a3b..b787376166 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_CPRLocal.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_CPRLocal.sqf @@ -30,7 +30,7 @@ if (GVAR(level) > 1 && {(random 1) >= 0.6}) then { _target setvariable [QGVAR(bloodPressure), [50,70]]; }; -[_target, "activity", LSTRING(Activity_CPR), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); -[_target, "activity_view", LSTRING(Activity_CPR), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message +[_target, "activity", LSTRING(Activity_CPR), [[_caller, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); +[_target, "activity_view", LSTRING(Activity_CPR), [[_caller, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message true; diff --git a/addons/medical/functions/fnc_treatmentAdvanced_bandage.sqf b/addons/medical/functions/fnc_treatmentAdvanced_bandage.sqf index cf18475866..2bb237cc34 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_bandage.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_bandage.sqf @@ -19,8 +19,8 @@ #include "script_component.hpp" params ["_caller", "_target", "_selectionName", "_className", "_items", "", ["_specificSpot", -1]]; -[_target, "activity", LSTRING(Activity_bandagedPatient), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); -[_target, "activity_view", LSTRING(Activity_bandagedPatient), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message +[_target, "activity", LSTRING(Activity_bandagedPatient), [[_caller, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); +[_target, "activity_view", LSTRING(Activity_bandagedPatient), [[_caller, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message if !([_target] call FUNC(hasMedicalEnabled)) exitwith { _this call FUNC(treatmentBasic_bandage); diff --git a/addons/medical/functions/fnc_treatmentAdvanced_fullHealLocal.sqf b/addons/medical/functions/fnc_treatmentAdvanced_fullHealLocal.sqf index ed5eb0858d..853f071195 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_fullHealLocal.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_fullHealLocal.sqf @@ -68,6 +68,6 @@ if (alive _target) exitwith { // Resetting damage _target setDamage 0; - [_target, "activity", LSTRING(Activity_fullHeal), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); - [_target, "activity_view", LSTRING(Activity_fullHeal), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message + [_target, "activity", LSTRING(Activity_fullHeal), [[_caller, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); + [_target, "activity_view", LSTRING(Activity_fullHeal), [[_caller, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message }; diff --git a/addons/medical/functions/fnc_treatmentAdvanced_medication.sqf b/addons/medical/functions/fnc_treatmentAdvanced_medication.sqf index b5b0af1401..5cd64a75b6 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_medication.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_medication.sqf @@ -24,8 +24,8 @@ params ["_caller", "_target", "_selectionName", "_className", "_items"]; { if (_x != "") then { [_target, _x] call FUNC(addToTriageCard); - [_target, "activity", LSTRING(Activity_usedItem), [[_caller] call EFUNC(common,getName), getText (configFile >> "CfgWeapons" >> _x >> "displayName")]] call FUNC(addToLog); - [_target, "activity_view", LSTRING(Activity_usedItem), [[_caller] call EFUNC(common,getName), getText (configFile >> "CfgWeapons" >> _x >> "displayName")]] call FUNC(addToLog); + [_target, "activity", LSTRING(Activity_usedItem), [[_caller, false, true] call EFUNC(common,getName), getText (configFile >> "CfgWeapons" >> _x >> "displayName")]] call FUNC(addToLog); + [_target, "activity_view", LSTRING(Activity_usedItem), [[_caller, false, true] call EFUNC(common,getName), getText (configFile >> "CfgWeapons" >> _x >> "displayName")]] call FUNC(addToLog); }; } foreach _items; diff --git a/addons/medical/functions/fnc_treatmentIV.sqf b/addons/medical/functions/fnc_treatmentIV.sqf index 2a7bbc6adf..e0225d243d 100644 --- a/addons/medical/functions/fnc_treatmentIV.sqf +++ b/addons/medical/functions/fnc_treatmentIV.sqf @@ -24,7 +24,7 @@ if (count _items == 0) exitwith {false}; _removeItem = _items select 0; [[_target, _className], QUOTE(DFUNC(treatmentIVLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ [_target, _removeItem] call FUNC(addToTriageCard); -[_target, "activity", LSTRING(Activity_gaveIV), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); -[_target, "activity_view", LSTRING(Activity_gaveIV), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message +[_target, "activity", LSTRING(Activity_gaveIV), [[_caller, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); +[_target, "activity_view", LSTRING(Activity_gaveIV), [[_caller, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message true diff --git a/addons/medical/functions/fnc_treatmentTourniquet.sqf b/addons/medical/functions/fnc_treatmentTourniquet.sqf index 5d3ba6e1d4..3a4dd5b50a 100644 --- a/addons/medical/functions/fnc_treatmentTourniquet.sqf +++ b/addons/medical/functions/fnc_treatmentTourniquet.sqf @@ -43,8 +43,8 @@ _removeItem = _items select 0; [[_target, _removeItem, _selectionName], QUOTE(DFUNC(treatmentTourniquetLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ [_target, _removeItem] call FUNC(addToTriageCard); -[_target, "activity", LSTRING(Activity_appliedTourniquet), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); -[_target, "activity_view", LSTRING(Activity_appliedTourniquet), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message +[_target, "activity", LSTRING(Activity_appliedTourniquet), [[_caller, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); +[_target, "activity_view", LSTRING(Activity_appliedTourniquet), [[_caller, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message true diff --git a/addons/movement/XEH_postInit.sqf b/addons/movement/XEH_postInit.sqf index ebe97e879d..80953b9969 100644 --- a/addons/movement/XEH_postInit.sqf +++ b/addons/movement/XEH_postInit.sqf @@ -14,7 +14,7 @@ if (!hasInterface) exitWith {}; [_this select 1] call CBA_fnc_removePerFrameHandler; }; - _dialog displayCtrl 111 ctrlSetText format ["%1 - %2 %3", [ACE_player] call EFUNC(common,getName), localize LSTRING(Weight), [ACE_player] call FUNC(getWeight)]; + _dialog displayCtrl 111 ctrlSetText format ["%1 - %2 %3", [ACE_player, false, true] call EFUNC(common,getName), localize LSTRING(Weight), [ACE_player] call FUNC(getWeight)]; }, 0, _this select 0] call CBA_fnc_addPerFrameHandler; diff --git a/addons/nametags/functions/fnc_drawNameTagIcon.sqf b/addons/nametags/functions/fnc_drawNameTagIcon.sqf index 8294a8db06..ac28a427d5 100644 --- a/addons/nametags/functions/fnc_drawNameTagIcon.sqf +++ b/addons/nametags/functions/fnc_drawNameTagIcon.sqf @@ -44,7 +44,7 @@ if (_alpha < 0) exitWith {}; //Don't waste time if not visable //Set Text: _name = if (_iconType in [ICON_NAME, ICON_NAME_RANK, ICON_NAME_SPEAK]) then { - [_target, true] call EFUNC(common,getName) + [_target, true, true] call EFUNC(common,getName) } else { "" }; diff --git a/addons/respawn/functions/fnc_showFriendlyFireMessage.sqf b/addons/respawn/functions/fnc_showFriendlyFireMessage.sqf index 1c5a7b7cc2..1079ef6e6d 100644 --- a/addons/respawn/functions/fnc_showFriendlyFireMessage.sqf +++ b/addons/respawn/functions/fnc_showFriendlyFireMessage.sqf @@ -19,7 +19,7 @@ params ["_unit", "_killer"]; if (_unit != _killer && {side group _unit in [side group ACE_player, civilian]} && {side group _killer == side group ACE_player}) then { - systemChat format ["%1 was killed by %2", [_unit] call EFUNC(common,getName), [_killer] call EFUNC(common,getName)]; + systemChat format ["%1 was killed by %2", [_unit, false, true] call EFUNC(common,getName), [_killer, false, true] call EFUNC(common,getName)]; // Raise ACE globalEvent ["killedByFriendly", [_unit, _killer]] call EFUNC(common,globalEvent); From 24d77d1b7c45b9831f24df5e9c196bda226197cf Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 11 Dec 2015 12:17:05 -0600 Subject: [PATCH 20/75] Fix Typo --- addons/common/functions/fnc_getName.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_getName.sqf b/addons/common/functions/fnc_getName.sqf index 8857fb306b..4c49e8dc11 100644 --- a/addons/common/functions/fnc_getName.sqf +++ b/addons/common/functions/fnc_getName.sqf @@ -5,7 +5,7 @@ * Arguments: * 0: Object * 1: Use effective commander name when used on vehicles (default: false) - * 1: Get Raw Name (Don't sanatize HTML tags ``) (default: false) + * 2: Get Raw Name (Don't sanatize HTML tags ``) (default: false) * * Return Value: * Object Name From a501c7e1c31bb0b167d5c5ad6f4e26ff3fc29fa5 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 11 Dec 2015 19:47:40 -0600 Subject: [PATCH 21/75] Remove new models and just combine existing litter --- addons/medical/ACE_Medical_Treatments.hpp | 10 ++++++---- addons/medical/CfgVehicles.hpp | 6 ------ .../data/littergeneric_QuikclotBloody.p3d | Bin 33228 -> 0 bytes .../data/littergeneric_packingbandageBloody.p3d | Bin 36146 -> 0 bytes 4 files changed, 6 insertions(+), 10 deletions(-) delete mode 100644 addons/medical/data/littergeneric_QuikclotBloody.p3d delete mode 100644 addons/medical/data/littergeneric_packingbandageBloody.p3d diff --git a/addons/medical/ACE_Medical_Treatments.hpp b/addons/medical/ACE_Medical_Treatments.hpp index 8e9815ac1f..51fb4ca701 100644 --- a/addons/medical/ACE_Medical_Treatments.hpp +++ b/addons/medical/ACE_Medical_Treatments.hpp @@ -175,8 +175,9 @@ class ACE_Medical_Actions { displayName = CSTRING(Actions_PackingBandage); items[] = {"ACE_packingBandage"}; litter[] = { - {"All", "_bloodLossOnSelection > 0", {"ACE_MedicalLitter_packingBandageBloody"}}, - {"All", "_bloodLossOnSelection <= 0", {"ACE_MedicalLitter_packingBandage"}} + {"All", "", {"ACE_MedicalLitter_packingBandage"}}, + {"All", "_bloodLossOnSelection > 0", {{"ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, + {"All", "_bloodLossOnSelection <= 0", {"ACE_MedicalLitter_clean"}} }; }; class ElasticBandage: fieldDressing { @@ -187,8 +188,9 @@ class ACE_Medical_Actions { displayName = CSTRING(Actions_QuikClot); items[] = {"ACE_quikclot"}; litter[] = { - {"All", "_bloodLossOnSelection > 0", {"ACE_MedicalLitter_QuickClotBloody"}}, - {"All", "_bloodLossOnSelection <= 0", {"ACE_MedicalLitter_QuickClot"}} + {"All", "", {"ACE_MedicalLitter_QuickClot"}}, + {"All", "_bloodLossOnSelection > 0", {{"ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, + {"All", "_bloodLossOnSelection <= 0", {"ACE_MedicalLitter_clean"}} }; }; class Tourniquet: fieldDressing { diff --git a/addons/medical/CfgVehicles.hpp b/addons/medical/CfgVehicles.hpp index a2d3c451d6..ba7d413364 100644 --- a/addons/medical/CfgVehicles.hpp +++ b/addons/medical/CfgVehicles.hpp @@ -651,9 +651,6 @@ class CfgVehicles { class ACE_MedicalLitter_packingBandage: ACE_MedicalLitterBase { model = QUOTE(PATHTOF(data\littergeneric_packingBandage.p3d)); }; - class ACE_MedicalLitter_packingBandageBloody: ACE_MedicalLitterBase { - model = QUOTE(PATHTOF(data\littergeneric_packingbandageBloody.p3d)); - }; class ACE_MedicalLitter_gloves: ACE_MedicalLitterBase { model = QUOTE(PATHTOF(data\littergeneric_gloves.p3d)); }; @@ -669,9 +666,6 @@ class CfgVehicles { class ACE_MedicalLitter_QuickClot: ACE_MedicalLitterBase { model = QUOTE(PATHTOF(data\littergeneric_Quikclot.p3d)); }; - class ACE_MedicalLitter_QuickClotBloody: ACE_MedicalLitterBase { - model = QUOTE(PATHTOF(data\littergeneric_QuikclotBloody.p3d)); - }; class Item_Base_F; class ACE_fieldDressingItem: Item_Base_F { scope = 2; diff --git a/addons/medical/data/littergeneric_QuikclotBloody.p3d b/addons/medical/data/littergeneric_QuikclotBloody.p3d deleted file mode 100644 index 6a684719f0e46560598105a30b34269a0af6af0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33228 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 diff --git a/addons/medical/data/littergeneric_packingbandageBloody.p3d b/addons/medical/data/littergeneric_packingbandageBloody.p3d deleted file mode 100644 index f79e83b51215af518002828017c002575f8eea01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36146 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 Date: Sat, 12 Dec 2015 18:21:11 +0100 Subject: [PATCH 22/75] add event for placing units in body bags --- addons/medical/functions/fnc_actionPlaceInBodyBag.sqf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/medical/functions/fnc_actionPlaceInBodyBag.sqf b/addons/medical/functions/fnc_actionPlaceInBodyBag.sqf index f416535701..bf8bc0289f 100644 --- a/addons/medical/functions/fnc_actionPlaceInBodyBag.sqf +++ b/addons/medical/functions/fnc_actionPlaceInBodyBag.sqf @@ -28,10 +28,12 @@ _spinePos = _target modelToWorldVisual (_target selectionPosition "Spine3"); _dirVect = _headPos vectorFromTo _spinePos; _direction = _dirVect call CBA_fnc_vectDir; -deleteVehicle _target; - _bodyBag = createVehicle ["ACE_bodyBagObject", _position, [], 0, "CAN_COLLIDE"]; +["placedInBodyBag", [_target, _bodyBag]] call EFUNC(common,globalEvent); + +deleteVehicle _target; + // prevent body bag from flipping _bodyBag setPosASL _position; _bodyBag setDir _direction; From bd3c79f739eaa83b7febbf25c236f14c3e80e00b Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 12 Dec 2015 20:25:42 +0100 Subject: [PATCH 23/75] add function to retrieve the control of the stamina bar --- addons/common/RscInfoType.hpp | 4 ++++ addons/common/XEH_preInit.sqf | 1 + .../common/functions/fnc_getStaminaBarControl.sqf | 15 +++++++++++++++ addons/main/script_macros.hpp | 2 ++ 4 files changed, 22 insertions(+) create mode 100644 addons/common/functions/fnc_getStaminaBarControl.sqf diff --git a/addons/common/RscInfoType.hpp b/addons/common/RscInfoType.hpp index 258bf51ec9..4d94f8ae2c 100644 --- a/addons/common/RscInfoType.hpp +++ b/addons/common/RscInfoType.hpp @@ -107,6 +107,10 @@ class RscInGameUI { class RscOptics_LaserDesignator_02 { onLoad = QUOTE([ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Any')])] call FUNC(localEvent);); }; + + class RscStaminaBar { + onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscStaminaBar"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2(QUOTE(QGVAR(dlgStaminaBar)),_this select 0)]); + }; }; class RscDisplayInventory { diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf index 3180eacb86..8073b9345b 100644 --- a/addons/common/XEH_preInit.sqf +++ b/addons/common/XEH_preInit.sqf @@ -74,6 +74,7 @@ PREP(getNumberFromMissionSQM); PREP(getNumberMagazinesIn); PREP(getPitchBankYaw); PREP(getSettingData); +PREP(getStaminaBarControl); PREP(getStringFromMissionSQM); PREP(getTargetAzimuthAndInclination); PREP(getTargetDistance); diff --git a/addons/common/functions/fnc_getStaminaBarControl.sqf b/addons/common/functions/fnc_getStaminaBarControl.sqf new file mode 100644 index 0000000000..1fa747fef6 --- /dev/null +++ b/addons/common/functions/fnc_getStaminaBarControl.sqf @@ -0,0 +1,15 @@ +/* + * Author: commy2 + * Returns the control of the Stamina Bar from Arma 1.54. + * + * Arguments: + * None + * + * Return Value: + * Stamina Bar control + * + * Public: No + */ +#include "script_component.hpp" + +(uiNamespace getVariable [QGVAR(dlgStaminaBar), displayNull]) displayCtrl IDC_STAMINA_BAR diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index a65d126110..62d0b33a6c 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -83,6 +83,8 @@ #define ACE_isHC (!hasInterface && !isDedicated) +#define IDC_STAMINA_BAR 193 + //By default CBA's TRACE/LOG/WARNING spawn a buffer, which can cause messages to be logged out of order: #ifdef CBA_DEBUG_SYNCHRONOUS #define CBA_fnc_log { params ["_file","_lineNum","_message"]; diag_log [diag_frameNo, diag_tickTime, time, _file + ":"+str(_lineNum + 1), _message]; } From d159c2738c8084c5b2dede2d2eecf71c99dba4f2 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sun, 13 Dec 2015 14:56:04 +0100 Subject: [PATCH 24/75] Fix travis notifications --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 313b0a11c7..aaa82d0975 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,12 +19,10 @@ env: - secure: KcJQbknBOdC5lA4nFGKPXVRVIGLDXDRzC8XkHuXJCE9pIR/wbxbkvx8fHKcC6SC9eHgzneC3+o4m4+CjIbVvIwDgslRbJ8Y59i90ncONmdoRx1HUYHwuYWVZm9HJFjCsIbrEqhSyyKS+PB3WZVOLbErtNHsgS8f43PTh5Ujg7Vg= notifications: slack: - secure: aWYF/YX7vxEdXJ5w1jhYJQ2TtTP2NRdnXzJDMYXTv2dlXYhO9qp2qjxDGW3dezuPY7B1mPBgebfSKRx3Robkt1rAfEwPWivOiEztL30rwzOy+5Q1wpORv1JkvTC/q2wqQzxQCU/FPVjD2GkF1wtq1Rnx3ESWD8gbvzYoMNdIw1g= + secure: BYITyeesywy33KFWwLmSjs8spIdCWHGpfZBo/StSp7VZC21i1rSM696DKNo7a2gpZ0MzgAppoMDzCZPrvbUgcQwcEIpM3OPFOa6CCTgSGXx88ZAn2U8kFl1ku5jtkR/In9nRKLcfhabnc8nG4u+VnN+q8ULjKFE1kHIb+pfZpXg= on_success: change on_failure: always on_start: never - rooms: - secure: MvxmqL1NGwiGTVv6uIVTM7jeNLQH95KYtTgSWlXaSw4jdjnf4cmrb/ofHQ3FHhhNVdhRN6W8n0cJfTC3DBZ90bionVh+528qw2mDnDbKljVdIwmoFSexBcH7H1uTLF3gsEz0tbrHtLcnAyTMxdjsdIXDLZ5hwxABNmW5/03jOgs= email: on_success: never on_failure: change From f485ae41b1aadb91b21f885e12d959566f1b5034 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sun, 13 Dec 2015 15:39:33 +0100 Subject: [PATCH 25/75] Add travis notification for private slack --- .travis.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index aaa82d0975..51ac2dc41f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,10 +19,8 @@ env: - secure: KcJQbknBOdC5lA4nFGKPXVRVIGLDXDRzC8XkHuXJCE9pIR/wbxbkvx8fHKcC6SC9eHgzneC3+o4m4+CjIbVvIwDgslRbJ8Y59i90ncONmdoRx1HUYHwuYWVZm9HJFjCsIbrEqhSyyKS+PB3WZVOLbErtNHsgS8f43PTh5Ujg7Vg= notifications: slack: - secure: BYITyeesywy33KFWwLmSjs8spIdCWHGpfZBo/StSp7VZC21i1rSM696DKNo7a2gpZ0MzgAppoMDzCZPrvbUgcQwcEIpM3OPFOa6CCTgSGXx88ZAn2U8kFl1ku5jtkR/In9nRKLcfhabnc8nG4u+VnN+q8ULjKFE1kHIb+pfZpXg= - on_success: change - on_failure: always - on_start: never + - secure: byZMNBl8PMlgjT9NA1WmhgCdGfX4b3g1kA0vEiwfm+IFNlx7BiM4J/5rp6zV/jV470xl/epAejx2tsa5SdTyFbO87NH63ILJSt5QnjUZjRuGKSutFs9WE671DtZkPRSJXHS4N6x802PRkyBz/84/lsc34FWvHvjwOuYAtOcJRFk= + - secure: V22TNaLWV+yUNWqR7c6HVvIxkRDz7Dyz9xqa43FY8iFgvNL4Q/X69h5DYHU/ILNFM00tx8OBjtPRbcjWQ+F6eY8Sje/A2axJAU+qNurAvoyiTahXUprdUUpPdkgXWuSRTZ9kALxOq5e11RC8XUietghoMcl8zPcqdrZCOOKgoEM= email: on_success: never on_failure: change From c689cbfdfed5ffe1b50b92eaf20356b4d6cb3eb5 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sun, 13 Dec 2015 15:41:37 +0100 Subject: [PATCH 26/75] Add release branch to travis --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 51ac2dc41f..a975d36fde 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ branches: only: - master + - release language: python python: - '3.4' From 9064579a654959ae82cd119ee75bc7b738b202ee Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 13 Dec 2015 13:27:46 -0600 Subject: [PATCH 27/75] Send string to serverLog instead of strucText Fix `Performance warning: SimpleSerialization::Read 'ace_common_remoteFnc' is using type of ,'TEXT' which is not optimized by simple serialization, falling back to generic serialization, use generic type or ask for optimizations for these types` --- addons/common/functions/fnc_serverLog.sqf | 11 ++++++++--- addons/maptools/functions/fnc_handleMouseButton.sqf | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/addons/common/functions/fnc_serverLog.sqf b/addons/common/functions/fnc_serverLog.sqf index 45ab03891c..2525f81c95 100644 --- a/addons/common/functions/fnc_serverLog.sqf +++ b/addons/common/functions/fnc_serverLog.sqf @@ -1,19 +1,24 @@ /* * Author: esteldunedain - * ? + * Log a RPT messaged on just the server * * Arguments: - * ? + * 0: Text to display * * Return Value: * None * + * Example: + * ["x happened"] call ace_common_fnc_serverLog; + * * Public: no */ #include "script_component.hpp" +params [["_msg", "", [""]]]; + if (isServer) then { - diag_log _this; + diag_log text _msg; } else { [_this, QFUNC(serverLog), 1] call FUNC(execRemoteFnc); }; diff --git a/addons/maptools/functions/fnc_handleMouseButton.sqf b/addons/maptools/functions/fnc_handleMouseButton.sqf index 19869ee3ce..cb1a4598ad 100644 --- a/addons/maptools/functions/fnc_handleMouseButton.sqf +++ b/addons/maptools/functions/fnc_handleMouseButton.sqf @@ -44,7 +44,7 @@ if (_dir != 1) then { deleteMarkerLocal (GVAR(drawing_tempLineMarker) select 0); ["drawing_addLineMarker", GVAR(drawing_tempLineMarker)] call EFUNC(common,globalEvent); // Log who drew on the briefing screen - (text format ["[ACE] Server: Player %1 drew on the briefing screen", profileName]) call EFUNC(common,serverLog); + [ACE_INFOFORMAT_1("Player %1 drew on the briefing screen", profileName)] call EFUNC(common,serverLog); } else { GVAR(drawing_tempLineMarker) call FUNC(updateLineMarker); GVAR(drawing_lineMarkers) pushBack (+GVAR(drawing_tempLineMarker)); From ef1d7f4fdbd897d925781658e3c4b8bae2789738 Mon Sep 17 00:00:00 2001 From: Thomas Kooi Date: Mon, 14 Dec 2015 12:42:37 +0100 Subject: [PATCH 28/75] Change Travis notifications on success disabled We only need to know if a build failed, since that is when action needs to be taken --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index a975d36fde..bc21183674 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,6 +22,7 @@ notifications: slack: - secure: byZMNBl8PMlgjT9NA1WmhgCdGfX4b3g1kA0vEiwfm+IFNlx7BiM4J/5rp6zV/jV470xl/epAejx2tsa5SdTyFbO87NH63ILJSt5QnjUZjRuGKSutFs9WE671DtZkPRSJXHS4N6x802PRkyBz/84/lsc34FWvHvjwOuYAtOcJRFk= - secure: V22TNaLWV+yUNWqR7c6HVvIxkRDz7Dyz9xqa43FY8iFgvNL4Q/X69h5DYHU/ILNFM00tx8OBjtPRbcjWQ+F6eY8Sje/A2axJAU+qNurAvoyiTahXUprdUUpPdkgXWuSRTZ9kALxOq5e11RC8XUietghoMcl8zPcqdrZCOOKgoEM= + on_success: never email: on_success: never on_failure: change From c911fcdafcd44f557f2a6afe8484640381fc951b Mon Sep 17 00:00:00 2001 From: Thomas Kooi Date: Mon, 14 Dec 2015 14:08:50 +0100 Subject: [PATCH 29/75] Fix travis configuration Travis yml was using invalid notification configuration for slack. --- .travis.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index bc21183674..1d2a49e2e6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ branches: only: - - master - - release + - master + - release language: python python: - '3.4' @@ -20,9 +20,10 @@ env: - secure: KcJQbknBOdC5lA4nFGKPXVRVIGLDXDRzC8XkHuXJCE9pIR/wbxbkvx8fHKcC6SC9eHgzneC3+o4m4+CjIbVvIwDgslRbJ8Y59i90ncONmdoRx1HUYHwuYWVZm9HJFjCsIbrEqhSyyKS+PB3WZVOLbErtNHsgS8f43PTh5Ujg7Vg= notifications: slack: - - secure: byZMNBl8PMlgjT9NA1WmhgCdGfX4b3g1kA0vEiwfm+IFNlx7BiM4J/5rp6zV/jV470xl/epAejx2tsa5SdTyFbO87NH63ILJSt5QnjUZjRuGKSutFs9WE671DtZkPRSJXHS4N6x802PRkyBz/84/lsc34FWvHvjwOuYAtOcJRFk= - - secure: V22TNaLWV+yUNWqR7c6HVvIxkRDz7Dyz9xqa43FY8iFgvNL4Q/X69h5DYHU/ILNFM00tx8OBjtPRbcjWQ+F6eY8Sje/A2axJAU+qNurAvoyiTahXUprdUUpPdkgXWuSRTZ9kALxOq5e11RC8XUietghoMcl8zPcqdrZCOOKgoEM= - on_success: never + rooms: + - secure: byZMNBl8PMlgjT9NA1WmhgCdGfX4b3g1kA0vEiwfm+IFNlx7BiM4J/5rp6zV/jV470xl/epAejx2tsa5SdTyFbO87NH63ILJSt5QnjUZjRuGKSutFs9WE671DtZkPRSJXHS4N6x802PRkyBz/84/lsc34FWvHvjwOuYAtOcJRFk= + - secure: V22TNaLWV+yUNWqR7c6HVvIxkRDz7Dyz9xqa43FY8iFgvNL4Q/X69h5DYHU/ILNFM00tx8OBjtPRbcjWQ+F6eY8Sje/A2axJAU+qNurAvoyiTahXUprdUUpPdkgXWuSRTZ9kALxOq5e11RC8XUietghoMcl8zPcqdrZCOOKgoEM= + on_success: change email: on_success: never on_failure: change From f2bcd66784a95027f46d0f84d926b904325c1a0c Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 14 Dec 2015 19:28:31 -0600 Subject: [PATCH 30/75] Toolkit also consumed on fullRepair --- addons/repair/ACE_Repair.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/repair/ACE_Repair.hpp b/addons/repair/ACE_Repair.hpp index 9aa8fe7b22..d47773cd83 100644 --- a/addons/repair/ACE_Repair.hpp +++ b/addons/repair/ACE_Repair.hpp @@ -74,7 +74,7 @@ class ACE_Repair { repairingTime = 30; condition = "damage _target > 0"; callbackSuccess = QUOTE(call FUNC(doFullRepair)); - itemConsumed = 0; + itemConsumed = QGVAR(consumeItem_ToolKit); }; }; }; From ff3ddbe287d29dd1e076cae46a8649b2500bc6d6 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 15 Dec 2015 12:04:03 -0600 Subject: [PATCH 31/75] Building Interact - Dummy object instead of hiding Fix #3038 InteractiMenu now checks `isObjectHidden`, So now use dummy object instead of hiding a real one --- .../functions/fnc_userActions_addHouseActions.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/interact_menu/functions/fnc_userActions_addHouseActions.sqf b/addons/interact_menu/functions/fnc_userActions_addHouseActions.sqf index fdd7d14573..98abfdccd1 100644 --- a/addons/interact_menu/functions/fnc_userActions_addHouseActions.sqf +++ b/addons/interact_menu/functions/fnc_userActions_addHouseActions.sqf @@ -80,11 +80,10 @@ if ((vehicle ACE_player) != ACE_player) exitWith {}; // systemChat format ["Add Actions for [%1] (count %2) @ %3", _typeOfHouse, (count _memPoints), diag_tickTime]; { _helperPos = (_houseBeingScaned modelToWorld (_houseBeingScaned selectionPosition _x)) call EFUNC(common,positionToASL); - _helperObject = "Sign_Sphere25cm_F" createVehicleLocal _helperPos; + _helperObject = "ACE_LogicDummy" createVehicleLocal _helperPos; _addedHelpers pushBack _helperObject; _helperObject setVariable [QGVAR(building), _houseBeingScaned]; _helperObject setPosASL _helperPos; - _helperObject hideObject true; TRACE_3("Making New Helper",_helperObject,_x,_houseBeingScaned); { From d7fbd656875836c880e6648ea1914776aee1ea1a Mon Sep 17 00:00:00 2001 From: Fadi Date: Tue, 15 Dec 2015 18:58:57 -0600 Subject: [PATCH 32/75] Disabling ACE FCS in RHS USF Compat for M113 family --- optionals/compat_rhs_usf3/CfgVehicles.hpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/optionals/compat_rhs_usf3/CfgVehicles.hpp b/optionals/compat_rhs_usf3/CfgVehicles.hpp index 3c56b91aa9..da48a4cf96 100644 --- a/optionals/compat_rhs_usf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_usf3/CfgVehicles.hpp @@ -12,7 +12,6 @@ class cfgVehicles { }; }; }; - class MBT_01_base_F: Tank_F {}; class rhsusf_m1a1tank_base: MBT_01_base_F { EGVAR(refuel,fuelCapacity) = 1909; @@ -77,8 +76,12 @@ class cfgVehicles { class APC_Tracked_02_base_F; class rhsusf_m113_tank_base : APC_Tracked_02_base_F { EGVAR(refuel,fuelCapacity) = 360; + class Turrets: Turrets { + class MainTurret: MainTurret { + ace_fcs_Enabled = 0; + }; + }; }; - class APC_Tracked_03_base_F; class RHS_M2A2_Base : APC_Tracked_03_base_F { EGVAR(refuel,fuelCapacity) = 746; From 2caabcd00af342f3cf39c76cafb427309f8b7aaa Mon Sep 17 00:00:00 2001 From: Fadi Date: Tue, 15 Dec 2015 18:59:27 -0600 Subject: [PATCH 33/75] Correcting an issue in RHS AFRF Compat with Sprut turret --- optionals/compat_rhs_afrf3/CfgVehicles.hpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/optionals/compat_rhs_afrf3/CfgVehicles.hpp b/optionals/compat_rhs_afrf3/CfgVehicles.hpp index 963913d74d..2e48462135 100644 --- a/optionals/compat_rhs_afrf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_afrf3/CfgVehicles.hpp @@ -104,11 +104,33 @@ class cfgVehicles { }; }; }; + }; + }; + class rhs_bmd4_vdv: rhs_a3spruttank_base { + class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; class GPMGTurret1: NewTurret { ace_fcs_Enabled = 0; }; }; }; + class rhs_bmd4m_vdv: rhs_bmd4_vdv { + class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + class GPMGTurret1: GPMGTurret1 {}; + class GPMGTurret2: GPMGTurret1 { + ace_fcs_Enabled = 0; + }; + }; + }; class rhs_a3t72tank_base: Tank_F { EGVAR(refuel,fuelCapacity) = 1200; class Turrets: Turrets { From 360bdcb50e3060e43d6610372100bbc368d1e69a Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 16 Dec 2015 11:28:43 -0600 Subject: [PATCH 34/75] Optics - Don't modify camera for ThreeDen Editor Fix broken ThreeDen Camera when returning to editor from preview. PIP will still work in preview. Will have to take a look at 1.56 RC to see if command exists and eventually cleanup. --- addons/optics/XEH_postInit.sqf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/addons/optics/XEH_postInit.sqf b/addons/optics/XEH_postInit.sqf index 6214178ac9..6b02a678a8 100644 --- a/addons/optics/XEH_postInit.sqf +++ b/addons/optics/XEH_postInit.sqf @@ -6,6 +6,12 @@ if (!hasInterface) exitWith {}; GVAR(camera) = objNull; 0 = 0 spawn { + // Workarround for the ThreeDen Editor Camera + //ToDo: verify if command will exist in 1.56 release + if (((productVersion select 2) >= 155) && {is3DEN}) exitWith { + ACE_LOGINFO("Eden detected: disabling Optics PIP Camera"); + }; + waituntil {!isNull ACE_player}; waituntil {sleep 1; {_x != GVAR(camera)} count allMissionObjects "camera" == 0 && {isNull curatorCamera}}; From 43a9865fa28842c36fb1e3ec8bc926c2579e5fa6 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 16 Dec 2015 12:10:53 -0600 Subject: [PATCH 35/75] Use isNil for better future compatiblity --- addons/optics/XEH_postInit.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/optics/XEH_postInit.sqf b/addons/optics/XEH_postInit.sqf index 6b02a678a8..c00577e61e 100644 --- a/addons/optics/XEH_postInit.sqf +++ b/addons/optics/XEH_postInit.sqf @@ -7,8 +7,7 @@ GVAR(camera) = objNull; 0 = 0 spawn { // Workarround for the ThreeDen Editor Camera - //ToDo: verify if command will exist in 1.56 release - if (((productVersion select 2) >= 155) && {is3DEN}) exitWith { + if ((!isNil {is3DEN}) && {is3DEN}) exitWith { ACE_LOGINFO("Eden detected: disabling Optics PIP Camera"); }; From 27d683f8e285f5a71636553ecc71411fa28796c5 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 17 Dec 2015 16:27:04 -0600 Subject: [PATCH 36/75] RHS Compat - Add reqAddons, Fix M113 Adds requiredAddons for used units Fixes class rhsusf_m113tank_base --- optionals/compat_rhs_afrf3/config.cpp | 2 +- optionals/compat_rhs_usf3/CfgVehicles.hpp | 2 +- optionals/compat_rhs_usf3/config.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/optionals/compat_rhs_afrf3/config.cpp b/optionals/compat_rhs_afrf3/config.cpp index aa9d6bed95..4840f8da82 100644 --- a/optionals/compat_rhs_afrf3/config.cpp +++ b/optionals/compat_rhs_afrf3/config.cpp @@ -5,7 +5,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"rhs_c_weapons", "rhs_c_troops"}; + requiredAddons[] = {"rhs_c_weapons", "rhs_c_troops", "rhs_c_bmd", "rhs_c_bmp", "rhs_c_bmp3", "rhs_c_a2port_armor", "rhs_c_btr", "rhs_c_sprut", "rhs_c_t72", "rhs_c_tanks", "rhs_c_a2port_air", "rhs_c_a2port_car", "rhs_c_cars", "rhs_c_2s3", "rhs_c_rva"}; author[]={"Ruthberg", "GitHawk"}; VERSION_CONFIG; }; diff --git a/optionals/compat_rhs_usf3/CfgVehicles.hpp b/optionals/compat_rhs_usf3/CfgVehicles.hpp index 6f31ce399c..ef8babc71c 100644 --- a/optionals/compat_rhs_usf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_usf3/CfgVehicles.hpp @@ -88,7 +88,7 @@ class cfgVehicles { }; class APC_Tracked_02_base_F; - class rhsusf_m113_tank_base : APC_Tracked_02_base_F { + class rhsusf_m113tank_base: APC_Tracked_02_base_F { EGVAR(refuel,fuelCapacity) = 360; }; diff --git a/optionals/compat_rhs_usf3/config.cpp b/optionals/compat_rhs_usf3/config.cpp index 59517ed64f..ce847e969e 100644 --- a/optionals/compat_rhs_usf3/config.cpp +++ b/optionals/compat_rhs_usf3/config.cpp @@ -5,7 +5,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"rhsusf_c_weapons", "rhsusf_c_troops"}; + requiredAddons[] = {"rhsusf_c_weapons", "rhsusf_c_troops", "rhsusf_c_m1a1", "rhsusf_c_m1a2", "RHS_US_A2_AirImport", "rhsusf_c_m109", "rhsusf_c_hmmwv", "rhsusf_c_rg33", "rhsusf_c_fmtv", "rhsusf_c_m113", "RHS_US_A2Port_Armor"}; author[]={"Ruthberg", "GitHawk"}; VERSION_CONFIG; }; From e033c56cfc1267c80ece238ab0796f3379957999 Mon Sep 17 00:00:00 2001 From: Ken Date: Thu, 17 Dec 2015 17:04:30 -0600 Subject: [PATCH 37/75] RHS weapons and Frag update The RHS M249 and M240 now have the overheating and change barrel, plus the M4 and M16 branch should have overheating applied to them. The ammo class should have all of the hand grenade fixes in there. --- optionals/compat_rhs_afrf3/CfgAmmo.hpp | 62 ++++++++++++++++++++++++ optionals/compat_rhs_usf3/CfgAmmo.hpp | 45 +++++++++++++++++ optionals/compat_rhs_usf3/CfgWeapons.hpp | 27 +++++++++-- 3 files changed, 130 insertions(+), 4 deletions(-) diff --git a/optionals/compat_rhs_afrf3/CfgAmmo.hpp b/optionals/compat_rhs_afrf3/CfgAmmo.hpp index 41c0f333ce..d38446a290 100644 --- a/optionals/compat_rhs_afrf3/CfgAmmo.hpp +++ b/optionals/compat_rhs_afrf3/CfgAmmo.hpp @@ -126,4 +126,66 @@ class CfgAmmo class rhs_ammo_127x108mm_x5: SubmunitionBase { ACE_rearm_caliber=13; }; + + class GrenadeHand; + class rhs_ammo_rgd5: GrenadeHand { + ace_frag_enabled = 1; + ace_frag_metal = 200; + ace_frag_charge = 110; + ace_frag_gurney_c = 2440; + ace_frag_gurney_k = "3/5"; + ace_frag_classes[] = {"ACE_frag_small_HD"}; + ace_frag_skip = 0; + ace_frag_force = 1; + }; + class rhs_ammo_rgn_base: rhs_ammo_rgd5 { + ace_frag_enabled = 1; + ace_frag_metal = 193; + ace_frag_charge = 97; + ace_frag_gurney_c = 2800; + ace_frag_gurney_k = "3/5"; + ace_frag_classes[] = {"ACE_frag_tiny_HD"}; + ace_frag_skip = 0; + ace_frag_force = 1; + }; + class rhs_ammo_rgn: rhs_ammo_rgn_base { + ace_frag_enabled = 0; + ace_frag_skip = 1; + ace_frag_force = 0; + }; + class rhs_ammo_rgn_sub: rhs_ammo_rgn_base {}; + class rhs_ammo_rgn_exp: rhs_ammo_rgn_base {}; + class rhs_ammo_fakel: GrenadeHand { + ace_frag_enabled = 0; + ace_frag_skip = 1; + ace_frag_force = 0; + }; + class rhs_ammo_fakels: rhs_ammo_fakel {}; + class rhs_ammo_zarya2: rhs_ammo_fakels {}; + class rhs_ammo_plamyam: rhs_ammo_fakels {}; + + class RocketBase; + class R_PG32V_F: RocketBase {}; + class rhs_rpg26_rocket: R_PG32V_F {}; + class rhs_rpg7v2_pg7vl: rhs_rpg26_rocket {}; + class rhs_rpg7v2_og7v: rhs_rpg7v2_pg7vl { + ace_frag_enabled = 1; + ace_frag_metal = 400; + ace_frag_charge = 210; + ace_frag_gurney_c = 2800; + ace_frag_gurney_k = "3/5"; + ace_frag_classes[] = {"ACE_frag_medium_HD"}; + ace_frag_skip = 0; + ace_frag_force = 1; + }; + class rhs_rpg7v2_tbg7v: rhs_rpg7v2_pg7vl { + ace_frag_enabled = 0; + ace_frag_skip = 1; + ace_frag_force = 0; + }; + class rhs_rshg2_rocket: rhs_rpg7v2_tbg7v { + ace_frag_enabled = 0; + ace_frag_skip = 1; + ace_frag_force = 0; + }; }; diff --git a/optionals/compat_rhs_usf3/CfgAmmo.hpp b/optionals/compat_rhs_usf3/CfgAmmo.hpp index 0dde3eaf62..b859a520d2 100644 --- a/optionals/compat_rhs_usf3/CfgAmmo.hpp +++ b/optionals/compat_rhs_usf3/CfgAmmo.hpp @@ -93,6 +93,7 @@ class CfgAmmo irLock = 0; laserLock = 0; airLock = 0; + // Begin ACE guidance Configs class ace_missileguidance { @@ -122,4 +123,48 @@ class CfgAmmo attackProfiles[] = { "JAV_TOP", "JAV_DIR" }; }; }; + + class GrenadeHand; + class rhs_ammo_mk3a2: GrenadeHand { + ace_frag_enabled = 0; + ace_frag_skip = 1; + ace_frag_force = 0; + }; + class rhs_ammo_m84: GrenadeHand { + ace_frag_enabled = 0; + ace_frag_skip = 1; + ace_frag_force = 0; + }; + class rhs_ammo_m7a3_cs: GrenadeHand { + ace_frag_enabled = 0; + ace_frag_skip = 1; + ace_frag_force = 0; + }; + class rhs_ammo_m69: GrenadeHand { + ace_frag_enabled = 0; + ace_frag_skip = 1; + ace_frag_force = 0; + }; + class rhs_ammo_m67: GrenadeHand { + ace_frag_enabled = 1; + ace_frag_metal = 213; + ace_frag_charge = 185; + ace_frag_gurney_c = 2700; + ace_frag_gurney_k = "3/5"; + ace_frag_classes[] = {"ACE_frag_medium_HD"}; + ace_frag_skip = 0; + ace_frag_force = 1; + }; + class RocketBase; + class rhs_ammo_M136_rocket: RocketBase {}; + class rhs_ammo_M136_hedp_rocket: rhs_ammo_M136_rocket { + ace_frag_enabled = 1; + ace_frag_metal = 330; + ace_frag_charge = 280; + ace_frag_gurney_c = 2800; + ace_frag_gurney_k = "3/5"; + ace_frag_classes[] = {"ACE_frag_medium_HD"}; + ace_frag_skip = 0; + ace_frag_force = 1; + }; }; diff --git a/optionals/compat_rhs_usf3/CfgWeapons.hpp b/optionals/compat_rhs_usf3/CfgWeapons.hpp index e059a4f71c..54bba9a0cd 100644 --- a/optionals/compat_rhs_usf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_usf3/CfgWeapons.hpp @@ -15,6 +15,9 @@ class CfgWeapons class rhs_weap_m4_Base: arifle_MX_Base_F { ACE_barrelTwist=177.8; ACE_barrelLength=368.3; + ACE_Overheating_Dispersion[] = {0, 0.001, 0.002, 0.004}; + ACE_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + ACE_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; class M203_GL : UGL_F { magazines[] = { "rhs_mag_M441_HE", @@ -112,15 +115,31 @@ class CfgWeapons class rhs_weap_mk18: rhs_weap_m4a1 { ACE_barrelTwist=177.8; ACE_barrelLength=261.62; + ACE_Overheating_Dispersion[] = {0, 0.001, 0.002, 0.004}; + ACE_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + ACE_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; }; class rhs_weap_m16a4: rhs_weap_m4_Base { - ACE_barrelTwist=177.8; - ACE_barrelLength=508.0; + ACE_barrelTwist = 177.8; + ACE_barrelLength = 508.0; }; + class rhs_weap_lmg_minimipara; + class rhs_weap_lmg_minimi_railed : rhs_weap_lmg_minimipara { + ACE_barrelLength = 465.0; + ACE_barrelTwist = 177.8; + ACE_Overheating_allowSwapBarrel = 1; + ACE_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.003}; + ACE_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + ACE_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; class rhs_weap_m240_base; class rhs_weap_m240B: rhs_weap_m240_base { - ACE_barrelTwist=304.8; - ACE_barrelLength=629.92; + ACE_barrelTwist = 304.8; + ACE_barrelLength = 629.92; + ACE_Overheating_allowSwapBarrel = 1; + ACE_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.003}; + ACE_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + ACE_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; }; class rhs_weap_m14ebrri: srifle_EBR_F { ACE_barrelTwist=304.8; From e3ecc647719cb6ca807dd2e4c9bc8c28b082966d Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 18 Dec 2015 13:53:25 +0100 Subject: [PATCH 38/75] remove undefined macro --- addons/laser_selfdesignate/XEH_post_init.sqf | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/laser_selfdesignate/XEH_post_init.sqf b/addons/laser_selfdesignate/XEH_post_init.sqf index 6904ee6c47..dc30361926 100644 --- a/addons/laser_selfdesignate/XEH_post_init.sqf +++ b/addons/laser_selfdesignate/XEH_post_init.sqf @@ -1,3 +1,2 @@ #include "script_component.hpp" -NO_DEDICATED; From fce245ad76ff3ced26d8b3401d48f5dc26b7e807 Mon Sep 17 00:00:00 2001 From: VKing Date: Fri, 18 Dec 2015 16:23:07 +0100 Subject: [PATCH 39/75] Remove SMAW Spotting Rifle backblast --- optionals/compat_rhs_afrf3/CfgAmmo.hpp | 32 +++++++-------------- optionals/compat_rhs_afrf3/CfgMagazines.hpp | 10 ++++++- optionals/compat_rhs_afrf3/config.cpp | 2 +- 3 files changed, 21 insertions(+), 23 deletions(-) diff --git a/optionals/compat_rhs_afrf3/CfgAmmo.hpp b/optionals/compat_rhs_afrf3/CfgAmmo.hpp index 41c0f333ce..f919728619 100644 --- a/optionals/compat_rhs_afrf3/CfgAmmo.hpp +++ b/optionals/compat_rhs_afrf3/CfgAmmo.hpp @@ -1,10 +1,8 @@ -class CfgAmmo -{ +class CfgAmmo { class BulletBase; class B_556x45_Ball; - class rhs_B_545x39_Ball: B_556x45_Ball - { + class rhs_B_545x39_Ball: B_556x45_Ball { ACE_caliber=5.588; ACE_bulletLength=21.59; ACE_bulletMass=3.42792; @@ -12,12 +10,11 @@ class CfgAmmo ACE_ballisticCoefficients[]={0.168}; ACE_velocityBoundaries[]={}; ACE_standardAtmosphere="ASM"; - ACE_dragModel=7; + ACE_dragModel=7;- ACE_muzzleVelocities[]={780, 880, 920}; ACE_barrelLengths[]={254.0, 414.02, 508.0}; }; - class rhs_B_545x39_Ball_Tracer_Green: rhs_B_545x39_Ball - { + class rhs_B_545x39_Ball_Tracer_Green: rhs_B_545x39_Ball { ACE_caliber=5.588; ACE_bulletLength=21.59; ACE_bulletMass=3.22704; @@ -30,8 +27,7 @@ class CfgAmmo ACE_barrelLengths[]={254.0, 414.02, 508.0}; }; class B_762x51_Ball; - class rhs_B_762x54_Ball: B_762x51_Ball - { + class rhs_B_762x54_Ball: B_762x51_Ball { ACE_caliber=7.925; ACE_bulletLength=28.956; ACE_bulletMass=9.8496; @@ -43,8 +39,7 @@ class CfgAmmo ACE_muzzleVelocities[]={700, 800, 820, 833}; ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4}; }; - class rhs_B_762x54_Ball_Tracer_Green: B_762x51_Ball - { + class rhs_B_762x54_Ball_Tracer_Green: B_762x51_Ball { ACE_caliber=7.925; ACE_bulletLength=28.956; ACE_bulletMass=9.6552; @@ -56,8 +51,7 @@ class CfgAmmo ACE_muzzleVelocities[]={680, 750, 798, 800}; ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4}; }; - class rhs_B_762x54_7N1_Ball: rhs_B_762x54_Ball - { + class rhs_B_762x54_7N1_Ball: rhs_B_762x54_Ball { ACE_caliber=7.925; ACE_bulletLength=28.956; ACE_bulletMass=9.8496; @@ -69,8 +63,7 @@ class CfgAmmo ACE_muzzleVelocities[]={700, 800, 820, 833}; ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4}; }; - class rhs_B_762x39_Ball: B_762x51_Ball - { + class rhs_B_762x39_Ball: B_762x51_Ball { ACE_caliber=7.823; ACE_bulletLength=28.956; ACE_bulletMass=7.9704; @@ -82,8 +75,7 @@ class CfgAmmo ACE_muzzleVelocities[]={650, 716, 750}; ACE_barrelLengths[]={254.0, 414.02, 508.0}; }; - class rhs_B_762x39_Tracer: rhs_B_762x39_Ball - { + class rhs_B_762x39_Tracer: rhs_B_762x39_Ball { ACE_caliber=7.823; ACE_bulletLength=28.956; ACE_bulletMass=7.5816; @@ -96,8 +88,7 @@ class CfgAmmo ACE_barrelLengths[]={254.0, 414.02, 508.0}; }; class B_9x21_Ball; - class rhs_B_9x19_7N21: B_9x21_Ball - { + class rhs_B_9x19_7N21: B_9x21_Ball { ACE_caliber=9.017; ACE_bulletLength=15.494; ACE_bulletMass=5.19696; @@ -109,8 +100,7 @@ class CfgAmmo ACE_muzzleVelocities[]={445, 460, 480}; ACE_barrelLengths[]={101.6, 127.0, 228.6}; }; - class rhs_B_9x18_57N181S: B_9x21_Ball - { + class rhs_B_9x18_57N181S: B_9x21_Ball { ACE_caliber=9.271; ACE_bulletLength=15.494; ACE_bulletMass=6.00048; diff --git a/optionals/compat_rhs_afrf3/CfgMagazines.hpp b/optionals/compat_rhs_afrf3/CfgMagazines.hpp index 92444a380b..a7b3832e54 100644 --- a/optionals/compat_rhs_afrf3/CfgMagazines.hpp +++ b/optionals/compat_rhs_afrf3/CfgMagazines.hpp @@ -14,4 +14,12 @@ class cfgMagazines { class rhs_mag_127x108mm_1470 : rhs_mag_127x108mm_50 { ace_isbelt = 0; }; -}; \ No newline at end of file + + class CA_LauncherMagazine; + class rhs_mag_smaw_SR: CA_LauncherMagazine { + EGVAR(overpressure,priority) = 99; + EGVAR(overpressure,angle) = 0; + EGVAR(overpressure,range) = 0; + EGVAR(overpressure,damage) = 0; + }; +}; diff --git a/optionals/compat_rhs_afrf3/config.cpp b/optionals/compat_rhs_afrf3/config.cpp index 4840f8da82..a41d67db48 100644 --- a/optionals/compat_rhs_afrf3/config.cpp +++ b/optionals/compat_rhs_afrf3/config.cpp @@ -5,7 +5,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"rhs_c_weapons", "rhs_c_troops", "rhs_c_bmd", "rhs_c_bmp", "rhs_c_bmp3", "rhs_c_a2port_armor", "rhs_c_btr", "rhs_c_sprut", "rhs_c_t72", "rhs_c_tanks", "rhs_c_a2port_air", "rhs_c_a2port_car", "rhs_c_cars", "rhs_c_2s3", "rhs_c_rva"}; + requiredAddons[] = {"rhs_c_weapons", "rhs_c_troops", "rhs_c_bmd", "rhs_c_bmp", "rhs_c_bmp3", "rhs_c_a2port_armor", "rhs_c_btr", "rhs_c_sprut", "rhs_c_t72", "rhs_c_tanks", "rhs_c_a2port_air", "rhs_c_a2port_car", "rhs_c_cars", "rhs_c_2s3", "rhs_c_rva","rhsusf_c_weapons"}; author[]={"Ruthberg", "GitHawk"}; VERSION_CONFIG; }; From d36988852d0719583f92b72a3dc99e548cbe2a6f Mon Sep 17 00:00:00 2001 From: VKing Date: Fri, 18 Dec 2015 16:31:01 +0100 Subject: [PATCH 40/75] Oops bollocks --- optionals/compat_rhs_afrf3/CfgAmmo.hpp | 2 +- optionals/compat_rhs_afrf3/CfgMagazines.hpp | 8 -------- optionals/compat_rhs_afrf3/config.cpp | 2 +- optionals/compat_rhs_usf3/CfgMagazines.hpp | 10 +++++++++- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/optionals/compat_rhs_afrf3/CfgAmmo.hpp b/optionals/compat_rhs_afrf3/CfgAmmo.hpp index f919728619..9dcdeaec93 100644 --- a/optionals/compat_rhs_afrf3/CfgAmmo.hpp +++ b/optionals/compat_rhs_afrf3/CfgAmmo.hpp @@ -10,7 +10,7 @@ class CfgAmmo { ACE_ballisticCoefficients[]={0.168}; ACE_velocityBoundaries[]={}; ACE_standardAtmosphere="ASM"; - ACE_dragModel=7;- + ACE_dragModel=7; ACE_muzzleVelocities[]={780, 880, 920}; ACE_barrelLengths[]={254.0, 414.02, 508.0}; }; diff --git a/optionals/compat_rhs_afrf3/CfgMagazines.hpp b/optionals/compat_rhs_afrf3/CfgMagazines.hpp index a7b3832e54..fcf9841019 100644 --- a/optionals/compat_rhs_afrf3/CfgMagazines.hpp +++ b/optionals/compat_rhs_afrf3/CfgMagazines.hpp @@ -14,12 +14,4 @@ class cfgMagazines { class rhs_mag_127x108mm_1470 : rhs_mag_127x108mm_50 { ace_isbelt = 0; }; - - class CA_LauncherMagazine; - class rhs_mag_smaw_SR: CA_LauncherMagazine { - EGVAR(overpressure,priority) = 99; - EGVAR(overpressure,angle) = 0; - EGVAR(overpressure,range) = 0; - EGVAR(overpressure,damage) = 0; - }; }; diff --git a/optionals/compat_rhs_afrf3/config.cpp b/optionals/compat_rhs_afrf3/config.cpp index a41d67db48..4840f8da82 100644 --- a/optionals/compat_rhs_afrf3/config.cpp +++ b/optionals/compat_rhs_afrf3/config.cpp @@ -5,7 +5,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"rhs_c_weapons", "rhs_c_troops", "rhs_c_bmd", "rhs_c_bmp", "rhs_c_bmp3", "rhs_c_a2port_armor", "rhs_c_btr", "rhs_c_sprut", "rhs_c_t72", "rhs_c_tanks", "rhs_c_a2port_air", "rhs_c_a2port_car", "rhs_c_cars", "rhs_c_2s3", "rhs_c_rva","rhsusf_c_weapons"}; + requiredAddons[] = {"rhs_c_weapons", "rhs_c_troops", "rhs_c_bmd", "rhs_c_bmp", "rhs_c_bmp3", "rhs_c_a2port_armor", "rhs_c_btr", "rhs_c_sprut", "rhs_c_t72", "rhs_c_tanks", "rhs_c_a2port_air", "rhs_c_a2port_car", "rhs_c_cars", "rhs_c_2s3", "rhs_c_rva"}; author[]={"Ruthberg", "GitHawk"}; VERSION_CONFIG; }; diff --git a/optionals/compat_rhs_usf3/CfgMagazines.hpp b/optionals/compat_rhs_usf3/CfgMagazines.hpp index e067d1f293..2818478d83 100644 --- a/optionals/compat_rhs_usf3/CfgMagazines.hpp +++ b/optionals/compat_rhs_usf3/CfgMagazines.hpp @@ -19,4 +19,12 @@ class cfgMagazines { class RHS_48Rnd_40mm_MK19: VehicleMagazine { ace_isbelt = 1; }; -}; \ No newline at end of file + + class CA_LauncherMagazine; + class rhs_mag_smaw_SR: CA_LauncherMagazine { + EGVAR(overpressure,priority) = 99; + EGVAR(overpressure,angle) = 0; + EGVAR(overpressure,range) = 0; + EGVAR(overpressure,damage) = 0; + }; +}; From db7074b6cf662dc245c938e6dbb4efbbc9a2f1c9 Mon Sep 17 00:00:00 2001 From: Jonathan Pereira Date: Fri, 18 Dec 2015 14:45:20 -0200 Subject: [PATCH 41/75] Removed duplicated German entry --- addons/common/stringtable.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index 6d935f27a5..111300e87c 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -705,7 +705,6 @@ Nicht erzwingen Nie wymuszaj No forzar - Nicht erzwingen Nevynucovat Não forçar Не обязывать From c53a0541a46e61df271cc54c17f7b8ceb958b4ab Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 18 Dec 2015 11:08:10 -0600 Subject: [PATCH 42/75] Add support for non local Zeus RC in common-isPlayer --- addons/common/XEH_postInit.sqf | 17 +++++++++++++++++ addons/common/functions/fnc_isPlayer.sqf | 7 +++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index ce75ad5187..ac12fdc894 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -57,6 +57,23 @@ // Eventhandlers ////////////////////////////////////////////////// +//Add a fix for BIS's zeus remoteControl module not reseting variables on DC when RC a unit +//This variable is used for isPlayer checks +if (isServer) then { + addMissionEventHandler ["HandleDisconnect", { + params ["_dcPlayer"]; + private _zeusLogic = getAssignedCuratorLogic _dcPlayer; + if ((!isNil "_zeusLogic") && {!isNull _zeusLogic}) then { + { + if ((_x getvariable ["bis_fnc_moduleRemoteControl_owner", objnull]) isEqualTo _dcPlayer) exitWith { + ACE_LOGINFO_3("[%1] DC - Was Zeus [%2] while controlling unit [%3] - manually clearing `bis_fnc_moduleRemoteControl_owner`", [_x] call FUNC(getName), _dcPlayer, _x); + _x setVariable ["bis_fnc_moduleRemoteControl_owner", nil, true]; + }; + } count (curatorEditableObjects _zeusLogic); + }; + }]; +}; + // Listens for global "SettingChanged" events, to update the force status locally ["SettingChanged", { params ["_name", "_value", "_force"]; diff --git a/addons/common/functions/fnc_isPlayer.sqf b/addons/common/functions/fnc_isPlayer.sqf index 8bea7e9771..fe265bd925 100644 --- a/addons/common/functions/fnc_isPlayer.sqf +++ b/addons/common/functions/fnc_isPlayer.sqf @@ -1,7 +1,7 @@ /* * Author: bux578, commy2, akalegman * Checks if a unit is a player / curator controlled unit. - * Currently returns false for non-local remote controlled zeus units. (Remotes from another zeus machine) + * This now includes both local and non-local remote controlled zeus units. (Remotes from another zeus machine) * * Arguments: * 0: unit to be checked @@ -10,10 +10,13 @@ * Return Value: * Is unit a player? * + * Example: + * [cursorTarget, false] call ace_common_fnc_isPlayer; + * * Public: Yes */ #include "script_component.hpp" params ["_unit", ["_excludeRemoteControlled", false]]; -isPlayer _unit || (!_excludeRemoteControlled && {_unit == call FUNC(player)}) // return +(isPlayer _unit) || {(!_excludeRemoteControlled) && {!isNull (_unit getVariable ["bis_fnc_moduleRemoteControl_owner", objNull])}} From ad48f51ec7e0f76247b21f38bef38d9e1ec8b355 Mon Sep 17 00:00:00 2001 From: Jonathan Pereira Date: Fri, 18 Dec 2015 15:14:19 -0200 Subject: [PATCH 43/75] Added PT-BR translations All remaining translations of gestures, hearing, interact_menu, interaction, nightvision, rearm, refuel, viewdistance were done! --- addons/gestures/stringtable.xml | 7 +++++++ addons/hearing/stringtable.xml | 2 ++ addons/interact_menu/stringtable.xml | 2 ++ addons/interaction/stringtable.xml | 5 +++++ addons/nightvision/stringtable.xml | 6 +++++- addons/rearm/stringtable.xml | 29 ++++++++++++++++++++++++++ addons/refuel/stringtable.xml | 31 ++++++++++++++++++++++++++++ addons/viewdistance/stringtable.xml | 5 +++-- 8 files changed, 84 insertions(+), 3 deletions(-) diff --git a/addons/gestures/stringtable.xml b/addons/gestures/stringtable.xml index cc9b776cd1..c1e63bfce4 100644 --- a/addons/gestures/stringtable.xml +++ b/addons/gestures/stringtable.xml @@ -115,6 +115,7 @@ Stop Stop Stop + Parar @@ -135,6 +136,7 @@ Regroupement Sammeln Zbiórka + Reagrupar @@ -142,12 +144,14 @@ En avant Vorwärts Bewegen Naprzód + Mover em frente Engage Engager Atak + Engajar @@ -155,6 +159,7 @@ Pointer Zeigen Wskaż + Ponta @@ -162,6 +167,7 @@ Tenir Anhalten Wstrzymać + Esperar @@ -169,6 +175,7 @@ Attention Achtung Uwaga + Aviso Hi diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index 14517b54ce..c3b014e7c7 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -172,10 +172,12 @@ Add earplugs to units Dodaj stopery dla jednostek + Adiciona protetores de ouvido as unidades Add the `ACE_EarPlugs` item to all units that have loud weapons. Can disable if using custom loadouts. Dodaje `ACE_EarPlugs` - stopery - do wszystkich jednostek, które posiadają głośną broń. Można wyłaczyć w przypadku korzystania z niestandardowych loadoutów. + Adicionar o item `ACE_EarPlugs` a todas as unidades que tenham armas barulhentas. Pode ser desabilitado com carregamentos customizados. \ No newline at end of file diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 424426f653..16f00609ca 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -302,10 +302,12 @@ Interaction Animation Speed Szybkość animacji interakcji + Velocidade da animação de interação Makes menu animations faster and decreases the time needed to hover to show sub actions Przyśpiesza animacje menu interakcji oraz czas wymagany do pokazania podmenu + Faz com que as animações do menu de interação sejam mais rápidas, dimiuindo a necessidade de esperar para mostrar as ações \ No newline at end of file diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index b84a987a9c..5f658264cf 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -695,26 +695,31 @@ Pass magazine Magazin geben Podaj magazynek + Passar carregador Primary magazine Gewehrmagazin Magazynek karabinowy + Carregador primário Pistol magazine Pistolenmagazin Magazynek pistoletowy + Carregador da pistola %1 passed you a %2 magazine. %1 hat dir ein %2 Magazin gegeben. %1 podał Ci magazynek %2. + %1 passou a você um carregador %2. Show "pass magazine" interaction Zeige "Magazine geben" Interaktion Pokaż interakcję "podaj magazynek" + Mostrar a interação "Passar carregador" \ No newline at end of file diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index b6e35147f9..dab72ee025 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -136,18 +136,22 @@ Nightvision Nachtsicht + Visão Noturna Settings for night vision. Einstellungen für Nachtsichtgeräte. + Ajustes para visão noturna. Disable NVGs in scope Deakt. NVGs mit Visier + Desabilitar visão noturna nas lunetas Blocks the usage of night vision goggles whilst aiming down the sight. Blockiert das Benutzen von Nachtsichtbrillen beim Benutzen des Visiers. + Bloqueia o uso de visão noturna ao utilizar a mira. - + \ No newline at end of file diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index da36dc4410..160ecf0b33 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -5,85 +5,102 @@ Rearm Settings Aufmunitioniereinstellungen Ustawienia przezbrajania + Ajustes de rearme This module allows you to tweak rearm system settings. Ten moduł pozwala dostosować ustawienia przezbrajania. + Este módulo permite que você ajuste o sistema de rearme. Rearm Amount Aufmunitioniermenge Szybkość przezbrajania + Quantidade de rearme How fast should a vehicle be rearmed? Wie schnell soll ein Fahrzeug aufmunitioniert werden? Jak szybko pojazd zostanie przezbrojony? + Quão rápido o veículo deve ser rearmado? Entire Vehicle Gesamtes Fahrzeug Cały pojazd + Todo o veículo Entire Magazine Gesamtes Magazin Cały magazynek + Todo o carregador Amount based on caliber Kaliberbasierte Anzahl Ilość zależna od kalibru + Quantidade baseada no calibre Rearm Aufmunitionieren Przezbrój + Rearmar Rearming %1 with %2 ... Munitioniere %1 auf mit %2 ... Przezbrajanie %1 przy pomocy %2 ... + Rearmando %1 com %2 ... Rearming %1 ... Munitioniere %1 auf ... Przezbrajanie %1 ... + Rearmando %1 ... Taking %1 for %2 ... Nehme %1 für %2 ... Pobieranie %1 dla %2 ... + Pegando %1 para %2 ... Take ammo Munition nehmen Pobierz amunicję + Tomar munição Pick up ammo Munition aufnehmen Podnieś amunicję + Pegar munição Store ammo Munition verstauen Przechowaj amunicję + Guardar munição Storing %1 in %2 ... Verstaue %1 in %2 ... Przechowywanie %1 w %2 ... + Guardando %1 em %2 ... Picking up ammo ... Nehme Munition ... Podnoszenie amunicji ... + Pegando munição ... Rearmed %1 rounds of %2 on %3 %1 Schuss %2 an %3 aufmunitioniert Przezbrojono %1 pocisków %2 na %3 + Rearmando %1 cartuchos de %2 em %3 Smoke Screen @@ -111,61 +128,73 @@ 30mm HEI 30mm HEI 30mm HEI + 30mm HEI 30mm HEI-T 30mm HEI-T 30mm HEI-T + 30mm HEI-T AIM-9 Sidewinder AIM-9 Sidewinder AIM-9 Sidewinder + AIM-9 Sidewinder Wympel R-73 Wympel R-73 Wympel R-73 + Wympel R-73 AGM-65 Maverick AGM-65 Maverick AGM-65 Maverick + AGM-65 Maverick Kh-25MTP Kh-25MTP Ch-25MTP + Ch-25MTP Hydra 70 HE Hydra 70 HE Hydra 70 HE + Hydra 70 HE S-8 HE S-8 HE S-8 HE + S-8 HE Hydra 70 AP Hydra 70 AP Hydra 70 AP + Hydra 70 AP S-8 AP S-8 AP S-8 AP + S-8 AP GBU-12 GBU-12 GBU-12 + GBU-12 FAB-250M-54 FAB-250M-54 FAB-250M-54 + FAB-250M-54 \ No newline at end of file diff --git a/addons/refuel/stringtable.xml b/addons/refuel/stringtable.xml index 908fad6d91..cef904ef39 100644 --- a/addons/refuel/stringtable.xml +++ b/addons/refuel/stringtable.xml @@ -5,156 +5,187 @@ Refuel Settings Betankungseinst. Ustawienia tankowania + Ajustes de reabastecimento Flow Rate Fließrate Szybkość przepływu + Velocidade da vazão How fast should a vehicle be refueled? Wie schnell soll ein Fahrzeug aufgetankt sein? Jak szybko pojazd powinien zostać zatankowany? + Quão rápido deve ser o veículo reabastecido? Refuel Betankung Zatankuj + Reabastecimento Take fuel nozzle Zapfpistole nehmen Weź nalewak + Pegar o bocal de combustível Taking fuel nozzle ... Nehme Zapfpistole ... Pobieranie nalewaka ... + Pegando o bocal de combustível... Connect fuel nozzle Zapfpistole anschließen Podłącz nalewak + Conectar o bocal de combustível Connecting fuel nozzle ... Zapfpistole anschließen ... Podłączanie nalewaka ... + Conectando o bocal de combustível... Disconnect fuel nozzle Zapfpistole entfernen Odepnij nalewak + Desconectar o bocal de combustível Connect Anschließen Podłącz + Conectar Check remaining fuel Verbleibenden Kraftstoff überprüfen Sprawdź ilość paliwa + Verificar combustível restante Checking remaining fuel ... Überprüfe verbleibenden Kraftstoff ... Sprawdzanie ilości paliwa ... + Verificando combustível restante... There are %1 liters left. Es sind noch %1 Liter übrig. Zostało %1 litrów. + Há %1 litros restantes. There is no fuel left. Es ist kein Kraftstoff übrig. W zbiorniku nie ma paliwa. + Não há combustível Cancel Abbrechen Anuluj + Cancelar Failed Gescheitert Porażka + Falhou Stop fueling Betankung stoppen Zatrzymaj tankowanie + Parar reabastecimento Stopping fueling ... Stoppe Betankung ... Zatrzymywanie tankowania ... + Parando reabastecimento... Start fueling Betankung beginnen Rozpocznij tankowanie + Começar reabastecimento Starting fueling ... Beginne Betankung ... Rozpoczynanie tankowania ... + Começando reabastecimento... %1 Liters fueled %1 Liters getankt Zatankowano %1 litrów + %1 litros abastecidos The fuel source is empty. Die Treibstoffquelle ist leer. Źródło paliwa jest puste. + A fonte de combustível está vazia. Maximum fuel hose length reached. Maximale Schlauchlänge erreicht. Osiągnięto maksymalną długość przewodu paliwowego. + Distância máxima da mangueira de combustível alcançada. Fueling completed Betankung abgeschlossen Tankowanie ukończone + Reabastecimento completo Fueling stopped Betankung angehalten Tankowanie zatrzymane + Reabastecimento parado Fueling started Betankung begonnen Tankowanie rozpoczęte + Reabastecimento iniciado Return fuel nozzle Zapfpistole zurückstecken Zwróć nalewak + Retornar bocal de combustível Returning fuel nozzle ... Stecke Zapfpistole zurück ... Zwracanie nalewaka ... + Retornando bocal de combustível... Check fuel counter Tankuhr ansehen Sprawdź wskaźnik paliwa + Verificar contador de combustível Checking fuel counter ... Betrachte Tankuhr ... Sprawdzanie wskaźnika paliwa ... + Verificando contador de combustível... %1 liters have been fueled. %1 Liter wurden getankt. %1 litrów zostało zatankowane. + %1 litros foram abastecidos. \ No newline at end of file diff --git a/addons/viewdistance/stringtable.xml b/addons/viewdistance/stringtable.xml index 9d92c58332..0513fea2f9 100644 --- a/addons/viewdistance/stringtable.xml +++ b/addons/viewdistance/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -234,6 +234,7 @@ FoV Based + Baseado em FoV View Distance: @@ -280,4 +281,4 @@ Видео настройки - + \ No newline at end of file From 74aec459212cc50047cd92ad42df3a21f6292fb1 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 19 Dec 2015 20:50:57 -0600 Subject: [PATCH 44/75] Fix medical menu not closing on range, litter dir - Medical Menu didn't close when target moved out of range - Litter was always created in the same direction --- addons/medical/functions/fnc_handleCreateLitter.sqf | 2 +- addons/medical_menu/functions/fnc_onMenuOpen.sqf | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/medical/functions/fnc_handleCreateLitter.sqf b/addons/medical/functions/fnc_handleCreateLitter.sqf index 31e65218c2..f4d22e17b5 100644 --- a/addons/medical/functions/fnc_handleCreateLitter.sqf +++ b/addons/medical/functions/fnc_handleCreateLitter.sqf @@ -16,7 +16,7 @@ if(!hasInterface) exitWith { false }; -params ["_litterClass", "_position", "_unit"]; +params ["_litterClass", "_position", "_direction"]; private["_litterObject", "_maxLitterCount"]; //IGNORE_PRIVATE_WARNING(_values); diff --git a/addons/medical_menu/functions/fnc_onMenuOpen.sqf b/addons/medical_menu/functions/fnc_onMenuOpen.sqf index 2b47312453..b2a6970a78 100644 --- a/addons/medical_menu/functions/fnc_onMenuOpen.sqf +++ b/addons/medical_menu/functions/fnc_onMenuOpen.sqf @@ -77,11 +77,11 @@ GVAR(MenuPFHID) = [{ [GVAR(LatestDisplayOptionMenu)] call FUNC(handleUI_DisplayOptions); //Check that it's valid to stay open: - if !(([ACE_player, _target, ["isNotInside"]] call EFUNC(common,canInteractWith)) && {[ACE_player, _target] call FUNC(canOpenMenu)}) then { + if !(([ACE_player, GVAR(INTERACTION_TARGET), ["isNotInside"]] call EFUNC(common,canInteractWith)) && {[ACE_player, GVAR(INTERACTION_TARGET)] call FUNC(canOpenMenu)}) then { closeDialog 314412; //If we failed because of distance check, show UI message: if ((ACE_player distance GVAR(INTERACTION_TARGET)) > GVAR(maxRange)) then { - ["displayTextStructured", [ACE_player], [[ELSTRING(medical,DistanceToFar), [GVAR(INTERACTION_TARGET)] call EFUNC(common,getName)], 1.75, ACE_player]] call EFUNC(common,targetEvent); + ["displayTextStructured", [[ELSTRING(medical,DistanceToFar), [GVAR(INTERACTION_TARGET)] call EFUNC(common,getName)], 2, ACE_player]] call EFUNC(common,localEvent); }; }; From 9b0641c06f433fdf2a9422933ae01b4442424da6 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 19 Dec 2015 21:17:36 -0600 Subject: [PATCH 45/75] Add nil return for count --- addons/common/XEH_postInit.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index ac12fdc894..498db54e43 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -69,6 +69,7 @@ if (isServer) then { ACE_LOGINFO_3("[%1] DC - Was Zeus [%2] while controlling unit [%3] - manually clearing `bis_fnc_moduleRemoteControl_owner`", [_x] call FUNC(getName), _dcPlayer, _x); _x setVariable ["bis_fnc_moduleRemoteControl_owner", nil, true]; }; + nil } count (curatorEditableObjects _zeusLogic); }; }]; From a383da5b2dc075ab5433353f7c55fb23dfc92b68 Mon Sep 17 00:00:00 2001 From: freghar Date: Sun, 20 Dec 2015 11:53:08 +0100 Subject: [PATCH 46/75] fix inverted isTurnedOut for map lighting According to the comment, the idea is to provide unobscured map when inside an enclosed vehicle (!isTurnedOut). Signed-off-by: freghar --- addons/map/functions/fnc_determineMapLight.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/map/functions/fnc_determineMapLight.sqf b/addons/map/functions/fnc_determineMapLight.sqf index d023573cd9..9712b84515 100644 --- a/addons/map/functions/fnc_determineMapLight.sqf +++ b/addons/map/functions/fnc_determineMapLight.sqf @@ -73,7 +73,7 @@ _vehicle = vehicle _unit; // Do not obscure the map if the player is on a enclosed vehicle (assume internal illumination) if (_vehicle != _unit) then { // Player is in a vehicle - if (isTurnedOut _unit && { _vehicle isKindOf "Tank" || { ( _vehicle isKindOf "Helicopter" || _vehicle isKindOf "Plane" ) && { (driver _vehicle) == _unit || { (gunner _vehicle) == _unit } } } || {_vehicle isKindOf "Wheeled_APC"}}) then { + if (!isTurnedOut _unit && { _vehicle isKindOf "Tank" || { ( _vehicle isKindOf "Helicopter" || _vehicle isKindOf "Plane" ) && { (driver _vehicle) == _unit || { (gunner _vehicle) == _unit } } } || {_vehicle isKindOf "Wheeled_APC"}}) then { _isEnclosed = true; }; }; From 543f13c7546fd0aab29b751e7c0d6ab811c4f878 Mon Sep 17 00:00:00 2001 From: Ken Date: Sun, 20 Dec 2015 14:37:14 -0600 Subject: [PATCH 47/75] More Fixes --- optionals/compat_rhs_afrf3/CfgAmmo.hpp | 34 ++++------- optionals/compat_rhs_afrf3/CfgWeapons.hpp | 73 ++++++++++------------- optionals/compat_rhs_usf3/CfgAmmo.hpp | 1 - optionals/compat_rhs_usf3/CfgWeapons.hpp | 44 +++++++------- 4 files changed, 65 insertions(+), 87 deletions(-) diff --git a/optionals/compat_rhs_afrf3/CfgAmmo.hpp b/optionals/compat_rhs_afrf3/CfgAmmo.hpp index d38446a290..2444da41cf 100644 --- a/optionals/compat_rhs_afrf3/CfgAmmo.hpp +++ b/optionals/compat_rhs_afrf3/CfgAmmo.hpp @@ -1,10 +1,8 @@ -class CfgAmmo -{ +class CfgAmmo { class BulletBase; class B_556x45_Ball; - class rhs_B_545x39_Ball: B_556x45_Ball - { + class rhs_B_545x39_Ball: B_556x45_Ball { ACE_caliber=5.588; ACE_bulletLength=21.59; ACE_bulletMass=3.42792; @@ -16,8 +14,7 @@ class CfgAmmo ACE_muzzleVelocities[]={780, 880, 920}; ACE_barrelLengths[]={254.0, 414.02, 508.0}; }; - class rhs_B_545x39_Ball_Tracer_Green: rhs_B_545x39_Ball - { + class rhs_B_545x39_Ball_Tracer_Green: rhs_B_545x39_Ball { ACE_caliber=5.588; ACE_bulletLength=21.59; ACE_bulletMass=3.22704; @@ -30,8 +27,7 @@ class CfgAmmo ACE_barrelLengths[]={254.0, 414.02, 508.0}; }; class B_762x51_Ball; - class rhs_B_762x54_Ball: B_762x51_Ball - { + class rhs_B_762x54_Ball: B_762x51_Ball { ACE_caliber=7.925; ACE_bulletLength=28.956; ACE_bulletMass=9.8496; @@ -43,8 +39,7 @@ class CfgAmmo ACE_muzzleVelocities[]={700, 800, 820, 833}; ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4}; }; - class rhs_B_762x54_Ball_Tracer_Green: B_762x51_Ball - { + class rhs_B_762x54_Ball_Tracer_Green: B_762x51_Ball { ACE_caliber=7.925; ACE_bulletLength=28.956; ACE_bulletMass=9.6552; @@ -56,8 +51,7 @@ class CfgAmmo ACE_muzzleVelocities[]={680, 750, 798, 800}; ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4}; }; - class rhs_B_762x54_7N1_Ball: rhs_B_762x54_Ball - { + class rhs_B_762x54_7N1_Ball: rhs_B_762x54_Ball { ACE_caliber=7.925; ACE_bulletLength=28.956; ACE_bulletMass=9.8496; @@ -69,8 +63,7 @@ class CfgAmmo ACE_muzzleVelocities[]={700, 800, 820, 833}; ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4}; }; - class rhs_B_762x39_Ball: B_762x51_Ball - { + class rhs_B_762x39_Ball: B_762x51_Ball { ACE_caliber=7.823; ACE_bulletLength=28.956; ACE_bulletMass=7.9704; @@ -82,8 +75,7 @@ class CfgAmmo ACE_muzzleVelocities[]={650, 716, 750}; ACE_barrelLengths[]={254.0, 414.02, 508.0}; }; - class rhs_B_762x39_Tracer: rhs_B_762x39_Ball - { + class rhs_B_762x39_Tracer: rhs_B_762x39_Ball { ACE_caliber=7.823; ACE_bulletLength=28.956; ACE_bulletMass=7.5816; @@ -96,8 +88,7 @@ class CfgAmmo ACE_barrelLengths[]={254.0, 414.02, 508.0}; }; class B_9x21_Ball; - class rhs_B_9x19_7N21: B_9x21_Ball - { + class rhs_B_9x19_7N21: B_9x21_Ball { ACE_caliber=9.017; ACE_bulletLength=15.494; ACE_bulletMass=5.19696; @@ -109,8 +100,7 @@ class CfgAmmo ACE_muzzleVelocities[]={445, 460, 480}; ACE_barrelLengths[]={101.6, 127.0, 228.6}; }; - class rhs_B_9x18_57N181S: B_9x21_Ball - { + class rhs_B_9x18_57N181S: B_9x21_Ball { ACE_caliber=9.271; ACE_bulletLength=15.494; ACE_bulletMass=6.00048; @@ -129,7 +119,7 @@ class CfgAmmo class GrenadeHand; class rhs_ammo_rgd5: GrenadeHand { - ace_frag_enabled = 1; + ace_frag_enabled = 1; ace_frag_metal = 200; ace_frag_charge = 110; ace_frag_gurney_c = 2440; @@ -139,7 +129,7 @@ class CfgAmmo ace_frag_force = 1; }; class rhs_ammo_rgn_base: rhs_ammo_rgd5 { - ace_frag_enabled = 1; + ace_frag_enabled = 1; ace_frag_metal = 193; ace_frag_charge = 97; ace_frag_gurney_c = 2800; diff --git a/optionals/compat_rhs_afrf3/CfgWeapons.hpp b/optionals/compat_rhs_afrf3/CfgWeapons.hpp index 0c3d3dfac4..32c1f590c5 100644 --- a/optionals/compat_rhs_afrf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_afrf3/CfgWeapons.hpp @@ -1,61 +1,50 @@ -class CfgWeapons -{ +class CfgWeapons { class hgun_Rook40_F; - class rhs_weap_pya: hgun_Rook40_F - { - ACE_barrelTwist=254.0; - ACE_barrelLength=111.76; + class rhs_weap_pya: hgun_Rook40_F { + ACE_barrelTwist = 254.0; + ACE_barrelLength = 111.76; }; class Pistol_Base_F; - class rhs_weap_makarov_pmm: rhs_weap_pya - { - ACE_barrelTwist=240.03; - ACE_barrelLength=93.472; + class rhs_weap_makarov_pmm: rhs_weap_pya { + ACE_barrelTwist = 240.03; + ACE_barrelLength = 93.472; }; class rhs_weap_ak74m_Base_F; - class rhs_weap_ak74m: rhs_weap_ak74m_Base_F - { - ACE_barrelTwist=199.898; - ACE_barrelLength=414.02; + class rhs_weap_ak74m: rhs_weap_ak74m_Base_F { + ACE_barrelTwist = 199.898; + ACE_barrelLength = 414.02; }; - class rhs_weap_akm: rhs_weap_ak74m - { - ACE_barrelTwist=199.898; - ACE_barrelLength=414.02; + class rhs_weap_akm: rhs_weap_ak74m { + ACE_barrelTwist = 199.898; + ACE_barrelLength = 414.02; }; class rhs_weap_aks74; - class rhs_weap_aks74u: rhs_weap_aks74 - { - ACE_barrelTwist=160.02; - ACE_barrelLength=210.82; + class rhs_weap_aks74u: rhs_weap_aks74 { + ACE_barrelTwist = 160.02; + ACE_barrelLength = 210.82; }; - class rhs_weap_svd: rhs_weap_ak74m - { - ACE_barrelTwist=238.76; - ACE_barrelLength=619.76; + class rhs_weap_svd: rhs_weap_ak74m { + ACE_barrelTwist = 238.76; + ACE_barrelLength = 619.76; }; class rhs_weap_svdp; - class rhs_weap_svds: rhs_weap_svdp - { - ACE_barrelTwist=238.76; - ACE_barrelLength=563.88; + class rhs_weap_svds: rhs_weap_svdp { + ACE_barrelTwist = 238.76; + ACE_barrelLength = 563.88; }; class rhs_pkp_base; - class rhs_weap_pkp: rhs_pkp_base - { - ACE_barrelTwist=240.03; - ACE_barrelLength=657.86; + class rhs_weap_pkp: rhs_pkp_base { + ACE_barrelTwist = 240.03; + ACE_barrelLength = 657.86; }; - class rhs_weap_pkm: rhs_weap_pkp - { - ACE_barrelTwist=240.03; - ACE_barrelLength=645.16; + class rhs_weap_pkm: rhs_weap_pkp { + ACE_barrelTwist = 240.03; + ACE_barrelLength = 645.16; }; - class rhs_weap_rpk74m: rhs_weap_pkp - { - ACE_barrelTwist=195.072; - ACE_barrelLength=589.28; + class rhs_weap_rpk74m: rhs_weap_pkp { + ACE_barrelTwist = 195.072; + ACE_barrelLength = 589.28; }; class rhs_acc_sniper_base; diff --git a/optionals/compat_rhs_usf3/CfgAmmo.hpp b/optionals/compat_rhs_usf3/CfgAmmo.hpp index b859a520d2..44c0285e40 100644 --- a/optionals/compat_rhs_usf3/CfgAmmo.hpp +++ b/optionals/compat_rhs_usf3/CfgAmmo.hpp @@ -93,7 +93,6 @@ class CfgAmmo irLock = 0; laserLock = 0; airLock = 0; - // Begin ACE guidance Configs class ace_missileguidance { diff --git a/optionals/compat_rhs_usf3/CfgWeapons.hpp b/optionals/compat_rhs_usf3/CfgWeapons.hpp index 54bba9a0cd..becb91ada1 100644 --- a/optionals/compat_rhs_usf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_usf3/CfgWeapons.hpp @@ -8,13 +8,13 @@ class CfgWeapons class UGL_F; class rhs_weap_XM2010_Base_F: Rifle_Base_F { - ACE_barrelTwist=254.0; - ACE_barrelLength=609.6; + ACE_barrelTwist = 254.0; + ACE_barrelLength = 609.6; }; class arifle_MX_Base_F; class rhs_weap_m4_Base: arifle_MX_Base_F { - ACE_barrelTwist=177.8; - ACE_barrelLength=368.3; + ACE_barrelTwist = 177.8; + ACE_barrelLength = 368.3; ACE_Overheating_Dispersion[] = {0, 0.001, 0.002, 0.004}; ACE_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; ACE_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; @@ -113,8 +113,8 @@ class CfgWeapons }; class rhs_weap_m4a1; class rhs_weap_mk18: rhs_weap_m4a1 { - ACE_barrelTwist=177.8; - ACE_barrelLength=261.62; + ACE_barrelTwist = 177.8; + ACE_barrelLength = 261.62; ACE_Overheating_Dispersion[] = {0, 0.001, 0.002, 0.004}; ACE_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; ACE_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; @@ -127,7 +127,7 @@ class CfgWeapons class rhs_weap_lmg_minimi_railed : rhs_weap_lmg_minimipara { ACE_barrelLength = 465.0; ACE_barrelTwist = 177.8; - ACE_Overheating_allowSwapBarrel = 1; + ACE_Overheating_allowSwapBarrel = 1; ACE_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.003}; ACE_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; ACE_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; @@ -137,37 +137,37 @@ class CfgWeapons ACE_barrelTwist = 304.8; ACE_barrelLength = 629.92; ACE_Overheating_allowSwapBarrel = 1; - ACE_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.003}; + ACE_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.004}; ACE_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; ACE_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; }; class rhs_weap_m14ebrri: srifle_EBR_F { - ACE_barrelTwist=304.8; - ACE_barrelLength=558.8; + ACE_barrelTwist = 304.8; + ACE_barrelLength = 558.8; }; class rhs_weap_sr25: rhs_weap_m14ebrri { - ACE_barrelTwist=285.75; - ACE_barrelLength=609.6; + ACE_barrelTwist = 285.75; + ACE_barrelLength = 609.6; }; class rhs_weap_sr25_ec: rhs_weap_sr25 { - ACE_barrelTwist=285.75; - ACE_barrelLength=508.0; + ACE_barrelTwist = 285.75; + ACE_barrelLength = 508.0; }; class rhs_weap_M590_5RD: Rifle_Base_F { - ACE_barrelTwist=0.0; - ACE_twistDirection=0; - ACE_barrelLength=469.9; + ACE_barrelTwist = 0.0; + ACE_twistDirection = 0; + ACE_barrelLength = 469.9; }; class rhs_weap_M590_8RD: rhs_weap_M590_5RD { - ACE_barrelTwist=0.0; - ACE_twistDirection=0; - ACE_barrelLength=508.0; + ACE_barrelTwist = 0.0; + ACE_twistDirection = 0; + ACE_barrelLength = 508.0; }; class hgun_ACPC2_F; class rhsusf_weap_m1911a1: hgun_ACPC2_F { - ACE_barrelTwist=406.4; - ACE_barrelLength=127.0; + ACE_barrelTwist = 406.4; + ACE_barrelLength = 127.0; }; class rhsusf_acc_sniper_base; From 0addb592d3fc1c24c3b900916276c468c0bed2ca Mon Sep 17 00:00:00 2001 From: jokoho48 Date: Mon, 21 Dec 2015 02:29:10 +0100 Subject: [PATCH 48/75] remove Unused Varaible in AB fix private in AB --- addons/advanced_ballistics/functions/fnc_handleFirePFH.sqf | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/addons/advanced_ballistics/functions/fnc_handleFirePFH.sqf b/addons/advanced_ballistics/functions/fnc_handleFirePFH.sqf index 5874de96c4..fc8dc1b8a2 100644 --- a/addons/advanced_ballistics/functions/fnc_handleFirePFH.sqf +++ b/addons/advanced_ballistics/functions/fnc_handleFirePFH.sqf @@ -12,11 +12,7 @@ */ #include "script_component.hpp" -private "_deleted"; - -_deleted = 0; - -_aceTimeSecond = floor ACE_time; +private _aceTimeSecond = floor ACE_time; { private ["_bulletVelocity", "_bulletPosition", "_bulletSpeed"]; From d9e7a43bf7f22c2ceebd3aa3a421ff9784da1468 Mon Sep 17 00:00:00 2001 From: Githawk Date: Mon, 21 Dec 2015 16:53:25 +0100 Subject: [PATCH 49/75] Fixes error with new interact_menu --- addons/refuel/functions/fnc_makeJerryCan.sqf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/refuel/functions/fnc_makeJerryCan.sqf b/addons/refuel/functions/fnc_makeJerryCan.sqf index 3df209196d..8febaf41f0 100644 --- a/addons/refuel/functions/fnc_makeJerryCan.sqf +++ b/addons/refuel/functions/fnc_makeJerryCan.sqf @@ -85,5 +85,7 @@ _action = [QGVAR(Refuel), [0, 0, 0], REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction); -[_target, 0] call EFUNC(interact_menu,addMainAction); -[_target, 0, ["ACE_MainActions"], [_action, _actions, _target]] call EFUNC(interact_menu,addActionToObject); +[_target, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToObject); +{ + [_target, 0, [QGVAR(Refuel)], _x select 0] call EFUNC(interact_menu,addActionToObject); +} forEach _actions; From c1fa81f28b237e9d42d3600913105c4316f707ab Mon Sep 17 00:00:00 2001 From: Glowbal Date: Mon, 21 Dec 2015 17:05:48 +0100 Subject: [PATCH 50/75] Fix tabs in sqf files --- addons/common/functions/fnc_fixFloating.sqf | 2 +- .../common/functions/fnc_removeBinocularMagazine.sqf | 2 +- addons/concertina_wire/functions/fnc_vehicleDamage.sqf | 6 +++--- addons/dragging/functions/fnc_dropObject.sqf | 4 ++-- .../functions/fnc_ctrlSetParsedTextCached.sqf | 4 ++-- addons/interaction/functions/fnc_joinTeam.sqf | 2 +- addons/medical/functions/fnc_actionDiagnose.sqf | 10 +++++----- addons/movement/functions/fnc_climb.sqf | 8 ++++---- addons/optics/functions/fnc_onDrawScope.sqf | 2 +- addons/safemode/functions/fnc_setSafeModeVisual.sqf | 2 +- addons/spectator/functions/fnc_handleCamera.sqf | 4 ++-- .../viewdistance/functions/fnc_setFovBasedOvdPFH.sqf | 8 ++++---- 12 files changed, 27 insertions(+), 27 deletions(-) diff --git a/addons/common/functions/fnc_fixFloating.sqf b/addons/common/functions/fnc_fixFloating.sqf index 24084d2c11..2eb6f2b4e4 100644 --- a/addons/common/functions/fnc_fixFloating.sqf +++ b/addons/common/functions/fnc_fixFloating.sqf @@ -24,7 +24,7 @@ _hitPointDamages = getAllHitPointsDamage _object; // get correct format for objects without hitpoints if (_hitPointDamages isEqualTo []) then { - _hitPointDamages = [[],[],[]]; + _hitPointDamages = [[],[],[]]; }; // this prevents physx objects from floating when near other physx objects with allowDamage false diff --git a/addons/common/functions/fnc_removeBinocularMagazine.sqf b/addons/common/functions/fnc_removeBinocularMagazine.sqf index 3d2252390a..ee35f28f1b 100644 --- a/addons/common/functions/fnc_removeBinocularMagazine.sqf +++ b/addons/common/functions/fnc_removeBinocularMagazine.sqf @@ -26,5 +26,5 @@ _selectBinocular = currentWeapon _unit == _binocular; _unit addWeapon _binocular; if (_selectBinocular) then { - _unit selectWeapon _binocular; + _unit selectWeapon _binocular; }; diff --git a/addons/concertina_wire/functions/fnc_vehicleDamage.sqf b/addons/concertina_wire/functions/fnc_vehicleDamage.sqf index 5d04e3dc5d..dffa15b609 100644 --- a/addons/concertina_wire/functions/fnc_vehicleDamage.sqf +++ b/addons/concertina_wire/functions/fnc_vehicleDamage.sqf @@ -52,10 +52,10 @@ if (_mode == 0) then { ]; { _found = false; - _no = nearestObjects [_x, [typeOf _wire], 3]; //diag_log _no; diag_log "....."; - _no = _no - [_wire]; //diag_log _no; + _no = nearestObjects [_x, [typeOf _wire], 3]; //diag_log _no; diag_log "....."; + _no = _no - [_wire]; //diag_log _no; if (count _no > 0) exitWith { - _found = true; //diag_log "found"; + _found = true; //diag_log "found"; }; } forEach _wireCheckPosAr; // Double coil found! diff --git a/addons/dragging/functions/fnc_dropObject.sqf b/addons/dragging/functions/fnc_dropObject.sqf index aad30ec234..5e5687db8a 100644 --- a/addons/dragging/functions/fnc_dropObject.sqf +++ b/addons/dragging/functions/fnc_dropObject.sqf @@ -23,8 +23,8 @@ private "_inBuilding"; _inBuilding = [_unit] call FUNC(isObjectOnObject); if !(_unit getVariable ["ACE_isUnconscious", false]) then { - // play release animation - _unit playAction "released"; + // play release animation + _unit playAction "released"; }; // prevent collision damage diff --git a/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf b/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf index 13b241e1d1..334fc13f25 100644 --- a/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf +++ b/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf @@ -6,6 +6,6 @@ params ["_ctrl", "_index", "_text"]; //systemChat str (_text != ARR_SELECT(GVAR(ParsedTextCached),_index,"-1")); if (_text != ARR_SELECT(GVAR(ParsedTextCached),_index,"-1")) then { - GVAR(ParsedTextCached) set [_index, _text]; - _ctrl ctrlSetStructuredText parseText _text; + GVAR(ParsedTextCached) set [_index, _text]; + _ctrl ctrlSetStructuredText parseText _text; }; diff --git a/addons/interaction/functions/fnc_joinTeam.sqf b/addons/interaction/functions/fnc_joinTeam.sqf index 1f713d8ba2..1ada3843c1 100644 --- a/addons/interaction/functions/fnc_joinTeam.sqf +++ b/addons/interaction/functions/fnc_joinTeam.sqf @@ -22,7 +22,7 @@ params ["_unit", "_team"]; // display message if (_unit == ACE_player) then { - private "_message"; + private "_message"; if (_team == "MAIN") then { _message = localize LSTRING(LeftTeam); diff --git a/addons/medical/functions/fnc_actionDiagnose.sqf b/addons/medical/functions/fnc_actionDiagnose.sqf index ff2bd12438..ffb2583a15 100644 --- a/addons/medical/functions/fnc_actionDiagnose.sqf +++ b/addons/medical/functions/fnc_actionDiagnose.sqf @@ -26,11 +26,11 @@ if (alive _target) then { _genericMessages pushBack LSTRING(diagnoseDead); }; if (_target getVariable[QGVAR(hasLostBlood), 0] > 0) then { - if (_target getVariable[QGVAR(hasLostBlood), 0] > 1) then { - _genericMessages pushBack LSTRING(lostBloodALot); - } else { - _genericMessages pushBack LSTRING(lostBlood); - }; + if (_target getVariable[QGVAR(hasLostBlood), 0] > 1) then { + _genericMessages pushBack LSTRING(lostBloodALot); + } else { + _genericMessages pushBack LSTRING(lostBlood); + }; } else { _genericMessages pushBack LSTRING(noBloodloss); }; diff --git a/addons/movement/functions/fnc_climb.sqf b/addons/movement/functions/fnc_climb.sqf index a395e834b8..a0946b95d0 100644 --- a/addons/movement/functions/fnc_climb.sqf +++ b/addons/movement/functions/fnc_climb.sqf @@ -26,10 +26,10 @@ if !([_unit] call FUNC(canClimb)) exitWith { if !(_unit getVariable [QGVAR(isClimbInit), false]) then { _unit addEventHandler ["AnimChanged", { if (local (_this select 0) && {_this select 1 == "ACE_Climb"}) then { - // abort climb animation - if !(_this call FUNC(canClimb)) then { - [_this select 0, "AmovPercMstpSnonWnonDnon", 2] call EFUNC(common,doAnimation); - }; + // abort climb animation + if !(_this call FUNC(canClimb)) then { + [_this select 0, "AmovPercMstpSnonWnonDnon", 2] call EFUNC(common,doAnimation); + }; }; }]; diff --git a/addons/optics/functions/fnc_onDrawScope.sqf b/addons/optics/functions/fnc_onDrawScope.sqf index 26cbe235b2..d977149c95 100644 --- a/addons/optics/functions/fnc_onDrawScope.sqf +++ b/addons/optics/functions/fnc_onDrawScope.sqf @@ -10,7 +10,7 @@ _display = _this select 0; _control = _display displayCtrl 1713154; if (!ctrlShown (_display displayCtrl 154)) exitWith { - _control ctrlShow false; + _control ctrlShow false; }; private ["_sizeX", "_sizeY"]; diff --git a/addons/safemode/functions/fnc_setSafeModeVisual.sqf b/addons/safemode/functions/fnc_setSafeModeVisual.sqf index 492d5c6996..c3f46b9f4d 100644 --- a/addons/safemode/functions/fnc_setSafeModeVisual.sqf +++ b/addons/safemode/functions/fnc_setSafeModeVisual.sqf @@ -25,7 +25,7 @@ _control = (uiNamespace getVariable ["ACE_dlgSoldier", displayNull]) displayCtrl if (isNull _control) exitWith {}; if (_show) then { - private "_config"; + private "_config"; _config = configFile >> "RscInGameUI" >> "RscUnitInfoSoldier" >> "WeaponInfoControlsGroupLeft" >> "controls" >> "CA_ModeTexture"; _control ctrlSetPosition [getNumber (_config >> "x"), getNumber (_config >> "y"), getNumber (_config >> "w"), getNumber (_config >> "h")]; diff --git a/addons/spectator/functions/fnc_handleCamera.sqf b/addons/spectator/functions/fnc_handleCamera.sqf index f07ac6da47..ce384c496c 100644 --- a/addons/spectator/functions/fnc_handleCamera.sqf +++ b/addons/spectator/functions/fnc_handleCamera.sqf @@ -64,8 +64,8 @@ if (GVAR(camMode) == 0) then { _vector = _vector vectorAdd [0,0,_distance*sin(-_tilt)]; // Update the position of the target camera (used for smooth unit tracking) - _target camSetPos ((_unit modelToWorldVisual [0,0,0]) vectorAdd [0,0,1.5]); - _target camCommit 0; + _target camSetPos ((_unit modelToWorldVisual [0,0,0]) vectorAdd [0,0,1.5]); + _target camCommit 0; // Update the relative position of the unit camera _camera camSetRelPos _vector; diff --git a/addons/viewdistance/functions/fnc_setFovBasedOvdPFH.sqf b/addons/viewdistance/functions/fnc_setFovBasedOvdPFH.sqf index 007c967da9..bcde34316a 100644 --- a/addons/viewdistance/functions/fnc_setFovBasedOvdPFH.sqf +++ b/addons/viewdistance/functions/fnc_setFovBasedOvdPFH.sqf @@ -36,9 +36,9 @@ _zoom = (call CBA_fnc_getFov) select 1; if ((vehicle ACE_player) isKindOf "Air") exitWith { if (_zoom > VD_ZOOM_NORMAL) then { // Dynamically set Object View Distance based on player's Zoom Level and View Distance - setObjectViewDistance ((_zoom / VD_ZOOM_DIVISION_AIR * (viewDistance - GVAR(fovBasedPFHminimalViewDistance))) + GVAR(fovBasedPFHminimalViewDistance)); + setObjectViewDistance ((_zoom / VD_ZOOM_DIVISION_AIR * (viewDistance - GVAR(fovBasedPFHminimalViewDistance))) + GVAR(fovBasedPFHminimalViewDistance)); } else { - setObjectViewDistance (GVAR(fovBasedPFHminimalViewDistance) + viewDistance / 10); + setObjectViewDistance (GVAR(fovBasedPFHminimalViewDistance) + viewDistance / 10); }; TRACE_2("FoV Based",getObjectViewDistance select 0,_zoom); }; @@ -46,8 +46,8 @@ if ((vehicle ACE_player) isKindOf "Air") exitWith { // Land if (_zoom > VD_ZOOM_NORMAL) then { // Dynamically set Object View Distance based on player's Zoom Level and View Distance - setObjectViewDistance ((_zoom / VD_ZOOM_DIVISION * (viewDistance - GVAR(fovBasedPFHminimalViewDistance))) + GVAR(fovBasedPFHminimalViewDistance)); + setObjectViewDistance ((_zoom / VD_ZOOM_DIVISION * (viewDistance - GVAR(fovBasedPFHminimalViewDistance))) + GVAR(fovBasedPFHminimalViewDistance)); } else { - setObjectViewDistance GVAR(fovBasedPFHminimalViewDistance); + setObjectViewDistance GVAR(fovBasedPFHminimalViewDistance); }; TRACE_2("FoV Based",getObjectViewDistance select 0,_zoom); From e828076377c0151b7f5cfeafc9e008f7cc18c5b8 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Mon, 21 Dec 2015 17:06:04 +0100 Subject: [PATCH 51/75] Add error on tab in sqf files to sqf validator --- tools/sqf_validator.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/sqf_validator.py b/tools/sqf_validator.py index 7e7c0183d6..7414d7d715 100644 --- a/tools/sqf_validator.py +++ b/tools/sqf_validator.py @@ -109,7 +109,10 @@ def check_sqf_syntax(filepath): print("ERROR: Possible missing curly brace '}}' detected at {0} Line number: {1}".format(filepath,lineNumber)) bad_count_file += 1 brackets_list.append('}') - + elif (c== '\t'): + print("ERROR: Tab detected at {0} Line number: {1}".format(filepath,lineNumber)) + bad_count_file += 1 + if (checkForSemiColumn): if (c not in [' ', '\t', '\n', '/']): # keep reading until no white space or comments checkForSemiColumn = False From ebb28177b12640c4204f42fa6a2642ec86fd7e86 Mon Sep 17 00:00:00 2001 From: Githawk Date: Mon, 21 Dec 2015 17:54:52 +0100 Subject: [PATCH 52/75] More fixes to make jerryCan work --- addons/refuel/CfgVehicles.hpp | 2 +- addons/refuel/functions/fnc_makeJerryCan.sqf | 105 +++++++++---------- addons/refuel/functions/fnc_refuel.sqf | 4 +- addons/refuel/functions/fnc_takeNozzle.sqf | 36 ++++--- addons/refuel/script_component.hpp | 2 +- 5 files changed, 76 insertions(+), 73 deletions(-) diff --git a/addons/refuel/CfgVehicles.hpp b/addons/refuel/CfgVehicles.hpp index 33ddddb8b0..afc3c4cd9c 100644 --- a/addons/refuel/CfgVehicles.hpp +++ b/addons/refuel/CfgVehicles.hpp @@ -615,7 +615,7 @@ class CfgVehicles { // Src: http://helicopters.axlegeeks.com/l/61/Boeing-AH-64-Apache 375 gal = 1420L // Src: https://en.wikipedia.org/wiki/Mil_Mi-8 3700l // Src: Google Ka-52 1870L - // Src: http://www.airforce-technology.com/projects/hind/ 1500kg / 0.81 L/kg = 1851L + // Src: http://www.airforce-technology.com/projects/hind/ 1500kg / 0.81 kg/L = 1851L // Src: https://en.wikipedia.org/wiki/MD_Helicopters_MH-6_Little_Bird 242L // Src: http://www.globalsecurity.org/military/world/europe/aw159-specs.htm 1004L // Src: https://en.wikipedia.org/wiki/AgustaWestland_AW101 3 * 1074L = 3222L diff --git a/addons/refuel/functions/fnc_makeJerryCan.sqf b/addons/refuel/functions/fnc_makeJerryCan.sqf index 8febaf41f0..96bb058265 100644 --- a/addons/refuel/functions/fnc_makeJerryCan.sqf +++ b/addons/refuel/functions/fnc_makeJerryCan.sqf @@ -20,60 +20,13 @@ private ["_actions", "_action"]; params ["_target", ["_fuelAmount", 20]]; if (isNull _target || - {_target isKindOf "AllVehicles"}) exitWith {}; + {_target isKindOf "AllVehicles"} || + {_target getVariable [QGVAR(jerryCan), false]}) exitWith {}; [_target, _fuelAmount] call FUNC(setFuel); +_target setVariable [QGVAR(jerryCan), true, true]; _target setVariable [QGVAR(source), _target, true]; -_actions = []; -// Add pickup -_action = [QGVAR(PickUpNozzle), - localize LSTRING(TakeNozzle), - QUOTE(PATHTOF(ui\icon_refuel_interact.paa)), - {[_player, objNull, _target] call FUNC(TakeNozzle)}, - {[_player, _target] call FUNC(canTakeNozzle)}, - {}, - [], - [0, 0, 0], - REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction); -_actions pushBack [_action, [], _target]; - -// Add turnOn -_action = [QGVAR(TurnOn), - localize LSTRING(TurnOn), - QUOTE(PATHTOF(ui\icon_refuel_interact.paa)), - {[_player, _target] call FUNC(turnOn)}, - {[_player, _target] call FUNC(canTurnOn)}, - {}, - [], - [0, 0, 0], - REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction); -_actions pushBack [_action, [], _target]; - -// Add turnOff -_action = [QGVAR(TurnOff), - localize LSTRING(TurnOff), - QUOTE(PATHTOF(ui\icon_refuel_interact.paa)), - {[_player, _target] call FUNC(turnOff)}, - {[_player, _target] call FUNC(canTurnOff)}, - {}, - [], - [0, 0, 0], - REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction); -_actions pushBack [_action, [], _target]; - -// Add disconnect -_action = [QGVAR(Disconnect), - localize LSTRING(Disconnect), - QUOTE(PATHTOF(ui\icon_refuel_interact.paa)), - {[_player, _target] call FUNC(disconnect)}, - {[_player, _target] call FUNC(canDisconnect)}, - {}, - [], - [0, 0, 0], - REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction); -_actions pushBack [_action, [], _target]; - // Main Action _action = [QGVAR(Refuel), localize LSTRING(Refuel), @@ -84,8 +37,52 @@ _action = [QGVAR(Refuel), [], [0, 0, 0], REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction); +[_target, 0, [], _action] call EFUNC(interact_menu,addActionToObject); -[_target, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToObject); -{ - [_target, 0, [QGVAR(Refuel)], _x select 0] call EFUNC(interact_menu,addActionToObject); -} forEach _actions; +// Add pickup +_action = [QGVAR(PickUpNozzle), + localize LSTRING(TakeNozzle), + QUOTE(PATHTOF(ui\icon_refuel_interact.paa)), + {[_player, objNull, _target] call FUNC(TakeNozzle)}, + {[_player, _target] call FUNC(canTakeNozzle)}, + {}, + [], + [0, 0, 0], + REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction); +[_target, 0, [QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject); + +// Add turnOn +_action = [QGVAR(TurnOn), + localize LSTRING(TurnOn), + QUOTE(PATHTOF(ui\icon_refuel_interact.paa)), + {[_player, _target] call FUNC(turnOn)}, + {[_player, _target] call FUNC(canTurnOn)}, + {}, + [], + [0, 0, 0], + REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction); +[_target, 0, [QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject); + +// Add turnOff +_action = [QGVAR(TurnOff), + localize LSTRING(TurnOff), + QUOTE(PATHTOF(ui\icon_refuel_interact.paa)), + {[_player, _target] call FUNC(turnOff)}, + {[_player, _target] call FUNC(canTurnOff)}, + {}, + [], + [0, 0, 0], + REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction); +[_target, 0, [QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject); + +// Add disconnect +_action = [QGVAR(Disconnect), + localize LSTRING(Disconnect), + QUOTE(PATHTOF(ui\icon_refuel_interact.paa)), + {[_player, _target] call FUNC(disconnect)}, + {[_player, _target] call FUNC(canDisconnect)}, + {}, + [], + [0, 0, 0], + REFUEL_ACTION_DISTANCE] call EFUNC(interact_menu,createAction); +[_target, 0, [QGVAR(Refuel)], _action] call EFUNC(interact_menu,addActionToObject); diff --git a/addons/refuel/functions/fnc_refuel.sqf b/addons/refuel/functions/fnc_refuel.sqf index ed6eb257cf..74697212b1 100644 --- a/addons/refuel/functions/fnc_refuel.sqf +++ b/addons/refuel/functions/fnc_refuel.sqf @@ -29,7 +29,6 @@ _maxFuel = getNumber (configFile >> "CfgVehicles" >> (typeOf _target) >> QGVAR(f params ["_args", "_pfID"]; _args params ["_source", "_sink", "_unit", "_nozzle", "_rate", "_startFuel", "_maxFuel", "_connectFromPoint", "_connectToPoint"]; - _fueling = _nozzle getVariable [QGVAR(isRefueling), false]; if (!alive _source || {!alive _sink}) exitWith { [objNull, _nozzle] call FUNC(dropNozzle); _nozzle setVariable [QGVAR(isConnected), false, true]; @@ -38,7 +37,7 @@ _maxFuel = getNumber (configFile >> "CfgVehicles" >> (typeOf _target) >> QGVAR(f [_pfID] call cba_fnc_removePerFrameHandler; }; _tooFar = ((_sink modelToWorld _connectToPoint) distance (_source modelToWorld _connectFromPoint)) > (REFUEL_HOSE_LENGTH - 2); - if (_tooFar) exitWith { + if (_tooFar && {!(_nozzle getVariable [QGVAR(jerryCan), false])}) exitWith { [LSTRING(Hint_TooFar), 2, _unit] call EFUNC(common,displayTextStructured); [objNull, _nozzle] call FUNC(dropNozzle); @@ -49,6 +48,7 @@ _maxFuel = getNumber (configFile >> "CfgVehicles" >> (typeOf _target) >> QGVAR(f }; _finished = false; + _fueling = _nozzle getVariable [QGVAR(isRefueling), false]; if (_fueling) then { _fuelInSource = [_source] call FUNC(getFuel); if (_fuelInSource == 0) exitWith { diff --git a/addons/refuel/functions/fnc_takeNozzle.sqf b/addons/refuel/functions/fnc_takeNozzle.sqf index f6d953cecc..3c52748efc 100644 --- a/addons/refuel/functions/fnc_takeNozzle.sqf +++ b/addons/refuel/functions/fnc_takeNozzle.sqf @@ -93,7 +93,11 @@ if (isNull _nozzle) then { // func is called on fuel truck private ["_actionID"]; params ["_args"]; _args params ["_unit", "_nozzle"]; - _nozzle attachTo [_unit, [-0.02,-0.05,0], "righthandmiddle1"]; // TODO replace with right coordinates for real model + if (_nozzle getVariable [QGVAR(jerryCan), false]) then { + _nozzle attachTo [_unit, [0,1,0], "pelvis"]; + } else { + _nozzle attachTo [_unit, [-0.02,-0.05,0], "righthandmiddle1"]; // TODO replace with right coordinates for real model + }; _unit setVariable [QGVAR(nozzle), _nozzle]; _unit setVariable [QGVAR(isRefueling), true]; @@ -122,20 +126,22 @@ if (isNull _nozzle) then { // func is called on fuel truck _target = _nozzle getVariable QGVAR(source); _endPosOffset = _nozzle getVariable QGVAR(attachPos); }; -[{ - private ["_nozzle"]; - params ["_args", "_pfID"]; - _args params ["_unit", "_source", "_endPosOffset"]; +if !(_nozzle getVariable [QGVAR(jerryCan), false]) then { + [{ + private ["_nozzle"]; + params ["_args", "_pfID"]; + _args params ["_unit", "_source", "_endPosOffset"]; - if (_unit distance (_source modelToWorld _endPosOffset) > (REFUEL_HOSE_LENGTH - 2)) exitWith { - _nozzle = _unit getVariable [QGVAR(nozzle), objNull]; - if !(isNull _nozzle) then { - [_unit, _nozzle] call FUNC(dropNozzle); - REFUEL_UNHOLSTER_WEAPON + if (_unit distance (_source modelToWorld _endPosOffset) > (REFUEL_HOSE_LENGTH - 2)) exitWith { + _nozzle = _unit getVariable [QGVAR(nozzle), objNull]; + if !(isNull _nozzle) then { + [_unit, _nozzle] call FUNC(dropNozzle); + REFUEL_UNHOLSTER_WEAPON - [_unit, QGVAR(vehAttach), false] call EFUNC(common,setForceWalkStatus); - [LSTRING(Hint_TooFar), 2, _unit] call EFUNC(common,displayTextStructured); + [_unit, QGVAR(vehAttach), false] call EFUNC(common,setForceWalkStatus); + [LSTRING(Hint_TooFar), 2, _unit] call EFUNC(common,displayTextStructured); + }; + [_pfID] call cba_fnc_removePerFrameHandler; }; - [_pfID] call cba_fnc_removePerFrameHandler; - }; -}, 0, [_unit, _target, _endPosOffset]] call cba_fnc_addPerFrameHandler; + }, 0, [_unit, _target, _endPosOffset]] call cba_fnc_addPerFrameHandler; +}; diff --git a/addons/refuel/script_component.hpp b/addons/refuel/script_component.hpp index 28e6fb7931..e8c7514651 100644 --- a/addons/refuel/script_component.hpp +++ b/addons/refuel/script_component.hpp @@ -12,7 +12,7 @@ #include "\z\ace\addons\main\script_macros.hpp" #define REFUEL_INFINITE_FUEL -1 -#define REFUEL_ACTION_DISTANCE 37 +#define REFUEL_ACTION_DISTANCE 7 #define REFUEL_HOSE_LENGTH 12 #define REFUEL_HOLSTER_WEAPON \ From d16417a00b53910570af87f65f2f62d25bd4fad5 Mon Sep 17 00:00:00 2001 From: Githawk Date: Tue, 22 Dec 2015 17:49:58 +0100 Subject: [PATCH 53/75] Changed scope on nozzle --- addons/refuel/CfgVehicles.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/refuel/CfgVehicles.hpp b/addons/refuel/CfgVehicles.hpp index afc3c4cd9c..ff91205434 100644 --- a/addons/refuel/CfgVehicles.hpp +++ b/addons/refuel/CfgVehicles.hpp @@ -138,8 +138,8 @@ class CfgVehicles { XEH_ENABLED; MACRO_NOZZLE_ACTIONS displayName = QGVAR(fuelNozzle); - scope = 2; - scopeCurator = 2; + scope = 1; + scopeCurator = 1; model = "\A3\Structures_F_Heli\VR\Helpers\Sign_sphere10cm_F.p3d"; }; From 2432ac3319a5c7fa4943703f57af0f49d84e5ec0 Mon Sep 17 00:00:00 2001 From: Githawk Date: Tue, 22 Dec 2015 17:54:16 +0100 Subject: [PATCH 54/75] Changed scope for carried objects --- addons/rearm/CfgVehicles.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/rearm/CfgVehicles.hpp b/addons/rearm/CfgVehicles.hpp index d7e8fafed4..30548aed76 100644 --- a/addons/rearm/CfgVehicles.hpp +++ b/addons/rearm/CfgVehicles.hpp @@ -170,8 +170,8 @@ class CfgVehicles { class GVAR(defaultCarriedObject) : ThingX { XEH_ENABLED; displayName = QGVAR(dummy_obj); - scope = 2; - scopeCurator = 2; + scope = 1; + scopeCurator = 1; model = "\A3\Weapons_F\AmmoBoxes\AmmoBox_F.p3d"; EGVAR(cargo,size) = 1; class ACE_Actions { From dc60860421984110169173fd20eddb724e51e94b Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 26 Dec 2015 23:31:49 -0600 Subject: [PATCH 55/75] Fix Third Person Goggle Effect Not Displaying #3074 --- addons/goggles/XEH_postInit.sqf | 10 +++++++--- addons/goggles/functions/fnc_applyDirtEffect.sqf | 1 - addons/goggles/functions/fnc_applyDustEffect.sqf | 1 - addons/goggles/functions/fnc_externalCamera.sqf | 6 +++++- addons/goggles/functions/fnc_handleExplosion.sqf | 1 - 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/addons/goggles/XEH_postInit.sqf b/addons/goggles/XEH_postInit.sqf index 09a84ad151..a4872f6a3f 100644 --- a/addons/goggles/XEH_postInit.sqf +++ b/addons/goggles/XEH_postInit.sqf @@ -114,16 +114,20 @@ private _fnc_checkGoggles = { // goggles effects main PFH [{ + BEGIN_COUNTER(goggles); + // rain call FUNC(applyRainEffect); // auto remove effects under water - if (GVAR(EffectsActive) && {[goggles ACE_player] call FUNC(isDivingGoggles) && {underwater ACE_player}}) then { + if (GVAR(EffectsActive) && {underwater ACE_player} && {[goggles ACE_player] call FUNC(isDivingGoggles)}) then { call FUNC(removeRainEffect); call FUNC(removeDirtEffect); call FUNC(removeDustEffect); }; // rotor wash effect - call FUNC(applyRotorWashEffect) -}, 0.5, _fnc_checkGoggles] call CBA_fnc_addPerFrameHandler; + call FUNC(applyRotorWashEffect); + + END_COUNTER(goggles); +}, 0.5, []] call CBA_fnc_addPerFrameHandler; diff --git a/addons/goggles/functions/fnc_applyDirtEffect.sqf b/addons/goggles/functions/fnc_applyDirtEffect.sqf index c7ff386f9d..4b5ee13a0f 100644 --- a/addons/goggles/functions/fnc_applyDirtEffect.sqf +++ b/addons/goggles/functions/fnc_applyDirtEffect.sqf @@ -15,7 +15,6 @@ */ #include "script_component.hpp" -if (GVAR(showInThirdPerson)) exitWith {false}; if (call FUNC(externalCamera)) exitWith {false}; private ["_unit", "_effects"]; diff --git a/addons/goggles/functions/fnc_applyDustEffect.sqf b/addons/goggles/functions/fnc_applyDustEffect.sqf index 75f4853c01..944b98f127 100644 --- a/addons/goggles/functions/fnc_applyDustEffect.sqf +++ b/addons/goggles/functions/fnc_applyDustEffect.sqf @@ -15,7 +15,6 @@ */ #include "script_component.hpp" -if (GVAR(showInThirdPerson)) exitWith {}; if (call FUNC(ExternalCamera)) exitWith {}; private ["_unit", "_amount"]; diff --git a/addons/goggles/functions/fnc_externalCamera.sqf b/addons/goggles/functions/fnc_externalCamera.sqf index 1af09827ab..85776fb0d6 100644 --- a/addons/goggles/functions/fnc_externalCamera.sqf +++ b/addons/goggles/functions/fnc_externalCamera.sqf @@ -15,4 +15,8 @@ */ #include "script_component.hpp" -cameraView in ["EXTERNAL", "GROUP"] || EFUNC(common,isFeatureCameraActive) // return +if (GVAR(showInThirdPerson)) then { + cameraView in ["GROUP"] || EFUNC(common,isFeatureCameraActive) +} else { + cameraView in ["EXTERNAL", "GROUP"] || EFUNC(common,isFeatureCameraActive) +}; diff --git a/addons/goggles/functions/fnc_handleExplosion.sqf b/addons/goggles/functions/fnc_handleExplosion.sqf index 795cdd78b1..b5c71a3d94 100644 --- a/addons/goggles/functions/fnc_handleExplosion.sqf +++ b/addons/goggles/functions/fnc_handleExplosion.sqf @@ -37,7 +37,6 @@ _effects set [BROKEN, true]; SETGLASSES(_unit,_effects); if (getText (_config >> "ACE_OverlayCracked") != "") then { - if (GVAR(showInThirdPerson)) exitWith {}; if (call FUNC(ExternalCamera)) exitWith {}; if (isNull (GLASSDISPLAY)) then { From 44568ec94ece00f8966438f5776cac6be946f27f Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 28 Dec 2015 21:27:47 -0600 Subject: [PATCH 56/75] CUP compat no longer needed: CUP makes their own ref https://forums.bistudio.com/topic/179326-community-upgrade-project-cup/ --- optionals/compat_cup/$PBOPREFIX$ | 1 - optionals/compat_cup/CfgMagazines.hpp | 48 ---- optionals/compat_cup/CfgWeapons.hpp | 271 ---------------------- optionals/compat_cup/config.cpp | 15 -- optionals/compat_cup/script_component.hpp | 5 - 5 files changed, 340 deletions(-) delete mode 100644 optionals/compat_cup/$PBOPREFIX$ delete mode 100644 optionals/compat_cup/CfgMagazines.hpp delete mode 100644 optionals/compat_cup/CfgWeapons.hpp delete mode 100644 optionals/compat_cup/config.cpp delete mode 100644 optionals/compat_cup/script_component.hpp diff --git a/optionals/compat_cup/$PBOPREFIX$ b/optionals/compat_cup/$PBOPREFIX$ deleted file mode 100644 index 42044805ba..0000000000 --- a/optionals/compat_cup/$PBOPREFIX$ +++ /dev/null @@ -1 +0,0 @@ -z\ace\addons\compat_cup \ No newline at end of file diff --git a/optionals/compat_cup/CfgMagazines.hpp b/optionals/compat_cup/CfgMagazines.hpp deleted file mode 100644 index b05b0c3efd..0000000000 --- a/optionals/compat_cup/CfgMagazines.hpp +++ /dev/null @@ -1,48 +0,0 @@ -class CfgMagazines { - class CUP_M136_M; - class CUP_RPG18_M; - class CUP_NLAW_M; - class ACE_PreloadedMissileDummy_CUP: CUP_M136_M { // The dummy magazine - author = "$STR_ACE_Common_ACETeam"; - scope = 1; - scopeArsenal = 1; - displayName = "Preloaded Missle"; - //displayName = "$STR_ACE_Disposable_PreloadedMissileDummy"; - picture = PATHTOEF(common,UI\blank_CO.paa); - weaponPoolAvailable = 0; - mass = 0; - }; - class ACE_FiredMissileDummy_CUP: ACE_PreloadedMissileDummy_CUP { - count = 0; - }; - class ACE_UsedTube_M136_F: CUP_M136_M { - author = "$STR_ACE_Common_ACETeam"; - displayName = "$STR_ACE_Disposable_UsedTube"; - descriptionShort = "$STR_ACE_Disposable_UsedTubeDescription"; - displayNameShort = "-"; - count = 0; - weaponPoolAvailable = 0; - modelSpecial = ""; - mass = 0; - }; - class ACE_UsedTube_RPG18_F: CUP_RPG18_M { - author = "$STR_ACE_Common_ACETeam"; - displayName = "$STR_ACE_Disposable_UsedTube"; - descriptionShort = "$STR_ACE_Disposable_UsedTubeDescription"; - displayNameShort = "-"; - count = 0; - weaponPoolAvailable = 0; - modelSpecial = ""; - mass = 0; - }; - class ACE_UsedTube_NLAW_F: CUP_NLAW_M { - author = "$STR_ACE_Common_ACETeam"; - displayName = "$STR_ACE_Disposable_UsedTube"; - descriptionShort = "$STR_ACE_Disposable_UsedTubeDescription"; - displayNameShort = "-"; - count = 0; - weaponPoolAvailable = 0; - modelSpecial = ""; - mass = 0; - }; -}; \ No newline at end of file diff --git a/optionals/compat_cup/CfgWeapons.hpp b/optionals/compat_cup/CfgWeapons.hpp deleted file mode 100644 index bbd49548da..0000000000 --- a/optionals/compat_cup/CfgWeapons.hpp +++ /dev/null @@ -1,271 +0,0 @@ -class CfgWeapons -{ - class Launcher_Base_F; - class ItemCore; - class InventoryOpticsItem_Base_F; - - class CUP_optic_SB_3_12x50_PMII : ItemCore { - ACE_ScopeAdjust_Vertical[] = { -4, 30 }; - ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; - ACE_ScopeAdjust_VerticalIncrement = 0.1; - ACE_ScopeAdjust_HorizontalIncrement = 0.1; - class ItemInfo : InventoryOpticsItem_Base_F { - class OpticsModes { - class LRR { - discreteDistance[] = { 100 }; - discreteDistanceInitIndex = 0; - }; - }; - }; - }; - class CUP_optic_LeupoldMk4 : ItemCore { - ACE_ScopeAdjust_Vertical[] = { -4, 30 }; - ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; - ACE_ScopeAdjust_VerticalIncrement = 0.1; - ACE_ScopeAdjust_HorizontalIncrement = 0.1; - class ItemInfo : InventoryOpticsItem_Base_F { - class OpticsModes { - class LRR { - discreteDistance[] = { 100 }; - discreteDistanceInitIndex = 0; - }; - }; - }; - }; - class CUP_optic_Leupold_VX3 : ItemCore { - ACE_ScopeAdjust_Vertical[] = { -4, 30 }; - ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; - ACE_ScopeAdjust_VerticalIncrement = 0.1; - ACE_ScopeAdjust_HorizontalIncrement = 0.1; - class ItemInfo : InventoryOpticsItem_Base_F { - class OpticsModes { - class StepScope { - discreteDistance[] = { 100 }; - discreteDistanceInitIndex = 0; - }; - }; - }; - }; - class CUP_optic_AN_PVS_10 : ItemCore { - ACE_ScopeAdjust_Vertical[] = { -4, 30 }; - ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; - ACE_ScopeAdjust_VerticalIncrement = 0.1; - ACE_ScopeAdjust_HorizontalIncrement = 0.1; - class ItemInfo : InventoryOpticsItem_Base_F { - class OpticsModes { - class NVScope { - discreteDistance[] = { 100 }; - discreteDistanceInitIndex = 0; - }; - }; - }; - }; - class CUP_optic_LeupoldM3LR : ItemCore { - ACE_ScopeAdjust_Vertical[] = { -4, 30 }; - ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; - ACE_ScopeAdjust_VerticalIncrement = 0.1; - ACE_ScopeAdjust_HorizontalIncrement = 0.1; - class ItemInfo : InventoryOpticsItem_Base_F { - class OpticsModes { - class LRR { - discreteDistance[] = { 100 }; - discreteDistanceInitIndex = 0; - }; - }; - }; - }; - class CUP_optic_LeupoldMk4_10x40_LRT_Desert : ItemCore { - ACE_ScopeAdjust_Vertical[] = { -4, 30 }; - ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; - ACE_ScopeAdjust_VerticalIncrement = 0.1; - ACE_ScopeAdjust_HorizontalIncrement = 0.1; - class ItemInfo : InventoryOpticsItem_Base_F { - class OpticsModes { - class LRR { - discreteDistance[] = { 100 }; - discreteDistanceInitIndex = 0; - }; - }; - }; - }; - class CUP_optic_LeupoldMk4_MRT_tan : ItemCore { - ACE_ScopeAdjust_Vertical[] = { -4, 30 }; - ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; - ACE_ScopeAdjust_VerticalIncrement = 0.1; - ACE_ScopeAdjust_HorizontalIncrement = 0.1; - class ItemInfo : InventoryOpticsItem_Base_F { - class OpticsModes { - class MRT { - discreteDistance[] = { 100 }; - discreteDistanceInitIndex = 0; - }; - }; - }; - }; - class CUP_optic_SB_11_4x20_PM : ItemCore { - ACE_ScopeAdjust_Vertical[] = { -0.1, 10.1 }; - ACE_ScopeAdjust_Horizontal[] = { -5.1, 5.1 }; - ACE_ScopeAdjust_VerticalIncrement = 0.1; - ACE_ScopeAdjust_HorizontalIncrement = 0.1; - class ItemInfo : InventoryOpticsItem_Base_F { - class OpticsModes { - class ShortDot { - discreteDistance[] = { 100 }; - discreteDistanceInitIndex = 0; - }; - }; - }; - }; - - /* - // This would require MOA turrets - class CUP_optic_AN_PVS_4 : ItemCore { - ACE_ScopeAdjust_Vertical[] = { -12, 50 }; - ACE_ScopeAdjust_Horizontal[] = { -20, 20 }; - ACE_ScopeAdjust_VerticalIncrement = 0.25; - ACE_ScopeAdjust_HorizontalIncrement = 0.25; - ACE_ScopeAdjust_Unit = "MOA"; - class ItemInfo : InventoryOpticsItem_Base_F { - class OpticsModes { - class ANPVS4 { - discreteDistance[] = { 100 }; - discreteDistanceInitIndex = 0; - }; - }; - }; - }; - */ - - class CUP_optic_PSO_1 : ItemCore { - ACE_ScopeAdjust_Vertical[] = { 0, 0 }; - ACE_ScopeAdjust_Horizontal[] = { -10, 10 }; - ACE_ScopeAdjust_VerticalIncrement = 0.0; - ACE_ScopeAdjust_HorizontalIncrement = 0.5; - class ItemInfo : InventoryOpticsItem_Base_F { - class OpticsModes { - class PSO { - discreteDistance[]={100, 200, 300, 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950, 1000}; - discreteDistanceInitIndex=3; - }; - }; - }; - }; - class CUP_optic_PSO_3 : ItemCore { - ACE_ScopeAdjust_Vertical[] = { 0, 0 }; - ACE_ScopeAdjust_Horizontal[] = { -10, 10 }; - ACE_ScopeAdjust_VerticalIncrement = 0.0; - ACE_ScopeAdjust_HorizontalIncrement = 0.5; - class ItemInfo : InventoryOpticsItem_Base_F { - class OpticsModes { - class PSO { - discreteDistance[]={100, 200, 300, 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950, 1000}; - discreteDistanceInitIndex=3; - }; - }; - }; - }; - // Non Disposable launchers - class CUP_launch_Igla: Launcher_Base_F { - EGVAR(overpressure,angle) = 30; - EGVAR(overpressure,range) = 2; - EGVAR(overpressure,damage) = 0.5; - }; - class CUP_launch_M47: Launcher_Base_F { - EGVAR(overpressure,angle) = 45; - EGVAR(overpressure,range) = 30; - EGVAR(overpressure,damage) = 0.7; - }; - class CUP_launch_MAAWS: Launcher_Base_F { - EGVAR(overpressure,angle) = 60; - EGVAR(overpressure,range) = 28; - EGVAR(overpressure,damage) = 0.7; - }; - class CUP_launch_MAAWS_Scope: CUP_launch_MAAWS {}; - class CUP_launch_Metis: Launcher_Base_F { - EGVAR(overpressure,angle) = 45; - EGVAR(overpressure,range) = 30; - EGVAR(overpressure,damage) = 0.5; - }; - class CUP_launch_RPG7V: Launcher_Base_F { - EGVAR(overpressure,angle) = 45; - EGVAR(overpressure,range) = 20; - EGVAR(overpressure,damage) = 1; - }; - class CUP_launch_Mk153Mod0: Launcher_Base_F { - EGVAR(overpressure,angle) = 30; - EGVAR(overpressure,range) = 30; - EGVAR(overpressure,damage) = 1; - }; - class CUP_launch_Mk153Mod0_SMAWOptics: CUP_launch_Mk153Mod0 {}; - class CUP_launch_FIM92Stinger: Launcher_Base_F { - EGVAR(overpressure,angle) = 45; - EGVAR(overpressure,range) = 15; - EGVAR(overpressure,damage) = 0.3; // Main damage arises from debris rather than the actual backblast - }; - class CUP_launch_9K32Strela: Launcher_Base_F { - EGVAR(overpressure,angle) = 30; - EGVAR(overpressure,range) = 2; - EGVAR(overpressure,damage) = 0.5; - }; - // Disposable launchers under this line - class CUP_launch_M136: Launcher_Base_F { - EGVAR(overpressure,angle) = 45; - EGVAR(overpressure,range) = 100; - EGVAR(overpressure,damage) = 0.7; - ACE_UsedTube = "ACE_launch_M136_Used_F"; // The class name of the used tube. - magazines[] = {"ACE_PreloadedMissileDummy_CUP"}; // The dummy magazine - }; - class ACE_launch_M136_Used_F: CUP_launch_M136 { - scope = 1; - ACE_isUsedLauncher = 1; - author = "$STR_ACE_Common_ACETeam"; - //displayName = "$STR_ACE_Disposable_UsedTube"; - //descriptionShort = "$STR_ACE_Disposable_UsedTubeDescription"; - displayName = "M136 (Used)"; - descriptionShort = "Used M136 Tube"; - magazines[] = {"ACE_FiredMissileDummy_CUP"}; - //picture = ""; @todo - //model = ""; @todo - weaponPoolAvailable = 0; - }; - class CUP_launch_NLAW: Launcher_Base_F { - EGVAR(overpressure,angle) = 30; - EGVAR(overpressure,range) = 2; - EGVAR(overpressure,damage) = 0.5; - ACE_UsedTube = "ACE_launch_NLAW_Used_F"; // The class name of the used tube. - magazines[] = {"ACE_PreloadedMissileDummy_CUP"}; // The dummy magazine - }; - class ACE_launch_NLAW_Used_F: CUP_launch_NLAW { - scope = 1; - ACE_isUsedLauncher = 1; - author = "$STR_ACE_Common_ACETeam"; - //displayName = "$STR_ACE_Disposable_UsedTube"; - //descriptionShort = "$STR_ACE_Disposable_UsedTubeDescription"; - displayName = "NLAW (Used)"; - descriptionShort = "Used NLAW Tube"; - magazines[] = {"ACE_FiredMissileDummy_CUP"}; - //picture = ""; @todo - //model = ""; @todo - weaponPoolAvailable = 0; - }; - class CUP_launch_RPG18: Launcher_Base_F { - EGVAR(overpressure,angle) = 40; - EGVAR(overpressure,range) = 15; - EGVAR(overpressure,damage) = 1; - ACE_UsedTube = "ACE_launch_RPG18_Used_F"; // The class name of the used tube. - magazines[] = {"ACE_PreloadedMissileDummy_CUP"}; // The dummy magazine - }; - class ACE_launch_RPG18_Used_F: CUP_launch_RPG18 { - scope = 1; - ACE_isUsedLauncher = 1; - author = "$STR_ACE_Common_ACETeam"; - //displayName = "$STR_ACE_Disposable_UsedTube"; - //descriptionShort = "$STR_ACE_Disposable_UsedTubeDescription"; - displayName = "RPG18 (Used)"; - descriptionShort = "Used RPG18 Tube"; - magazines[] = {"ACE_FiredMissileDummy_CUP"}; - //picture = ""; @todo - //model = ""; @todo - weaponPoolAvailable = 0; - }; -}; \ No newline at end of file diff --git a/optionals/compat_cup/config.cpp b/optionals/compat_cup/config.cpp deleted file mode 100644 index 20ae5d6911..0000000000 --- a/optionals/compat_cup/config.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "script_component.hpp" - -class CfgPatches { - class ADDON { - units[] = {}; - weapons[] = {}; - requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"CUP_Weapons_Ammunition"}; - author[]={"Ruthberg"}; - VERSION_CONFIG; - }; -}; - -#include "CfgWeapons.hpp" -#include "CfgMagazines.hpp" \ No newline at end of file diff --git a/optionals/compat_cup/script_component.hpp b/optionals/compat_cup/script_component.hpp deleted file mode 100644 index 3d77fcb370..0000000000 --- a/optionals/compat_cup/script_component.hpp +++ /dev/null @@ -1,5 +0,0 @@ -#define COMPONENT CUP_Weapons_Ammunition_comp - -#include "\z\ace\addons\main\script_mod.hpp" - -#include "\z\ace\addons\main\script_macros.hpp" From 112c002b0bac700985309e68ffd1b0a547cfc88e Mon Sep 17 00:00:00 2001 From: bux Date: Tue, 29 Dec 2015 20:57:55 +0100 Subject: [PATCH 57/75] remove ace_offset entry Ported from AGM and simply renamed. It wasn't even used in AGM. --- addons/explosives/CfgVehicles.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/addons/explosives/CfgVehicles.hpp b/addons/explosives/CfgVehicles.hpp index 7a51a7d765..de978e0d2b 100644 --- a/addons/explosives/CfgVehicles.hpp +++ b/addons/explosives/CfgVehicles.hpp @@ -89,7 +89,6 @@ class CfgVehicles { scope = 2; scopeCurator = 1; vehicleClass = "Cargo"; - ACE_offset[] = {0,0,0}; class ACE_Actions { class ACE_MainActions { selection = ""; @@ -137,7 +136,6 @@ class CfgVehicles { class ACE_Explosives_Place_APERSTripwireMine:ACE_Explosives_Place { displayName = "APERS Tripwire Mine"; model = "\A3\Weapons_F\explosives\mine_AP_tripwire"; - ACE_offset[] = {1,0,0}; }; class ACE_Explosives_Place_ATMine:ACE_Explosives_Place { From 1e29c0286f78afc0f6403e8593ed09e6007b2276 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 30 Dec 2015 01:07:55 -0600 Subject: [PATCH 58/75] Remove Keybinds/Events for Zeus now handeld in CBA Close #2937 --- addons/common/XEH_postInit.sqf | 28 +++++++++++----------- addons/interact_menu/XEH_clientInit.sqf | 31 ------------------------- 2 files changed, 14 insertions(+), 45 deletions(-) diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index ce75ad5187..69d28e3cab 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -1,7 +1,7 @@ // ACE - Common +// #define ENABLE_PERFORMANCE_COUNTERS #include "script_component.hpp" -// #define ENABLE_PERFORMANCE_COUNTERS ////////////////////////////////////////////////// // PFHs @@ -293,6 +293,17 @@ enableCamShake true; // Set up numerous eventhanders for player controlled units ////////////////////////////////////////////////// +//CBA has events for zeus's display onLoad and onUnload (Need to delay a frame for display to be ready) +private _zeusDisplayChangedFNC = { + [{ + private _data = !(isNull findDisplay 312); + ["zeusDisplayChanged", [ACE_player, _data]] call FUNC(localEvent); + }, []] call FUNC(execNextFrame); +}; +["CBA_curatorOpened", _zeusDisplayChangedFNC] call CBA_fnc_addEventHandler; +["CBA_curatorClosed", _zeusDisplayChangedFNC] call CBA_fnc_addEventHandler; + + // default variables GVAR(OldPlayerVehicle) = vehicle objNull; GVAR(OldPlayerTurret) = [objNull] call FUNC(getTurretIndex); @@ -302,7 +313,6 @@ GVAR(OldPlayerVisionMode) = currentVisionMode objNull; GVAR(OldCameraView) = ""; GVAR(OldVisibleMap) = false; GVAR(OldInventoryDisplayIsOpen) = nil; //@todo check this -GVAR(OldZeusDisplayIsOpen) = false; GVAR(OldIsCamera) = false; // clean up playerChanged eventhandler from preinit and put it in the same PFH as the other events to reduce overhead and guarantee advantageous execution order @@ -314,13 +324,11 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then { // PFH to raise varios events [{ BEGIN_COUNTER(stateChecker); - private "_data"; // reuse one variable to reduce number of variables that have to be set to private each frame // "playerChanged" event - _data = call FUNC(player); + private _data = call FUNC(player); // reuse one variable to reduce number of variables that have to be set to private each frame if !(_data isEqualTo ACE_player) then { - private "_oldPlayer"; - _oldPlayer = ACE_player; + private _oldPlayer = ACE_player; ACE_player = _data; uiNamespace setVariable ["ACE_player", _data]; @@ -393,14 +401,6 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then { ["inventoryDisplayChanged", [ACE_player, _data]] call FUNC(localEvent); }; - // "zeusDisplayChanged" event - _data = !(isNull findDisplay 312); - if !(_data isEqualTo GVAR(OldZeusDisplayIsOpen)) then { - // Raise ACE event locally - GVAR(OldZeusDisplayIsOpen) = _data; - ["zeusDisplayChanged", [ACE_player, _data]] call FUNC(localEvent); - }; - // "activeCameraChanged" event _data = call FUNC(isfeatureCameraActive); if !(_data isEqualTo GVAR(OldIsCamera)) then { diff --git a/addons/interact_menu/XEH_clientInit.sqf b/addons/interact_menu/XEH_clientInit.sqf index 59fb01a353..37df771785 100644 --- a/addons/interact_menu/XEH_clientInit.sqf +++ b/addons/interact_menu/XEH_clientInit.sqf @@ -77,37 +77,6 @@ GVAR(ParsedTextCached) = []; if (GVAR(menuBackground)==2) then {(uiNamespace getVariable [QGVAR(menuBackground), displayNull]) closeDisplay 0;}; }] call EFUNC(common,addEventHandler); -// Let key work with zeus open (not perfect, contains workaround to prevent other CBA keybindings) -["zeusDisplayChanged",{ - if (_this select 1) then { - (finddisplay 312) displayAddEventHandler ["KeyUp", { - _key = ["ACE3 Common","ace_interact_menu_InteractKey"] call CBA_fnc_getKeybind; - _key = _key select 5; - _dik = _key select 0; - _mods = _key select 1; - - if ((_this select 1) == _dik) then { - if ((_this select [2,3]) isEqualTo _mods) then { - [_this,'keyup'] call CBA_events_fnc_keyHandler - }; - }; - }]; - (finddisplay 312) displayAddEventHandler ["KeyDown", { - _key = ["ACE3 Common","ace_interact_menu_InteractKey"] call CBA_fnc_getKeybind; - _key = _key select 5; - _dik = _key select 0; - _mods = _key select 1; - - if ((_this select 1) == _dik) then { - if ((_this select [2,3]) isEqualTo _mods) then { - [_this,'keydown'] call CBA_events_fnc_keyHandler - }; - }; - }]; - }; -}] call EFUNC(common,addEventHandler); - - //Debug to help end users identify mods that break CBA's XEH [{ private ["_badClassnames"]; From 72fe95c7976b4c8c83766d345c701695758f14da Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 30 Dec 2015 01:48:43 -0600 Subject: [PATCH 59/75] Add "isNotInZeus" to canInteractWith Re-fix #1951 (CTRL+V from climb blocking paste in zeus) --- addons/common/XEH_postInit.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index 69d28e3cab..67003397d3 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -449,6 +449,7 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then { {_unit != _target && {vehicle _unit == vehicle _target}} }] call FUNC(addCanInteractWithCondition); +["isNotInZeus", {isNull curatorCamera}] call FUNC(addCanInteractWithCondition); ////////////////////////////////////////////////// // Set up PlayerJIP eventhandler From 2a6042bf619e75e0f9e3b50a18eb7ee4a79ca486 Mon Sep 17 00:00:00 2001 From: bux Date: Wed, 30 Dec 2015 09:11:57 +0100 Subject: [PATCH 60/75] add interaction position and defuse object position and reduce interaction distance --- addons/explosives/CfgAmmo.hpp | 24 +++++++++----- addons/explosives/CfgVehicles.hpp | 33 ++++++++++++++++--- .../explosives/functions/fnc_interactEH.sqf | 12 ++++++- 3 files changed, 54 insertions(+), 15 deletions(-) diff --git a/addons/explosives/CfgAmmo.hpp b/addons/explosives/CfgAmmo.hpp index 8299a979b3..e354e763e8 100644 --- a/addons/explosives/CfgAmmo.hpp +++ b/addons/explosives/CfgAmmo.hpp @@ -21,7 +21,6 @@ class CfgAmmo { class DirectionalBombCore: TimeBombCore; class DirectionalBombBase: DirectionalBombCore; - class APERSTripMine_Wire_Ammo: DirectionalBombBase; class SLAMDirectionalMine_Wire_Ammo: DirectionalBombBase; @@ -31,11 +30,16 @@ class CfgAmmo { class DirectionalBombBase; class ClaymoreDirectionalMine_Remote_Ammo: DirectionalBombBase { ACE_Explosive = "ClaymoreDirectionalMine_Remote_Ammo_Scripted"; + GVAR(defuseObjectPosition[]) = {0, 0, 0.038}; soundActivation[] = {"", 0, 0, 0}; soundDeactivation[] = {"", 0, 0, 0}; }; //class ClaymoreDirectionalMine_Remote_Ammo_Scripted: ClaymoreDirectionalMine_Remote_Ammo; + class APERSTripMine_Wire_Ammo: DirectionalBombBase { + GVAR(defuseObjectPosition[]) = {-1.415, 0, 0.12}; + }; + class SLAMDirectionalMine_Wire_Ammo: DirectionalBombBase { indirectHitRange = 20; ACE_explodeOnDefuse = 1; @@ -55,6 +59,7 @@ class CfgAmmo { class PipeBombBase; class DemoCharge_Remote_Ammo: PipeBombBase { ACE_Explosive = "DemoCharge_Remote_Ammo_Scripted"; + GVAR(defuseObjectPosition[]) = {0.07,0,0.055}; soundActivation[] = {"", 0, 0, 0}; soundDeactivation[] = {"", 0, 0, 0}; hit = 500; @@ -63,17 +68,18 @@ class CfgAmmo { }; class SatchelCharge_Remote_Ammo: PipeBombBase { ACE_Explosive = "SatchelCharge_Remote_Ammo_Scripted"; + GVAR(defuseObjectPosition[]) = {0.1,0.1,0.05}; soundActivation[] = {"", 0, 0, 0}; soundDeactivation[] = {"", 0, 0, 0}; }; - + /*class DemoCharge_Remote_Ammo_Scripted: DemoCharge_Remote_Ammo; class SatchelCharge_Remote_Ammo_Scripted: SatchelCharge_Remote_Ammo;*/ - + class IEDUrbanBig_Remote_Ammo: PipeBombBase { triggerWhenDestroyed = 1; ACE_explodeOnDefuse = 0.02; - soundTrigger[] = {"A3\Sounds_F\weapons\mines\mech_trigger_1", 0.8, 1, 40}; + soundTrigger[] = {"A3\Sounds_F\weapons\mines\mech_trigger_1", 0.8, 1, 40}; }; class IEDUrbanBig_Command_Ammo: IEDUrbanBig_Remote_Ammo { mineTrigger = "RemoteTrigger"; @@ -81,19 +87,19 @@ class CfgAmmo { class IEDUrbanBig_Range_Ammo: IEDUrbanBig_Remote_Ammo { mineTrigger = "RangeTrigger"; }; - + class IEDUrbanSmall_Remote_Ammo: PipeBombBase { triggerWhenDestroyed = 1; ACE_explodeOnDefuse = 0.02; soundTrigger[] = {"A3\Sounds_F\weapons\mines\mech_trigger_1", 0.8, 1, 40}; - }; - class IEDUrbanSmall_Command_Ammo: IEDUrbanSmall_Remote_Ammo { + }; + class IEDUrbanSmall_Command_Ammo: IEDUrbanSmall_Remote_Ammo { mineTrigger = "RemoteTrigger"; }; class IEDUrbanSmall_Range_Ammo: IEDUrbanSmall_Remote_Ammo { mineTrigger = "RangeTrigger"; }; - + class IEDLandBig_Remote_Ammo: PipeBombBase { triggerWhenDestroyed = 1; ACE_explodeOnDefuse = 0.02; @@ -105,7 +111,7 @@ class CfgAmmo { class IEDLandBig_Range_Ammo: IEDLandBig_Remote_Ammo { mineTrigger = "RangeTrigger"; }; - + class IEDLandSmall_Remote_Ammo: PipeBombBase { triggerWhenDestroyed = 1; ACE_explodeOnDefuse = 0.02; diff --git a/addons/explosives/CfgVehicles.hpp b/addons/explosives/CfgVehicles.hpp index de978e0d2b..62ef51a8f2 100644 --- a/addons/explosives/CfgVehicles.hpp +++ b/addons/explosives/CfgVehicles.hpp @@ -62,7 +62,7 @@ class CfgVehicles { class ACE_Actions { class ACE_MainActions { selection = ""; - distance = 5; + distance = 1; condition = "true"; class ACE_Defuse { displayName = CSTRING(Defuse); @@ -73,7 +73,7 @@ class CfgVehicles { icon = PATHTOF(UI\Defuse_ca.paa); priority = 0.8; hotkey = "F"; - distance = 5; + distance = 1; }; }; }; @@ -92,12 +92,12 @@ class CfgVehicles { class ACE_Actions { class ACE_MainActions { selection = ""; - distance = 5; + distance = 1; condition = "true"; class ACE_SetTrigger { selection = ""; displayName = CSTRING(TriggerMenu); - distance = 4; + distance = 1; condition = "true"; statement = ""; insertChildren = QUOTE([ARR_3(_target getVariable QUOTE(QGVAR(class)),_target,_player)] call FUNC(addTriggerActions);); @@ -109,7 +109,7 @@ class CfgVehicles { class ACE_PickUp { selection = ""; displayName = CSTRING(Pickup); - distance = 4; + distance = 1; condition = "true"; statement = QUOTE([ARR_2(_player,_target getVariable QUOTE(QGVAR(class)))] call EFUNC(common,addToInventory);deleteVehicle _target;); showDisabled = 0; @@ -124,6 +124,11 @@ class CfgVehicles { class ACE_Explosives_Place_DemoCharge:ACE_Explosives_Place { displayName = "Demo Charge"; model = "\A3\Weapons_F\explosives\c4_charge_small_d"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.07,0,0.055]"; + }; + }; }; class ACE_Explosives_Place_APERSBoundingMine:ACE_Explosives_Place { displayName = "APERS Bounding Mine"; @@ -136,6 +141,14 @@ class CfgVehicles { class ACE_Explosives_Place_APERSTripwireMine:ACE_Explosives_Place { displayName = "APERS Tripwire Mine"; model = "\A3\Weapons_F\explosives\mine_AP_tripwire"; + + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[1.415,0,0.12]"; + }; + }; + + }; class ACE_Explosives_Place_ATMine:ACE_Explosives_Place { @@ -146,11 +159,21 @@ class CfgVehicles { class ACE_Explosives_Place_Claymore:ACE_Explosives_Place { displayName = "Claymore"; model = "\A3\Weapons_F\explosives\mine_AP_miniclaymore"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[0,0,0.038]"; + }; + }; }; class ACE_Explosives_Place_SatchelCharge:ACE_Explosives_Place { displayName = "Satchel Charge"; model = "\A3\Weapons_F\Explosives\satchel"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.1,-0.1,0.05]"; + }; + }; }; class ACE_Explosives_Place_SLAM:ACE_Explosives_Place { diff --git a/addons/explosives/functions/fnc_interactEH.sqf b/addons/explosives/functions/fnc_interactEH.sqf index 9be7568530..da5e5ec149 100644 --- a/addons/explosives/functions/fnc_interactEH.sqf +++ b/addons/explosives/functions/fnc_interactEH.sqf @@ -45,7 +45,17 @@ if (!("ACE_DefusalKit" in (items ACE_player))) exitWith {}; if (((_x distance ACE_player) < 15) && {!(_x in _minesHelped)}) then { TRACE_2("Making Defuse Helper",(_x),(typeOf _x)); _defuseHelper = "ACE_DefuseObject" createVehicleLocal (getPos _x); - _defuseHelper attachTo [_x, [0,0,0]]; + + private _config = configFile >> "CfgAmmo" >> typeOf _x; + + private _defuseObjectPosition = getArray (_config >> QGVAR(defuseObjectPosition)); + if (_defuseObjectPosition isEqualTo []) then { + _defuseObjectPosition = [0,0,0]; + }; + + TRACE_1("DefuseObjectPosition",(_defuseObjectPosition)); + + _defuseHelper attachTo [_x, _defuseObjectPosition]; _defuseHelper setVariable [QGVAR(Explosive),_x]; _addedDefuseHelpers pushBack _defuseHelper; _minesHelped pushBack _x; From d6c5643790826d8918c1d4ae8344d2e3210fe8b2 Mon Sep 17 00:00:00 2001 From: bux Date: Wed, 30 Dec 2015 09:43:19 +0100 Subject: [PATCH 61/75] improve code style --- addons/explosives/CfgAmmo.hpp | 4 ++-- addons/explosives/CfgVehicles.hpp | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/addons/explosives/CfgAmmo.hpp b/addons/explosives/CfgAmmo.hpp index e354e763e8..843ecdb8e3 100644 --- a/addons/explosives/CfgAmmo.hpp +++ b/addons/explosives/CfgAmmo.hpp @@ -59,7 +59,7 @@ class CfgAmmo { class PipeBombBase; class DemoCharge_Remote_Ammo: PipeBombBase { ACE_Explosive = "DemoCharge_Remote_Ammo_Scripted"; - GVAR(defuseObjectPosition[]) = {0.07,0,0.055}; + GVAR(defuseObjectPosition[]) = {0.07, 0, 0.055}; soundActivation[] = {"", 0, 0, 0}; soundDeactivation[] = {"", 0, 0, 0}; hit = 500; @@ -68,7 +68,7 @@ class CfgAmmo { }; class SatchelCharge_Remote_Ammo: PipeBombBase { ACE_Explosive = "SatchelCharge_Remote_Ammo_Scripted"; - GVAR(defuseObjectPosition[]) = {0.1,0.1,0.05}; + GVAR(defuseObjectPosition[]) = {0.1, 0.1, 0.05}; soundActivation[] = {"", 0, 0, 0}; soundDeactivation[] = {"", 0, 0, 0}; }; diff --git a/addons/explosives/CfgVehicles.hpp b/addons/explosives/CfgVehicles.hpp index 62ef51a8f2..ce90b9079b 100644 --- a/addons/explosives/CfgVehicles.hpp +++ b/addons/explosives/CfgVehicles.hpp @@ -141,14 +141,11 @@ class CfgVehicles { class ACE_Explosives_Place_APERSTripwireMine:ACE_Explosives_Place { displayName = "APERS Tripwire Mine"; model = "\A3\Weapons_F\explosives\mine_AP_tripwire"; - class ACE_Actions: ACE_Actions { class ACE_MainActions: ACE_MainActions { position = "[1.415,0,0.12]"; }; }; - - }; class ACE_Explosives_Place_ATMine:ACE_Explosives_Place { From 0e8eb5fac43f55fc7d4b0fb84e55f86a30860ed7 Mon Sep 17 00:00:00 2001 From: bux Date: Wed, 30 Dec 2015 11:23:52 +0100 Subject: [PATCH 62/75] Remove obsolete hotkey entries --- addons/attach/CfgVehicles.hpp | 2 -- addons/captives/CfgVehicles.hpp | 6 +----- addons/explosives/CfgVehicles.hpp | 4 ---- addons/gestures/CfgVehicles.hpp | 5 +---- addons/hearing/CfgVehicles.hpp | 2 -- addons/interaction/CfgVehicles.hpp | 18 +----------------- addons/medical/ACE_Medical_Actions.hpp | 15 --------------- addons/medical/ACE_Medical_SelfActions.hpp | 15 --------------- addons/overheating/CfgVehicles.hpp | 4 +--- addons/parachute/CfgVehicles.hpp | 1 - 10 files changed, 4 insertions(+), 68 deletions(-) diff --git a/addons/attach/CfgVehicles.hpp b/addons/attach/CfgVehicles.hpp index daf91a43df..e462c0cefa 100644 --- a/addons/attach/CfgVehicles.hpp +++ b/addons/attach/CfgVehicles.hpp @@ -61,7 +61,6 @@ class CfgVehicles { showDisabled = 0; priority = 5; icon = PATHTOF(UI\attach_ca.paa); - // hotkey = "T"; }; class GVAR(Detach) { displayName = CSTRING(Detach); @@ -71,7 +70,6 @@ class CfgVehicles { showDisabled = 0; priority = 5; icon = PATHTOF(UI\detach_ca.paa); - hotkey = "T"; }; }; }; diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp index 0cfda46128..a8215c0cdc 100644 --- a/addons/captives/CfgVehicles.hpp +++ b/addons/captives/CfgVehicles.hpp @@ -32,7 +32,6 @@ class CfgVehicles { showDisabled = 0; icon = QUOTE(PATHTOF(UI\captive_ca.paa)); priority = 2.3; - hotkey = "E"; }; class ACE_StopEscorting { displayName = CSTRING(StopEscorting); @@ -43,7 +42,6 @@ class CfgVehicles { showDisabled = 0; icon = QUOTE(PATHTOF(UI\captive_ca.paa)); priority = 2.3; - hotkey = "E"; }; class ACE_LoadCaptive { displayName = CSTRING(LoadCaptive); @@ -54,7 +52,6 @@ class CfgVehicles { showDisabled = 0; icon = QUOTE(PATHTOF(UI\captive_ca.paa)); priority = 2.2; - hotkey = "L"; }; class GVAR(UnloadCaptive) { displayName = CSTRING(UnloadCaptive); @@ -74,7 +71,6 @@ class CfgVehicles { exceptions[] = {"isNotEscorting"}; showDisabled = 0; priority = 2.3; - hotkey = "C"; }; class ACE_StartSurrenderingSelf { displayName = CSTRING(StartSurrendering); @@ -165,7 +161,7 @@ class CfgVehicles { description = CSTRING(ModuleSurrender_Description); sync[] = {"AnyAI"}; }; - }; + }; class GVAR(ModuleHandcuffed): Module_F { author = ECSTRING(common,ACETeam); category = "ACE"; diff --git a/addons/explosives/CfgVehicles.hpp b/addons/explosives/CfgVehicles.hpp index 7a51a7d765..21f6a2b226 100644 --- a/addons/explosives/CfgVehicles.hpp +++ b/addons/explosives/CfgVehicles.hpp @@ -10,7 +10,6 @@ class CfgVehicles { showDisabled = 1; priority = 4; icon = PATHTOF(UI\Explosives_Menu_ca.paa); - hotkey = "X"; //Sub-menu items class ACE_Detonate { displayName = CSTRING(Detonate); @@ -21,7 +20,6 @@ class CfgVehicles { showDisabled = 1; icon = PATHTOF(UI\Explosives_Menu_ca.paa); priority = 2; - hotkey = "T"; }; class ACE_Place { displayName = CSTRING(Place); @@ -32,7 +30,6 @@ class CfgVehicles { showDisabled = 1; icon = PATHTOF(UI\Place_Explosive_ca.paa); priority = 1; - hotkey = "P"; }; class ACE_Cellphone { displayName = CSTRING(cellphone_displayName); @@ -72,7 +69,6 @@ class CfgVehicles { showDisabled = 0; icon = PATHTOF(UI\Defuse_ca.paa); priority = 0.8; - hotkey = "F"; distance = 5; }; }; diff --git a/addons/gestures/CfgVehicles.hpp b/addons/gestures/CfgVehicles.hpp index 019cffdb45..f9fd3cd076 100644 --- a/addons/gestures/CfgVehicles.hpp +++ b/addons/gestures/CfgVehicles.hpp @@ -10,7 +10,7 @@ class CfgVehicles { showDisabled = 1; priority = 3.5; icon = PATHTOF(UI\gestures_ca.paa); - + class GVAR(Advance) { displayName = CSTRING(BIgestureAdvance); condition = QUOTE(canStand _target); @@ -116,7 +116,6 @@ class CfgVehicles { statement = QUOTE(_target playActionNow ([ARR_2('gestureYes','gestureNod')] select floor random 2);); showDisabled = 1; priority = 1.1; - hotkey = "8"; }; class class GVAR(No) { @@ -125,7 +124,6 @@ class CfgVehicles { statement = QUOTE(_target playActionNow 'gestureNo';); showDisabled = 1; priority = 1.0; - hotkey = "9"; }; class class GVAR(Hi) { @@ -134,7 +132,6 @@ class CfgVehicles { statement = QUOTE(_target playActionNow ([ARR_3('gestureHi','gestureHiB','gestureHiC')] select floor random 3);); showDisabled = 1; priority = 0.9; - hotkey = "0"; }; */ diff --git a/addons/hearing/CfgVehicles.hpp b/addons/hearing/CfgVehicles.hpp index 76a2f90a80..3873377052 100644 --- a/addons/hearing/CfgVehicles.hpp +++ b/addons/hearing/CfgVehicles.hpp @@ -11,7 +11,6 @@ class CfgVehicles { showDisabled = 0; priority = 2.5; icon = PATHTOF(UI\ACE_earplugs_x_ca.paa); - hotkey = "E"; }; class ACE_RemoveEarplugs { displayName = CSTRING(EarPlugs_Off); @@ -21,7 +20,6 @@ class CfgVehicles { showDisabled = 0; priority = 2.5; icon = PATHTOF(UI\ACE_earplugs_x_ca.paa); - hotkey = "E"; }; }; }; diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index 55bc0b1159..f6b5172b70 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -69,7 +69,6 @@ class CfgVehicles { showDisabled = 0; priority = 3.2; icon = PATHTOF(UI\team\team_management_ca.paa); - hotkey = "M"; class ACE_AssignTeamRed { displayName = CSTRING(AssignTeamRed); @@ -78,7 +77,6 @@ class CfgVehicles { showDisabled = 1; icon = PATHTOF(UI\team\team_red_ca.paa); priority = 2.4; - hotkey = "R"; }; class ACE_AssignTeamGreen { displayName = CSTRING(AssignTeamGreen); @@ -87,7 +85,6 @@ class CfgVehicles { showDisabled = 1; icon = PATHTOF(UI\team\team_green_ca.paa); priority = 2.3; - hotkey = "G"; }; class ACE_AssignTeamBlue { displayName = CSTRING(AssignTeamBlue); @@ -96,7 +93,6 @@ class CfgVehicles { showDisabled = 1; icon = PATHTOF(UI\team\team_blue_ca.paa); priority = 2.2; - hotkey = "B"; }; class ACE_AssignTeamYellow { displayName = CSTRING(AssignTeamYellow); @@ -105,7 +101,6 @@ class CfgVehicles { showDisabled = 1; icon = PATHTOF(UI\team\team_yellow_ca.paa); priority = 2.1; - hotkey = "Y"; }; class ACE_UnassignTeam { displayName = CSTRING(LeaveTeam); @@ -114,7 +109,6 @@ class CfgVehicles { showDisabled = 1; icon = PATHTOF(UI\team\team_white_ca.paa); priority = 2.5; - hotkey = "N"; }; }; @@ -125,7 +119,6 @@ class CfgVehicles { showDisabled = 0; priority = 2.6; icon = PATHTOF(UI\team\team_management_ca.paa); - hotkey = "J"; }; class ACE_GetDown { displayName = CSTRING(GetDown); @@ -224,7 +217,6 @@ class CfgVehicles { showDisabled = 1; priority = 3.2; icon = PATHTOF(UI\team\team_management_ca.paa); - hotkey = "M"; class ACE_JoinTeamRed { displayName = CSTRING(JoinTeamRed); @@ -234,7 +226,6 @@ class CfgVehicles { showDisabled = 1; priority = 2.4; icon = PATHTOF(UI\team\team_red_ca.paa); - hotkey = "R"; }; class ACE_JoinTeamGreen { displayName = CSTRING(JoinTeamGreen); @@ -244,7 +235,6 @@ class CfgVehicles { showDisabled = 1; priority = 2.3; icon = PATHTOF(UI\team\team_green_ca.paa); - hotkey = "G"; }; class ACE_JoinTeamBlue { displayName = CSTRING(JoinTeamBlue); @@ -254,7 +244,6 @@ class CfgVehicles { showDisabled = 1; priority = 2.2; icon = PATHTOF(UI\team\team_blue_ca.paa); - hotkey = "B"; }; class ACE_JoinTeamYellow { displayName = CSTRING(JoinTeamYellow); @@ -264,7 +253,6 @@ class CfgVehicles { showDisabled = 1; priority = 2.1; icon = PATHTOF(UI\team\team_yellow_ca.paa); - hotkey = "Y"; }; class ACE_LeaveTeam { displayName = CSTRING(LeaveTeam); @@ -274,7 +262,6 @@ class CfgVehicles { showDisabled = 1; priority = 2.5; icon = PATHTOF(UI\team\team_white_ca.paa); - hotkey = "N"; }; class ACE_BecomeLeader { displayName = CSTRING(BecomeLeader); @@ -284,7 +271,6 @@ class CfgVehicles { showDisabled = 1; priority = 1.0; icon = PATHTOF(UI\team\team_white_ca.paa); - hotkey = "L"; }; class ACE_LeaveGroup { displayName = CSTRING(LeaveGroup); @@ -294,7 +280,6 @@ class CfgVehicles { showDisabled = 1; priority = 1.2; icon = PATHTOF(UI\team\team_management_ca.paa); - hotkey = "M"; }; }; class ACE_Equipment { @@ -305,7 +290,6 @@ class CfgVehicles { showDisabled = 1; priority = 4.5; icon = ""; // @todo - hotkey = "E"; }; }; }; @@ -485,7 +469,7 @@ class CfgVehicles { }; }; }; - + class StaticMGWeapon: StaticWeapon {}; class HMG_01_base_F: StaticMGWeapon {}; diff --git a/addons/medical/ACE_Medical_Actions.hpp b/addons/medical/ACE_Medical_Actions.hpp index 2912c87011..48cf6c87dc 100644 --- a/addons/medical/ACE_Medical_Actions.hpp +++ b/addons/medical/ACE_Medical_Actions.hpp @@ -16,7 +16,6 @@ class ACE_Head { EXCEPTIONS showDisabled = 1; priority = 2; - hotkey = "B"; icon = PATHTOF(UI\icons\bandage.paa); }; // Advanced medical @@ -28,7 +27,6 @@ class ACE_Head { EXCEPTIONS showDisabled = 0; priority = 2; - hotkey = ""; icon = PATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -95,7 +93,6 @@ class ACE_Torso { EXCEPTIONS showDisabled = 1; priority = 2; - hotkey = "B"; enableInside = 1; icon = PATHTOF(UI\icons\bandage.paa); }; @@ -107,7 +104,6 @@ class ACE_Torso { EXCEPTIONS showDisabled = 1; priority = 2; - hotkey = ""; enableInside = 1; }; class TriageCard { @@ -118,7 +114,6 @@ class ACE_Torso { EXCEPTIONS showDisabled = 1; priority = 2; - hotkey = ""; enableInside = 1; icon = PATHTOF(UI\icons\triageCard.paa); }; @@ -130,7 +125,6 @@ class ACE_Torso { EXCEPTIONS showDisabled = 0; priority = 2; - hotkey = ""; icon = ""; }; @@ -143,7 +137,6 @@ class ACE_Torso { EXCEPTIONS showDisabled = 0; priority = 2; - hotkey = ""; enableInside = 1; icon = PATHTOF(UI\icons\bandage.paa); }; @@ -208,7 +201,6 @@ class ACE_ArmLeft { EXCEPTIONS showDisabled = 1; priority = 2; - hotkey = "B"; icon = PATHTOF(UI\icons\bandage.paa); }; @@ -221,7 +213,6 @@ class ACE_ArmLeft { EXCEPTIONS showDisabled = 0; priority = 2; - hotkey = ""; icon = PATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -366,7 +357,6 @@ class ACE_ArmRight { EXCEPTIONS showDisabled = 1; priority = 2; - hotkey = "B"; icon = PATHTOF(UI\icons\bandage.paa); }; @@ -379,7 +369,6 @@ class ACE_ArmRight { EXCEPTIONS showDisabled = 0; priority = 2; - hotkey = ""; icon = PATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -521,7 +510,6 @@ class ACE_LegLeft { EXCEPTIONS showDisabled = 1; priority = 2; - hotkey = "B"; icon = PATHTOF(UI\icons\bandage.paa); }; @@ -535,7 +523,6 @@ class ACE_LegLeft { EXCEPTIONS showDisabled = 0; priority = 2; - hotkey = ""; icon = PATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -664,7 +651,6 @@ class ACE_LegRight { EXCEPTIONS showDisabled = 1; priority = 2; - hotkey = "B"; icon = PATHTOF(UI\icons\bandage.paa); }; @@ -678,7 +664,6 @@ class ACE_LegRight { EXCEPTIONS showDisabled = 0; priority = 2; - hotkey = ""; icon = PATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { diff --git a/addons/medical/ACE_Medical_SelfActions.hpp b/addons/medical/ACE_Medical_SelfActions.hpp index 0f85930f51..4217e43e91 100644 --- a/addons/medical/ACE_Medical_SelfActions.hpp +++ b/addons/medical/ACE_Medical_SelfActions.hpp @@ -1,7 +1,6 @@ class Medical { displayName = CSTRING(Actions_Medical); runOnHover = 1; - hotkey = "M"; exceptions[] = {"isNotInside", "isNotSitting"}; statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation)); condition = "true"; @@ -24,7 +23,6 @@ class Medical { statement = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(treatment)); showDisabled = 1; priority = 2; - hotkey = "B"; icon = PATHTOF(UI\icons\bandage.paa); }; // Advanced medical @@ -36,7 +34,6 @@ class Medical { statement = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(treatment)); showDisabled = 0; priority = 2; - hotkey = ""; icon = PATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -84,7 +81,6 @@ class Medical { modifierFunction = QUOTE([ARR_4(_target,_player,1,_this select 3)] call FUNC(modifyMedicalAction)); showDisabled = 1; priority = 2; - hotkey = ""; icon = PATHTOF(UI\icons\medical_cross.paa); class Bandage { @@ -95,7 +91,6 @@ class Medical { statement = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(treatment)); showDisabled = 1; priority = 2; - hotkey = "B"; icon = PATHTOF(UI\icons\bandage.paa); }; @@ -107,7 +102,6 @@ class Medical { statement = QUOTE([ARR_2(_target, true)] call DFUNC(displayTriageCard)); showDisabled = 1; priority = 2; - hotkey = ""; icon = PATHTOF(UI\icons\triageCard.paa); }; @@ -120,7 +114,6 @@ class Medical { statement = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(treatment)); showDisabled = 0; priority = 2; - hotkey = ""; icon = PATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -162,7 +155,6 @@ class Medical { statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(treatment)); showDisabled = 1; priority = 2; - hotkey = "B"; icon = PATHTOF(UI\icons\bandage.paa); }; @@ -175,7 +167,6 @@ class Medical { statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(treatment)); showDisabled = 0; priority = 2; - hotkey = ""; icon = PATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -264,7 +255,6 @@ class Medical { statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(treatment)); showDisabled = 1; priority = 2; - hotkey = "B"; icon = PATHTOF(UI\icons\bandage.paa); }; @@ -277,7 +267,6 @@ class Medical { statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(treatment)); showDisabled = 0; priority = 2; - hotkey = ""; icon = PATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -362,7 +351,6 @@ class Medical { statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(treatment)); showDisabled = 1; priority = 2; - hotkey = "B"; icon = PATHTOF(UI\icons\bandage.paa); }; @@ -376,7 +364,6 @@ class Medical { statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(treatment)); showDisabled = 0; priority = 2; - hotkey = ""; icon = PATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -449,7 +436,6 @@ class Medical { statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(treatment)); showDisabled = 1; priority = 2; - hotkey = "B"; icon = PATHTOF(UI\icons\bandage.paa); }; @@ -463,7 +449,6 @@ class Medical { statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(treatment)); showDisabled = 0; priority = 2; - hotkey = ""; icon = PATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { diff --git a/addons/overheating/CfgVehicles.hpp b/addons/overheating/CfgVehicles.hpp index a198ef71b6..ec9b07f36c 100644 --- a/addons/overheating/CfgVehicles.hpp +++ b/addons/overheating/CfgVehicles.hpp @@ -11,7 +11,6 @@ class CfgVehicles { showDisabled = 0; priority = 3; icon = QUOTE(PATHTOF(UI\spare_barrel_ca.paa)); - hotkey = "B"; }; class ACE_CheckTemperature { displayName = CSTRING(CheckTemperatureShort); @@ -21,7 +20,6 @@ class CfgVehicles { showDisabled = 0; priority = 2.9; icon = QUOTE(PATHTOF(UI\temp_ca.paa)); - hotkey = "P"; }; }; }; @@ -117,4 +115,4 @@ class CfgVehicles { // Czech class I_Soldier_02_F; class I_Soldier_AR_F:I_Soldier_02_F {MACRO_ADDSPAREBARREL}; class I_Soldier_support_base_F; class I_Soldier_AAR_F:I_Soldier_support_base_F {MACRO_ADDSPAREBARREL}; -}; \ No newline at end of file +}; diff --git a/addons/parachute/CfgVehicles.hpp b/addons/parachute/CfgVehicles.hpp index aefadf2e63..c0f1676eb2 100644 --- a/addons/parachute/CfgVehicles.hpp +++ b/addons/parachute/CfgVehicles.hpp @@ -20,7 +20,6 @@ class CfgVehicles { showDisabled = 0; priority = 2.9; icon = QUOTE(PATHTOF(UI\cut_ca.paa)); - hotkey = "C"; // Did this realy Work? }; }; }; From d372111d3f260cebcb5dc3a2241c0aadd9aa5f05 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 30 Dec 2015 12:23:35 -0600 Subject: [PATCH 63/75] Sitting Cleanup - Add modern privates - Don't add actions, canInteractWith, or EH if not enabled --- addons/sitting/XEH_clientInit.sqf | 17 ++++++++++++----- addons/sitting/functions/fnc_addSitActions.sqf | 15 ++++++++++++--- .../functions/fnc_getRandomAnimation.sqf | 4 +--- addons/sitting/functions/fnc_sit.sqf | 12 +++++------- addons/sitting/functions/fnc_stand.sqf | 3 +-- 5 files changed, 31 insertions(+), 20 deletions(-) diff --git a/addons/sitting/XEH_clientInit.sqf b/addons/sitting/XEH_clientInit.sqf index 23816bd8d7..f7e641480d 100644 --- a/addons/sitting/XEH_clientInit.sqf +++ b/addons/sitting/XEH_clientInit.sqf @@ -3,9 +3,16 @@ // Exit on Headless if (!hasInterface) exitWith {}; -// Add interaction menu exception -["isNotSitting", {isNil {(_this select 0) getVariable QGVAR(isSitting)}}] call EFUNC(common,addCanInteractWithCondition); +["SettingsInitialized", { + TRACE_1("SettingInit", GVAR(enable)); + + //If not enabled, dont't add CanInteractWith Condition or event handlers: + if (!GVAR(enable)) exitWith {}; -// Handle interruptions -["medical_onUnconscious", {_this call DFUNC(handleInterrupt)}] call EFUNC(common,addEventhandler); -["SetHandcuffed", {_this call DFUNC(handleInterrupt)}] call EFUNC(common,addEventhandler); + // Add interaction menu exception + ["isNotSitting", {isNil {(_this select 0) getVariable QGVAR(isSitting)}}] call EFUNC(common,addCanInteractWithCondition); + + // Handle interruptions + ["medical_onUnconscious", {_this call DFUNC(handleInterrupt)}] call EFUNC(common,addEventhandler); + ["SetHandcuffed", {_this call DFUNC(handleInterrupt)}] call EFUNC(common,addEventhandler); +}] call EFUNC(common,addEventHandler); diff --git a/addons/sitting/functions/fnc_addSitActions.sqf b/addons/sitting/functions/fnc_addSitActions.sqf index 18779d9229..98c9aba99f 100644 --- a/addons/sitting/functions/fnc_addSitActions.sqf +++ b/addons/sitting/functions/fnc_addSitActions.sqf @@ -16,19 +16,28 @@ #include "script_component.hpp" params ["_seat"]; -private ["_type", "_sitAction"]; -_type = typeOf _seat; +private _type = typeOf _seat; // Exit if the object is not specified as a seat if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(canSit)) != 1) exitWith {}; +// only run this after the settings are initialized +if !(EGVAR(common,settingsInitFinished)) exitWith { + EGVAR(common,runAtSettingsInitialized) pushBack [FUNC(addSitActions), _this]; +}; + +//If not enabled, don't add actions: +if (!GVAR(enable)) exitWith {}; + // Exit if class already initialized if (_type in GVAR(initializedClasses)) exitWith {}; GVAR(initializedClasses) pushBack _type; -_sitAction = [ +TRACE_1("Adding Sit Action",_type); + +private _sitAction = [ QGVAR(Sit), localize LSTRING(Sit), QUOTE(PATHTOF(UI\sit_ca.paa)), diff --git a/addons/sitting/functions/fnc_getRandomAnimation.sqf b/addons/sitting/functions/fnc_getRandomAnimation.sqf index ca9a9ccfb1..ed49b11e92 100644 --- a/addons/sitting/functions/fnc_getRandomAnimation.sqf +++ b/addons/sitting/functions/fnc_getRandomAnimation.sqf @@ -15,10 +15,8 @@ */ #include "script_component.hpp" -private "_animations"; - // Animations Pool -_animations = [ +private _animations = [ QGVAR(HubSittingChairA_idle1), QGVAR(HubSittingChairA_idle2), QGVAR(HubSittingChairA_idle3), diff --git a/addons/sitting/functions/fnc_sit.sqf b/addons/sitting/functions/fnc_sit.sqf index 24245699bc..7aa1c4c55b 100644 --- a/addons/sitting/functions/fnc_sit.sqf +++ b/addons/sitting/functions/fnc_sit.sqf @@ -16,15 +16,13 @@ */ #include "script_component.hpp" -private ["_actionID", "_configFile", "_sitDirection", "_sitPosition", "_seatPosOrig"]; - params ["_seat", "_player"]; // Overwrite weird position, because Arma decides to set it differently based on current animation/stance... _player switchMove "amovpknlmstpsraswrfldnon"; // Add scroll-wheel action to release object -_actionID = _player addAction [ +private _actionID = _player addAction [ format ["%1", localize LSTRING(Stand)], QUOTE((_this select 0) call FUNC(stand)), nil, @@ -36,9 +34,9 @@ _actionID = _player addAction [ ]; // Read config -_configFile = configFile >> "CfgVehicles" >> typeOf _seat; -_sitDirection = (getDir _seat) + getNumber (_configFile >> QGVAR(sitDirection)); -_sitPosition = getArray (_configFile >> QGVAR(sitPosition)); +private _configFile = configFile >> "CfgVehicles" >> typeOf _seat; +private _sitDirection = (getDir _seat) + getNumber (_configFile >> QGVAR(sitDirection)); +private _sitPosition = getArray (_configFile >> QGVAR(sitPosition)); // Get random animation and perform it (before moving player to ensure correct placement) [_player, call FUNC(getRandomAnimation), 2] call EFUNC(common,doAnimation); // Correctly places when using non-transitional animations @@ -55,7 +53,7 @@ _seat setVariable [QGVAR(seatOccupied), true, true]; // To prevent multiple peop // Add automatical stand PFH in case of interruptions -_seatPosOrig = getPosASL _seat; +private _seatPosOrig = getPosASL _seat; [{ params ["_args", "_pfhId"]; _args params ["_player", "_seat", "_seatPosOrig"]; diff --git a/addons/sitting/functions/fnc_stand.sqf b/addons/sitting/functions/fnc_stand.sqf index 4c08461746..a51f4203fc 100644 --- a/addons/sitting/functions/fnc_stand.sqf +++ b/addons/sitting/functions/fnc_stand.sqf @@ -16,7 +16,6 @@ #include "script_component.hpp" params ["_player"]; -private ["_animation"]; (_player getVariable QGVAR(isSitting)) params ["_seat", "_actionID"]; @@ -24,7 +23,7 @@ private ["_animation"]; _player removeAction _actionID; // Restore animation -_animation = switch (currentWeapon _player) do { +private _animation = switch (currentWeapon _player) do { case "": {"amovpercmstpsnonwnondnon"}; case (primaryWeapon _player): {"amovpercmstpslowwrfldnon"}; case (handgunWeapon _player): {"amovpercmstpslowwpstdnon"}; From f11c2af92153c598c28e94c6d5685c9c0b581949 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 30 Dec 2015 14:55:25 -0600 Subject: [PATCH 64/75] Update XEH_clientInit.sqf --- addons/sitting/XEH_clientInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/sitting/XEH_clientInit.sqf b/addons/sitting/XEH_clientInit.sqf index f7e641480d..a167e0fea5 100644 --- a/addons/sitting/XEH_clientInit.sqf +++ b/addons/sitting/XEH_clientInit.sqf @@ -6,7 +6,7 @@ if (!hasInterface) exitWith {}; ["SettingsInitialized", { TRACE_1("SettingInit", GVAR(enable)); - //If not enabled, dont't add CanInteractWith Condition or event handlers: + //If not enabled, then do not add CanInteractWith Condition or event handlers: if (!GVAR(enable)) exitWith {}; // Add interaction menu exception From 2e211c5a04b7f5ccbea6e44a8298b1395bdae652 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 31 Dec 2015 01:46:24 -0600 Subject: [PATCH 65/75] Fix Medical Triagecard Macro Fix #3087 --- addons/medical/ui/triagecard.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/medical/ui/triagecard.hpp b/addons/medical/ui/triagecard.hpp index f8b0b21a71..b275d80b58 100644 --- a/addons/medical/ui/triagecard.hpp +++ b/addons/medical/ui/triagecard.hpp @@ -113,7 +113,7 @@ class GVAR(triageCard) { animTextureFocused = "#(argb,8,8,3)color(0,0,0,0.9)"; animTexturePressed = "#(argb,8,8,3)color(0,0,0,0.9)"; animTextureDefault = "#(argb,8,8,3)color(0,0,0,0.9)"; - action = QUOTE([false] call FUNC(dropDownTriageCard); GVAR(TriageCardTarget) setvariable [ARR_3('ACE_medical_triageLevel',0,true)];); + action = QUOTE([false] call FUNC(dropDownTriageCard); (GVAR(TriageCardTarget)) setvariable [ARR_3('ACE_medical_triageLevel',0,true)];); }; class selectTriageStatusMinor: selectTriageStatus { idc = 2003; @@ -131,7 +131,7 @@ class GVAR(triageCard) { animTextureFocused = "#(argb,8,8,3)color(0,0.5,0,0.9)"; animTexturePressed = "#(argb,8,8,3)color(0,0.5,0,0.9)"; animTextureDefault = "#(argb,8,8,3)color(0,0.5,0,0.9)"; - action = QUOTE([false] call FUNC(dropDownTriageCard); GVAR(TriageCardTarget) setvariable [ARR_3('ACE_medical_triageLevel',1,true)];); + action = QUOTE([false] call FUNC(dropDownTriageCard); (GVAR(TriageCardTarget)) setvariable [ARR_3('ACE_medical_triageLevel',1,true)];); }; class selectTriageStatusDelayed: selectTriageStatus { idc = 2004; @@ -149,7 +149,7 @@ class GVAR(triageCard) { animTextureFocused = "#(argb,8,8,3)color(0.77,0.51,0.08,0.9)"; animTexturePressed = "#(argb,8,8,3)color(0.77,0.51,0.08,0.9)"; animTextureDefault = "#(argb,8,8,3)color(0.77,0.51,0.08,0.9)"; - action = QUOTE([false] call FUNC(dropDownTriageCard); GVAR(TriageCardTarget) setvariable [ARR_3('ACE_medical_triageLevel',2,true)];); + action = QUOTE([false] call FUNC(dropDownTriageCard); (GVAR(TriageCardTarget)) setvariable [ARR_3('ACE_medical_triageLevel',2,true)];); }; class selectTriageStatusImmediate: selectTriageStatus { idc = 2005; @@ -167,7 +167,7 @@ class GVAR(triageCard) { animTextureFocused = "#(argb,8,8,3)color(1,0.2,0.2,0.9)"; animTexturePressed = "#(argb,8,8,3)color(1,0.2,0.2,0.9)"; animTextureDefault = "#(argb,8,8,3)color(1,0.2,0.2,0.9)"; - action = QUOTE([false] call FUNC(dropDownTriageCard); GVAR(TriageCardTarget) setvariable [ARR_3('ACE_medical_triageLevel', 3, true)];); + action = QUOTE([false] call FUNC(dropDownTriageCard); (GVAR(TriageCardTarget)) setvariable [ARR_3('ACE_medical_triageLevel', 3, true)];); }; class selectTriageStatusDeceased: selectTriageStatus { idc = 2006; @@ -185,7 +185,7 @@ class GVAR(triageCard) { animTextureFocused = "#(argb,8,8,3)color(0,0,0,0.9)"; animTexturePressed = "#(argb,8,8,3)color(0,0,0,0.9)"; animTextureDefault = "#(argb,8,8,3)color(0,0,0,0.9)"; - action = QUOTE([false] call FUNC(dropDownTriageCard); GVAR(TriageCardTarget) setvariable [ARR_3('ACE_medical_triageLevel', 4, true)];); + action = QUOTE([false] call FUNC(dropDownTriageCard); (GVAR(TriageCardTarget)) setvariable [ARR_3('ACE_medical_triageLevel', 4, true)];); }; }; }; \ No newline at end of file From 2d64d54d98f07eb5e6e86a1dcc2c598cc2a91022 Mon Sep 17 00:00:00 2001 From: licht-im-Norden87 Date: Mon, 14 Dec 2015 01:03:14 +0100 Subject: [PATCH 66/75] Update German Stringtable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Iam sure there was a translation some time ago. Someone must have deleted it. spelling mistake Update Stringtable 100% some of them already existed in german language Update stringtable.xml spelling mistake Update stringtable.xml Iam not sure if SSWT is a Scharfschützenzweibein. However, it was used before, i just adpated it. Update stringtable.xml Update stringtable.xml Update stringtable.xml Update stringtable.xml Update stringtable.xml Update stringtable.xml Update stringtable.xml Handelt es sich bei dem Modell den auch um das Produkt von Sharpshooters® http://shop.centermassinc.com/Sharpshooters-Sniper-Weapon-Tripod-Kit-764737932766.htm bzw ist ads erkennbar. Ich persönlich halte die Bezeichnung SSWT-Kit für ein wenig ungünstig. Update stringtable.xml --- addons/dagr/stringtable.xml | 6 +++++- addons/explosives/stringtable.xml | 2 ++ addons/map/stringtable.xml | 22 ++++++++++++++++++---- addons/missileguidance/stringtable.xml | 2 +- addons/rearm/stringtable.xml | 5 +++-- addons/tripod/stringtable.xml | 8 ++++---- 6 files changed, 33 insertions(+), 12 deletions(-) diff --git a/addons/dagr/stringtable.xml b/addons/dagr/stringtable.xml index dea42275f2..61d226377d 100644 --- a/addons/dagr/stringtable.xml +++ b/addons/dagr/stringtable.xml @@ -3,6 +3,7 @@ DAGR + DAGR DAGR DAGR DAGR @@ -11,6 +12,7 @@ Configure DAGR + DAGR konfigurien Konfiguruj DAGR Configurar DAGR Настроить DAGR @@ -19,6 +21,7 @@ Toggle DAGR + DAGR umschalten Przełącz DAGR Mostrar DAGR Вкл./выкл. DAGR @@ -27,6 +30,7 @@ Defense Advanced GPS Receiver + Defense Advanced GPS Receiver Defense Advanced GPS Receiver Defense Advanced GPS Receiver Военный многофункциональный GPS-приёмник @@ -34,4 +38,4 @@ Defense Advanced GPS Receiver - \ No newline at end of file + diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index f23cb2fc00..6cf03d7be2 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -582,6 +582,7 @@ Explode on defusal? + Explodieren beim Entschärfen? Explosão no desarmamento? Eksplozja przy rozbrajaniu? Explodovat při zneškodňování? @@ -592,6 +593,7 @@ Enable certain explosives to explode on defusal? Default: Yes + Sollen bestimmte Sprengladungen beim Entschärfen explodieren? Standard: Ja Ativa certos explosivos para detonar no desarmamento? Padrão: Sim Spraw, aby niektóre ładunki wybuchowe eksplodowały przy próbie ich rozbrojenia? Domyślnie:Tak Umožnit u některých výbušnin explozi při pokusu je zneškodnit? Výchozí: Ano diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index e7b55c56b0..dc4bb9539c 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -14,6 +14,7 @@ Map illumination? + Kartenbeleuchtung Oświetlenie mapy ¿Iluminación de mapa? Kartenausleuchtung @@ -25,6 +26,7 @@ Simulate map lighting based on ambient lighting and player's items? + Simuliere Kartenbeleuchtung auf Basis des Umgebungslichts sowie der mitgeführten Gegenstände? Symuluj oświetlenie mapy bazujące na oświetleniu otoczenia oraz przedmiotach gracza? Calcul la luminosité de la carte en fonction des conditions de lumière Симулировать освещение карты на основе окружающего света и приборов игрока? @@ -33,6 +35,7 @@ Map flashlight glow? + Kartenbeleuchtung durch Dritte erkennbar Poświata latarki Свет фонаря на карте? Brilho de lanterna no mapa? @@ -40,6 +43,7 @@ Add external glow to players who use flashlight on map? + Kartenbeleuchtung mittels Taschenlampe durch Dritte erkennbar? Pokaż poświatę światła latarki na graczu, który używa latarki na widoku mapy? Добавить свет при использовании фонаря на карте? Adicionar brilho externo para jogadores que usam lanterna no mapa? @@ -71,7 +75,7 @@ Limit map zoom? Ograniczony zoom ¿Limitar el zoom de mapa? - Kartenzoom einschränken + Kartenvergrößerung einschränken Omezit přiblížení mapy? Limitar zoom do mapa? Limiter le zoom de la carte? @@ -82,7 +86,7 @@ Limit the amount of zoom available for the map? Ogranicza maksymalny stopień przybliżenia mapy Limita la cantidad de zoom disponible para el mapa - Zoomstufe der Karte einschränken? + Schränkt die maximale Kartenvergrößerung ein. Omezit stupeň přiblížení pro mapu? Limitar a quantidade de zoom disponível para o mapa? Limite le zoom maximum pour la carte? @@ -93,7 +97,7 @@ Show cursor coordinates? Koordynaty pod kursorem ¿Mostrar coordenadas de cursor? - Zeige Cursor-Koordinaten? + Zeige Mauszeiger-Koordinaten? Zobrazit souřadnice u kurzoru? Mostrar coordenadas no cursor? Afficher les coordonnées sur le curseur? @@ -135,6 +139,7 @@ BFT Enable + BFT aktivieren RFA ativo Aktywuj BFT Povolit BFT @@ -145,6 +150,7 @@ Enable Blue Force Tracking. Default: No + Aktiviert Blue Force Tracking. Standard: Nein Ativa Rastreio de Forças Azuis. Padrão: Não Aktywuj Blue Force Tracking. Domyślnie: Nie Povolit Blue Force Tracking. Výchozí: Ne @@ -210,6 +216,7 @@ Flashlights + Taschenlampen Latarki Lanternas Фонари @@ -218,6 +225,7 @@ NVG + NSG Noktowizja Óculos de Visão Noturna ПНВ @@ -226,6 +234,7 @@ On + Ein Włącz Ligado Вкл. @@ -234,6 +243,7 @@ Off + Aus Wyłącz Desligado Выкл. @@ -242,6 +252,7 @@ Increase Brightness + Erhöhe Helligkeit Zwiększ czułość Aumentar brilho Увеличить яркость @@ -250,6 +261,7 @@ Decrease Brightness + Veringere Helligkeit Zmniejsz czułość Diminuir brilho Уменьшить яркость @@ -282,15 +294,17 @@ Set Channel At Start + Setzt Kanal am Spielstart Ust. domyślny kanał Definir canal no início Установить канал на старте Change the starting marker channel at mission start + Setzt den Chat/Markierungskanal am Missionsstart Ustaw domyślny kanał dla markerów przy starcie misji Muda o canal do marcador no início da missão Изменить начальный канал для установки маркеров при запуске миссии - \ No newline at end of file + diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index 3a416007f4..c59c36fd50 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -30,7 +30,7 @@ Misil Hydra-70 DAGR Hydra-70 DAGR Hydra-70 DAGR - Hydra-70 DAGR Rackete + Hydra-70 DAGR Rakete Hydra-70 DAGR Missile Hydra-70 DAGR Míssil Hydra-70 DAGR diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index ebcf6dd2a9..c4e425501b 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -9,6 +9,7 @@ This module allows you to tweak rearm system settings. + Mittels diesem Modul kann das Aufmunitioniersystem angepasst werden. Ten moduł pozwala dostosować ustawienia przezbrajania. Этот модуль позволяет изменить настройки системы перевооружения. @@ -98,7 +99,7 @@ Rearmed %1 rounds of %2 on %3 - %1 Schuss %2 an %3 aufmunitioniert + %3 wurde mit %1 Patronen %2 aufmunitioniert Przezbrojono %1 pocisków %2 na %3 Перевооружено %1 снарядов %2 на %3 @@ -197,4 +198,4 @@ ФАБ-250М-54 - \ No newline at end of file + diff --git a/addons/tripod/stringtable.xml b/addons/tripod/stringtable.xml index c6366ba8de..16dd89a1f9 100644 --- a/addons/tripod/stringtable.xml +++ b/addons/tripod/stringtable.xml @@ -3,7 +3,7 @@ SSWT Kit - Scharfschützenzweibein + Scharfschützendreibein Снайперский штатив Trójnóg snajperski SSWT Kit @@ -15,7 +15,7 @@ Place SSWT Kit - Scharfschützenzweibein aufstellen + Scharfschützendreibein aufstellen Установить снайперский штатив Postaw trójnóg snajperski Place SSWT Kit @@ -30,7 +30,7 @@ Podnieś trójnóg snajperski Coger equipo SSWT Zvednout SSWT soupravu - SSWT-Werkzeug aufheben + Scharfschützendreibein einpacken Pegar kit SSWT Prendre le kit SSWT SSWT készlet felvétele @@ -41,7 +41,7 @@ Reguluj trójnóg snajperski Ajustar equipo SSWT Regulovat SSWT soupravu - SSWT-Werkzeug anpassen + Scharfschützendreibein anpassen Ajustar kit SSWT Régler le kit SSWT SSWT készlet állítása From f28e0920c48ea0968678633f2ebc6b3c434259de Mon Sep 17 00:00:00 2001 From: VKing Date: Thu, 31 Dec 2015 23:38:49 +0100 Subject: [PATCH 67/75] Fix inheritance from #3040 --- optionals/compat_rhs_usf3/CfgVehicles.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/optionals/compat_rhs_usf3/CfgVehicles.hpp b/optionals/compat_rhs_usf3/CfgVehicles.hpp index da48a4cf96..853326e618 100644 --- a/optionals/compat_rhs_usf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_usf3/CfgVehicles.hpp @@ -73,8 +73,8 @@ class cfgVehicles { EGVAR(refuel,fuelCapacity) = 219; }; - class APC_Tracked_02_base_F; - class rhsusf_m113_tank_base : APC_Tracked_02_base_F { + class APC_Tracked_02_base_F: Tank_F {}; + class rhsusf_m113_tank_base: APC_Tracked_02_base_F { EGVAR(refuel,fuelCapacity) = 360; class Turrets: Turrets { class MainTurret: MainTurret { From 0fb2fa1b8f86723388e1da9de173e5798046c667 Mon Sep 17 00:00:00 2001 From: VKing Date: Thu, 31 Dec 2015 23:39:09 +0100 Subject: [PATCH 68/75] Fix style --- optionals/compat_rhs_usf3/CfgVehicles.hpp | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/optionals/compat_rhs_usf3/CfgVehicles.hpp b/optionals/compat_rhs_usf3/CfgVehicles.hpp index 853326e618..9a4e3ec709 100644 --- a/optionals/compat_rhs_usf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_usf3/CfgVehicles.hpp @@ -31,45 +31,45 @@ class cfgVehicles { }; class Heli_light_03_base_F; - class RHS_UH1_Base : Heli_light_03_base_F { + class RHS_UH1_Base: Heli_light_03_base_F { EGVAR(refuel,fuelCapacity) = 1447; }; class Heli_Transport_01_base_F; - class RHS_UH60_Base : Heli_Transport_01_base_F { + class RHS_UH60_Base: Heli_Transport_01_base_F { EGVAR(refuel,fuelCapacity) = 1360; }; class Heli_Transport_02_base_F; - class RHS_CH_47F_base : Heli_Transport_02_base_F { + class RHS_CH_47F_base: Heli_Transport_02_base_F { EGVAR(refuel,fuelCapacity) = 3914; }; class Heli_Attack_01_base_F; - class RHS_AH1Z_base : Heli_Attack_01_base_F { + class RHS_AH1Z_base: Heli_Attack_01_base_F { EGVAR(refuel,fuelCapacity) = 1600; }; - class RHS_AH64_base : Heli_Attack_01_base_F { + class RHS_AH64_base: Heli_Attack_01_base_F { EGVAR(refuel,fuelCapacity) = 1420; }; class MBT_01_arty_base_F; - class rhsusf_m109tank_base : MBT_01_arty_base_F { + class rhsusf_m109tank_base: MBT_01_arty_base_F { EGVAR(refuel,fuelCapacity) = 511; }; class MRAP_01_base_F; - class rhsusf_hmmwe_base : MRAP_01_base_F { + class rhsusf_hmmwe_base: MRAP_01_base_F { EGVAR(refuel,fuelCapacity) = 95; }; - class rhsusf_rg33_base : MRAP_01_base_F { + class rhsusf_rg33_base: MRAP_01_base_F { EGVAR(refuel,fuelCapacity) = 302; }; class Truck_01_base_F; - class rhsusf_fmtv_base : Truck_01_base_F { + class rhsusf_fmtv_base: Truck_01_base_F { EGVAR(refuel,fuelCapacity) = 219; }; @@ -83,17 +83,17 @@ class cfgVehicles { }; }; class APC_Tracked_03_base_F; - class RHS_M2A2_Base : APC_Tracked_03_base_F { + class RHS_M2A2_Base: APC_Tracked_03_base_F { EGVAR(refuel,fuelCapacity) = 746; }; class Plane_CAS_01_base_F; - class RHS_A10 : Plane_CAS_01_base_F { + class RHS_A10: Plane_CAS_01_base_F { EGVAR(refuel,fuelCapacity) = 6223; }; class Plane_Base_F; - class RHS_C130J_Base : Plane_Base_F { + class RHS_C130J_Base: Plane_Base_F { EGVAR(refuel,fuelCapacity) = 25704; }; }; From 5f74daec42a666e7d9886f3c653663ad85097ebd Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 31 Dec 2015 22:28:35 -0600 Subject: [PATCH 69/75] Fix dupe german stringtable entry --- addons/map/stringtable.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index dc4bb9539c..a7eb5482e2 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -17,7 +17,6 @@ Kartenbeleuchtung Oświetlenie mapy ¿Iluminación de mapa? - Kartenausleuchtung Osvětlení mapy Iluminação do mapa? Luminosité From 79a7bb54aa4a2aa57d004ca502f6dbee6172bc82 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 1 Jan 2016 00:14:48 -0600 Subject: [PATCH 70/75] Kill Spectator PFEH when exiting spectator Should fix #2989 There is a race condition between these 4 PFEH and the "onUnload" event in handleInterface. If the PFEHs run first they will use nil variables and throw a script error. This sets them to nil immediately when exiting spectator --- addons/spectator/functions/fnc_setSpectator.sqf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/addons/spectator/functions/fnc_setSpectator.sqf b/addons/spectator/functions/fnc_setSpectator.sqf index 333dc023c9..d8a0219110 100644 --- a/addons/spectator/functions/fnc_setSpectator.sqf +++ b/addons/spectator/functions/fnc_setSpectator.sqf @@ -127,6 +127,12 @@ if (_set) then { GVAR(unitCamera) = nil; GVAR(targetCamera) = nil; + //Kill these PFEH handlers now because the PFEH can run before the `onunload` event is handled + GVAR(camHandler) = nil; + GVAR(compHandler) = nil; + GVAR(iconHandler) = nil; + GVAR(toolHandler) = nil; + // Cleanup display variables GVAR(ctrlKey) = nil; GVAR(heldKeys) = nil; From ecad63e34d8de536ec1f0d60d539f971dff58b17 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 3 Jan 2016 14:47:37 +0100 Subject: [PATCH 71/75] integrate filters pbo into inventory pbo --- addons/filters/$PBOPREFIX$ | 1 - addons/filters/config.cpp | 15 --------- addons/filters/functions/script_component.hpp | 1 - addons/filters/script_component.hpp | 21 ------------ addons/filters/stringtable.xml | 33 ------------------- .../CfgEventHandlers.hpp | 0 .../{filters => inventory}/XEH_postInit.sqf | 0 addons/{filters => inventory}/XEH_preInit.sqf | 0 addons/inventory/config.cpp | 4 ++- .../functions/fnc_addCustomFilter.sqf | 0 .../functions/fnc_currentItemListBox.sqf | 0 .../functions/fnc_filterBackpacks.sqf | 0 .../functions/fnc_filterGrenades.sqf | 0 .../functions/fnc_filterHeadgear.sqf | 0 .../functions/fnc_filterItems.sqf | 0 .../functions/fnc_filterMagazines.sqf | 0 .../functions/fnc_filterMedical.sqf | 0 .../functions/fnc_filterUniforms.sqf | 0 .../functions/fnc_filterVests.sqf | 0 .../functions/fnc_filterWeapons.sqf | 0 .../functions/fnc_forceItemListUpdate.sqf | 0 .../functions/fnc_inventoryDisplayLoaded.sqf | 0 .../functions/fnc_onLBSelChanged.sqf | 0 .../inventory/functions/script_component.hpp | 1 + addons/inventory/script_component.hpp | 13 ++++++-- addons/inventory/stringtable.xml | 28 ++++++++++++++++ 26 files changed, 43 insertions(+), 74 deletions(-) delete mode 100644 addons/filters/$PBOPREFIX$ delete mode 100644 addons/filters/config.cpp delete mode 100644 addons/filters/functions/script_component.hpp delete mode 100644 addons/filters/script_component.hpp delete mode 100644 addons/filters/stringtable.xml rename addons/{filters => inventory}/CfgEventHandlers.hpp (100%) rename addons/{filters => inventory}/XEH_postInit.sqf (100%) rename addons/{filters => inventory}/XEH_preInit.sqf (100%) rename addons/{filters => inventory}/functions/fnc_addCustomFilter.sqf (100%) rename addons/{filters => inventory}/functions/fnc_currentItemListBox.sqf (100%) rename addons/{filters => inventory}/functions/fnc_filterBackpacks.sqf (100%) rename addons/{filters => inventory}/functions/fnc_filterGrenades.sqf (100%) rename addons/{filters => inventory}/functions/fnc_filterHeadgear.sqf (100%) rename addons/{filters => inventory}/functions/fnc_filterItems.sqf (100%) rename addons/{filters => inventory}/functions/fnc_filterMagazines.sqf (100%) rename addons/{filters => inventory}/functions/fnc_filterMedical.sqf (100%) rename addons/{filters => inventory}/functions/fnc_filterUniforms.sqf (100%) rename addons/{filters => inventory}/functions/fnc_filterVests.sqf (100%) rename addons/{filters => inventory}/functions/fnc_filterWeapons.sqf (100%) rename addons/{filters => inventory}/functions/fnc_forceItemListUpdate.sqf (100%) rename addons/{filters => inventory}/functions/fnc_inventoryDisplayLoaded.sqf (100%) rename addons/{filters => inventory}/functions/fnc_onLBSelChanged.sqf (100%) create mode 100644 addons/inventory/functions/script_component.hpp diff --git a/addons/filters/$PBOPREFIX$ b/addons/filters/$PBOPREFIX$ deleted file mode 100644 index 06f96465a9..0000000000 --- a/addons/filters/$PBOPREFIX$ +++ /dev/null @@ -1 +0,0 @@ -z\ace\addons\filters \ No newline at end of file diff --git a/addons/filters/config.cpp b/addons/filters/config.cpp deleted file mode 100644 index a7b7bae6df..0000000000 --- a/addons/filters/config.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "script_component.hpp" - -class CfgPatches { - class ADDON { - units[] = {}; - weapons[] = {}; - requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"ace_common"}; - author[] = {""}; - authorUrl = ""; - VERSION_CONFIG; - }; -}; - -#include "CfgEventHandlers.hpp" diff --git a/addons/filters/functions/script_component.hpp b/addons/filters/functions/script_component.hpp deleted file mode 100644 index 500275e357..0000000000 --- a/addons/filters/functions/script_component.hpp +++ /dev/null @@ -1 +0,0 @@ -#include "\z\ace\addons\filters\script_component.hpp" \ No newline at end of file diff --git a/addons/filters/script_component.hpp b/addons/filters/script_component.hpp deleted file mode 100644 index e96072de4b..0000000000 --- a/addons/filters/script_component.hpp +++ /dev/null @@ -1,21 +0,0 @@ -#define COMPONENT filters -#include "\z\ace\addons\main\script_mod.hpp" - -#ifdef DEBUG_ENABLED_FILTERS - #define DEBUG_MODE_FULL -#endif - -#ifdef DEBUG_ENABLED_FILTERS - #define DEBUG_SETTINGS DEBUG_ENABLED_FILTERS -#endif - -#include "\z\ace\addons\main\script_macros.hpp" - -#define IDC_FILTERLISTS 6554 -#define IDC_ITEMLIST_GROUND 632 -#define IDC_ITEMLIST_SOLDIER 640 -#define IDC_ITEMLIST_UNIFORM 633 -#define IDC_ITEMLIST_VEST 638 -#define IDC_ITEMLIST_BACKPACK 619 - -#define DUMMY_VALUE 127 diff --git a/addons/filters/stringtable.xml b/addons/filters/stringtable.xml deleted file mode 100644 index a7f9e30ec6..0000000000 --- a/addons/filters/stringtable.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - Backpacks - Rucksäcke - - - Headgear - Kopfbedeckungen - - - Glasses - Brillen - - - Uniforms - Uniformen - - - Vests - Westen - - - Grenades - Granaten - - - Medical - Sanimaterial - - - diff --git a/addons/filters/CfgEventHandlers.hpp b/addons/inventory/CfgEventHandlers.hpp similarity index 100% rename from addons/filters/CfgEventHandlers.hpp rename to addons/inventory/CfgEventHandlers.hpp diff --git a/addons/filters/XEH_postInit.sqf b/addons/inventory/XEH_postInit.sqf similarity index 100% rename from addons/filters/XEH_postInit.sqf rename to addons/inventory/XEH_postInit.sqf diff --git a/addons/filters/XEH_preInit.sqf b/addons/inventory/XEH_preInit.sqf similarity index 100% rename from addons/filters/XEH_preInit.sqf rename to addons/inventory/XEH_preInit.sqf diff --git a/addons/inventory/config.cpp b/addons/inventory/config.cpp index 1190525901..f0982a46b4 100644 --- a/addons/inventory/config.cpp +++ b/addons/inventory/config.cpp @@ -6,11 +6,13 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; - author[] = {"Pabst Mirror"}; + author[] = {"Pabst Mirror, commy2"}; authorUrl = "https://github.com/PabstMirror/"; VERSION_CONFIG; }; }; +#include "CfgEventHandlers.hpp" + #include "RscDisplayInventory.hpp" #include "ACE_Settings.hpp" diff --git a/addons/filters/functions/fnc_addCustomFilter.sqf b/addons/inventory/functions/fnc_addCustomFilter.sqf similarity index 100% rename from addons/filters/functions/fnc_addCustomFilter.sqf rename to addons/inventory/functions/fnc_addCustomFilter.sqf diff --git a/addons/filters/functions/fnc_currentItemListBox.sqf b/addons/inventory/functions/fnc_currentItemListBox.sqf similarity index 100% rename from addons/filters/functions/fnc_currentItemListBox.sqf rename to addons/inventory/functions/fnc_currentItemListBox.sqf diff --git a/addons/filters/functions/fnc_filterBackpacks.sqf b/addons/inventory/functions/fnc_filterBackpacks.sqf similarity index 100% rename from addons/filters/functions/fnc_filterBackpacks.sqf rename to addons/inventory/functions/fnc_filterBackpacks.sqf diff --git a/addons/filters/functions/fnc_filterGrenades.sqf b/addons/inventory/functions/fnc_filterGrenades.sqf similarity index 100% rename from addons/filters/functions/fnc_filterGrenades.sqf rename to addons/inventory/functions/fnc_filterGrenades.sqf diff --git a/addons/filters/functions/fnc_filterHeadgear.sqf b/addons/inventory/functions/fnc_filterHeadgear.sqf similarity index 100% rename from addons/filters/functions/fnc_filterHeadgear.sqf rename to addons/inventory/functions/fnc_filterHeadgear.sqf diff --git a/addons/filters/functions/fnc_filterItems.sqf b/addons/inventory/functions/fnc_filterItems.sqf similarity index 100% rename from addons/filters/functions/fnc_filterItems.sqf rename to addons/inventory/functions/fnc_filterItems.sqf diff --git a/addons/filters/functions/fnc_filterMagazines.sqf b/addons/inventory/functions/fnc_filterMagazines.sqf similarity index 100% rename from addons/filters/functions/fnc_filterMagazines.sqf rename to addons/inventory/functions/fnc_filterMagazines.sqf diff --git a/addons/filters/functions/fnc_filterMedical.sqf b/addons/inventory/functions/fnc_filterMedical.sqf similarity index 100% rename from addons/filters/functions/fnc_filterMedical.sqf rename to addons/inventory/functions/fnc_filterMedical.sqf diff --git a/addons/filters/functions/fnc_filterUniforms.sqf b/addons/inventory/functions/fnc_filterUniforms.sqf similarity index 100% rename from addons/filters/functions/fnc_filterUniforms.sqf rename to addons/inventory/functions/fnc_filterUniforms.sqf diff --git a/addons/filters/functions/fnc_filterVests.sqf b/addons/inventory/functions/fnc_filterVests.sqf similarity index 100% rename from addons/filters/functions/fnc_filterVests.sqf rename to addons/inventory/functions/fnc_filterVests.sqf diff --git a/addons/filters/functions/fnc_filterWeapons.sqf b/addons/inventory/functions/fnc_filterWeapons.sqf similarity index 100% rename from addons/filters/functions/fnc_filterWeapons.sqf rename to addons/inventory/functions/fnc_filterWeapons.sqf diff --git a/addons/filters/functions/fnc_forceItemListUpdate.sqf b/addons/inventory/functions/fnc_forceItemListUpdate.sqf similarity index 100% rename from addons/filters/functions/fnc_forceItemListUpdate.sqf rename to addons/inventory/functions/fnc_forceItemListUpdate.sqf diff --git a/addons/filters/functions/fnc_inventoryDisplayLoaded.sqf b/addons/inventory/functions/fnc_inventoryDisplayLoaded.sqf similarity index 100% rename from addons/filters/functions/fnc_inventoryDisplayLoaded.sqf rename to addons/inventory/functions/fnc_inventoryDisplayLoaded.sqf diff --git a/addons/filters/functions/fnc_onLBSelChanged.sqf b/addons/inventory/functions/fnc_onLBSelChanged.sqf similarity index 100% rename from addons/filters/functions/fnc_onLBSelChanged.sqf rename to addons/inventory/functions/fnc_onLBSelChanged.sqf diff --git a/addons/inventory/functions/script_component.hpp b/addons/inventory/functions/script_component.hpp new file mode 100644 index 0000000000..07c5e38d2d --- /dev/null +++ b/addons/inventory/functions/script_component.hpp @@ -0,0 +1 @@ +#include "\z\ace\addons\inventory\script_component.hpp" \ No newline at end of file diff --git a/addons/inventory/script_component.hpp b/addons/inventory/script_component.hpp index 248f324b36..b013e08570 100644 --- a/addons/inventory/script_component.hpp +++ b/addons/inventory/script_component.hpp @@ -2,11 +2,20 @@ #include "\z\ace\addons\main\script_mod.hpp" #ifdef DEBUG_ENABLED_INVENTORY - #define DEBUG_MODE_FULL + #define DEBUG_MODE_FULL #endif #ifdef DEBUG_SETTINGS_INVENTORY - #define DEBUG_SETTINGS DEBUG_SETTINGS_INVENTORY + #define DEBUG_SETTINGS DEBUG_SETTINGS_INVENTORY #endif #include "\z\ace\addons\main\script_macros.hpp" + +#define IDC_FILTERLISTS 6554 +#define IDC_ITEMLIST_GROUND 632 +#define IDC_ITEMLIST_SOLDIER 640 +#define IDC_ITEMLIST_UNIFORM 633 +#define IDC_ITEMLIST_VEST 638 +#define IDC_ITEMLIST_BACKPACK 619 + +#define DUMMY_VALUE 127 diff --git a/addons/inventory/stringtable.xml b/addons/inventory/stringtable.xml index 04cac46b87..af21fe3ddf 100644 --- a/addons/inventory/stringtable.xml +++ b/addons/inventory/stringtable.xml @@ -25,5 +25,33 @@ Normalmente il menù inventario è scalato in base alle dimensioni interfaccia. Questa opzione di permette di ingrandirlo ulteriormente ma senza aumentare la dimensione del testo. Normalmente o tamanho da tela do inventário é ditada pelo tamanho da UI. Isso permite aumentar o tamanho da tela de inventário, mas não aumenta o tamanho da fonte, permitindo que mais linhas sejam visualizadas. + + Backpacks + Rucksäcke + + + Headgear + Kopfbedeckungen + + + Glasses + Brillen + + + Uniforms + Uniformen + + + Vests + Westen + + + Grenades + Granaten + + + Medical + Sanimaterial + From 427628045cffe61ff6ff954ed8197f5031674647 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 3 Jan 2016 15:21:38 +0100 Subject: [PATCH 72/75] fix ThingX capitalization, fix #3076 --- addons/concertina_wire/CfgVehicles.hpp | 4 ++-- addons/dragging/CfgVehicles.hpp | 2 +- addons/interaction/CfgVehicles.hpp | 8 ++++---- addons/repair/CfgVehicles.hpp | 4 ++-- addons/sandbag/CfgVehicles.hpp | 4 ++-- addons/tripod/CfgVehicles.hpp | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/addons/concertina_wire/CfgVehicles.hpp b/addons/concertina_wire/CfgVehicles.hpp index 81304da853..2a0b8cead2 100644 --- a/addons/concertina_wire/CfgVehicles.hpp +++ b/addons/concertina_wire/CfgVehicles.hpp @@ -1,7 +1,7 @@ class CfgVehicles { class Fence; - class thingX; + class ThingX; class NonStrategic; class ACE_ConcertinaWireNoGeo: Fence { @@ -94,7 +94,7 @@ class CfgVehicles { }; }; }; - class ACE_ConcertinaWireCoil: thingX { + class ACE_ConcertinaWireCoil: ThingX { XEH_ENABLED; scope = 2; displayName = $STR_ACE_CONCERTINA_WIRECOIL; diff --git a/addons/dragging/CfgVehicles.hpp b/addons/dragging/CfgVehicles.hpp index b7128341bb..bbd362f758 100644 --- a/addons/dragging/CfgVehicles.hpp +++ b/addons/dragging/CfgVehicles.hpp @@ -85,7 +85,7 @@ class CfgVehicles { }; // Barrier - class RoadCone_F: thingX { + class RoadCone_F: ThingX { XEH_ENABLED; GVAR(canCarry) = 1; GVAR(carryPosition[]) = {0,1,1}; diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index 55bc0b1159..d49e75dd16 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -513,8 +513,8 @@ class CfgVehicles { }; }; - class thingX; - class ReammoBox_F: thingX { + class ThingX; + class ReammoBox_F: ThingX { class ACE_Actions { class ACE_MainActions { displayName = CSTRING(MainAction); @@ -535,7 +535,7 @@ class CfgVehicles { class ACE_SelfActions {}; }; - class ACE_RepairItem_Base: thingX { + class ACE_RepairItem_Base: ThingX { class ACE_Actions { class ACE_MainActions { displayName = CSTRING(MainAction); @@ -548,7 +548,7 @@ class CfgVehicles { class ACE_SelfActions {}; }; - class RoadCone_F: thingX { + class RoadCone_F: ThingX { class ACE_Actions { class ACE_MainActions { displayName = CSTRING(MainAction); diff --git a/addons/repair/CfgVehicles.hpp b/addons/repair/CfgVehicles.hpp index 0b370bd2d3..1968023881 100644 --- a/addons/repair/CfgVehicles.hpp +++ b/addons/repair/CfgVehicles.hpp @@ -302,8 +302,8 @@ class CfgVehicles { MACRO_REPAIRVEHICLE }; - class thingX; - class ACE_RepairItem_Base: thingX { + class ThingX; + class ACE_RepairItem_Base: ThingX { XEH_ENABLED; icon = "iconObject_circle"; mapSize = 0.7; diff --git a/addons/sandbag/CfgVehicles.hpp b/addons/sandbag/CfgVehicles.hpp index a2b255318e..71276b91d7 100644 --- a/addons/sandbag/CfgVehicles.hpp +++ b/addons/sandbag/CfgVehicles.hpp @@ -42,8 +42,8 @@ class CfgVehicles { }; };*/ - class thingX; - class ACE_SandbagObject: thingX { + class ThingX; + class ACE_SandbagObject: ThingX { author = ECSTRING(common,ACETeam); XEH_ENABLED; scope = 1; diff --git a/addons/tripod/CfgVehicles.hpp b/addons/tripod/CfgVehicles.hpp index 60486b8afb..de16d6867a 100644 --- a/addons/tripod/CfgVehicles.hpp +++ b/addons/tripod/CfgVehicles.hpp @@ -32,8 +32,8 @@ class CfgVehicles { }; }; - class thingX; - class ACE_TripodObject: thingX { + class ThingX; + class ACE_TripodObject: ThingX { XEH_ENABLED; EGVAR(dragging,canDrag) = 1; EGVAR(dragging,dragPosition[]) = {0,1,0}; From 3974c255a0674a26b1935c940db7aa0bb3beaf32 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 3 Jan 2016 15:27:16 +0100 Subject: [PATCH 73/75] fix usage of deprectated fired XEH, fix #3088 --- addons/goggles/CfgEventHandlers.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/goggles/CfgEventHandlers.hpp b/addons/goggles/CfgEventHandlers.hpp index 67f17fda18..ed2cba5561 100644 --- a/addons/goggles/CfgEventHandlers.hpp +++ b/addons/goggles/CfgEventHandlers.hpp @@ -19,10 +19,10 @@ class Extended_Killed_EventHandlers { }; }; -class Extended_Fired_EventHandlers { +class Extended_FiredBIS_EventHandlers { class CAManBase { class ADDON { - fired = QUOTE(if (local (_this select 0)) then {_this call FUNC(handleFired)}); + firedBIS = QUOTE(if (local (_this select 0)) then {_this call FUNC(handleFired)}); }; }; }; From a72e07fcaa980be5553f11ed6c374be57d29b5f2 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 3 Jan 2016 11:01:14 -0600 Subject: [PATCH 74/75] Goggles - change some events to be client only all these events have `if (_unit != ACE_player) exitWith {true};` --- addons/goggles/CfgEventHandlers.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/goggles/CfgEventHandlers.hpp b/addons/goggles/CfgEventHandlers.hpp index ed2cba5561..8c24b6d5ec 100644 --- a/addons/goggles/CfgEventHandlers.hpp +++ b/addons/goggles/CfgEventHandlers.hpp @@ -14,7 +14,7 @@ class Extended_PostInit_EventHandlers { class Extended_Killed_EventHandlers { class CAManBase { class ADDON { - killed = QUOTE(_this call FUNC(handleKilled)); + clientKilled = QUOTE(_this call FUNC(handleKilled)); }; }; }; @@ -22,7 +22,7 @@ class Extended_Killed_EventHandlers { class Extended_FiredBIS_EventHandlers { class CAManBase { class ADDON { - firedBIS = QUOTE(if (local (_this select 0)) then {_this call FUNC(handleFired)}); + clientFiredBIS = QUOTE(if (local (_this select 0)) then {_this call FUNC(handleFired)}); }; }; }; @@ -30,7 +30,7 @@ class Extended_FiredBIS_EventHandlers { class Extended_Explosion_EventHandlers { class CAManBase { class ADDON { - explosion = QUOTE(if (local (_this select 0)) then {_this call FUNC(handleExplosion)}); + clientExplosion = QUOTE(if (local (_this select 0)) then {_this call FUNC(handleExplosion)}); }; }; }; From 509e142de82f8fe1246dddb5f8a49d00ba9b4779 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Tue, 5 Jan 2016 22:42:37 +0100 Subject: [PATCH 75/75] bump version 3.4.2 --- README.md | 4 ++-- addons/main/script_mod.hpp | 2 +- mod.cpp | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f313999923..d95c152904 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@

- ACE3 Version + ACE3 Version - + ACE3 Download diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index 91041e1f4c..912736c264 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -5,7 +5,7 @@ #define MAJOR 3 #define MINOR 4 -#define PATCHLVL 1 +#define PATCHLVL 2 #define BUILD 0 #define VERSION MAJOR.MINOR.PATCHLVL.BUILD diff --git a/mod.cpp b/mod.cpp index f20926ece5..b780224df9 100644 --- a/mod.cpp +++ b/mod.cpp @@ -1,8 +1,8 @@ -name = "Advanced Combat Environment 3.4.1"; +name = "Advanced Combat Environment 3.4.2"; picture = "logo_ace3_ca.paa"; actionName = "GitHub"; action = "https://github.com/acemod/ACE3"; -description = "ACE3 - Version 3.4.1"; +description = "ACE3 - Version 3.4.2"; logo = "logo_ace3_ca.paa"; logoOver = "logo_ace3_ca.paa"; tooltip = "ACE3";