From bd1a6d14a80ba54238ebdceaffe179df13d1afe3 Mon Sep 17 00:00:00 2001 From: jokoho48 Date: Sun, 9 Aug 2015 02:33:00 +0200 Subject: [PATCH 01/51] Code cleanup of Dagr module --- addons/dagr/XEH_postInit.sqf | 2 +- addons/dagr/functions/fnc_menuInit.sqf | 16 ++++++++-------- addons/dagr/functions/fnc_outputData.sqf | 13 +++++++------ addons/dagr/functions/fnc_outputVector.sqf | 19 +++++++++---------- addons/dagr/functions/fnc_outputWP.sqf | 19 ++++++++++--------- addons/dagr/functions/fnc_toggleOverlay.sqf | 5 +++-- 6 files changed, 38 insertions(+), 36 deletions(-) diff --git a/addons/dagr/XEH_postInit.sqf b/addons/dagr/XEH_postInit.sqf index 39f2a7ea28..883a73d418 100644 --- a/addons/dagr/XEH_postInit.sqf +++ b/addons/dagr/XEH_postInit.sqf @@ -30,4 +30,4 @@ GVAR(vectorConnected) = false; GVAR(noVectorData) = true; GVAR(vectorGrid) = "00000000"; -["RangerfinderData", {_this call FUNC(handleRangeFinderData)}] call EFUNC(common,addEventHandler); +["RangerfinderData", FUNC(handleRangeFinderData)] call EFUNC(common,addEventHandler); diff --git a/addons/dagr/functions/fnc_menuInit.sqf b/addons/dagr/functions/fnc_menuInit.sqf index 739f41df0b..e4fb341537 100644 --- a/addons/dagr/functions/fnc_menuInit.sqf +++ b/addons/dagr/functions/fnc_menuInit.sqf @@ -74,13 +74,13 @@ GVAR(menuRun) = true; GVAR(menuRun) = false; [_this select 1] call CBA_fnc_removePerFrameHandler; }; - + if (GVAR(MENU_B)) then { GVAR(menu) = "main"; GVAR(selection) = 0; GVAR(numSelections) = 5; }; - + if (!GVAR(add) && !GVAR(edit)) then { if (GVAR(DOWN)) then { GVAR(selection) = (GVAR(numSelections) + GVAR(selection) + 1); @@ -90,7 +90,7 @@ GVAR(menuRun) = true; }; GVAR(selection) = if (GVAR(numSelections) > 0) then { GVAR(selection) % GVAR(numSelections) } else { 0 }; }; - + if (GVAR(LEFT)) then { GVAR(pointer) = (8 + GVAR(pointer) - 1); }; @@ -98,7 +98,7 @@ GVAR(menuRun) = true; GVAR(pointer) = (8 + GVAR(pointer) + 1); }; GVAR(pointer) = GVAR(pointer) % 8; - + (__dsp displayCtrl __PSelection1) ctrlSetText ""; (__dsp displayCtrl __PSelection2) ctrlSetText ""; (__dsp displayCtrl __PSelection3) ctrlSetText ""; @@ -113,7 +113,7 @@ GVAR(menuRun) = true; (__dsp displayCtrl __Selection2) ctrlSetText ""; (__dsp displayCtrl __Selection3) ctrlSetText ""; (__dsp displayCtrl __Selection4) ctrlSetText ""; - + (__dsp displayCtrl __F1) ctrlSetText ""; (__dsp displayCtrl __F2) ctrlSetText ""; (__dsp displayCtrl __F3) ctrlSetText ""; @@ -124,7 +124,7 @@ GVAR(menuRun) = true; (__dsp displayCtrl __Option2) ctrlSetText ""; (__dsp displayCtrl __Option3) ctrlSetText ""; (__dsp displayCtrl __Option4) ctrlSetText ""; - + switch (GVAR(menu)) do { case "main": { if (GVAR(SEL)) then { @@ -500,7 +500,7 @@ GVAR(menuRun) = true; case 6: { GVAR(digit6) = (10 + GVAR(digit6) - 1) % 10 }; case 7: { GVAR(digit7) = (10 + GVAR(digit7) - 1) % 10 }; case 8: { GVAR(digit8) = (10 + GVAR(digit8) - 1) % 10 }; - }; + }; }; }; }; @@ -590,7 +590,7 @@ GVAR(menuRun) = true; }; }; }; - + if (!GVAR(busy)) then { GVAR(F3) = false; GVAR(F2) = false; diff --git a/addons/dagr/functions/fnc_outputData.sqf b/addons/dagr/functions/fnc_outputData.sqf index 9bcf244fbc..63350c71a3 100644 --- a/addons/dagr/functions/fnc_outputData.sqf +++ b/addons/dagr/functions/fnc_outputData.sqf @@ -31,18 +31,19 @@ if (GVAR(outputPFH) != -1) exitWith {}; GVAR(outputPFH) = [{ private["_dagrElevation", "_dagrGrid", "_dagrHeading", "_dagrSpeed", "_dagrTime", "_elevation", "_gridArray", "_speed"]; - + // Abort Condition if !(GVAR(run) && [ACE_player, "ACE_DAGR"] call EFUNC(common,hasItem)) exitWith { GVAR(outputPFH) = -1; 135471 cutText ["", "PLAIN"]; [_this select 1] call CBA_fnc_removePerFrameHandler; }; - + // GRID _gridArray = [(getPos ACE_player), false] call EFUNC(common,getMapGridFromPos); - _dagrGrid = format ["%1 %2", ((_gridArray select 0) select [0,4]), ((_gridArray select 1) select [0,4])]; - + _gridArray params ["_gridArrayX","_gridArrayY"]; + _dagrGrid = format ["%1 %2", ((_gridArrayX) select [0,4]), ((_gridArrayY) select [0,4])]; + // SPEED _speed = speed (vehicle ACE_player); _speed = floor (_speed * 10) / 10; @@ -68,7 +69,7 @@ GVAR(outputPFH) = [{ __gridControl ctrlSetText format ["%1", _dagrGrid]; __speedControl ctrlSetText format ["%1", _dagrSpeed]; __elevationControl ctrlSetText format ["%1", _dagrElevation]; - __headingControl ctrlSetText (if (!GVAR(useDegrees)) then { format ["%1", _dagrHeading] } else { format ["%1 ", _dagrHeading] }); + __headingControl ctrlSetText (if (!GVAR(useDegrees)) then { format ["%1", _dagrHeading] } else { format ["%1 �", _dagrHeading] }); __timeControl ctrlSetText format ["%1", _dagrTime]; - + }, GVAR(updateInterval), []] call CBA_fnc_addPerFrameHandler; diff --git a/addons/dagr/functions/fnc_outputVector.sqf b/addons/dagr/functions/fnc_outputVector.sqf index ad9068344f..7787a7ff96 100644 --- a/addons/dagr/functions/fnc_outputVector.sqf +++ b/addons/dagr/functions/fnc_outputVector.sqf @@ -14,7 +14,7 @@ */ #include "script_component.hpp" -private ["_pos", "_xGrid", "_yGrid", "_dagrGrid", "_bearing", "_dagrDist", "_dagrElevation", "_dagrTime", "_elevation", "_xCoord", "_yCoord"]; +private ["_xGrid", "_yGrid", "_dagrGrid", "_bearing", "_dagrDist", "_dagrElevation", "_dagrTime", "_elevation", "_xCoord", "_yCoord"]; 135471 cutRsc ["DAGR_DISPLAY", "plain down"]; @@ -30,15 +30,14 @@ private ["_pos", "_xGrid", "_yGrid", "_dagrGrid", "_bearing", "_dagrDist", "_dag __background ctrlSetText QUOTE(PATHTOF(UI\dagr_vector.paa)); if (GVAR(noVectorData)) exitwith {}; - -_pos = [GVAR(LAZPOS) select 0, GVAR(LAZPOS) select 1]; +GVAR(LAZPOS) params ["_lazPosX", "_lazPosY", "_lazPosZ"]; // Incase grids go neg due to 99-00 boundry -if (_pos select 0 < 0) then {_pos set [0, (_pos select 0) + 99999];}; -if (_pos select 1 < 0) then {_pos set [1, (_pos select 1) + 99999];}; - +if (_lazPosX < 0) then { _lazPosX = _lazPosX + 99999;}; +if (_lazPosY < 0) then {_lazPosY = _lazPosY + 99999;}; + // Find laser position -_xGrid = toArray Str(round(_pos select 0)); +_xGrid = toArray Str(round _lazPosX); while {count _xGrid < 5} do { _xGrid = [48] + _xGrid; @@ -47,7 +46,7 @@ _xGrid resize 4; _xGrid = toString _xGrid; _xGrid = parseNumber _xGrid; -_yGrid = toArray Str(round(_pos select 1)); +_yGrid = toArray Str(round _lazPosY); while {count _yGrid < 5} do { _yGrid = [48] + _yGrid; }; @@ -72,7 +71,7 @@ _yCoord = switch true do { _dagrGrid = _xCoord + " " + _yCoord; // Find target elevation -_elevation = floor ((GVAR(LAZPOS) select 2) + EGVAR(common,mapAltitude)); +_elevation = floor (_lazPosZ) + EGVAR(common,mapAltitude)); _dagrElevation = str _elevation + "m"; // Time @@ -94,5 +93,5 @@ GVAR(vectorGrid) = _dagrGrid; __gridControl ctrlSetText format ["%1", _dagrGrid]; __speedControl ctrlSetText format ["%1", _dagrDist]; __elevationControl ctrlSetText format ["%1", _dagrElevation]; -__headingControl ctrlSetText (if (!GVAR(useDegrees)) then { format ["%1", _bearing] } else { format ["%1", _bearing] }); +__headingControl ctrlSetText (if (!GVAR(useDegrees)) then { format ["%1", _bearing] } else { format ["%1�", _bearing] }); __timeControl ctrlSetText format ["%1", _dagrTime]; diff --git a/addons/dagr/functions/fnc_outputWP.sqf b/addons/dagr/functions/fnc_outputWP.sqf index 71c3e7c1a7..77bee00398 100644 --- a/addons/dagr/functions/fnc_outputWP.sqf +++ b/addons/dagr/functions/fnc_outputWP.sqf @@ -31,22 +31,23 @@ if (GVAR(outputPFH) != -1) exitWith {}; GVAR(outputPFH) = [{ private["_MYpos", "_WPpos", "_bearing", "_dagrDistance", "_dagrGrid", "_dagrHeading", "_distance", "_gridArray"]; - + // Abort Condition if !(GVAR(run) && [ACE_player, "ACE_DAGR"] call EFUNC(common,hasItem)) exitWith { GVAR(outputPFH) = -1; 135471 cutText ["", "PLAIN"]; [_this select 1] call CBA_fnc_removePerFrameHandler; }; - + // GRID _gridArray = [(getPos ACE_player), false] call EFUNC(common,getMapGridFromPos); - _dagrGrid = format ["%1 %2", ((_gridArray select 0) select [0,4]), ((_gridArray select 1) select [0,4])]; + _gridArray params ["_gridArrayX","_gridArrayY"]; + _dagrGrid = format ["%1 %2", (_gridArrayX select [0,4]), (_gridArrayY select [0,4])]; // WP Grid _xGrid2 = floor (DAGR_WP_INFO / 10000); _yGrid2 = DAGR_WP_INFO - _xGrid2 * 10000; - + _xCoord2 = switch true do { case (_xGrid2 >= 1000): { "" + Str(_xGrid2) }; case (_xGrid2 >= 100): { "0" + Str(_xGrid2) }; @@ -60,7 +61,7 @@ GVAR(outputPFH) = [{ case (_yGrid2 >= 10): { "00" + Str(_yGrid2) }; default { "000" + Str(_yGrid2) }; }; - + _dagrGrid2 = _xCoord2 + " " + _yCoord2; // Distance @@ -69,7 +70,7 @@ GVAR(outputPFH) = [{ _distance = _MYpos distance _WPpos; _distance = floor (_distance * 10) / 10; _dagrDistance = str _distance + "m"; - + // Heading _dagrHeading = floor (if (GVAR(useDegrees)) then { direction (vehicle ACE_player) @@ -79,12 +80,12 @@ GVAR(outputPFH) = [{ // WP Heading _bearing = floor ((_WPpos vectorDiff _MYpos) call CBA_fnc_vectDir); - + // Output __gridControl ctrlSetText format ["%1", _dagrGrid]; __speedControl ctrlSetText format ["%1", _bearing]; __elevationControl ctrlSetText format ["%1", _dagrGrid2]; - __headingControl ctrlSetText (if (!GVAR(useDegrees)) then { format ["%1", _dagrHeading] } else { format ["%1", _dagrHeading] }); + __headingControl ctrlSetText (if (!GVAR(useDegrees)) then { format ["%1", _dagrHeading] } else { format ["%1�", _dagrHeading] }); __timeControl ctrlSetText format ["%1", _dagrDistance]; - + }, GVAR(updateInterval), []] call CBA_fnc_addPerFrameHandler; diff --git a/addons/dagr/functions/fnc_toggleOverlay.sqf b/addons/dagr/functions/fnc_toggleOverlay.sqf index 1fcb87d0ff..d48a83ae51 100644 --- a/addons/dagr/functions/fnc_toggleOverlay.sqf +++ b/addons/dagr/functions/fnc_toggleOverlay.sqf @@ -23,11 +23,12 @@ if (GVAR(run)) then { }; GVAR(hidden) = true; [{ - EXPLODE_1_PVT(_this select 0,_vehicle); + params ["_args", "_idPFH"]; + _args params ["_vehicle"]; if (!GVAR(run) || (!alive ACE_player) || (vehicle ACE_player != _vehicle)) exitWith { GVAR(run) = false; 135471 cutText ["", "PLAIN"]; - [_this select 1] call CBA_fnc_removePerFrameHandler; + [_idPFH] call CBA_fnc_removePerFrameHandler; }; if (cameraView == "GUNNER") then { if (!GVAR(hidden)) then { From f65f6e9b729ed3462bbf1e8ab70adbd099e52004 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sun, 27 Sep 2015 17:19:40 +0100 Subject: [PATCH 02/51] Add support for virtual cargo Allows cargo objects to be added via classname and reduces simulation/synchronization overhead. Objects become physical upon unloading and cannot be re-made virtual, only scripts can add such virtual objects. Also separates the player feedback from the loading/unloading code and adds a progress bar. --- addons/cargo/XEH_postInit.sqf | 44 ++++++++++++++++++- addons/cargo/functions/fnc_addCargoItem.sqf | 17 ++----- addons/cargo/functions/fnc_canLoadItemIn.sqf | 24 +++++++--- addons/cargo/functions/fnc_canUnloadItem.sqf | 9 ++-- addons/cargo/functions/fnc_getSizeItem.sqf | 22 +++++++--- .../cargo/functions/fnc_handleDestroyed.sqf | 9 ++-- addons/cargo/functions/fnc_loadItem.sqf | 25 ++++------- addons/cargo/functions/fnc_onMenuOpen.sqf | 5 ++- addons/cargo/functions/fnc_startLoadIn.sqf | 21 ++++++--- addons/cargo/functions/fnc_startUnload.sqf | 17 ++++++- addons/cargo/functions/fnc_unloadItem.sqf | 38 +++++++--------- .../functions/fnc_validateCargoSpace.sqf | 4 +- addons/cargo/stringtable.xml | 12 +++++ 13 files changed, 159 insertions(+), 88 deletions(-) diff --git a/addons/cargo/XEH_postInit.sqf b/addons/cargo/XEH_postInit.sqf index 6501044c9d..2aeb3ab630 100644 --- a/addons/cargo/XEH_postInit.sqf +++ b/addons/cargo/XEH_postInit.sqf @@ -1,5 +1,45 @@ #include "script_component.hpp" -["LoadCargo", {_this call FUNC(loadItem)}] call EFUNC(common,addEventHandler); -["UnloadCargo", {_this call FUNC(unloadItem)}] call EFUNC(common,addEventHandler); ["AddCargoByClass", {_this call FUNC(addCargoItem)}] call EFUNC(common,addEventHandler); + +["LoadCargo", { + (_this select 0) params ["_item","_vehicle"]; + private ["_loaded", "_hint", "_itemName", "_vehicleName"]; + + _loaded = [_item, _vehicle] call FUNC(loadItem); + + // Show hint as feedback + _hint = [LSTRING(LoadingFailed), LSTRING(LoadedItem)] select _loaded; + _itemName = getText (configFile >> "CfgVehicles" >> typeOf _item >> "displayName"); + _vehicleName = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); + + ["displayTextStructured", [[_hint, _itemName, _vehicleName], 3.0]] call EFUNC(common,localEvent); + + if (_loaded) then { + // Invoke listenable event + ["cargoLoaded", [_item, _vehicle]] call EFUNC(common,globalEvent); + }; +}] call EFUNC(common,addEventHandler); + +["UnloadCargo", { + (_this select 0) params ["_item","_vehicle"]; + private ["_unloaded", "_itemClass", "_hint", "_itemName", "_vehicleName"]; + + _unloaded = [_item, _vehicle] call FUNC(unloadItem); + + _itemClass = if (typeName _item == "STRING") then {_item} else {typeOf _item}; + + // Show hint as feedback + _hint = [LSTRING(UnloadingFailed), LSTRING(UnloadedItem)] select _unloaded; + _itemName = getText (configFile >> "CfgVehicles" >> _itemClass >> "displayName"); + _vehicleName = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); + + ["displayTextStructured", [[_hint, _itemName, _vehicleName], 3.0]] call EFUNC(common,localEvent); + + if (_unloaded) then { + // Invoke listenable event + ["cargoUnloaded", [_item, _vehicle]] call EFUNC(common,globalEvent); + }; + + // TOOO maybe drag/carry the unloaded item? +}] call EFUNC(common,addEventHandler); diff --git a/addons/cargo/functions/fnc_addCargoItem.sqf b/addons/cargo/functions/fnc_addCargoItem.sqf index 1233d0228d..f3282d7718 100644 --- a/addons/cargo/functions/fnc_addCargoItem.sqf +++ b/addons/cargo/functions/fnc_addCargoItem.sqf @@ -21,18 +21,9 @@ private ["_position", "_item", "_i"]; params ["_itemClass", "_vehicle", ["_amount", 1]]; TRACE_3("params",_itemClass,_vehicle,_amount); -_position = getPos _vehicle; -_position set [1, (_position select 1) + 1]; -_position set [2, (_position select 2) + 7.5]; - for "_i" from 1 to _amount do { - _item = createVehicle [_itemClass, _position, [], 0, "CAN_COLLIDE"]; - - // Load item or delete it if no space left - if !([_item, _vehicle] call FUNC(loadItem)) exitWith { - deleteVehicle _item; - }; - - // Invoke listenable event - ["cargoAddedByClass", [_itemClass, _vehicle, _amount]] call EFUNC(common,globalEvent); + [_item, _vehicle] call FUNC(loadItem); }; + +// Invoke listenable event +["cargoAddedByClass", [_itemClass, _vehicle, _amount]] call EFUNC(common,globalEvent); diff --git a/addons/cargo/functions/fnc_canLoadItemIn.sqf b/addons/cargo/functions/fnc_canLoadItemIn.sqf index 8cfe9e194b..fda60aaf65 100644 --- a/addons/cargo/functions/fnc_canLoadItemIn.sqf +++ b/addons/cargo/functions/fnc_canLoadItemIn.sqf @@ -3,7 +3,7 @@ * Check if item can be loaded into other Object. * * Arguments: - * 0: Item Object + * 0: Item * 1: Holder Object (Vehicle) * * Return value: @@ -16,14 +16,24 @@ */ #include "script_component.hpp" -params ["_item", "_vehicle"]; +params [["_item", "", [objNull,""]], "_vehicle"]; if (speed _vehicle > 1 || (((getPos _vehicle) select 2) > 3)) exitWith {false}; -private "_itemSize"; -_itemSize = ([_item] call FUNC(getSizeItem)); +private ["_itemSize", "_validItem"]; +_itemSize = [_item] call FUNC(getSizeItem); -(_itemSize > 0) && -{alive _item && alive _vehicle} && -{(_item distance _vehicle <= MAX_LOAD_DISTANCE)} && +if (typeName _item == "STRING") then { + _validItem = + isClass (configFile >> "CfgVehicles" >> _item) && + {getNumber (configFile >> "CfgVehicles" >> _item >> QGVAR(canLoad)) == 1}; +} else { + _validItem = + (alive _item) && + {(_item distance _vehicle) <= MAX_LOAD_DISTANCE}; +}; + +_validItem && +{_itemSize > 0} && +{alive _vehicle} && {_itemSize <= ([_vehicle] call FUNC(getCargoSpaceLeft))} diff --git a/addons/cargo/functions/fnc_canUnloadItem.sqf b/addons/cargo/functions/fnc_canUnloadItem.sqf index 779a7533a9..8c741a5448 100644 --- a/addons/cargo/functions/fnc_canUnloadItem.sqf +++ b/addons/cargo/functions/fnc_canUnloadItem.sqf @@ -16,18 +16,19 @@ */ #include "script_component.hpp" -private ["_loaded", "_validVehiclestate", "_emptyPos"]; - params ["_item", "_vehicle"]; +private ["_loaded", "_itemClass", "_validVehiclestate", "_emptyPos"]; _loaded = _vehicle getVariable [QGVAR(loaded), []]; if !(_item in _loaded) exitWith {false}; +_itemClass = if (typeName _item == "STRING") then {_item} else {typeOf _item}; + _validVehiclestate = true; _emptyPos = []; if (_vehicle isKindOf "Ship" ) then { if !(speed _vehicle <1 && {(((getPosATL _vehicle) select 2) < 2)}) then {_validVehiclestate = false}; - _emptyPos = ((getPosASL _vehicle) call EFUNC(common,ASLtoPosition) findEmptyPosition [0, 15, typeOf _item]); // TODO: if spot is underwater pick another spot. + _emptyPos = ((getPosASL _vehicle) call EFUNC(common,ASLtoPosition) findEmptyPosition [0, 15, _itemClass]); // TODO: if spot is underwater pick another spot. } else { if (_vehicle isKindOf "Air" ) then { if !(speed _vehicle <1 && {isTouchingGround _vehicle}) then {_validVehiclestate = false}; @@ -35,7 +36,7 @@ if (_vehicle isKindOf "Ship" ) then { _emptyPos = [(_emptyPos select 0) + random(5), (_emptyPos select 1) + random(5), _emptyPos select 2 ]; } else { if !(speed _vehicle <1 && {(((getPosATL _vehicle) select 2) < 2)}) then {_validVehiclestate = false}; - _emptyPos = ((getPosASL _vehicle) call EFUNC(common,ASLtoPosition) findEmptyPosition [0, 15, typeOf _item]); + _emptyPos = ((getPosASL _vehicle) call EFUNC(common,ASLtoPosition) findEmptyPosition [0, 15, _itemClass]); }; }; diff --git a/addons/cargo/functions/fnc_getSizeItem.sqf b/addons/cargo/functions/fnc_getSizeItem.sqf index dacd6a4982..807251365c 100644 --- a/addons/cargo/functions/fnc_getSizeItem.sqf +++ b/addons/cargo/functions/fnc_getSizeItem.sqf @@ -3,7 +3,7 @@ * Get the cargo size of an object. * * Arguments: - * 0: Object + * 0: Item * * Return value: * Cargo size (default: -1) @@ -15,14 +15,24 @@ */ #include "script_component.hpp" -private "_config"; - params ["_item"]; +private ["_isVirtual","_itemClass","_config"]; +scopeName "return"; -_config = (configFile >> "CfgVehicles" >> typeOf _item >> QGVAR(size)); +_isVirtual = (typeName _item == "STRING"); +_itemClass = if (_isVirtual) then {_item} else {typeOf _item}; +_config = (configFile >> "CfgVehicles" >> _itemClass >> QGVAR(size)); -if (isNumber (_config)) exitWith { - _item getVariable [QGVAR(size), getNumber (_config)] +if (_isVirtual) then { + if (isNumber _config) then { + (getNumber _config) breakOut "return"; + }; +} else { + _config = (configFile >> "CfgVehicles" >> typeOf _item >> QGVAR(size)); + + if (isNumber _config) then { + (_item getVariable [QGVAR(size), getNumber _config]) breakOut "return"; + }; }; -1 diff --git a/addons/cargo/functions/fnc_handleDestroyed.sqf b/addons/cargo/functions/fnc_handleDestroyed.sqf index c11dd3bfad..1022497719 100644 --- a/addons/cargo/functions/fnc_handleDestroyed.sqf +++ b/addons/cargo/functions/fnc_handleDestroyed.sqf @@ -20,12 +20,13 @@ params ["_vehicle"]; private["_loaded"]; _loaded = _vehicle getVariable [QGVAR(loaded), []]; -if (count _loaded == 0) exitWith {}; +if (_loaded isEqualTo []) exitWith {}; { - // TODO deleteVehicle or just delete vehicle? Do we want to be able to recover destroyed equipment? - deleteVehicle _x; - //_x setDamage 1; + // TODO Do we want to be able to recover destroyed equipment? + if (typeName _x == "OBJECT") then { + deleteVehicle _x; + }; } count _loaded; [_vehicle] call FUNC(validateCargoSpace); diff --git a/addons/cargo/functions/fnc_loadItem.sqf b/addons/cargo/functions/fnc_loadItem.sqf index 3c79604a04..5f519476ef 100644 --- a/addons/cargo/functions/fnc_loadItem.sqf +++ b/addons/cargo/functions/fnc_loadItem.sqf @@ -1,9 +1,10 @@ /* * Author: Glowbal * Load object into vehicle. + * Objects loaded via classname remain virtual until unloaded. * * Arguments: - * 0: Object + * 0: Item * 1: Vehicle * * Return value: @@ -16,10 +17,9 @@ */ #include "script_component.hpp" +params [["_item","",[objNull,""]], ["_vehicle",objNull,[objNull]]]; private ["_loaded", "_space", "_itemSize"]; -params ["_item", "_vehicle"]; - if !([_item, _vehicle] call FUNC(canLoadItemIn)) exitWith {false}; _loaded = _vehicle getVariable [QGVAR(loaded), []]; @@ -30,19 +30,10 @@ _space = [_vehicle] call FUNC(getCargoSpaceLeft); _itemSize = [_item] call FUNC(getSizeItem); _vehicle setVariable [QGVAR(space), _space - _itemSize, true]; -detach _item; -_item attachTo [_vehicle,[0,0,100]]; -["hideObjectGlobal", [_item, true]] call EFUNC(common,serverEvent); - -// show hint -private ["_itemName", "_vehicleName"]; - -_itemName = getText (configFile >> "CfgVehicles" >> typeOf _item >> "displayName"); -_vehicleName = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); - -["displayTextStructured", [[localize LSTRING(LoadedItem), _itemName, _vehicleName], 3.0]] call EFUNC(common,localEvent); - -// Invoke listenable event -["cargoLoaded", [_item, _vehicle]] call EFUNC(common,globalEvent); +if (typeName _item == "OBJECT") then { + detach _item; + _item attachTo [_vehicle,[0,0,-100]]; + ["hideObjectGlobal", [_item, true]] call EFUNC(common,serverEvent); +}; true diff --git a/addons/cargo/functions/fnc_onMenuOpen.sqf b/addons/cargo/functions/fnc_onMenuOpen.sqf index 031bea01cc..85557835bf 100644 --- a/addons/cargo/functions/fnc_onMenuOpen.sqf +++ b/addons/cargo/functions/fnc_onMenuOpen.sqf @@ -22,7 +22,7 @@ params ["_display"]; uiNamespace setVariable [QGVAR(menuDisplay), _display]; [{ - private ["_display","_loaded", "_ctrl", "_label"]; + private ["_display","_loaded", "_ctrl", "_class", "_label"]; disableSerialization; _display = uiNamespace getVariable QGVAR(menuDisplay); if (isnil "_display") exitWith { @@ -40,7 +40,8 @@ uiNamespace setVariable [QGVAR(menuDisplay), _display]; lbClear _ctrl; { - _ctrl lbAdd (getText(configfile >> "CfgVehicles" >> typeOf _x >> "displayName")); + _class = if (typeName _x == "STRING") then {_x} else {typeOf _x}; + _ctrl lbAdd (getText(configfile >> "CfgVehicles" >> _class >> "displayName")); true } count _loaded; diff --git a/addons/cargo/functions/fnc_startLoadIn.sqf b/addons/cargo/functions/fnc_startLoadIn.sqf index b4ba50fbb6..1ce5d62407 100644 --- a/addons/cargo/functions/fnc_startLoadIn.sqf +++ b/addons/cargo/functions/fnc_startLoadIn.sqf @@ -16,16 +16,25 @@ #include "script_component.hpp" params ["_player", "_object"]; +private ["_vehicle", "_size", "_displayName"]; -private ["_nearestVehicle"]; -_nearestVehicle = [_player] call FUNC(findNearestVehicle); +_vehicle = [_player] call FUNC(findNearestVehicle); -if (isNull _nearestVehicle || _nearestVehicle isKindOf "Cargo_Base_F") then { +if (isNull _vehicle || _vehicle isKindOf "Cargo_Base_F") then { { - if ([_object, _x] call FUNC(canLoadItemIn)) exitWith {_nearestVehicle = _x}; + if ([_object, _x] call FUNC(canLoadItemIn)) exitWith {_vehicle = _x}; } foreach (nearestObjects [_player, ["Cargo_base_F", "Land_PaperBox_closed_F"], MAX_LOAD_DISTANCE]); }; -if (isNull _nearestVehicle) exitWith {false}; +if (isNull _vehicle) exitWith {false}; -[_object, _nearestVehicle] call FUNC(loadItem) +// Start progress bar +if ([_object, _vehicle] call FUNC(canLoadItemIn)) then { + _size = [_object] call FUNC(getSizeItem); + + [5 * _size, [_object,_vehicle], "LoadCargo", {}, localize LSTRING(LoadingItem)] call EFUNC(common,progressBar); +} else { + _displayName = getText (configFile >> "CfgVehicles" >> typeOf _object >> "displayName"); + + ["displayTextStructured", [[LSTRING(LoadingFailed), _displayName], 3.0]] call EFUNC(common,localEvent); +}; diff --git a/addons/cargo/functions/fnc_startUnload.sqf b/addons/cargo/functions/fnc_startUnload.sqf index 28ae034167..013de1dc64 100644 --- a/addons/cargo/functions/fnc_startUnload.sqf +++ b/addons/cargo/functions/fnc_startUnload.sqf @@ -20,7 +20,7 @@ private ["_display", "_loaded", "_ctrl", "_selected", "_item"]; disableSerialization; _display = uiNamespace getVariable QGVAR(menuDisplay); -if (isnil "_display") exitWith {}; +if (isNil "_display") exitWith {}; _loaded = GVAR(interactionVehicle) getVariable [QGVAR(loaded), []]; if (count _loaded == 0) exitWith {}; @@ -32,4 +32,17 @@ _selected = (lbCurSel _ctrl) max 0; if (count _loaded <= _selected) exitWith {}; _item = _loaded select _selected; -[_item, GVAR(interactionVehicle)] call FUNC(unloadItem); + +// Start progress bar +private ["_size", "_itemClass", "_displayName"]; + +if ([_item, GVAR(interactionVehicle)] call FUNC(canUnloadItem)) then { + _size = [_item] call FUNC(getSizeItem); + + [5 * _size, [_item, GVAR(interactionVehicle)], "UnloadCargo", {}, localize LSTRING(UnloadingItem)] call EFUNC(common,progressBar); +} else { + _itemClass = if (typeName _item == "STRING") then {_item} else {typeOf _item}; + _displayName = getText (configFile >> "CfgVehicles" >> _itemClass >> "displayName"); + + ["displayTextStructured", [[LSTRING(UnloadingFailed), _displayName], 3.0]] call EFUNC(common,localEvent); +}; diff --git a/addons/cargo/functions/fnc_unloadItem.sqf b/addons/cargo/functions/fnc_unloadItem.sqf index 2630f2104a..81cca7154b 100644 --- a/addons/cargo/functions/fnc_unloadItem.sqf +++ b/addons/cargo/functions/fnc_unloadItem.sqf @@ -3,7 +3,7 @@ * Unload object from vehicle. * * Arguments: - * 0: Object + * 0: Item * 1: Vehicle * * Return value: @@ -16,20 +16,21 @@ */ #include "script_component.hpp" -private ["_loaded", "_space", "_itemSize", "_emptyPos", "_validVehiclestate"]; - params ["_item", "_vehicle"]; +private ["_loaded", "_space", "_itemSize", "_emptyPos", "_validVehiclestate"]; if !([_item, _vehicle] call FUNC(canUnloadItem)) exitWith { false }; +_itemClass = if (typeName _item == "STRING") then {_item} else {typeOf _item}; + _validVehiclestate = true; _emptyPos = []; if (_vehicle isKindOf "Ship" ) then { if !(speed _vehicle <1 && {(((getPosATL _vehicle) select 2) < 2)}) then {_validVehiclestate = false}; TRACE_1("SHIP Ground Check", getPosATL _vehicle ); - _emptyPos = ((getPosASL _vehicle) call EFUNC(common,ASLtoPosition) findEmptyPosition [0, 15, typeOf _item]); // TODO: if spot is underwater pick another spot. + _emptyPos = ((getPosASL _vehicle) call EFUNC(common,ASLtoPosition) findEmptyPosition [0, 15, _itemClass]); // TODO: if spot is underwater pick another spot. } else { if (_vehicle isKindOf "Air" ) then { if !(speed _vehicle <1 && {isTouchingGround _vehicle}) then {_validVehiclestate = false}; @@ -39,38 +40,29 @@ if (_vehicle isKindOf "Ship" ) then { } else { if !(speed _vehicle <1 && {(((getPosATL _vehicle) select 2) < 2)}) then {_validVehiclestate = false}; TRACE_1("Vehicle Ground Check", isTouchingGround _vehicle); - _emptyPos = ((getPosASL _vehicle) call EFUNC(common,ASLtoPosition) findEmptyPosition [0, 13, typeOf _item]); + _emptyPos = ((getPosASL _vehicle) call EFUNC(common,ASLtoPosition) findEmptyPosition [0, 13, _itemClass]); }; }; TRACE_1("getPosASL Vehicle Check", getPosASL _vehicle); if (!_validVehiclestate) exitWith {false}; -if (count _emptyPos == 0) exitWith {false}; //consider displaying text saying there are no safe places to exit the vehicle +if (count _emptyPos == 0) exitWith {false}; _loaded = _vehicle getVariable [QGVAR(loaded), []]; -_loaded = _loaded - [_item]; +_loaded deleteAt (_loaded find _item); _vehicle setVariable [QGVAR(loaded), _loaded, true]; _space = [_vehicle] call FUNC(getCargoSpaceLeft); _itemSize = [_item] call FUNC(getSizeItem); _vehicle setVariable [QGVAR(space), (_space + _itemSize), true]; -detach _item; -_item setPosASL (_emptyPos call EFUNC(common,PositiontoASL)); -["hideObjectGlobal", [_item, false]] call EFUNC(common,serverEvent); - -// show hint -private ["_itemName", "_vehicleName"]; - -_itemName = getText (configFile >> "CfgVehicles" >> typeOf _item >> "displayName"); -_vehicleName = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); - -["displayTextStructured", [[localize LSTRING(UnloadedItem), _itemName, _vehicleName], 3.0]] call EFUNC(common,localEvent); - -// TOOO maybe drag/carry the unloaded item? - -// Invoke listenable event -["cargoUnloaded", [_item, _vehicle]] call EFUNC(common,globalEvent); +if (typeName _item == "OBJECT") then { + detach _item; + _item setPosASL (_emptyPos call EFUNC(common,PositiontoASL)); + ["hideObjectGlobal", [_item, false]] call EFUNC(common,serverEvent); +} else { + createVehicle [_item, _emptyPos, [], 0, ""]; +}; true diff --git a/addons/cargo/functions/fnc_validateCargoSpace.sqf b/addons/cargo/functions/fnc_validateCargoSpace.sqf index 6caf664ca5..7634b131e6 100644 --- a/addons/cargo/functions/fnc_validateCargoSpace.sqf +++ b/addons/cargo/functions/fnc_validateCargoSpace.sqf @@ -24,7 +24,7 @@ _loaded = _vehicle getVariable [QGVAR(loaded), []]; _newLoaded = []; _totalSpaceOccupied = 0; { - if !(isNull _x) then { + if ((typeName _x == "STRING") || {!isNull _x}) then { _newLoaded pushback _x; _totalSpaceOccupied = _totalSpaceOccupied + ([_x] call FUNC(getSizeItem)); }; @@ -35,4 +35,4 @@ if (count _loaded != count _newLoaded) then { _vehicle setVariable [QGVAR(loaded), _newLoaded, true]; }; -_vehicle setVariable [QGVAR(space), getNumber (configFile >> "CfgVehicles" >> typeof _vehicle >> QGVAR(space)) - _totalSpaceOccupied, true]; +_vehicle setVariable [QGVAR(space), getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> QGVAR(space)) - _totalSpaceOccupied, true]; diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index 7f9ac40a15..6902a1aae1 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -95,5 +95,17 @@ 1%<br/>kirakodva ebből:<br/>%2 %1<br/>разгружен из<br/>%2 + + Loading Cargo + + + Unloading Cargo + + + %1<br/>could not be loaded + + + %1<br/>could not be unloaded + From f3c4ff66cad70ed547538900b4d904ca78b5a5ff Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 8 Oct 2015 02:51:54 -0500 Subject: [PATCH 03/51] #2701 - Fix gun smoke on AMV --- addons/realisticnames/CfgWeapons.hpp | 4 ++++ addons/vehicles/CfgVehicles.hpp | 2 +- addons/vehicles/CfgWeapons.hpp | 10 +++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/addons/realisticnames/CfgWeapons.hpp b/addons/realisticnames/CfgWeapons.hpp index 83534a1083..205542dd68 100644 --- a/addons/realisticnames/CfgWeapons.hpp +++ b/addons/realisticnames/CfgWeapons.hpp @@ -530,6 +530,10 @@ class CfgWeapons { displayName = "MAG 58"; }; + class ACE_LMG_coax_APC_Wheeled_01: LMG_coax { + displayName = "MAG 58"; + }; + class ACE_LMG_coax_APC_Tracked_03: LMG_coax { displayName = "L94A1"; }; diff --git a/addons/vehicles/CfgVehicles.hpp b/addons/vehicles/CfgVehicles.hpp index a07781a413..559906074d 100644 --- a/addons/vehicles/CfgVehicles.hpp +++ b/addons/vehicles/CfgVehicles.hpp @@ -281,7 +281,7 @@ class CfgVehicles { class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F { class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"autocannon_40mm_CTWS","ACE_LMG_coax_MBT_01"}; + weapons[] = {"autocannon_40mm_CTWS", "ACE_LMG_coax_APC_Wheeled_01"}; magazines[] = {"60Rnd_40mm_GPR_Tracer_Red_shells","40Rnd_40mm_APFSDS_Tracer_Red_shells","2000Rnd_762x51_Belt_Green"}; }; }; diff --git a/addons/vehicles/CfgWeapons.hpp b/addons/vehicles/CfgWeapons.hpp index 76feb1818a..0f5ad77e7a 100644 --- a/addons/vehicles/CfgWeapons.hpp +++ b/addons/vehicles/CfgWeapons.hpp @@ -6,7 +6,15 @@ class CfgWeapons { class LMG_coax; class ACE_LMG_coax_MBT_01: LMG_coax {}; - class ACE_LMG_coax_APC_Tracked_03: LMG_coax {}; + class ACE_LMG_coax_APC_Wheeled_01: LMG_coax { + class GunParticles { + class effect1 { + positionName = "usti hlavne2"; + directionName = "konec hlavne2"; + effectName = "MachineGunCloud"; + }; + }; + }; class LMG_Minigun: LMG_RCWS { magazines[] = {"1000Rnd_65x39_Belt","1000Rnd_65x39_Belt_Green","1000Rnd_65x39_Belt_Tracer_Green","1000Rnd_65x39_Belt_Tracer_Red","1000Rnd_65x39_Belt_Tracer_Yellow","1000Rnd_65x39_Belt_Yellow","2000Rnd_65x39_Belt","2000Rnd_65x39_Belt_Green","2000Rnd_65x39_Belt_Tracer_Green","2000Rnd_65x39_Belt_Tracer_Green_Splash","2000Rnd_65x39_Belt_Tracer_Red","2000Rnd_65x39_Belt_Tracer_Yellow","2000Rnd_65x39_Belt_Tracer_Yellow_Splash","2000Rnd_65x39_Belt_Yellow","2000Rnd_762x51_Belt_T_Green","2000Rnd_762x51_Belt_T_Red","2000Rnd_762x51_Belt_T_Yellow","200Rnd_65x39_Belt","200Rnd_65x39_Belt_Tracer_Green","200Rnd_65x39_Belt_Tracer_Red","200Rnd_65x39_Belt_Tracer_Yellow","5000Rnd_762x51_Belt","5000Rnd_762x51_Yellow_Belt"}; From 326d5495104ae02caeee04a05c11c7e7a3dcad14 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 8 Oct 2015 20:32:14 -0500 Subject: [PATCH 04/51] #2696 - Rangecard check bounds before select --- .../functions/fnc_calculateAmmoTemperatureVelocityShift.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/advanced_ballistics/functions/fnc_calculateAmmoTemperatureVelocityShift.sqf b/addons/advanced_ballistics/functions/fnc_calculateAmmoTemperatureVelocityShift.sqf index 8b0c78e86c..fefdbb16e4 100644 --- a/addons/advanced_ballistics/functions/fnc_calculateAmmoTemperatureVelocityShift.sqf +++ b/addons/advanced_ballistics/functions/fnc_calculateAmmoTemperatureVelocityShift.sqf @@ -18,7 +18,8 @@ private ["_muzzleVelocityShiftTableUpperLimit", "_temperatureIndexFunction", "_temperatureIndexA", "_temperatureIndexB", "_interpolationRatio"]; params["_muzzleVelocityShiftTable", "_temperature"]; -// Check if muzzleVelocityShiftTable is Larger Than 11 Entrys +// Check if muzzleVelocityShiftTable is Less Than 11 Entrys +if ((count _muzzleVelocityShiftTable) < 11) exitWith {0}; _muzzleVelocityShiftTableUpperLimit = _muzzleVelocityShiftTable select 10; if (isNil "_muzzleVelocityShiftTableUpperLimit") exitWith { 0 }; From f8ca3693fd49d92ef43e8be66d9952b683d9cf7c Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 8 Oct 2015 21:22:00 -0500 Subject: [PATCH 05/51] #2709 - Fix AB handleFired _muzzleVelocityShift --- .../functions/fnc_handleFired.sqf | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/advanced_ballistics/functions/fnc_handleFired.sqf b/addons/advanced_ballistics/functions/fnc_handleFired.sqf index d97c9b952a..8d9cb73509 100644 --- a/addons/advanced_ballistics/functions/fnc_handleFired.sqf +++ b/addons/advanced_ballistics/functions/fnc_handleFired.sqf @@ -24,12 +24,12 @@ if (!hasInterface) exitWith {}; if (!GVAR(enabled)) exitWith {}; // Parameterization -private ["_abort", "_AmmoCacheEntry", "_WeaponCacheEntry", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_bulletMass", "_bulletLength", "_muzzleVelocity", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_barrelTwist", "_stabilityFactor"]; +private ["_abort", "_AmmoCacheEntry", "_WeaponCacheEntry", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_bulletMass", "_bulletLength", "_muzzleVelocity", "_muzzleVelocityShift", "_bulletVelocity", "_bulletLength", "_barrelTwist", "_stabilityFactor", "_aceTimeSecond", "_barrelVelocityShift", "_ammoTemperatureVelocityShift"]; + params ["_unit", "_weapon", "", "_mode", "_ammo", "_magazine", "_bullet"]; _abort = false; - if (!(_ammo isKindOf "BulletBase")) exitWith {}; if (!alive _bullet) exitWith {}; if (!([_unit] call EFUNC(common,isPlayer))) exitWith {}; @@ -75,22 +75,22 @@ _WeaponCacheEntry params ["_barrelTwist", "_twistDirection", "_barrelLength"]; _bulletVelocity = velocity _bullet; _muzzleVelocity = vectorMagnitude _bulletVelocity; +_barrelVelocityShift = 0; if (GVAR(barrelLengthInfluenceEnabled)) then { - _barrelVelocityShift = uiNamespace getVariable [format [QGVAR(%1_muzzleVelocityShift),_weapon],nil]; - if (isNil "_barrelVelocityShift") then { - _barrelVelocityShift = [_barrelLength, _muzzleVelocityTable, _barrelLengthTable, _muzzleVelocity] call FUNC(calculateBarrelLengthVelocityShift); - uiNamespace setVariable [format [QGVAR(%1_muzzleVelocityShift),_weapon],_muzzleVelocityShift]; - }; + _barrelVelocityShift = [_barrelLength, _muzzleVelocityTable, _barrelLengthTable, _muzzleVelocity] call FUNC(calculateBarrelLengthVelocityShift); }; +_ammoTemperatureVelocityShift = 0; if (GVAR(ammoTemperatureEnabled)) then { _temperature = ((getPosASL _unit) select 2) call EFUNC(weather,calculateTemperatureAtHeight); - _temperatureVelocityShift = ([_ammoTempMuzzleVelocityShifts, _temperature] call FUNC(calculateAmmoTemperatureVelocityShift)); + _ammoTemperatureVelocityShift = ([_ammoTempMuzzleVelocityShifts, _temperature] call FUNC(calculateAmmoTemperatureVelocityShift)); }; if (GVAR(ammoTemperatureEnabled) || GVAR(barrelLengthInfluenceEnabled)) then { + _muzzleVelocityShift = _barrelVelocityShift + _ammoTemperatureVelocityShift; + TRACE_4("shift",_muzzleVelocity,_muzzleVelocityShift, _barrelVelocityShift, _ammoTemperatureVelocityShift); if (_muzzleVelocityShift != 0) then { - _muzzleVelocity = _muzzleVelocity + (_barrelVelocityShift + _ammoTemperatureVelocityShift); + _muzzleVelocity = _muzzleVelocity + _muzzleVelocityShift; _bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift)); _bullet setVelocity _bulletVelocity; }; From f2c66240caaac717bb75fde2b1962356bfe006d2 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 8 Oct 2015 22:32:07 -0500 Subject: [PATCH 06/51] #2717 - Cleanup Coax Weapon Mempoints --- addons/realisticnames/CfgWeapons.hpp | 10 ++++------ addons/vehicles/CfgVehicles.hpp | 14 +++++++------- addons/vehicles/CfgWeapons.hpp | 14 ++++++++++++-- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/addons/realisticnames/CfgWeapons.hpp b/addons/realisticnames/CfgWeapons.hpp index 205542dd68..2adff28a41 100644 --- a/addons/realisticnames/CfgWeapons.hpp +++ b/addons/realisticnames/CfgWeapons.hpp @@ -525,16 +525,14 @@ class CfgWeapons { class LMG_coax: LMG_RCWS { displayName = "PKT"; }; - - class ACE_LMG_coax_MBT_01: LMG_coax { + // class ACE_LMG_coax_PKT_mem2: LMG_coax {}; + class ACE_LMG_coax_MAG58_mem2: LMG_coax { displayName = "MAG 58"; }; - - class ACE_LMG_coax_APC_Wheeled_01: LMG_coax { + class ACE_LMG_coax_MAG58_mem3: LMG_coax { displayName = "MAG 58"; }; - - class ACE_LMG_coax_APC_Tracked_03: LMG_coax { + class ACE_LMG_coax_L94A1_mem3: LMG_coax { displayName = "L94A1"; }; diff --git a/addons/vehicles/CfgVehicles.hpp b/addons/vehicles/CfgVehicles.hpp index 559906074d..e1f7295865 100644 --- a/addons/vehicles/CfgVehicles.hpp +++ b/addons/vehicles/CfgVehicles.hpp @@ -91,7 +91,7 @@ class CfgVehicles { class O_APC_Tracked_02_cannon_F: O_APC_Tracked_02_base_F { class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"autocannon_30mm_CTWS","ACE_LMG_coax_MBT_01","missiles_titan"}; + weapons[] = {"autocannon_30mm_CTWS","ACE_LMG_coax_PKT_mem2","missiles_titan"}; magazines[] = {"140Rnd_30mm_MP_shells_Tracer_Green","60Rnd_30mm_APFSDS_shells_Tracer_Green","2000Rnd_762x51_Belt_Green","2Rnd_GAT_missiles"}; }; }; @@ -101,7 +101,7 @@ class CfgVehicles { fuelCapacity = 660 * FUEL_FACTOR; class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"autocannon_30mm","ACE_LMG_coax_APC_Tracked_03"}; + weapons[] = {"autocannon_30mm","ACE_LMG_coax_L94A1_mem3"}; magazines[] = {"140Rnd_30mm_MP_shells_Tracer_Yellow","60Rnd_30mm_APFSDS_shells_Tracer_Yellow","1000Rnd_762x51_Belt_Yellow","1000Rnd_762x51_Belt_Yellow"}; class Turrets: Turrets { class CommanderOptics: CommanderOptics {}; @@ -114,7 +114,7 @@ class CfgVehicles { fuelCapacity = 550 * FUEL_FACTOR; class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"cannon_120mm_long","ACE_LMG_coax_MBT_01"}; + weapons[] = {"cannon_120mm_long","ACE_LMG_coax_MAG58_mem3"}; magazines[] = {"28Rnd_120mm_APFSDS_shells_Tracer_Yellow","14Rnd_120mm_HE_shells_Tracer_Yellow","2000Rnd_762x51_Belt_Yellow","2000Rnd_762x51_Belt_Yellow"}; class Turrets: Turrets { class CommanderOptics: CommanderOptics {}; @@ -127,7 +127,7 @@ class CfgVehicles { fuelCapacity = 500 * FUEL_FACTOR; class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"cannon_120mm","ACE_LMG_coax_MBT_01"}; + weapons[] = {"cannon_120mm","ACE_LMG_coax_MAG58_mem2"}; magazines[] = {"32Rnd_120mm_APFSDS_shells_Tracer_Red","16Rnd_120mm_HE_shells_Tracer_Red","2000Rnd_762x51_Belt_Green","2000Rnd_762x51_Belt_Green"}; class Turrets: Turrets { class CommanderOptics: CommanderOptics {}; @@ -281,7 +281,7 @@ class CfgVehicles { class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F { class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"autocannon_40mm_CTWS", "ACE_LMG_coax_APC_Wheeled_01"}; + weapons[] = {"autocannon_40mm_CTWS", "ACE_LMG_coax_MAG58_mem2"}; magazines[] = {"60Rnd_40mm_GPR_Tracer_Red_shells","40Rnd_40mm_APFSDS_Tracer_Red_shells","2000Rnd_762x51_Belt_Green"}; }; }; @@ -301,7 +301,7 @@ class CfgVehicles { class B_MBT_01_TUSK_F: B_MBT_01_cannon_F { class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"cannon_105mm","ACE_LMG_coax_MBT_01"}; + weapons[] = {"cannon_105mm","ACE_LMG_coax_MAG58_mem2"}; magazines[] = {"40Rnd_105mm_APFSDS_T_Red","20Rnd_105mm_HEAT_MP_T_Red","2000Rnd_762x51_Belt_Green","2000Rnd_762x51_Belt_Green"}; class Turrets: Turrets { class CommanderOptics: CommanderOptics {}; @@ -326,7 +326,7 @@ class CfgVehicles { class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F { class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"autocannon_30mm_CTWS","ACE_LMG_coax_MBT_01","missiles_titan"}; + weapons[] = {"autocannon_30mm_CTWS","ACE_LMG_coax_MAG58_mem2","missiles_titan"}; magazines[] = {"140Rnd_30mm_MP_shells_Tracer_Yellow","60Rnd_30mm_APFSDS_shells_Tracer_Yellow","2000Rnd_762x51_Belt_Yellow","2Rnd_GAT_missiles"}; }; }; diff --git a/addons/vehicles/CfgWeapons.hpp b/addons/vehicles/CfgWeapons.hpp index 0f5ad77e7a..5cb30518d9 100644 --- a/addons/vehicles/CfgWeapons.hpp +++ b/addons/vehicles/CfgWeapons.hpp @@ -5,8 +5,18 @@ class CfgWeapons { class LMG_RCWS: MGun {}; class LMG_coax; - class ACE_LMG_coax_MBT_01: LMG_coax {}; - class ACE_LMG_coax_APC_Wheeled_01: LMG_coax { + class ACE_LMG_coax_L94A1_mem3: LMG_coax {}; + class ACE_LMG_coax_PKT_mem2: LMG_coax { + class GunParticles { + class effect1 { + positionName = "usti hlavne2"; + directionName = "konec hlavne2"; + effectName = "MachineGunCloud"; + }; + }; + }; + class ACE_LMG_coax_MAG58_mem3: LMG_coax {}; + class ACE_LMG_coax_MAG58_mem2: LMG_coax { class GunParticles { class effect1 { positionName = "usti hlavne2"; From 4ba0d72bfd9ba9ebc997f5612fe932166c28e8e3 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 10 Oct 2015 23:09:52 -0500 Subject: [PATCH 07/51] #2580 (1) - Fix bandages always created at terrain level. --- addons/medical/functions/fnc_createLitter.sqf | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/addons/medical/functions/fnc_createLitter.sqf b/addons/medical/functions/fnc_createLitter.sqf index c234574abc..54fd6694dd 100644 --- a/addons/medical/functions/fnc_createLitter.sqf +++ b/addons/medical/functions/fnc_createLitter.sqf @@ -45,12 +45,9 @@ _createLitter = { if(surfaceIsWater (getPos _unit)) exitWith { false }; _position = getPosATL _unit; - _position params ["_posX", "_posY"]; - _position = if (random(1) >= 0.5) then { - [_posX + random 1, _posY + random 1, 0] - } else { - [_posX - random 1, _posY - random 1, 0]; - }; + _position params ["_posX", "_posY", "_posZ"]; + _position = [_posX + (random 2) - 1, _posY + (random 2) - 1, _posZ]; + _direction = (random 360); // Create the litter, and timeout the event based on the cleanup delay From d091fcbdbce63cf5c04ad653bacb805cb65d99dc Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 12 Oct 2015 16:14:35 -0500 Subject: [PATCH 08/51] #2706 - Local privates to search_privates.py --- tools/search_privates.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tools/search_privates.py b/tools/search_privates.py index 207c6403e0..7c6b042c1a 100644 --- a/tools/search_privates.py +++ b/tools/search_privates.py @@ -16,7 +16,7 @@ def get_private_declare(content): priv_dec_str = ''.join(priv_srch_declared) - srch = re.compile('(? Date: Tue, 13 Oct 2015 02:01:59 -0500 Subject: [PATCH 09/51] #2528 - Medical Menu Work (1) Verify target is valid and in reasonable range --- addons/medical_menu/ACE_Settings.hpp | 4 ++++ addons/medical_menu/XEH_postInit.sqf | 11 ++++++++--- .../medical_menu/functions/fnc_canOpenMenu.sqf | 10 ++++++---- .../functions/fnc_getTreatmentOptions.sqf | 3 ++- .../functions/fnc_handleUI_DisplayOptions.sqf | 12 +++++++----- .../fnc_handleUI_dropDownTriageCard.sqf | 2 +- addons/medical_menu/functions/fnc_module.sqf | 2 +- .../medical_menu/functions/fnc_onMenuClose.sqf | 3 ++- .../medical_menu/functions/fnc_onMenuOpen.sqf | 18 ++++++++++-------- addons/medical_menu/functions/fnc_openMenu.sqf | 4 ++-- .../functions/fnc_updateActivityLog.sqf | 4 ++-- .../functions/fnc_updateBodyImage.sqf | 9 +++++---- .../medical_menu/functions/fnc_updateIcons.sqf | 4 ++-- .../functions/fnc_updateInformationLists.sqf | 4 ++-- .../functions/fnc_updateQuickViewLog.sqf | 4 ++-- .../functions/fnc_updateUIInfo.sqf | 14 ++++++++------ 16 files changed, 64 insertions(+), 44 deletions(-) diff --git a/addons/medical_menu/ACE_Settings.hpp b/addons/medical_menu/ACE_Settings.hpp index 42bd80044f..82430cd661 100644 --- a/addons/medical_menu/ACE_Settings.hpp +++ b/addons/medical_menu/ACE_Settings.hpp @@ -24,4 +24,8 @@ class ACE_Settings { isClientSettable = 1; category = ECSTRING(medical,Category_Medical); }; + class GVAR(maxRange) { + value = 4; + typeName = "SCALAR"; + }; }; diff --git a/addons/medical_menu/XEH_postInit.sqf b/addons/medical_menu/XEH_postInit.sqf index eaf356f608..4435511b8f 100644 --- a/addons/medical_menu/XEH_postInit.sqf +++ b/addons/medical_menu/XEH_postInit.sqf @@ -2,6 +2,10 @@ if (!hasInterface) exitwith {}; +GVAR(MenuPFHID) = -1; +GVAR(lastOpenedOn) = -1; +GVAR(pendingReopen) = false; + ["medical_treatmentSuccess", { if (GVAR(openAfterTreatment) && {GVAR(pendingReopen)}) then { @@ -15,8 +19,9 @@ if (!hasInterface) exitwith {}; ["ACE3 Common", QGVAR(displayMenuKeyPressed), localize LSTRING(DisplayMenuKey), { - _target = cursorTarget; - if (!(_target isKindOf "CAManBase") || ACE_player distance _target > 10) then {_target = ACE_player}; + local _target = cursorTarget; + if (!((_target isKindOf "CAManBase") && {[ACE_player, _target] call FUNC(canOpenMenu)})) then {_target = ACE_player}; + // Conditions: canInteract if !([ACE_player, _target, ["isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false}; if !([ACE_player, _target] call FUNC(canOpenMenu)) exitwith {false}; @@ -27,7 +32,7 @@ if (!hasInterface) exitwith {}; }, { if (ACE_time - GVAR(lastOpenedOn) > 0.5) exitWith { - [ObjNull] call FUNC(openMenu); + [objNull] call FUNC(openMenu); }; false }, diff --git a/addons/medical_menu/functions/fnc_canOpenMenu.sqf b/addons/medical_menu/functions/fnc_canOpenMenu.sqf index 9b7c3bcbff..818d165e12 100644 --- a/addons/medical_menu/functions/fnc_canOpenMenu.sqf +++ b/addons/medical_menu/functions/fnc_canOpenMenu.sqf @@ -10,7 +10,7 @@ * Can open * * Example: - * [] call ace_medical_menu_canOpenMenu + * [player, cursorTarget] call ace_medical_menu_fnc_canOpenMenu * * Public: No */ @@ -18,7 +18,9 @@ params ["_caller", "_target"]; -if !(GVAR(allow) == 1 || (GVAR(allow) == 2 && {vehicle _caller != _caller || vehicle _target != _target} && {alive ACE_player})) exitwith {false}; -if !(GVAR(useMenu) == 1 || (GVAR(useMenu) == 2 && {vehicle _caller != _caller || vehicle _target != _target} && {alive ACE_player})) exitwith {false}; +(alive _caller) +&& {!isNull _target} +&& {(_caller distance _target) < GVAR(maxRange)} +&& {(GVAR(allow) == 1) || {(GVAR(allow) == 2) && {vehicle _caller != _caller || vehicle _target != _target}}} +&& {(GVAR(useMenu) == 1) || {(GVAR(useMenu) == 2) && {vehicle _caller != _caller || vehicle _target != _target}}} -true diff --git a/addons/medical_menu/functions/fnc_getTreatmentOptions.sqf b/addons/medical_menu/functions/fnc_getTreatmentOptions.sqf index 4b03d27970..2bb4499753 100644 --- a/addons/medical_menu/functions/fnc_getTreatmentOptions.sqf +++ b/addons/medical_menu/functions/fnc_getTreatmentOptions.sqf @@ -17,9 +17,10 @@ */ #include "script_component.hpp" -private "_actions"; params ["_player", "_target", "_name"]; +private ["_actions", "_collectedActions", "_bodyPart"]; + if (!([ACE_player, _target, ["isNotInside"]] call EFUNC(common,canInteractWith))) exitwith {[]}; _actions = if (EGVAR(medical,level) == 2) then { diff --git a/addons/medical_menu/functions/fnc_handleUI_DisplayOptions.sqf b/addons/medical_menu/functions/fnc_handleUI_DisplayOptions.sqf index dafd72d54d..e5b49e58bc 100644 --- a/addons/medical_menu/functions/fnc_handleUI_DisplayOptions.sqf +++ b/addons/medical_menu/functions/fnc_handleUI_DisplayOptions.sqf @@ -9,7 +9,7 @@ * None * * Example: - * ["some category"] call ace_medical_menu_handleUI_DisplayOptions + * ["some category"] call ace_medical_menu_fnc_handleUI_DisplayOptions * * Public: No */ @@ -21,7 +21,7 @@ if (!hasInterface) exitwith{}; -private ["_entries", "_display", "_newTarget", "_card", "_ctrl", "_code"]; +private ["_entries", "_display", "_newTarget", "_ctrl", "_code"]; params ["_name"]; @@ -31,9 +31,11 @@ _display = uiNamespace getVariable QGVAR(medicalMenu); if (isNil "_display") exitwith {}; // no valid dialog present if (_name isEqualTo "toggle") exitwith { - if (GVAR(INTERACTION_TARGET) != ACE_player) then { - _newTarget = ACE_player; - } else { + _newTarget = ACE_player; + //If we are on the player, and only if our old target is still valid, switch to it: + if ((GVAR(INTERACTION_TARGET) == ACE_player) && + {[ACE_player, GVAR(INTERACTION_TARGET_PREVIOUS), ["isNotInside"]] call EFUNC(common,canInteractWith)} && + {[ACE_player, GVAR(INTERACTION_TARGET_PREVIOUS)] call FUNC(canOpenMenu)}) then { _newTarget = GVAR(INTERACTION_TARGET_PREVIOUS); }; diff --git a/addons/medical_menu/functions/fnc_handleUI_dropDownTriageCard.sqf b/addons/medical_menu/functions/fnc_handleUI_dropDownTriageCard.sqf index fb924fc40b..33b82e5d78 100644 --- a/addons/medical_menu/functions/fnc_handleUI_dropDownTriageCard.sqf +++ b/addons/medical_menu/functions/fnc_handleUI_dropDownTriageCard.sqf @@ -9,7 +9,7 @@ * None * * Example: - * [] call ace_medical_menu_handleUI_dropDownTriageCard + * [] call ace_medical_menu_fnc_handleUI_dropDownTriageCard * * Public: No */ diff --git a/addons/medical_menu/functions/fnc_module.sqf b/addons/medical_menu/functions/fnc_module.sqf index d95110c200..666440e208 100644 --- a/addons/medical_menu/functions/fnc_module.sqf +++ b/addons/medical_menu/functions/fnc_module.sqf @@ -15,7 +15,7 @@ #include "script_component.hpp" -params ["_logic", "_units", "_activated"]; +params ["_logic", "", "_activated"]; if !(_activated) exitWith {}; diff --git a/addons/medical_menu/functions/fnc_onMenuClose.sqf b/addons/medical_menu/functions/fnc_onMenuClose.sqf index 4300089a4a..656336eb4e 100644 --- a/addons/medical_menu/functions/fnc_onMenuClose.sqf +++ b/addons/medical_menu/functions/fnc_onMenuClose.sqf @@ -9,7 +9,7 @@ * None * * Example: - * call ace_medical_menu_onMenuClosed + * call ace_medical_menu_fnc_onMenuClosed * * Public: No */ @@ -19,3 +19,4 @@ if (EGVAR(interact_menu,menuBackground)==1) then {[QGVAR(id), false] call EFUNC( if (EGVAR(interact_menu,menuBackground)==2) then {(uiNamespace getVariable [QEGVAR(interact_menu,menuBackground), displayNull]) closeDisplay 0;}; [GVAR(MenuPFHID)] call CBA_fnc_removePerFrameHandler; +GVAR(MenuPFHID) = -1; diff --git a/addons/medical_menu/functions/fnc_onMenuOpen.sqf b/addons/medical_menu/functions/fnc_onMenuOpen.sqf index fb64865b89..2b47312453 100644 --- a/addons/medical_menu/functions/fnc_onMenuOpen.sqf +++ b/addons/medical_menu/functions/fnc_onMenuOpen.sqf @@ -9,7 +9,7 @@ * None * * Example: - * [medical_menu] call ace_medical_menu_onMenuOpen + * [medical_menu] call ace_medical_menu_fnc_onMenuOpen * * Public: No */ @@ -64,6 +64,8 @@ disableSerialization; (_display displayCtrl 1) ctrlSetText format ["%1", [_target] call EFUNC(common,getName)]; setMousePosition [0.4, 0.4]; +if (GVAR(MenuPFHID) != -1) exitWith {ERROR("PFID already running");}; + GVAR(MenuPFHID) = [{ (_this select 0) params ["_display"]; @@ -74,15 +76,15 @@ GVAR(MenuPFHID) = [{ [GVAR(INTERACTION_TARGET)] call FUNC(updateIcons); [GVAR(LatestDisplayOptionMenu)] call FUNC(handleUI_DisplayOptions); - _status = [GVAR(INTERACTION_TARGET)] call EFUNC(medical,getTriageStatus); - (_display displayCtrl 2000) ctrlSetText (_status select 0); - (_display displayCtrl 2000) ctrlSetBackgroundColor (_status select 2); - - if (ACE_player distance _target > MAX_DISTANCE) exitwith { + //Check that it's valid to stay open: + if !(([ACE_player, _target, ["isNotInside"]] call EFUNC(common,canInteractWith)) && {[ACE_player, _target] call FUNC(canOpenMenu)}) then { closeDialog 314412; - ["displayTextStructured", [ACE_player], [[ELSTRING(medical,DistanceToFar), [_target] call EFUNC(common,getName)], 1.75, ACE_player]] call EFUNC(common,targetEvent); + //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); + }; }; }, 0, [_display]] call CBA_fnc_addPerFrameHandler; - ["Medical_onMenuOpen", [ACE_player, _interactionTarget]] call EFUNC(common,localEvent); +["Medical_onMenuOpen", [ACE_player, _target]] call EFUNC(common,localEvent); diff --git a/addons/medical_menu/functions/fnc_openMenu.sqf b/addons/medical_menu/functions/fnc_openMenu.sqf index 067e7bda13..1c77da6a5a 100644 --- a/addons/medical_menu/functions/fnc_openMenu.sqf +++ b/addons/medical_menu/functions/fnc_openMenu.sqf @@ -9,7 +9,7 @@ * If action was taken * * Example: - * [some_player] call ace_medical_menu_openMenu + * [some_player] call ace_medical_menu_fnc_openMenu * * Public: No */ @@ -17,7 +17,7 @@ params ["_interactionTarget"]; -if (dialog || isNull _interactionTarget) exitwith { +if (dialog || {isNull _interactionTarget}) exitwith { disableSerialization; private ["_display", "_handled"]; diff --git a/addons/medical_menu/functions/fnc_updateActivityLog.sqf b/addons/medical_menu/functions/fnc_updateActivityLog.sqf index 335aea0c58..92e8474b4b 100644 --- a/addons/medical_menu/functions/fnc_updateActivityLog.sqf +++ b/addons/medical_menu/functions/fnc_updateActivityLog.sqf @@ -10,7 +10,7 @@ * None * * Example: - * [some_display, log] call ace_medical_menu_updateActivityLog + * [some_display, log] call ace_medical_menu_fnc_updateActivityLog * * Public: No */ @@ -24,7 +24,7 @@ _logCtrl = _display displayCtrl 214; lbClear _logCtrl; { - _x params ["_message", "_moment", "_dummy", "_arguments"]; + _x params ["_message", "_moment", "", "_arguments"]; if (isLocalized _message) then { _message = localize _message; diff --git a/addons/medical_menu/functions/fnc_updateBodyImage.sqf b/addons/medical_menu/functions/fnc_updateBodyImage.sqf index 34b2f450c8..afe84a59d3 100644 --- a/addons/medical_menu/functions/fnc_updateBodyImage.sqf +++ b/addons/medical_menu/functions/fnc_updateBodyImage.sqf @@ -4,22 +4,23 @@ * * Arguments: * 0: selection bloodloss - * 1: display + * 1: damaged (array of bools) + * 2: display * * Return Value: * None * * Example: - * [0.3, some_display] call ace_medical_menu_updateBodyImage + * [0.3, some_display] call ace_medical_menu_fnc_updateBodyImage * * Public: No */ #include "script_component.hpp" -params ["_selectionBloodLoss", "_display"]; +params ["_selectionBloodLoss", "_damaged", "_display"]; // Handle the body image coloring -_availableSelections = [50, 51, 52, 53, 54, 55]; +local _availableSelections = [50, 51, 52, 53, 54, 55]; { private ["_red", "_green", "_blue"]; diff --git a/addons/medical_menu/functions/fnc_updateIcons.sqf b/addons/medical_menu/functions/fnc_updateIcons.sqf index f9d3fc5ab4..b309938476 100644 --- a/addons/medical_menu/functions/fnc_updateIcons.sqf +++ b/addons/medical_menu/functions/fnc_updateIcons.sqf @@ -9,7 +9,7 @@ * None * * Example: - * [] call ace_medical_menu_updateIcons + * [] call ace_medical_menu_fnc_updateIcons * * Public: No */ @@ -18,7 +18,7 @@ #define START_IDC 111 #define END_IDC 118 -private ["_display", "_idc", "_options", "_name", "_amount"]; +private ["_display", "_idc", "_options", "_amount"]; disableSerialization; diff --git a/addons/medical_menu/functions/fnc_updateInformationLists.sqf b/addons/medical_menu/functions/fnc_updateInformationLists.sqf index ecd700e43a..82c0a13746 100644 --- a/addons/medical_menu/functions/fnc_updateInformationLists.sqf +++ b/addons/medical_menu/functions/fnc_updateInformationLists.sqf @@ -14,7 +14,7 @@ */ #include "script_component.hpp" -private "_lbCtrl"; +private ["_lbCtrl", "_amountOfGeneric"]; params ["_display", "_genericMessages", "_allInjuryTexts"]; @@ -28,7 +28,7 @@ lbClear _lbCtrl; _amountOfGeneric = count _genericMessages; { - _x params ["_add", "_Color"]; + _x params ["_add", "_color"]; _lbCtrl lbAdd _add; _lbCtrl lbSetColor [_forEachIndex + _amountOfGeneric, _color]; } forEach _allInjuryTexts; diff --git a/addons/medical_menu/functions/fnc_updateQuickViewLog.sqf b/addons/medical_menu/functions/fnc_updateQuickViewLog.sqf index 8ca81f28ed..49da12e7f4 100644 --- a/addons/medical_menu/functions/fnc_updateQuickViewLog.sqf +++ b/addons/medical_menu/functions/fnc_updateQuickViewLog.sqf @@ -10,7 +10,7 @@ * None * * Example: - * [some_display, log] call ace_medical_menu_updateQuickViewLog + * [some_display, log] call ace_medical_menu_fnc_updateQuickViewLog * * Public: No */ @@ -24,7 +24,7 @@ _logCtrl = _display displayCtrl 215; lbClear _logCtrl; { - _x params ["_message", "_moment", "_dummy", "_arguments"]; + _x params ["_message", "_moment", "", "_arguments"]; if (isLocalized _message) then { _message = localize _message; diff --git a/addons/medical_menu/functions/fnc_updateUIInfo.sqf b/addons/medical_menu/functions/fnc_updateUIInfo.sqf index b493b5026e..e8633b7fb7 100644 --- a/addons/medical_menu/functions/fnc_updateUIInfo.sqf +++ b/addons/medical_menu/functions/fnc_updateUIInfo.sqf @@ -10,18 +10,20 @@ * None * * Example: - * [some_player, some_display] call ace_medical_menu_updateUIInfo + * [some_player, some_display] call ace_medical_menu_fnc_updateUIInfo * * Public: No */ #include "script_component.hpp" -private ["_genericMessages", "_totalIvVolume", "_damaged", "_selectionBloodLoss", "_allInjuryTexts"]; - params ["_target", "_display"]; +private["_allInjuryTexts", "_bandagedwounds", "_damaged", "_genericMessages", "_logs", "_openWounds", "_part", "_partText", "_pointDamage", "_selectionBloodLoss", "_selectionN", "_severity", "_totalIvVolume", "_triageStatus"]; + +if (isNull _display) exitWith {ERROR("bad display");}; + _selectionN = GVAR(selectedBodyPart); -if (_selectionN < 0 || _selectionN > 5) exitwith {}; +if (_selectionN < 0 || {_selectionN > 5}) exitwith {}; _genericMessages = []; _partText = [ELSTRING(medical,Head), ELSTRING(medical,Torso), ELSTRING(medical,LeftArm) ,ELSTRING(medical,RightArm) ,ELSTRING(medical,LeftLeg), ELSTRING(medical,RightLeg)] select _selectionN; @@ -109,7 +111,7 @@ if (EGVAR(medical,level) >= 2) then { { _selectionBloodLoss set [_forEachIndex, _x]; - if (_x > 0 && _forEachIndex == _selectionN) then { + if ((_x > 0) && {_forEachIndex == _selectionN}) then { _pointDamage = _x; _severity = switch (true) do { case (_pointDamage > 0.5): {localize ELSTRING(medical,HeavilyWounded)}; @@ -129,7 +131,7 @@ if (EGVAR(medical,level) >= 2) then { } forEach (_target getvariable [QEGVAR(medical,bodyPartStatus), [0,0,0,0,0,0]]); }; -[_selectionBloodLoss, _display] call FUNC(updateBodyImage); +[_selectionBloodLoss, _damaged, _display] call FUNC(updateBodyImage); [_display, _genericMessages, _allInjuryTexts] call FUNC(updateInformationLists); _logs = _target getVariable [QEGVAR(medical,logFile_activity_view), []]; From 8ffe1b4e01fc497129bd0b005c0b7f740accdbaf Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 13 Oct 2015 02:20:19 -0500 Subject: [PATCH 10/51] #2528 (2) - Integrate Dragging --- .../functions/fnc_collectActions.sqf | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/addons/medical_menu/functions/fnc_collectActions.sqf b/addons/medical_menu/functions/fnc_collectActions.sqf index ad189139ea..88f52c417a 100644 --- a/addons/medical_menu/functions/fnc_collectActions.sqf +++ b/addons/medical_menu/functions/fnc_collectActions.sqf @@ -20,7 +20,7 @@ _configBasic = (configFile >> "ACE_Medical_Actions" >> "Basic"); _configAdvanced = (configFile >> "ACE_Medical_Actions" >> "Advanced"); _fnc_compileActionsLevel = { - private ["_entryCount", "_actions", "_displayName", "_condition", "_category", "_statement"]; + private ["_actions", "_displayName", "_condition", "_category", "_statement"]; params ["_config"]; _actions = []; @@ -40,3 +40,26 @@ _fnc_compileActionsLevel = { GVAR(actionsBasic) = [_configBasic] call _fnc_compileActionsLevel; GVAR(actionsAdvanced) = [_configAdvanced] call _fnc_compileActionsLevel; + +//Manually add the drag actions, if dragging exists. +if (["ace_dragging"] call EFUNC(common,isModLoaded)) then { + _condition = { + (ACE_player != GVAR(INTERACTION_TARGET)) && {[ACE_player, GVAR(INTERACTION_TARGET)] call EFUNC(dragging,canDrag)} + }; + _statement = { + GVAR(pendingReopen) = false; //No medical_treatmentSuccess event after drag, so don't want this true + [ACE_player, GVAR(INTERACTION_TARGET)] call EFUNC(dragging,startDrag); + }; + GVAR(actionsBasic) pushBack [localize ELSTRING(dragging,Drag), "drag", _condition, _statement]; + GVAR(actionsAdvanced) pushBack [localize ELSTRING(dragging,Drag), "drag", _condition, _statement]; + + _condition = { + (ACE_player != GVAR(INTERACTION_TARGET)) && {[ACE_player, GVAR(INTERACTION_TARGET)] call EFUNC(dragging,canCarry)} + }; + _statement = { + GVAR(pendingReopen) = false; //No medical_treatmentSuccess event after drag, so don't want this true + [ACE_player, GVAR(INTERACTION_TARGET)] call EFUNC(dragging,startCarry); + }; + GVAR(actionsBasic) pushBack [localize ELSTRING(dragging,Carry), "drag", _condition, _statement]; + GVAR(actionsAdvanced) pushBack [localize ELSTRING(dragging,Carry), "drag", _condition, _statement]; +}; From 680f52cd270f2198938e103d1501e3dec9f13d5a Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 13 Oct 2015 13:40:16 -0500 Subject: [PATCH 11/51] Handle Distance when mounted --- addons/medical_menu/ACE_Settings.hpp | 4 +++- addons/medical_menu/functions/fnc_canOpenMenu.sqf | 7 +++---- addons/medical_menu/functions/fnc_updateUIInfo.sqf | 2 +- addons/medical_menu/ui/menu.hpp | 12 ++++++------ 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/addons/medical_menu/ACE_Settings.hpp b/addons/medical_menu/ACE_Settings.hpp index 82430cd661..d74a6bdfe0 100644 --- a/addons/medical_menu/ACE_Settings.hpp +++ b/addons/medical_menu/ACE_Settings.hpp @@ -25,7 +25,9 @@ class ACE_Settings { category = ECSTRING(medical,Category_Medical); }; class GVAR(maxRange) { - value = 4; + //for ref: 3d interaction (MEDICAL_ACTION_DISTANCE) is 1.75 + value = 3; typeName = "SCALAR"; + category = ECSTRING(medical,Category_Medical); }; }; diff --git a/addons/medical_menu/functions/fnc_canOpenMenu.sqf b/addons/medical_menu/functions/fnc_canOpenMenu.sqf index 818d165e12..1ef7dccf5b 100644 --- a/addons/medical_menu/functions/fnc_canOpenMenu.sqf +++ b/addons/medical_menu/functions/fnc_canOpenMenu.sqf @@ -20,7 +20,6 @@ params ["_caller", "_target"]; (alive _caller) && {!isNull _target} -&& {(_caller distance _target) < GVAR(maxRange)} -&& {(GVAR(allow) == 1) || {(GVAR(allow) == 2) && {vehicle _caller != _caller || vehicle _target != _target}}} -&& {(GVAR(useMenu) == 1) || {(GVAR(useMenu) == 2) && {vehicle _caller != _caller || vehicle _target != _target}}} - +&& {((_caller distance _target) < GVAR(maxRange)) || {(vehicle _caller) == (vehicle _target)}} //for now, ignore range when in same vehicle +&& {(GVAR(allow) == 1) || {(GVAR(allow) == 2) && {(vehicle _caller != _caller) || {vehicle _target != _target}}}} +&& {(GVAR(useMenu) == 1) || {(GVAR(useMenu) == 2) && {(vehicle _caller != _caller) || {vehicle _target != _target}}}} diff --git a/addons/medical_menu/functions/fnc_updateUIInfo.sqf b/addons/medical_menu/functions/fnc_updateUIInfo.sqf index e8633b7fb7..bcc9811905 100644 --- a/addons/medical_menu/functions/fnc_updateUIInfo.sqf +++ b/addons/medical_menu/functions/fnc_updateUIInfo.sqf @@ -20,7 +20,7 @@ params ["_target", "_display"]; private["_allInjuryTexts", "_bandagedwounds", "_damaged", "_genericMessages", "_logs", "_openWounds", "_part", "_partText", "_pointDamage", "_selectionBloodLoss", "_selectionN", "_severity", "_totalIvVolume", "_triageStatus"]; -if (isNull _display) exitWith {ERROR("bad display");}; +if (isNil "_display" || {isNull _display}) exitWith {ERROR("No display");}; _selectionN = GVAR(selectedBodyPart); if (_selectionN < 0 || {_selectionN > 5}) exitwith {}; diff --git a/addons/medical_menu/ui/menu.hpp b/addons/medical_menu/ui/menu.hpp index 342f0230a2..29247b6071 100644 --- a/addons/medical_menu/ui/menu.hpp +++ b/addons/medical_menu/ui/menu.hpp @@ -325,7 +325,7 @@ class GVAR(medicalMenu) { animTextureFocused = "#(argb,8,8,3)color(0,0,0,0.0)"; animTexturePressed = "#(argb,8,8,3)color(0,0,0,0.0)"; animTextureDefault = "#(argb,8,8,3)color(0,0,0,0.0)"; - action = QUOTE(GVAR(selectedBodyPart) = 0; [GVAR(INTERACTION_TARGET)] call FUNC(updateUIInfo);); + action = QUOTE(GVAR(selectedBodyPart) = 0;); }; class selectTorso : selectHead { idc = 302; @@ -333,7 +333,7 @@ class GVAR(medicalMenu) { y = "5.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; w = "2.2 * (((safezoneW / safezoneH) min 1.2) / 40)"; h = "4.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - action = QUOTE(GVAR(selectedBodyPart) = 1; [GVAR(INTERACTION_TARGET)] call FUNC(updateUIInfo);); + action = QUOTE(GVAR(selectedBodyPart) = 1;); }; class selectLeftArm: selectHead{ idc = 303; @@ -341,12 +341,12 @@ class GVAR(medicalMenu) { y = "5.9 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; w = "1.1 * (((safezoneW / safezoneH) min 1.2) / 40)"; h = "4.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - action = QUOTE(GVAR(selectedBodyPart) = 3; [GVAR(INTERACTION_TARGET)] call FUNC(updateUIInfo);); + action = QUOTE(GVAR(selectedBodyPart) = 3;); }; class selectRightArm: selectLeftArm{ idc = 304; x = "20.6 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - action = QUOTE(GVAR(selectedBodyPart) = 2; [GVAR(INTERACTION_TARGET)] call FUNC(updateUIInfo);); + action = QUOTE(GVAR(selectedBodyPart) = 2;); }; class selectLeftLeg :selectHead { idc = 305; @@ -354,12 +354,12 @@ class GVAR(medicalMenu) { y = "9.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; w = "1.1 * (((safezoneW / safezoneH) min 1.2) / 40)"; h = "6 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - action = QUOTE(GVAR(selectedBodyPart) = 5; [GVAR(INTERACTION_TARGET)] call FUNC(updateUIInfo);); + action = QUOTE(GVAR(selectedBodyPart) = 5;); }; class selectRightLeg :selectLeftLeg { idc = 306; x = "19.6 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - action = QUOTE(GVAR(selectedBodyPart) = 4; [GVAR(INTERACTION_TARGET)] call FUNC(updateUIInfo);); + action = QUOTE(GVAR(selectedBodyPart) = 4;); }; From aad6cab8964df46774706de4c799a384d972d191 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 19 Oct 2015 01:20:11 -0500 Subject: [PATCH 12/51] #2765 - Fix location check when set to disabled --- addons/medical/ACE_Settings.hpp | 4 ++-- addons/medical/functions/fnc_canTreat.sqf | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/addons/medical/ACE_Settings.hpp b/addons/medical/ACE_Settings.hpp index b17610b0e3..02b5375e96 100644 --- a/addons/medical/ACE_Settings.hpp +++ b/addons/medical/ACE_Settings.hpp @@ -154,13 +154,13 @@ class ACE_Settings { category = CSTRING(Category_Medical); typeName = "SCALAR"; value = 3; - values[] = {"Anywhere", "Medical vehicles", "Medical facility", "vehicle & facility", "Disabled"}; + values[] = {CSTRING(AdvancedMedicalSettings_anywhere), CSTRING(AdvancedMedicalSettings_vehicle), CSTRING(AdvancedMedicalSettings_facility), CSTRING(AdvancedMedicalSettings_vehicleAndFacility), ECSTRING(common,Disabled)}; }; class GVAR(useLocation_SurgicalKit) { category = CSTRING(Category_Medical); typeName = "SCALAR"; value = 2; - values[] = {"Anywhere", "Medical vehicles", "Medical facility", "vehicle & facility", "Disabled"}; + values[] = {CSTRING(AdvancedMedicalSettings_anywhere), CSTRING(AdvancedMedicalSettings_vehicle), CSTRING(AdvancedMedicalSettings_facility), CSTRING(AdvancedMedicalSettings_vehicleAndFacility), ECSTRING(common,Disabled)}; }; class GVAR(useCondition_PAK) { category = CSTRING(Category_Medical); diff --git a/addons/medical/functions/fnc_canTreat.sqf b/addons/medical/functions/fnc_canTreat.sqf index ba6ced0486..60685ee20a 100644 --- a/addons/medical/functions/fnc_canTreat.sqf +++ b/addons/medical/functions/fnc_canTreat.sqf @@ -11,6 +11,9 @@ * ReturnValue: * Can Treat * + * Example: + * [player, cursorTarget, "Head", "SurgicalKit"] call ace_medical_fnc_canTreat + * * Public: Yes */ @@ -85,10 +88,11 @@ _medVeh = {([_caller] call FUNC(isInMedicalVehicle)) || ([_target] call FUNC(isI _val = missionNamespace getvariable _x; if (typeName _val == "SCALAR") then { _return = switch (_val) do { - case 0: {true}; - case 1: _medVeh; - case 2: _medFacility; - case 3: {call _medFacility || call _medVeh}; + case 0: {true}; //AdvancedMedicalSettings_anywhere + case 1: {call _medVeh}; //AdvancedMedicalSettings_vehicle + case 2: {call _medFacility}; //AdvancedMedicalSettings_facility + case 3: {(call _medFacility) || {call _medVeh}}; //AdvancedMedicalSettings_vehicleAndFacility + default {false}; //Disabled }; }; }; From cfde11d2fa9c87c67ac1c2a14a657506f8a806cb Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 19 Oct 2015 01:45:30 -0500 Subject: [PATCH 13/51] Fix medic treatment location check as well --- addons/medical/functions/fnc_treatment.sqf | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/medical/functions/fnc_treatment.sqf b/addons/medical/functions/fnc_treatment.sqf index 5e97e31501..2d0e44d488 100644 --- a/addons/medical/functions/fnc_treatment.sqf +++ b/addons/medical/functions/fnc_treatment.sqf @@ -100,10 +100,11 @@ if ("All" in _locations) then { _val = missionNamespace getvariable _x; if (typeName _val == "SCALAR") then { _return = switch (_val) do { - case 0: {true}; - case 1: _medVeh; - case 2: _medFacility; - case 3: {call _medFacility || call _medVeh}; + case 0: {true}; //AdvancedMedicalSettings_anywhere + case 1: {call _medVeh}; //AdvancedMedicalSettings_vehicle + case 2: {call _medFacility}; //AdvancedMedicalSettings_facility + case 3: {(call _medFacility) || {call _medVeh}}; //AdvancedMedicalSettings_vehicleAndFacility + default {false}; //Disabled }; }; }; From 9c28ea500423b056237ad984f609b3e4a8468c66 Mon Sep 17 00:00:00 2001 From: licht-im-Norden87 Date: Mon, 19 Oct 2015 17:21:54 +0200 Subject: [PATCH 14/51] Readme_DE.md, small grammar fix --- docs/README_DE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README_DE.md b/docs/README_DE.md index 9f85287589..a51c562de8 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -63,7 +63,7 @@ Die Mod ist **modular aufgebaut**. Beinahe jede PBO kann entfernt werden, sodass - Einstellbare Zielfernrohre - Keine Ruheanimationen bei gesenkter Waffe - Über Hindernisse springen, über Mauern klettern, Zäune durchtrennen -- Keine "sprechender Charkater" +- Kein "sprechender Charkater" - Vector IV, MicroDAGR und Kestrel
***und noch viel viel mehr...*** From 0936238862e56b7a8d4fcecc50558b96644e545d Mon Sep 17 00:00:00 2001 From: VKing Date: Wed, 21 Oct 2015 21:52:48 +0200 Subject: [PATCH 15/51] Fix lead calculation for vehicle FCS --- addons/fcs/functions/fnc_keyDown.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/fcs/functions/fnc_keyDown.sqf b/addons/fcs/functions/fnc_keyDown.sqf index a56e94bbf1..ff382a68f0 100644 --- a/addons/fcs/functions/fnc_keyDown.sqf +++ b/addons/fcs/functions/fnc_keyDown.sqf @@ -22,7 +22,7 @@ _distance = call FUNC(getRange); if !(!GVAR(enabled) && FUNC(canUseFCS)) exitWith {}; GVAR(Enabled) = true; -GVAR(Time) = ACE_time; +GVAR(ACE_time) = ACE_time; if (_distance == 0) then { _distance = [5, 5000, 0] call EFUNC(common,getTargetDistance); // maximum distance: 5000m, 5m precision From a899c74133856b3cbb140b8cd3ce7439be0f3674 Mon Sep 17 00:00:00 2001 From: VKing Date: Wed, 21 Oct 2015 22:17:28 +0200 Subject: [PATCH 16/51] ace_fcs_ace_time -> ace_fcs_time --- addons/fcs/XEH_clientInit.sqf | 2 +- addons/fcs/functions/fnc_keyDown.sqf | 2 +- addons/fcs/functions/fnc_keyUp.sqf | 18 +++++++++--------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/addons/fcs/XEH_clientInit.sqf b/addons/fcs/XEH_clientInit.sqf index f5131dd135..3338e739e1 100644 --- a/addons/fcs/XEH_clientInit.sqf +++ b/addons/fcs/XEH_clientInit.sqf @@ -1,7 +1,7 @@ #include "script_component.hpp" GVAR(enabled) = false; -GVAR(ACE_time) = 0; +GVAR(time) = 0; GVAR(position) = [0,0,0]; if (!hasInterface) exitWith {}; diff --git a/addons/fcs/functions/fnc_keyDown.sqf b/addons/fcs/functions/fnc_keyDown.sqf index ff382a68f0..cea7196570 100644 --- a/addons/fcs/functions/fnc_keyDown.sqf +++ b/addons/fcs/functions/fnc_keyDown.sqf @@ -22,7 +22,7 @@ _distance = call FUNC(getRange); if !(!GVAR(enabled) && FUNC(canUseFCS)) exitWith {}; GVAR(Enabled) = true; -GVAR(ACE_time) = ACE_time; +GVAR(time) = ACE_time; if (_distance == 0) then { _distance = [5, 5000, 0] call EFUNC(common,getTargetDistance); // maximum distance: 5000m, 5m precision diff --git a/addons/fcs/functions/fnc_keyUp.sqf b/addons/fcs/functions/fnc_keyUp.sqf index 1e831d6df3..ca4b791a7c 100644 --- a/addons/fcs/functions/fnc_keyUp.sqf +++ b/addons/fcs/functions/fnc_keyUp.sqf @@ -60,7 +60,7 @@ private ["_movingAzimuth", "_posTarget", "_velocityTarget"]; // MOVING TARGETS _movingAzimuth = 0; -if (ACE_time - GVAR(ACE_time) > 1 and GVAR(ACE_time) != -1 and count _this < 3) then { +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), @@ -68,9 +68,9 @@ if (ACE_time - GVAR(ACE_time) > 1 and GVAR(ACE_time) != -1 and count _this < 3) (getPos _vehicle select 2) + _distance * (_weaponDirection select 2) ]; _velocityTarget = [ - ((_posTarget select 0) - (GVAR(position) select 0)) / (ACE_time - GVAR(ACE_time)), - ((_posTarget select 1) - (GVAR(position) select 1)) / (ACE_time - GVAR(ACE_time)), - ((_posTarget select 2) - (GVAR(position) select 2)) / (ACE_time - GVAR(ACE_time)) + ((_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 ["_magazineType", "_ammoType", "_initSpeed", "_airFriction", "_timeToLive", "_simulationStep", "_initSpeedCoef", "_velocityMagnitude"]; @@ -90,7 +90,7 @@ if (ACE_time - GVAR(ACE_time) > 1 and GVAR(ACE_time) != -1 and count _this < 3) if (_initSpeedCoef > 0) then { _initSpeed = _initSpeedCoef; }; - + if (_simulationStep != 0) then { private ["_posX", "_velocityX", "_velocityY", "_timeToTarget"]; @@ -130,7 +130,7 @@ if (ACE_time - GVAR(ACE_time) > 1 and GVAR(ACE_time) != -1 and count _this < 3) }; }; GVAR(enabled) = false; -GVAR(ACE_time) = -1; +GVAR(time) = -1; private ["_viewDiff", "_FCSAzimuth", "_FCSMagazines", "_FCSElevation"]; @@ -157,7 +157,7 @@ _FCSElevation = []; _maxElev = getNumber (_turretConfig >> "maxElev"); _initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazine >> "initSpeed"); _airFriction = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "airFriction"); - + { private ["_weapon", "_muzzles", "_weaponMagazines", "_muzzleMagazines"]; _weapon = _x; @@ -179,7 +179,7 @@ _FCSElevation = []; }; }; } forEach _weapons; - + _offset = "ace_fcs" callExtension format ["%1,%2,%3,%4", _initSpeed, _airFriction, _angleTarget, _distance]; _offset = parseNumber _offset; @@ -209,4 +209,4 @@ if(_playSound) then { if(_showHint) then { [format ["%1: %2", localize LSTRING(ZeroedTo), _distance]] call EFUNC(common,displayTextStructured); -}; \ No newline at end of file +}; From 069169cc7211d366473f21a1529df91b7c563eb3 Mon Sep 17 00:00:00 2001 From: VKing Date: Wed, 21 Oct 2015 22:52:21 +0200 Subject: [PATCH 17/51] Changed ACE_time back to time in comments where appropriate --- .../functions/fnc_addScrollWheelEventHandler.sqf | 2 +- addons/common/functions/fnc_cachedCall.sqf | 2 +- addons/common/functions/fnc_getDeathAnim.sqf | 2 +- addons/common/functions/fnc_progressBar.sqf | 2 +- addons/common/functions/fnc_setVariablePublic.sqf | 4 ++-- .../common/functions/fnc_throttledPublicVariable.sqf | 2 +- addons/common/functions/fnc_waitAndExecute.sqf | 2 +- addons/disarming/functions/fnc_disarmDropItems.sqf | 2 +- addons/dragging/functions/fnc_startCarry.sqf | 2 +- addons/dragging/functions/fnc_startDrag.sqf | 2 +- addons/dragging/functions/fnc_startDragPFH.sqf | 2 +- addons/explosives/functions/fnc_detonateExplosive.sqf | 2 +- addons/fcs/functions/fnc_keyUp.sqf | 10 +++++----- addons/gforces/functions/fnc_pfhUpdateGForces.sqf | 2 +- addons/grenades/functions/fnc_flashbangExplosionEH.sqf | 2 +- addons/javelin/functions/fnc_onOpticLoad.sqf | 4 ++-- .../functions/fnc_simulateRepackEvents.sqf | 2 +- addons/map/functions/fnc_determineMapLight.sqf | 2 +- addons/medical/XEH_respawn.sqf | 2 +- .../medical/functions/fnc_addHeartRateAdjustment.sqf | 2 +- addons/medical/functions/fnc_onMedicationUsage.sqf | 2 +- addons/medical/functions/fnc_playInjuredSound.sqf | 2 +- addons/medical/functions/fnc_setUnconscious.sqf | 2 +- .../fnc_treatmentAdvanced_medicationLocal.sqf | 2 +- .../functions/fnc_dev_simulateFindSolution.sqf | 2 +- addons/mk6mortar/functions/fnc_dev_simulateShot.sqf | 4 ++-- addons/overheating/functions/fnc_cooldown.sqf | 2 +- .../reloadlaunchers/functions/fnc_reloadLauncher.sqf | 2 +- addons/scopes/functions/fnc_showZeroing.sqf | 2 +- 29 files changed, 36 insertions(+), 36 deletions(-) diff --git a/addons/common/functions/fnc_addScrollWheelEventHandler.sqf b/addons/common/functions/fnc_addScrollWheelEventHandler.sqf index ef60270695..df1601c95a 100644 --- a/addons/common/functions/fnc_addScrollWheelEventHandler.sqf +++ b/addons/common/functions/fnc_addScrollWheelEventHandler.sqf @@ -1,6 +1,6 @@ /* * Author: commy2 - * Add an event handler that executes every ACE_time the scroll wheel is used. This is needed, because adding a MouseZ display event handler to display 46 will break in save games. + * Add an event handler that executes every time the scroll wheel is used. This is needed, because adding a MouseZ display event handler to display 46 will break in save games. * _this will be [Interval] where 'Interval' is a number. * * Arguments: diff --git a/addons/common/functions/fnc_cachedCall.sqf b/addons/common/functions/fnc_cachedCall.sqf index e1e0e16118..59350d0483 100644 --- a/addons/common/functions/fnc_cachedCall.sqf +++ b/addons/common/functions/fnc_cachedCall.sqf @@ -1,6 +1,6 @@ /* * Author: esteldunedain, Jaynus - * Returns the result of the function and caches it up to a given ACE_time or event + * Returns the result of the function and caches it up to a given time or event * * Arguments: * 0: Parameters diff --git a/addons/common/functions/fnc_getDeathAnim.sqf b/addons/common/functions/fnc_getDeathAnim.sqf index c88f89d35f..590418bf25 100644 --- a/addons/common/functions/fnc_getDeathAnim.sqf +++ b/addons/common/functions/fnc_getDeathAnim.sqf @@ -1,6 +1,6 @@ /* * Author: Glowbal, PabstMirror - * Get the death animation for the unit at current ACE_time + * Get the death animation for the unit at current time * * Arguments: * 0: unit diff --git a/addons/common/functions/fnc_progressBar.sqf b/addons/common/functions/fnc_progressBar.sqf index 29db1cd0c6..d93273a0c3 100644 --- a/addons/common/functions/fnc_progressBar.sqf +++ b/addons/common/functions/fnc_progressBar.sqf @@ -4,7 +4,7 @@ * Finish/Failure/Conditional are all passed [_args, _elapsedTime, _totalTime, _errorCode] * * Arguments: - * 0: NUMBER - Total Time (in game "ACE_time" seconds) + * 0: NUMBER - Total Time (in game "time" seconds) * 1: ARRAY - Arguments, passed to condition, fail and finish * 2: CODE or STRING - On Finish: Code called or STRING raised as event. * 3: CODE or STRING - On Failure: Code called or STRING raised as event. diff --git a/addons/common/functions/fnc_setVariablePublic.sqf b/addons/common/functions/fnc_setVariablePublic.sqf index b6fb58b0f4..67dbd5fd2f 100644 --- a/addons/common/functions/fnc_setVariablePublic.sqf +++ b/addons/common/functions/fnc_setVariablePublic.sqf @@ -1,12 +1,12 @@ /* * Author: commy2 and joko // Jonas - * Sets a public variable, but wait a certain amount of ACE_time to transfer the value over the network. Changing the value by calling this function again resets the windup timer. + * Sets a public variable, but wait a certain amount of time to transfer the value over the network. Changing the value by calling this function again resets the windup timer. * * Arguments: * 0: Object the variable should be assigned to * 1: Name of the variable * 2: Value of the variable - * 3: Windup ACE_time (default: 1) + * 3: Windup time (default: 1) * * Return Value: * None diff --git a/addons/common/functions/fnc_throttledPublicVariable.sqf b/addons/common/functions/fnc_throttledPublicVariable.sqf index cdc72f4450..67cfc50f9a 100644 --- a/addons/common/functions/fnc_throttledPublicVariable.sqf +++ b/addons/common/functions/fnc_throttledPublicVariable.sqf @@ -19,7 +19,7 @@ params ["_unit", "_varName", "_maxDelay"]; -// Create the publish scheduler PFH the first ACE_time +// Create the publish scheduler PFH the first time if (isNil QGVAR(publishSchedId)) then { GVAR(publishVarNames) = []; GVAR(publishNextTime) = 1e7; diff --git a/addons/common/functions/fnc_waitAndExecute.sqf b/addons/common/functions/fnc_waitAndExecute.sqf index af59e301f7..6f282ba656 100644 --- a/addons/common/functions/fnc_waitAndExecute.sqf +++ b/addons/common/functions/fnc_waitAndExecute.sqf @@ -1,6 +1,6 @@ /* * Author: esteldunedain - * Executes a code once with a given game ACE_time delay, using a PFH + * Executes a code once with a given game time delay, using a PFH * * Arguments: * 0: Code to execute diff --git a/addons/disarming/functions/fnc_disarmDropItems.sqf b/addons/disarming/functions/fnc_disarmDropItems.sqf index 91eff1c99d..be2f932028 100644 --- a/addons/disarming/functions/fnc_disarmDropItems.sqf +++ b/addons/disarming/functions/fnc_disarmDropItems.sqf @@ -63,7 +63,7 @@ if (isNull _holder) then { if (isNull _holder) exitWith { [_caller, _target, "Debug: Null Holder"] call FUNC(eventTargetFinish); }; -//Make sure only one drop operation at a ACE_time (using PFEH system as a queue) +//Make sure only one drop operation at a time (using PFEH system as a queue) if (_holder getVariable [QGVAR(holderInUse), false]) exitWith { [{ _this call FUNC(disarmDropItems); diff --git a/addons/dragging/functions/fnc_startCarry.sqf b/addons/dragging/functions/fnc_startCarry.sqf index a95a8f9fb4..3b08de2c9d 100644 --- a/addons/dragging/functions/fnc_startCarry.sqf +++ b/addons/dragging/functions/fnc_startCarry.sqf @@ -61,7 +61,7 @@ if (_target isKindOf "CAManBase") then { [_unit, _target, true] call EFUNC(common,claim); -// prevents draging and carrying at the same ACE_time +// prevents draging and carrying at the same time _unit setVariable [QGVAR(isCarrying), true, true]; // required for aborting animation diff --git a/addons/dragging/functions/fnc_startDrag.sqf b/addons/dragging/functions/fnc_startDrag.sqf index d3e55bdaea..6ad315ce00 100644 --- a/addons/dragging/functions/fnc_startDrag.sqf +++ b/addons/dragging/functions/fnc_startDrag.sqf @@ -45,7 +45,7 @@ if (_target isKindOf "CAManBase") then { [_target, "AinjPpneMrunSnonWnonDb_grab", 2, true] call EFUNC(common,doAnimation); }; -// prevents draging and carrying at the same ACE_time +// prevents draging and carrying at the same time _unit setVariable [QGVAR(isDragging), true, true]; [FUNC(startDragPFH), 0.2, [_unit, _target, ACE_time + 5]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/dragging/functions/fnc_startDragPFH.sqf b/addons/dragging/functions/fnc_startDragPFH.sqf index 1edbd92a99..14af1575a6 100644 --- a/addons/dragging/functions/fnc_startDragPFH.sqf +++ b/addons/dragging/functions/fnc_startDragPFH.sqf @@ -31,7 +31,7 @@ if (!alive _target || {_unit distance _target > 10}) then { [_idPFH] call CBA_fnc_removePerFrameHandler; }; -// timeout. Do nothing. Quit. ACE_time, because anim length is linked to ingame ACE_time. +// timeout. Do nothing. Quit. ACE_time, because anim length is linked to ingame time. if (ACE_time > _timeOut) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; diff --git a/addons/explosives/functions/fnc_detonateExplosive.sqf b/addons/explosives/functions/fnc_detonateExplosive.sqf index 373e72ac21..74e4dfca11 100644 --- a/addons/explosives/functions/fnc_detonateExplosive.sqf +++ b/addons/explosives/functions/fnc_detonateExplosive.sqf @@ -7,7 +7,7 @@ * 1: Max range (-1 to ignore) * 2: Explosive * 0: Explosive - * 1: Fuse ACE_time + * 1: Fuse time * * Return Value: * None diff --git a/addons/fcs/functions/fnc_keyUp.sqf b/addons/fcs/functions/fnc_keyUp.sqf index 1e831d6df3..a200bc235a 100644 --- a/addons/fcs/functions/fnc_keyUp.sqf +++ b/addons/fcs/functions/fnc_keyUp.sqf @@ -75,7 +75,7 @@ if (ACE_time - GVAR(ACE_time) > 1 and GVAR(ACE_time) != -1 and count _this < 3) private ["_magazineType", "_ammoType", "_initSpeed", "_airFriction", "_timeToLive", "_simulationStep", "_initSpeedCoef", "_velocityMagnitude"]; - // estimate ACE_time to target + // estimate time to target _magazineType = _vehicle currentMagazineTurret _turret; _ammoType = getText (configFile >> "CfgMagazines" >> _magazineType >> "ammo"); _initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazineType >> "initSpeed"); @@ -90,7 +90,7 @@ if (ACE_time - GVAR(ACE_time) > 1 and GVAR(ACE_time) != -1 and count _this < 3) if (_initSpeedCoef > 0) then { _initSpeed = _initSpeedCoef; }; - + if (_simulationStep != 0) then { private ["_posX", "_velocityX", "_velocityY", "_timeToTarget"]; @@ -157,7 +157,7 @@ _FCSElevation = []; _maxElev = getNumber (_turretConfig >> "maxElev"); _initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazine >> "initSpeed"); _airFriction = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "airFriction"); - + { private ["_weapon", "_muzzles", "_weaponMagazines", "_muzzleMagazines"]; _weapon = _x; @@ -179,7 +179,7 @@ _FCSElevation = []; }; }; } forEach _weapons; - + _offset = "ace_fcs" callExtension format ["%1,%2,%3,%4", _initSpeed, _airFriction, _angleTarget, _distance]; _offset = parseNumber _offset; @@ -209,4 +209,4 @@ if(_playSound) then { if(_showHint) then { [format ["%1: %2", localize LSTRING(ZeroedTo), _distance]] call EFUNC(common,displayTextStructured); -}; \ No newline at end of file +}; diff --git a/addons/gforces/functions/fnc_pfhUpdateGForces.sqf b/addons/gforces/functions/fnc_pfhUpdateGForces.sqf index b7173f5742..ee1bc8ca4a 100644 --- a/addons/gforces/functions/fnc_pfhUpdateGForces.sqf +++ b/addons/gforces/functions/fnc_pfhUpdateGForces.sqf @@ -19,7 +19,7 @@ EXPLODE_2_PVT(_this,_params,_pfhId); _interval = ACE_time - GVAR(lastUpdateTime); -// Update the g-forces at constant game ACE_time intervals +// Update the g-forces at constant game time intervals if (_interval < INTERVAL) exitWith {}; if (isNull ACE_player) exitWith {}; diff --git a/addons/grenades/functions/fnc_flashbangExplosionEH.sqf b/addons/grenades/functions/fnc_flashbangExplosionEH.sqf index b45dc099fc..0ac6502284 100644 --- a/addons/grenades/functions/fnc_flashbangExplosionEH.sqf +++ b/addons/grenades/functions/fnc_flashbangExplosionEH.sqf @@ -103,7 +103,7 @@ _affected = _grenade nearEntities ["CAManBase", 20]; GVAR(flashbangPPEffectCC) ppEffectAdjust [1,1,(0.8 + _strength) min 1,[1,1,1,0],[0,0,0,1],[0,0,0,0]]; GVAR(flashbangPPEffectCC) ppEffectCommit 0.01; - //PARTIALRECOVERY - start decreasing effect over ACE_time + //PARTIALRECOVERY - start decreasing effect over time [{ params ["_strength"]; diff --git a/addons/javelin/functions/fnc_onOpticLoad.sqf b/addons/javelin/functions/fnc_onOpticLoad.sqf index 895a48c910..cb4eac74f9 100644 --- a/addons/javelin/functions/fnc_onOpticLoad.sqf +++ b/addons/javelin/functions/fnc_onOpticLoad.sqf @@ -2,7 +2,7 @@ #include "script_component.hpp" TRACE_1("enter", _this); -#define __LOCKONTIMERANDOM 2 // Deviation in lock on ACE_time +#define __LOCKONTIMERANDOM 2 // Deviation in lock on time if((count _this) > 0) then { uiNameSpace setVariable ['ACE_RscOptics_javelin',_this select 0]; @@ -29,7 +29,7 @@ uiNameSpace setVariable [QGVAR(arguments), 0, // Run Time 0, // Lock Time 0, // Sound timer - (random __LOCKONTIMERANDOM), // random lock ACE_time addition + (random __LOCKONTIMERANDOM), // random lock time addition -1 ] ]; diff --git a/addons/magazinerepack/functions/fnc_simulateRepackEvents.sqf b/addons/magazinerepack/functions/fnc_simulateRepackEvents.sqf index 646bd880af..230bdefb4f 100644 --- a/addons/magazinerepack/functions/fnc_simulateRepackEvents.sqf +++ b/addons/magazinerepack/functions/fnc_simulateRepackEvents.sqf @@ -9,7 +9,7 @@ * 2: Magazine is a belt * * Return Value: - * Array in format [ACE_time, isBullet, array of ammo counts] + * Array in format [time, isBullet, array of ammo counts] * * Example: * [10, [1,2,3,8], false] call ace_magazinerepack_fnc_simulateRepackEvents = diff --git a/addons/map/functions/fnc_determineMapLight.sqf b/addons/map/functions/fnc_determineMapLight.sqf index 8204b4b7f8..01f3882f1f 100644 --- a/addons/map/functions/fnc_determineMapLight.sqf +++ b/addons/map/functions/fnc_determineMapLight.sqf @@ -26,7 +26,7 @@ _fnc_blendColor = { (_c1 select 3) * (1 - _alpha) + (_c2 select 3) * _alpha] }; -// Ambient light tint depending on ACE_time of day +// Ambient light tint depending on time of day _lightTint = switch (true) do { case (sunOrMoon == 1.0) : { [0.5,0.5,0.5,1] }; case (sunOrMoon > 0.80) : {[[1.0 - overcast,0.2,0,1], [1,1,1,1], (sunOrMoon - 0.8)/0.2] call _fnc_blendColor}; diff --git a/addons/medical/XEH_respawn.sqf b/addons/medical/XEH_respawn.sqf index b5b07bf141..438e7396cc 100644 --- a/addons/medical/XEH_respawn.sqf +++ b/addons/medical/XEH_respawn.sqf @@ -10,7 +10,7 @@ if (!(_unit getVariable ["ACE_isUnconscious", false])) then { [_unit, QGVAR(unconscious), false] call EFUNC(common,setCaptivityStatus); }; -// Remove maximum unconsciousness ACE_time handler +// Remove maximum unconsciousness time handler _maxUnconHandle = _unit getVariable [QGVAR(maxUnconTimeHandle), -1]; if (_maxUnconHandle > 0) then { [_maxUnconHandle] call CBA_fnc_removePerFrameHandler; diff --git a/addons/medical/functions/fnc_addHeartRateAdjustment.sqf b/addons/medical/functions/fnc_addHeartRateAdjustment.sqf index 7171eee275..9f2e7a8bf9 100644 --- a/addons/medical/functions/fnc_addHeartRateAdjustment.sqf +++ b/addons/medical/functions/fnc_addHeartRateAdjustment.sqf @@ -5,7 +5,7 @@ * Arguments: * 0: The unit * 1: value - * 2: ACE_time in seconds + * 2: time in seconds * 3: callback * * Return Value: diff --git a/addons/medical/functions/fnc_onMedicationUsage.sqf b/addons/medical/functions/fnc_onMedicationUsage.sqf index db4ba737ea..6bef38fa27 100644 --- a/addons/medical/functions/fnc_onMedicationUsage.sqf +++ b/addons/medical/functions/fnc_onMedicationUsage.sqf @@ -7,7 +7,7 @@ * 1: Medication Treatment classname * 2: The medication treatment variablename * 3: Max dosage - * 4: The ACE_time in the system + * 4: The time in the system * 5: Incompatable medication > * * Return Value: diff --git a/addons/medical/functions/fnc_playInjuredSound.sqf b/addons/medical/functions/fnc_playInjuredSound.sqf index ddf107c840..4792f879ec 100644 --- a/addons/medical/functions/fnc_playInjuredSound.sqf +++ b/addons/medical/functions/fnc_playInjuredSound.sqf @@ -1,7 +1,7 @@ /* * Author: Glowbal * Play the injured sound for a unit if the unit is damaged. The sound broadcasted across MP. - * Will not play if the unit has already played a sound within to close a ACE_time frame. + * Will not play if the unit has already played a sound within to close a time frame. * Delay: With minimal damage (below 1), the delay is (10 + random(50)) seconds. Otherwise it is 60 seconds / damage. * * Arguments: diff --git a/addons/medical/functions/fnc_setUnconscious.sqf b/addons/medical/functions/fnc_setUnconscious.sqf index cb9fff0693..aac48a8641 100644 --- a/addons/medical/functions/fnc_setUnconscious.sqf +++ b/addons/medical/functions/fnc_setUnconscious.sqf @@ -5,7 +5,7 @@ * Arguments: * 0: The unit that will be put in an unconscious state * 1: Set unconsciouns (default: true) - * 2: Minimum unconscious ACE_time (default: (round(random(10)+5))) + * 2: Minimum unconscious time (default: (round(random(10)+5))) * 3: Force AI Unconscious (skip random death chance) (default: false) * * ReturnValue: diff --git a/addons/medical/functions/fnc_treatmentAdvanced_medicationLocal.sqf b/addons/medical/functions/fnc_treatmentAdvanced_medicationLocal.sqf index 00a4fae8d9..c2797d825d 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_medicationLocal.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_medicationLocal.sqf @@ -84,7 +84,7 @@ _resistance = _target getvariable [QGVAR(peripheralResistance), 100]; _resistance = _resistance + _viscosityChange; _target setvariable [QGVAR(peripheralResistance), _resistance max 0]; -// Call back to ensure that the medication is decreased over ACE_time +// Call back to ensure that the medication is decreased over time [_target, _classname, _varName, _maxDose, _timeInSystem, _inCompatableMedication, _viscosityChange, _painReduce] call FUNC(onMedicationUsage); true diff --git a/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf b/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf index 32a5a314a7..d302a40f40 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf @@ -51,5 +51,5 @@ while {(_numberOfAttempts < MAX_ATTEMPTS) && {(abs _error) > 0.2}} do { }; if (_numberOfAttempts >= MAX_ATTEMPTS) exitWith {[]}; -//return the elevation and ACE_time required +//return the elevation and time required [_solutionElevation, (_lastTestResult select 1)] diff --git a/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf index 65f87256fe..0e53807a6b 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf @@ -45,7 +45,7 @@ _currentVelocity = [0, (_muzzleVelocity * cos _angleDeg), (_muzzleVelocity * sin _currentTime = 0; _lastPos = _currentPos; -_kCoefficent = -1 * _relDensity * _airFriction; //save ACE_time in the loop and compute once +_kCoefficent = -1 * _relDensity * _airFriction; //save time in the loop and compute once while {((_currentVelocity select 2) > 0) || ((_currentPos select 2) >= _heightOfTarget)} do { _lastPos = _currentPos; @@ -64,7 +64,7 @@ _linConversion = linearConversion [(_lastPos select 2), (_currentPos select 2), _middlePos = (_lastPos vectorMultiply (1 - _linConversion)) vectorAdd (_currentPos vectorMultiply (_linConversion)); // _middlePosOld = (_lastPos vectorAdd _currentPos) vectorMultiply 0.5; -//Same to find travel ACE_time +//Same to find travel time _middleTotalTravelTime = _currentTime - (_timeStep * (1-_linConversion)); //Find shot offset (from crosswind), in degrees diff --git a/addons/overheating/functions/fnc_cooldown.sqf b/addons/overheating/functions/fnc_cooldown.sqf index 9e54d35b56..52052c7251 100644 --- a/addons/overheating/functions/fnc_cooldown.sqf +++ b/addons/overheating/functions/fnc_cooldown.sqf @@ -16,7 +16,7 @@ EXPLODE_3_PVT(_this,_temperature,_barrelMass,_totalTime); -// If a long ACE_time passed since the last shot, there's no need to calculate anything; the weapon should be cool +// If a long time passed since the last shot, there's no need to calculate anything; the weapon should be cool if (_totalTime > 1800) exitWith {0}; private ["_barrelSurface", "_time", "_deltaTime"]; diff --git a/addons/reloadlaunchers/functions/fnc_reloadLauncher.sqf b/addons/reloadlaunchers/functions/fnc_reloadLauncher.sqf index a14e0dfc1f..fc802a025c 100644 --- a/addons/reloadlaunchers/functions/fnc_reloadLauncher.sqf +++ b/addons/reloadlaunchers/functions/fnc_reloadLauncher.sqf @@ -21,5 +21,5 @@ _target selectWeapon _weapon; if (currentWeapon _target != _weapon) exitWith {}; if (currentMagazine _target != "") exitWith {}; -// command is wip, reload ACE_time for launchers is not intended. +// command is wip, reload time for launchers is not intended. _target addWeaponItem [_weapon, _magazine]; diff --git a/addons/scopes/functions/fnc_showZeroing.sqf b/addons/scopes/functions/fnc_showZeroing.sqf index d3d4a38a9d..dd302ff333 100644 --- a/addons/scopes/functions/fnc_showZeroing.sqf +++ b/addons/scopes/functions/fnc_showZeroing.sqf @@ -44,7 +44,7 @@ _horizontal = _display displayCtrl 13; _vertical ctrlSetText (str _elevation); _horizontal ctrlSetText (str _windage); -// Set the ACE_time when to hide the knobs +// Set the time when to hide the knobs GVAR(timeToHide) = ACE_diagTime + 3.0; if !(isNil QGVAR(fadePFH)) exitWith {}; From e340f5164c6a8a566e386a16a6c7f1c00ab572b6 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 22 Oct 2015 20:54:09 -0500 Subject: [PATCH 18/51] Wirecutters - Update Fence Configs, Use faster getModelInfo --- addons/logistics_wirecutter/CfgVehicles.hpp | 12 ++++++------ .../functions/fnc_interactEH.sqf | 2 +- .../functions/fnc_isFence.sqf | 19 +++++-------------- 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/addons/logistics_wirecutter/CfgVehicles.hpp b/addons/logistics_wirecutter/CfgVehicles.hpp index 0b584409d3..d9c2943d45 100644 --- a/addons/logistics_wirecutter/CfgVehicles.hpp +++ b/addons/logistics_wirecutter/CfgVehicles.hpp @@ -11,16 +11,16 @@ class CfgVehicles { class Land_Net_Fence_4m_F: Wall_F { GVAR(isFence) = 1; }; class Land_Net_Fence_8m_F: Wall_F { GVAR(isFence) = 1; }; - class Land_Net_FenceD_8m_F: Wall_F { GVAR(isFence) = 1; }; class Land_New_WiredFence_5m_F: Wall_F { GVAR(isFence) = 1; }; - class Land_New_WiredFence_10m_Dam_F: Wall_F { GVAR(isFence) = 1; }; class Land_New_WiredFence_10m_F: Wall_F { GVAR(isFence) = 1; }; - class Land_Pipe_fence_4m_F: Wall_F { GVAR(isFence) = 1; }; - class Land_Pipe_fence_4mNoLC_F: Wall_F { GVAR(isFence) = 1; }; class Land_SportGround_fence_F: Wall_F { GVAR(isFence) = 1; }; class Land_Wired_Fence_4m_F: Wall_F { GVAR(isFence) = 1; }; - class Land_Wired_Fence_4mD_F: Wall_F { GVAR(isFence) = 1; }; class Land_Wired_Fence_8m_F: Wall_F { GVAR(isFence) = 1; }; - class Land_Wired_Fence_8mD_F: Wall_F { GVAR(isFence) = 1; }; + class Land_SportGround_fence_noLC_F: Wall_F { GVAR(isFence) = 1; }; + class Land_Mil_WiredFence_F: Wall_F { GVAR(isFence) = 1; }; + class Land_IndFnc_Corner_F: Wall_F { GVAR(isFence) = 1; }; + class Land_IndFnc_9_F: Wall_F { GVAR(isFence) = 1; }; + class Land_IndFnc_3_Hole_F: Wall_F { GVAR(isFence) = 1; }; + class Land_IndFnc_3_F: Wall_F { GVAR(isFence) = 1; }; class Land_Razorwire_F: NonStrategic { GVAR(isFence) = 1; }; }; diff --git a/addons/logistics_wirecutter/functions/fnc_interactEH.sqf b/addons/logistics_wirecutter/functions/fnc_interactEH.sqf index e93296e44a..e28ff17db6 100644 --- a/addons/logistics_wirecutter/functions/fnc_interactEH.sqf +++ b/addons/logistics_wirecutter/functions/fnc_interactEH.sqf @@ -56,7 +56,7 @@ TRACE_1("Starting wire-cut action PFEH",_interactionType); if ([_x] call FUNC(isFence)) then { _fencesHelped pushBack _x; _helper = "ACE_LogicDummy" createVehicleLocal (getpos _x); - _action = [QGVAR(helperCutFence), (localize LSTRING(CutFence)), QUOTE(PATHTOF(ui\wirecutter_ca.paa)), _fncStatement, _fncCondition, {}, _x, [0,0,0], 5] call EFUNC(interact_menu,createAction); + _action = [QGVAR(helperCutFence), (localize LSTRING(CutFence)), QUOTE(PATHTOF(ui\wirecutter_ca.paa)), _fncStatement, _fncCondition, {}, _x, {[0,0,0]}, 5.5] call EFUNC(interact_menu,createAction); [_helper, 0, [],_action] call EFUNC(interact_menu,addActionToObject); _helper setPosASL ((getPosASL _x) vectorAdd [0,0,1.25]); _addedHelpers pushBack _helper; diff --git a/addons/logistics_wirecutter/functions/fnc_isFence.sqf b/addons/logistics_wirecutter/functions/fnc_isFence.sqf index c1e30a7e6f..449ffd7b77 100644 --- a/addons/logistics_wirecutter/functions/fnc_isFence.sqf +++ b/addons/logistics_wirecutter/functions/fnc_isFence.sqf @@ -19,23 +19,14 @@ params ["_object"]; TRACE_1("params",_object); -private ["_typeOf", "_returnValue"]; +local _typeOf = typeOf _object; -_typeOf = typeOf _object; -_returnValue = false; - -if (_typeOf != "") then { +local _returnValue = if (_typeOf != "") then { //If the fence has configEntry we can check it directly - _returnValue = (1 == (getNumber (configFile >> "CfgVehicles" >> _typeOf >> QGVAR(isFence)))); + (1 == (getNumber (configFile >> "CfgVehicles" >> _typeOf >> QGVAR(isFence)))); } else { - //TODO: 1.50 use getModelInfo - _typeOf = toLower (str _object); //something like "123201: wall_indfnc_9.p3d" - { - if ((_typeOf find _x) != -1) exitWith { - _returnValue = true; - }; - nil - } count FENCE_P3DS; + //Check the p3d name against list (in script_component.hpp) + ((getModelInfo _object) select 0) in FENCE_P3DS; }; _returnValue From ef681e4332c176a8fec182de008ef02351712525 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 23 Oct 2015 13:11:11 -0500 Subject: [PATCH 19/51] Captives - Fix adding duplicate animEH --- addons/captives/functions/fnc_setHandcuffed.sqf | 11 ++++++----- addons/captives/functions/fnc_setSurrendered.sqf | 9 ++++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/addons/captives/functions/fnc_setHandcuffed.sqf b/addons/captives/functions/fnc_setHandcuffed.sqf index 00122862eb..0bc2e85c52 100644 --- a/addons/captives/functions/fnc_setHandcuffed.sqf +++ b/addons/captives/functions/fnc_setHandcuffed.sqf @@ -56,8 +56,11 @@ if (_state) then { //Adds an animation changed eh //If we get a change in animation then redo the animation (handles people vaulting to break the animation chain) - private "_animChangedEHID"; - + local _animChangedEHID = _unit getVariable [QGVAR(handcuffAnimEHID), -1]; + if (_animChangedEHID != -1) then { + TRACE_1("removing animChanged EH",_animChangedEHID); + _unit removeEventHandler ["AnimChanged", _animChangedEHID]; + }; _animChangedEHID = _unit addEventHandler ["AnimChanged", { params ["_unit", "_newAnimation"]; TRACE_2("AnimChanged",_unit,_newAnimation); @@ -67,7 +70,6 @@ if (_state) then { [_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation); }; } else { - _turretPath = []; { _x params ["_xUnit", "", "", "_xTurretPath"]; @@ -90,8 +92,7 @@ if (_state) then { [_unit, QGVAR(Handcuffed), false] call EFUNC(common,setCaptivityStatus); //remove AnimChanged EH - private "_animChangedEHID"; - _animChangedEHID = _unit getVariable [QGVAR(handcuffAnimEHID), -1]; + local _animChangedEHID = _unit getVariable [QGVAR(handcuffAnimEHID), -1]; TRACE_1("removing animChanged EH",_animChangedEHID); _unit removeEventHandler ["AnimChanged", _animChangedEHID]; _unit setVariable [QGVAR(handcuffAnimEHID), -1]; diff --git a/addons/captives/functions/fnc_setSurrendered.sqf b/addons/captives/functions/fnc_setSurrendered.sqf index cdba47a406..171455f3b1 100644 --- a/addons/captives/functions/fnc_setSurrendered.sqf +++ b/addons/captives/functions/fnc_setSurrendered.sqf @@ -48,7 +48,11 @@ if (_state) then { if (_unit getVariable [QGVAR(isSurrendering), false] && {(vehicle _unit) == _unit}) then { //Adds an animation changed eh //If we get a change in animation then redo the animation (handles people vaulting to break the animation chain) - private "_animChangedEHID"; + local _animChangedEHID = _unit getVariable [QGVAR(surrenderAnimEHID), -1]; + if (_animChangedEHID != -1) then { + TRACE_1("removing animChanged EH",_animChangedEHID); + _unit removeEventHandler ["AnimChanged", _animChangedEHID]; + }; _animChangedEHID = _unit addEventHandler ["AnimChanged", { params ["_unit", "_newAnimation"]; if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then { @@ -64,8 +68,7 @@ if (_state) then { [_unit, QGVAR(Surrendered), false] call EFUNC(common,setCaptivityStatus); //remove AnimChanged EH - private "_animChangedEHID"; - _animChangedEHID = _unit getVariable [QGVAR(surrenderAnimEHID), -1]; + local _animChangedEHID = _unit getVariable [QGVAR(surrenderAnimEHID), -1]; _unit removeEventHandler ["AnimChanged", _animChangedEHID]; _unit setVariable [QGVAR(surrenderAnimEHID), -1]; From 1c26f6c9f5e7093c335f362ddaece8521bb6176d Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 23 Oct 2015 14:17:31 -0500 Subject: [PATCH 20/51] Captives - Module to set handcuffing also add player check for GVAR(requireSurrender) in canApplyHandcuffes --- addons/captives/CfgVehicles.hpp | 22 +++++++++-- .../Icon_Module_Make_Unit_Handcuffed_ca.paa | Bin 0 -> 5625 bytes addons/captives/XEH_preInit.sqf | 1 + addons/captives/config.cpp | 2 +- .../functions/fnc_canApplyHandcuffs.sqf | 3 +- .../functions/fnc_moduleHandcuffed.sqf | 35 ++++++++++++++++++ .../functions/fnc_moduleSurrender.sqf | 27 +++++++------- addons/captives/stringtable.xml | 6 +++ .../Icon_Module_Make_Unit_Handcuffed_ca.png | Bin 0 -> 1293 bytes 9 files changed, 77 insertions(+), 19 deletions(-) create mode 100644 addons/captives/UI/Icon_Module_Make_Unit_Handcuffed_ca.paa create mode 100644 addons/captives/functions/fnc_moduleHandcuffed.sqf create mode 100644 extras/assets/icons/Icon_Module_png/Icon_Module_Make_Unit_Handcuffed_ca.png diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp index afda86cfda..eff1cf4c52 100644 --- a/addons/captives/CfgVehicles.hpp +++ b/addons/captives/CfgVehicles.hpp @@ -153,16 +153,32 @@ class CfgVehicles { class GVAR(ModuleSurrender): Module_F { author = ECSTRING(common,ACETeam); category = "ACE"; - displayName = CSTRING(ModuleSurrender_DisplayName); //Make Unit Surrender + displayName = CSTRING(ModuleSurrender_DisplayName); function = QFUNC(moduleSurrender); scope = 2; //show in editor - isGlobal = 1; //run global + isGlobal = 0; //run on server isTriggerActivated = 1; //Wait for triggers icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa)); functionPriority = 0; class Arguments {}; class ModuleDescription: ModuleDescription { - description = CSTRING(ModuleSurrender_Description); //Sync a unit to make them surrender.
Source: ace_captives + description = CSTRING(ModuleSurrender_Description); + sync[] = {"AnyAI"}; + }; + }; + class GVAR(ModuleHandcuffed): Module_F { + author = ECSTRING(common,ACETeam); + category = "ACE"; + displayName = CSTRING(ModuleHandcuffed_DisplayName); + function = QFUNC(moduleHandcuffed); + scope = 2; //show in editor + isGlobal = 0; //run on server + isTriggerActivated = 1; //Wait for triggers + icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Handcuffed_ca.paa)); + functionPriority = 0; + class Arguments {}; + class ModuleDescription: ModuleDescription { + description = CSTRING(ModuleHandcuffed_Description); sync[] = {"AnyAI"}; }; }; diff --git a/addons/captives/UI/Icon_Module_Make_Unit_Handcuffed_ca.paa b/addons/captives/UI/Icon_Module_Make_Unit_Handcuffed_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..85c556cb2ac7c456f369905b44e34450aae5d2b5 GIT binary patch literal 5625 zcmd^@drVVT7{Cvuh`8|3I8b>y9_qxA5yxJ*Ufc$B6RVps#JB}23#hB8+5R%K7g!|z zfm9aElA+z)vWIS?FumC$hEB}_Lcq99!Lp5PfCL#2d1#^K?3`P^)7#s?-6BNeZd$^x z-*>*(`OdlbTtA$Vk+$XejIC*EgwXi-_%4yN)3PXIa#7Am+mKG#hkPl&nx3xX$p1X~ zmWCj7WHCaO4&vN|4 z93PiiEb)g-aoP$GR%=b_>HI6^PZT`!@wV^jkE`%xS^fyAV#o*Lk^5I-ulYuqDmn)2 zVWgF_Xp+fg^_Tnew(mKga(yMn^7(fSVEMbkF-hl(Xw1N}_~(B9N&X}vRzF0VONnRd zf7kqb+9OluVSh%Z1(eo@G=HYM->H;d5_=}n|I^mjr7hK`zf7;MJYTe5-0@7!|Fr&< z?aAXI^`Egm54v1lkN+3bZ0QC4?V`EkgsXz#KuYl__}kW3@T+FwwgbQm`z%@3LVG80 z)G5JWvqZK6&vksWZoeFX-6 z6>NR`^!%PQdhtXN$dlTG9btHaqS!B)zmWaIcZBW#i#|&~GHDmZqI~t=MrTt}#I*I2 z*Ke*lr$^9-laL|)rv~sJj_e(b&)pyrt-GIN{|q*rFLCRy9B~AvNY=+?TFJ~jHa@W( z4{wQlld&qVhOB@0_`A)|>wF?s+1;-Xx;zHOknJ1sb)@XZ!3*TCSOAfcJ{(wn3`gRE zAC3mO$dbos#QPuY@CoYhkOvR4ZAx@P?qne6>x_e*{?RQwgMTuf9(yJBydKlZF@>m{)vF|PS^zV|p+fIoe z!P;7bkXr)vn|B%ODh_kc0Y5|Y69U+NI;d<`K1~Btr`;c+)Sz61N_q1nJin8b1!gWS9kuw`pSQOnt<@LnP?(T}$27O`c;S&Mv-R?pgwv+h$7X4?p7J*-CBE9~yYS;?Lu z(U(udlG7>r6+ItVz~8#wxYR3#?Qa9i^~E$L+fYP9Y50)>@vtS9X>(KZvbTE0o3Y4p z{rPAa7`z5IXEUlbsA-_7MCLZLCX#dIh*HlM=)nrE{_2j;8 OIAw?`3x%Iu(f$Lt=QtYx literal 0 HcmV?d00001 diff --git a/addons/captives/XEH_preInit.sqf b/addons/captives/XEH_preInit.sqf index b59249b937..dcc585ef8e 100644 --- a/addons/captives/XEH_preInit.sqf +++ b/addons/captives/XEH_preInit.sqf @@ -24,6 +24,7 @@ PREP(handlePlayerChanged); PREP(handleRespawn); PREP(handleUnitInitPost); PREP(handleZeusDisplayChanged); +PREP(moduleHandcuffed); PREP(moduleSettings); PREP(moduleSurrender); PREP(setHandcuffed); diff --git a/addons/captives/config.cpp b/addons/captives/config.cpp index cdaf6dc4e4..a9ec2950ee 100644 --- a/addons/captives/config.cpp +++ b/addons/captives/config.cpp @@ -2,7 +2,7 @@ class CfgPatches { class ADDON { - units[] = {QGVAR(ModuleSettings), QGVAR(ModuleSurrender)}; + units[] = {QGVAR(ModuleSettings), QGVAR(ModuleSurrender), QGVAR(ModuleHandcuffed)}; weapons[] = {"ACE_CableTie"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ACE_Interaction"}; diff --git a/addons/captives/functions/fnc_canApplyHandcuffs.sqf b/addons/captives/functions/fnc_canApplyHandcuffs.sqf index 368ce3cb7a..f5fa666652 100644 --- a/addons/captives/functions/fnc_canApplyHandcuffs.sqf +++ b/addons/captives/functions/fnc_canApplyHandcuffs.sqf @@ -20,11 +20,12 @@ params ["_unit", "_target"]; //Check sides, Player has cableTie, target is alive and not already handcuffed (GVAR(allowHandcuffOwnSide) || {(side _unit) != (side _target)}) && -("ACE_CableTie" in (items _unit)) && +{"ACE_CableTie" in (items _unit)} && {alive _target} && {!(_target getVariable [QGVAR(isHandcuffed), false])} && { (_target getVariable ["ACE_isUnconscious", false]) || //isUnconscious + {!([_target] call EFUNC(common,isPlayer))} || //is an AI (not a player) {GVAR(requireSurrender) == 0} || //or don't require surrendering {_target getVariable [QGVAR(isSurrendering), false]} || //or is surrendering {(GVAR(requireSurrender) == 2) && {(currentWeapon _target) == ""}} //or "SurrenderOrNoWeapon" and no weapon diff --git a/addons/captives/functions/fnc_moduleHandcuffed.sqf b/addons/captives/functions/fnc_moduleHandcuffed.sqf new file mode 100644 index 0000000000..4c6cc4c6fc --- /dev/null +++ b/addons/captives/functions/fnc_moduleHandcuffed.sqf @@ -0,0 +1,35 @@ +/* + * Author: PabstMirror + * Module Function to make a unit handcuffed (can be called from editor) + * + * Arguments: + * 0: The Module Logic + * 1: synced objects + * 2: Activated + * + * Return Value: + * Nothing + * + * Example: + * Called from module + * + * Public: No + */ +#include "script_component.hpp" + +params ["_logic", "_units", "_activated"]; + +TRACE_3("params",_logic,_units,_activated); + +if (!_activated) exitWith {}; +if (!isServer) exitWith {}; + +//Modules run before postInit can instal the event handler, so we need to wait a little bit +[{ + params ["_units"]; + { + ["SetHandcuffed", [_x], [_x, true]] call EFUNC(common,targetEvent); + } forEach _units; +}, [_units], 0.05] call EFUNC(common,waitAndExecute); + +deleteVehicle _logic; diff --git a/addons/captives/functions/fnc_moduleSurrender.sqf b/addons/captives/functions/fnc_moduleSurrender.sqf index bdb0f7c1b5..f5c091a78a 100644 --- a/addons/captives/functions/fnc_moduleSurrender.sqf +++ b/addons/captives/functions/fnc_moduleSurrender.sqf @@ -1,9 +1,9 @@ /* * Author: PabstMirror - * Module Function to make a unit surrender (can be called from editor, or placed with zeus) + * Module Function to make a unit surrender (can be called from editor) * * Arguments: - * 0: The Module Logic Object + * 0: The Module Logic * 1: synced objects * 2: Activated * @@ -17,20 +17,19 @@ */ #include "script_component.hpp" -private ["_bisMouseOver", "_mouseOverObject"]; - params ["_logic", "_units", "_activated"]; +TRACE_3("params",_logic,_units,_activated); + if (!_activated) exitWith {}; +if (!isServer) exitWith {}; -if (local _logic) then { - //Modules run before postInit can instal the event handler, so we need to wait a little bit - [{ - params ["_units"]; - { - ["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent); - } forEach _units; - }, [_units], 0.05]call EFUNC(common,waitAndExecute); +//Modules run before postInit can instal the event handler, so we need to wait a little bit +[{ + params ["_units"]; + { + ["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent); + } forEach _units; +}, [_units], 0.05] call EFUNC(common,waitAndExecute); - deleteVehicle _logic; -}; +deleteVehicle _logic; diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 0ab6cb457d..d4166a495d 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -179,6 +179,12 @@ Egység szinkronizálása, hogy kapituláljon.<br />Forrás: ace_captives Синхронизируйте с юнитами, чтобы сделать их пленными.<br />Источник: ace_captives + + Make Unit Handcuffed + + + Sync a unit to make them handcuffed.<br />Source: ace_captives + Captives Settings Ustawienia więźniów diff --git a/extras/assets/icons/Icon_Module_png/Icon_Module_Make_Unit_Handcuffed_ca.png b/extras/assets/icons/Icon_Module_png/Icon_Module_Make_Unit_Handcuffed_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..e097b6ac7f18eddd66983254e17c060297251d7f GIT binary patch literal 1293 zcmV+o1@iidP)&abeVz~4Haj`qMY#d?_sUO?DNexGv|!^JKs2S{;)Xvvi3e}|G%}@ zxAs1#PLha=x4zgcP?Fid+j@_=!HJhwol1v>i}bop+KfXq;B0_OPVQH%gE0*YQR4|o83@&L<#cHoc9 zEUNPUUnA+bq$83xO4=pqf}{mtdx7V@?ObAfgMW4bFB6-Dj9q?;q@5ay6Oy(E zdb@+Z%LxgwO;TM<8?#P@Zvj>X^%KD7US1EhV2RNDK&J*4c}`Njq!&lg578lMMa&==YoghbzDhCp;xG%@A*sO^eoJ$%GN?IO^fLL2# zE0)5BxCDHL9cckp0LwAAe+i2Nn}8dGF}=VSz>i*E4BQDU40P@S9s+)%G^ZFFBCz;K z%2PTjsYTLE*J+frNYWNbtNiJIofy+0=^05=gSn?lx?j@1gzjnCk$PNgfu!pf7eAbS zgOd>Aj4yt;F}J0Va4-e|G4g=$xH^EH>b@C4|2&rXgwcEtuxo@doxqorrpblM%uGiN z0>Z@PckHM;5@rC4g8Be(xQy@l)uo8ES7gPAK|q+A_5=S!n6n&2$zo$nG7yxTD9!83 z#oRJ<<|pR9JcjQXf*1sZdHgJ3$te1#f$td1LL0GLp=8<{VmfdSrD=6nWoD)$1_Api zy}w_Fo#fK61Y2ka@NLjuz^=d3NSKcOV6rx7>jUkp9Z`M+>Bj# z{ORpWv2()r*!}+}*i$W{#Xs9!2kaL4Zb}yqcCpeH!S-mW@LEZI8j3zihh2&|Dd}<9 z#m2iSVpQZz6kUp)`B!2@{O9ch*!})q?8lEViZ8$xzZ%Od zZ}RqjjMM{IcG*c}O#1%`*8U`ww*h&hMnK*MF)dx+XVH00000NkvXXu0mjf DR3lt> literal 0 HcmV?d00001 From fefe24b7ebd5cc7e5f853b6fd3be4cd299cef6e0 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 24 Oct 2015 19:07:23 -0500 Subject: [PATCH 21/51] Disable debug in parachute --- addons/parachute/functions/fnc_showAltimeter.sqf | 8 +++----- addons/parachute/script_component.hpp | 1 - 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/addons/parachute/functions/fnc_showAltimeter.sqf b/addons/parachute/functions/fnc_showAltimeter.sqf index 28909f19cd..6f4159e85d 100644 --- a/addons/parachute/functions/fnc_showAltimeter.sqf +++ b/addons/parachute/functions/fnc_showAltimeter.sqf @@ -15,9 +15,7 @@ */ #include "script_component.hpp" -private ["_unit"]; - -_unit = _this select 0; +params ["_unit"]; (["ACE_Altimeter"] call BIS_fnc_rscLayer) cutRsc ["ACE_Altimeter", "PLAIN", 0, true]; if (isNull (uiNamespace getVariable ["ACE_Altimeter", displayNull])) exitWith {}; @@ -27,7 +25,7 @@ GVAR(AltimeterActive) = true; [{ if (!GVAR(AltimeterActive)) exitWith {[_this select 1] call CALLSTACK(cba_fnc_removePerFrameEventHandler)}; disableSerialization; - EXPLODE_4_PVT(_this select 0,_display,_unit,_oldHeight,_prevTime); + (_this select 0) params ["_display", "_unit", "_oldHeight", "_prevTime"]; if !("ACE_Altimeter" in assignedItems _unit) exitWith {[_this select 1] call CALLSTACK(cba_fnc_removePerFrameEventHandler); call FUNC(hideAltimeter)}; private ["_height", "_hour", "_minute", "_descentRate","_HeightText", "_DecendRate", "_TimeText", "_curTime", "_timeDiff"]; @@ -38,7 +36,7 @@ GVAR(AltimeterActive) = true; _hour = floor daytime; _minute = floor ((daytime - _hour) * 60); - _height = (getPosASL _unit) select 2; + _height = ((getPosASL _unit) select 2) + EGVAR(common,mapAltitude); _curTime = ACE_time; _timeDiff = _curTime - _prevTime; _descentRate = if(_timeDiff > 0) then {floor((_oldHeight - _height) / _timeDiff)} else {0}; diff --git a/addons/parachute/script_component.hpp b/addons/parachute/script_component.hpp index 93a3e0d363..5668220421 100644 --- a/addons/parachute/script_component.hpp +++ b/addons/parachute/script_component.hpp @@ -1,4 +1,3 @@ -#define DEBUG_ENABLED_PARACHUTE #define COMPONENT parachute #include "\z\ace\addons\main\script_mod.hpp" From ce5364d7afeebbb1d4f50ba791e3e4e76d3c585c Mon Sep 17 00:00:00 2001 From: Jonathan Pereira Date: Mon, 26 Oct 2015 22:04:03 -0200 Subject: [PATCH 22/51] Added PT-BR translations Added all remaining translations, including dagr, dragging, map, map_gestures, medical, repair, tacticalladder and zeus. --- addons/dagr/stringtable.xml | 6 ++++- addons/dragging/stringtable.xml | 5 ++-- addons/map/stringtable.xml | 2 ++ addons/map_gestures/stringtable.xml | 33 ++++++++++++++++++++++++++- addons/medical/stringtable.xml | 9 +++++++- addons/repair/stringtable.xml | 7 ++++-- addons/tacticalladder/stringtable.xml | 5 ++-- addons/zeus/stringtable.xml | 10 ++++++-- 8 files changed, 66 insertions(+), 11 deletions(-) diff --git a/addons/dagr/stringtable.xml b/addons/dagr/stringtable.xml index 1abd146800..a164ac51f3 100644 --- a/addons/dagr/stringtable.xml +++ b/addons/dagr/stringtable.xml @@ -6,24 +6,28 @@ DAGR DAGR DAGR + DAGR Configure DAGR Konfiguruj DAGR Configurar DAGR Настроить DAGR + Configurar DAGR Toggle DAGR Przełącz DAGR Mostrar DAGR Вкл./выкл. DAGR + Mostrar DAGR Defense Advanced GPS Receiver Defense Advanced GPS Receiver Defense Advanced GPS Receiver Военный многофункциональный GPS-приёмник + Defense Advanced GPS Receiver - + \ No newline at end of file diff --git a/addons/dragging/stringtable.xml b/addons/dragging/stringtable.xml index 4535a8e62e..417493fc75 100644 --- a/addons/dragging/stringtable.xml +++ b/addons/dragging/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -53,6 +53,7 @@ Raise/Lower Heben/Senken Wyżej/Niżej + Levantar/Abaixar - + \ No newline at end of file diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index 0488a13493..92547e8632 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -259,10 +259,12 @@ Set Channel At Start Ust. domyślny kanał + Definir canal no início Change the starting marker channel at mission start 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/map_gestures/stringtable.xml b/addons/map_gestures/stringtable.xml index e5eab426a3..fe513a4d49 100644 --- a/addons/map_gestures/stringtable.xml +++ b/addons/map_gestures/stringtable.xml @@ -3,96 +3,127 @@ Map Gestures + Gestos no mapa Enabled + Ativado Map Gesture Max Range + Distância para gestos no mapa Max range between players to show the map gesture indicator [default: 7 meters] + Distância max. entre os jogadores para mostrar o indicador de gesto no mapa [padrão: 7 metros] Lead Default Alpha + Transparência padrão do líder Fallback Alpha value for group leaders. + Valor de transparência alternativo para líderes de grupo Default Alpha + Transparência padrão Fallback Alpha value. + Valor alternativo de transparência Lead Default Color + Cor padrão para o líder Fallback Color value for group leaders. + Valor de cor alternativa para líderes de grupo Default Color + Cor padrão Fallback Color value. + Valor alternativo de cor Lead Alpha + Transparência do líder Alpha value for group leaders of groups synced with this module. + Valor de transparência para líderes de grupo sincronizados com este módulo. Alpha + Transparência Alpha value for group members of groups synced with this module. + Valor de transparência para membros de grupo sincronizados com este módulo. Lead Color + Cor do líder Color value for group leaders of groups synced with this module. + Valor de cor para líderes de grupo sincronizados com este módulo. Color + Cor Color value for group members of groups synced with this module. + Valor de cor para membros de grupo sincronizados com este módulo. Map Gestures - Group Settings + Gestos no mapa - Definições de Grupo Update Interval + Intervalo de atualizações Time between data updates. + Tempo entre atualização de dados Group color configurations + Configurações de cores de grupo Group color configuration containing arrays of color pairs ([leadColor, color]). + Configuração de cores de grupo contendo arrays com pares de cores ([leadColor, color]). Hash of Group ID mapped to the Group color configuration index. + Hashes de ID de grupos mapeados para o índice de configuração de cor de grupos. GroupID Color configuration mapping + Mapeamento de configuração para cores de GroupID Enables the Map Gestures. + Ativa os gestos no mapa Name Text Color + Cor do texto do nome Color of the name tag text besides the map gestures mark. + Cor do texto da etiqueta de nome que fica embaixo da marcação de gestos no mapa. Map Gestures + Gestos no mapa - + \ No newline at end of file diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 8b4282c555..0a75d67583 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -2105,10 +2105,12 @@ %1 wykonał cykl RKO %1 провел сердечно-легочную реанимацию %1 realicó RCP + %1 realizou RCP %1 used Personal Aid Kit %1 użył apteczki + %1 utilizou KPS Heavily wounded @@ -2223,6 +2225,7 @@ Lecz w pełni zabandażowane hitpointy Curar miembros totalmente vendados Исцелять полностью перебинтованные части тела + Curar hitpoints totalmente enfaixados Pain is only temporarily suppressed @@ -3441,12 +3444,14 @@ Lecz hitpointy Curar puntos de vida Исцелять части тела + Curar hitpoints Heal fully bandaged hitpoints Po bandażowaniu ulecz hitpointy, usuwając z nich ślady krwi i przywracając im pełną sprawność. Curar miembros totalmente vendados Исцелять полностью перебинтованные части тела + Curar totalmente hitpoints enfaixados Pain suppression @@ -3844,12 +3849,14 @@ Ta osoba (%1) jest przytomna i nie może zostać załadowana Esta persona (%1) está despierto y no puede ser cargado Боец (%1) в сознании и не может быть погружен + Esta pessoa (%1) está acordada e não pode ser carregada There is no tourniquet on this body part! Na tej części ciała nie ma stazy! No hay torniquete en esta parte del cuerpo! Нет жгута на этой части тела! + Não existe nenhum torniquete nesta parte do corpo! - + \ No newline at end of file diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index d4b9527f09..ddbccb7777 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -388,6 +388,7 @@ Ocas Хвост Tail + Cauda Pitot Tube @@ -1000,12 +1001,14 @@ Wym. naprawy kół Requisitos de reparación de ruedas Для ремонта колес требуется + Requerimentos para reparo de rodas Items required to remove/replace wheels Przedmioty potrzebne do wymiany kół Elementos necesarios para quitar/cambiar ruedas Предметы, которые требуются для снятия/замены колес + Itens requeridos para remover/trocar rodas - + \ No newline at end of file diff --git a/addons/tacticalladder/stringtable.xml b/addons/tacticalladder/stringtable.xml index b347c4e2d9..57f03f7600 100644 --- a/addons/tacticalladder/stringtable.xml +++ b/addons/tacticalladder/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -41,6 +41,7 @@ Extend, +Ctrl tilt Ausfahren, +Strg kippen Rozłóż, +Ctrl nachyl + Extender, +Ctrl tilt Position ladder @@ -67,4 +68,4 @@ Pegar escada - + \ No newline at end of file diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 6063f5011a..0281f0a5a0 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -214,15 +214,19 @@ Add Spare Wheel + Adicionar roda sobressalente Adds a Spare Wheel to the vehicle + Adiciona uma roda sobressalente ao veículo Add Spare Track + Adicionar esteira sobressalente Adds a Spare Track to the vehicle + Adiciona uma esteira sobressalente ao veículo Unit must be alive @@ -264,9 +268,11 @@ Unit must be a vehicle with cargo space + Unidade deve ser um veículo com espaço em carga Unit must have cargo space left + Unidade deve conter espaço sobressalente Unit must not be captive @@ -317,4 +323,4 @@ Añadir cualquier objeto creado a todos los directores en la misión - + \ No newline at end of file From 643f4d36dc1115ea7737c123454505381a788c65 Mon Sep 17 00:00:00 2001 From: commy2 Date: Wed, 28 Oct 2015 08:01:25 +0100 Subject: [PATCH 23/51] add FUNC(hasHatch) --- addons/common/XEH_preInit.sqf | 1 + addons/common/functions/fnc_hasHatch.sqf | 35 ++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 addons/common/functions/fnc_hasHatch.sqf diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf index e1cc807bdc..a9b10c4896 100644 --- a/addons/common/XEH_preInit.sqf +++ b/addons/common/XEH_preInit.sqf @@ -223,6 +223,7 @@ PREP(getTurretCopilot); PREP(getDoorTurrets); PREP(getTurretsFFV); PREP(getTurretsOther); +PREP(hasHatch); // missing inventory commands PREP(binocularMagazine); diff --git a/addons/common/functions/fnc_hasHatch.sqf b/addons/common/functions/fnc_hasHatch.sqf new file mode 100644 index 0000000000..59da0938bd --- /dev/null +++ b/addons/common/functions/fnc_hasHatch.sqf @@ -0,0 +1,35 @@ +/* + * Author: commy2 + * Check if unit has a hatch and can turn out. + * + * Arguments: + * 0: Unit + * + * Return Value: + * Unit has a hatch? + * + * Public: Yes + */ +#include "script_component.hpp" + +params ["_unit"]; + +local _vehicle = vehicle _unit; + +if (_unit == _vehicle) exitWith {false}; + +local _config = configFile >> "CfgVehicles" >> typeOf _vehicle; + +if (getNumber (_config >> "hideProxyInCombat") != 1) exitWith {false}; + +if (_unit == driver _vehicle) exitWith { + getNumber (_config >> "forceHideDriver") == 0; // return +}; + +local _turret = [_unit] call FUNC(getTurretIndex); + +if (_turret isEqualTo []) exitWith {false}; + +local _turretConfig = [_config, _turret] call FUNC(getTurretConfigPath); + +getNumber (_turretConfig >> "forceHideGunner") == 0; // return From 6ac1d8361d157dd8ececee88f08506b3862bf6d0 Mon Sep 17 00:00:00 2001 From: ColdEvul Date: Wed, 28 Oct 2015 16:00:24 +0100 Subject: [PATCH 24/51] Fixed small UAV carrying allot of cargo. --- addons/cargo/CfgVehicles.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/addons/cargo/CfgVehicles.hpp b/addons/cargo/CfgVehicles.hpp index 111c4d9956..56e3aee2c2 100644 --- a/addons/cargo/CfgVehicles.hpp +++ b/addons/cargo/CfgVehicles.hpp @@ -171,6 +171,13 @@ class CfgVehicles { GVAR(hasCargo) = 0; }; + // autonomus + class Helicopter_Base_F; + class UAV_01_base_F: Helicopter_Base_F { + GVAR(space) = 0; + GVAR(hasCargo) = 0; + }; + // boats class Ship; class Ship_F: Ship { From 932f09ce60f7b3d060b2e6b79ce75614bcaa8dc4 Mon Sep 17 00:00:00 2001 From: commy2 Date: Wed, 28 Oct 2015 18:57:47 +0100 Subject: [PATCH 25/51] rename hasHatch to canTurnOut, change description in function header --- addons/common/XEH_preInit.sqf | 2 +- .../common/functions/{fnc_hasHatch.sqf => fnc_canTurnOut.sqf} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename addons/common/functions/{fnc_hasHatch.sqf => fnc_canTurnOut.sqf} (91%) diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf index a9b10c4896..bc9f2e96e6 100644 --- a/addons/common/XEH_preInit.sqf +++ b/addons/common/XEH_preInit.sqf @@ -223,7 +223,7 @@ PREP(getTurretCopilot); PREP(getDoorTurrets); PREP(getTurretsFFV); PREP(getTurretsOther); -PREP(hasHatch); +PREP(canTurnOut); // missing inventory commands PREP(binocularMagazine); diff --git a/addons/common/functions/fnc_hasHatch.sqf b/addons/common/functions/fnc_canTurnOut.sqf similarity index 91% rename from addons/common/functions/fnc_hasHatch.sqf rename to addons/common/functions/fnc_canTurnOut.sqf index 59da0938bd..c62f1b884a 100644 --- a/addons/common/functions/fnc_hasHatch.sqf +++ b/addons/common/functions/fnc_canTurnOut.sqf @@ -1,6 +1,6 @@ /* * Author: commy2 - * Check if unit has a hatch and can turn out. + * Check if unit is in a vehicle position where unit can turn out. * * Arguments: * 0: Unit From a0bfcdd04c0edba4c0ac8a9c37c2e073ee5c1961 Mon Sep 17 00:00:00 2001 From: commy2 Date: Wed, 28 Oct 2015 19:01:47 +0100 Subject: [PATCH 26/51] Revert "rename hasHatch to canTurnOut, change description in function header" This reverts commit 932f09ce60f7b3d060b2e6b79ce75614bcaa8dc4. --- addons/common/XEH_preInit.sqf | 2 +- .../common/functions/{fnc_canTurnOut.sqf => fnc_hasHatch.sqf} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename addons/common/functions/{fnc_canTurnOut.sqf => fnc_hasHatch.sqf} (91%) diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf index bc9f2e96e6..a9b10c4896 100644 --- a/addons/common/XEH_preInit.sqf +++ b/addons/common/XEH_preInit.sqf @@ -223,7 +223,7 @@ PREP(getTurretCopilot); PREP(getDoorTurrets); PREP(getTurretsFFV); PREP(getTurretsOther); -PREP(canTurnOut); +PREP(hasHatch); // missing inventory commands PREP(binocularMagazine); diff --git a/addons/common/functions/fnc_canTurnOut.sqf b/addons/common/functions/fnc_hasHatch.sqf similarity index 91% rename from addons/common/functions/fnc_canTurnOut.sqf rename to addons/common/functions/fnc_hasHatch.sqf index c62f1b884a..59da0938bd 100644 --- a/addons/common/functions/fnc_canTurnOut.sqf +++ b/addons/common/functions/fnc_hasHatch.sqf @@ -1,6 +1,6 @@ /* * Author: commy2 - * Check if unit is in a vehicle position where unit can turn out. + * Check if unit has a hatch and can turn out. * * Arguments: * 0: Unit From 049d40b96e1f22e3161d4622266e9b2374382093 Mon Sep 17 00:00:00 2001 From: commy2 Date: Wed, 28 Oct 2015 19:02:54 +0100 Subject: [PATCH 27/51] change description in function header --- addons/common/functions/fnc_hasHatch.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_hasHatch.sqf b/addons/common/functions/fnc_hasHatch.sqf index 59da0938bd..124eed78a5 100644 --- a/addons/common/functions/fnc_hasHatch.sqf +++ b/addons/common/functions/fnc_hasHatch.sqf @@ -1,6 +1,6 @@ /* * Author: commy2 - * Check if unit has a hatch and can turn out. + * Check if unit is in a vehicle position where it can turn in or out. * * Arguments: * 0: Unit From d424eadd48c6602298d71cfaf5dbfc61d003998b Mon Sep 17 00:00:00 2001 From: commy2 Date: Wed, 28 Oct 2015 19:25:59 +0100 Subject: [PATCH 28/51] delete superfluous space ocd --- addons/vehicles/CfgVehicles.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/vehicles/CfgVehicles.hpp b/addons/vehicles/CfgVehicles.hpp index e1f7295865..49fba3aeed 100644 --- a/addons/vehicles/CfgVehicles.hpp +++ b/addons/vehicles/CfgVehicles.hpp @@ -281,7 +281,7 @@ class CfgVehicles { class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F { class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"autocannon_40mm_CTWS", "ACE_LMG_coax_MAG58_mem2"}; + weapons[] = {"autocannon_40mm_CTWS","ACE_LMG_coax_MAG58_mem2"}; magazines[] = {"60Rnd_40mm_GPR_Tracer_Red_shells","40Rnd_40mm_APFSDS_Tracer_Red_shells","2000Rnd_762x51_Belt_Green"}; }; }; From 7d69b7a3f495f9310ad5edb3720f84196761f843 Mon Sep 17 00:00:00 2001 From: commy2 Date: Wed, 28 Oct 2015 19:48:49 +0100 Subject: [PATCH 29/51] fix merkava, patria tracer color --- addons/vehicles/CfgVehicles.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/vehicles/CfgVehicles.hpp b/addons/vehicles/CfgVehicles.hpp index 49fba3aeed..8834cc1d4d 100644 --- a/addons/vehicles/CfgVehicles.hpp +++ b/addons/vehicles/CfgVehicles.hpp @@ -128,7 +128,7 @@ class CfgVehicles { class Turrets: Turrets { class MainTurret: MainTurret { weapons[] = {"cannon_120mm","ACE_LMG_coax_MAG58_mem2"}; - magazines[] = {"32Rnd_120mm_APFSDS_shells_Tracer_Red","16Rnd_120mm_HE_shells_Tracer_Red","2000Rnd_762x51_Belt_Green","2000Rnd_762x51_Belt_Green"}; + magazines[] = {"32Rnd_120mm_APFSDS_shells_Tracer_Red","16Rnd_120mm_HE_shells_Tracer_Red","2000Rnd_762x51_Belt_Red","2000Rnd_762x51_Belt_Red"}; class Turrets: Turrets { class CommanderOptics: CommanderOptics {}; }; @@ -282,7 +282,7 @@ class CfgVehicles { class Turrets: Turrets { class MainTurret: MainTurret { weapons[] = {"autocannon_40mm_CTWS","ACE_LMG_coax_MAG58_mem2"}; - magazines[] = {"60Rnd_40mm_GPR_Tracer_Red_shells","40Rnd_40mm_APFSDS_Tracer_Red_shells","2000Rnd_762x51_Belt_Green"}; + magazines[] = {"60Rnd_40mm_GPR_Tracer_Red_shells","40Rnd_40mm_APFSDS_Tracer_Red_shells","2000Rnd_762x51_Belt_Red"}; }; }; }; @@ -302,7 +302,7 @@ class CfgVehicles { class Turrets: Turrets { class MainTurret: MainTurret { weapons[] = {"cannon_105mm","ACE_LMG_coax_MAG58_mem2"}; - magazines[] = {"40Rnd_105mm_APFSDS_T_Red","20Rnd_105mm_HEAT_MP_T_Red","2000Rnd_762x51_Belt_Green","2000Rnd_762x51_Belt_Green"}; + magazines[] = {"40Rnd_105mm_APFSDS_T_Red","20Rnd_105mm_HEAT_MP_T_Red","2000Rnd_762x51_Belt_Red","2000Rnd_762x51_Belt_Red"}; class Turrets: Turrets { class CommanderOptics: CommanderOptics {}; }; From de90960127bcd50a8874c533302f078f2139f720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brostr=C3=B6m=2EA=20=7C=20Evul?= Date: Thu, 29 Oct 2015 22:51:06 +0100 Subject: [PATCH 30/51] Update AUTHORS.txt --- AUTHORS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS.txt b/AUTHORS.txt index 8c22096033..f4ebd317eb 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -44,6 +44,7 @@ BlackPixxel BlackQwar Brakoviejo Brisse +Brostrom.A | Evul BullHorn Clon1998 Codingboy From a432687552167660c346f6705f9561bb1ebe662d Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 29 Oct 2015 21:07:33 -0500 Subject: [PATCH 31/51] make.py - fix last input spacing no blocking on import --- tools/make.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/make.py b/tools/make.py index f8a4c80886..adaecf269e 100644 --- a/tools/make.py +++ b/tools/make.py @@ -1440,4 +1440,4 @@ if __name__ == "__main__": main(sys.argv) d,h,m,s = Fract_Sec(timeit.default_timer() - start_time) print("\nTotal Program time elapsed: {0:2}h {1:2}m {2:4.5f}s".format(h,m,s)) -input("Press Enter to continue...") + input("Press Enter to continue...") From 998f3e996c085474c26cb7677bc018aeef705ee9 Mon Sep 17 00:00:00 2001 From: jonpas Date: Fri, 30 Oct 2015 21:59:46 +0100 Subject: [PATCH 32/51] Cleanup macro definitions --- addons/main/script_debug.hpp | 26 ++++++++++---------------- addons/main/script_macros.hpp | 16 ---------------- addons/main/script_mod.hpp | 4 +--- 3 files changed, 11 insertions(+), 35 deletions(-) diff --git a/addons/main/script_debug.hpp b/addons/main/script_debug.hpp index 578d76cc91..315a26a65f 100644 --- a/addons/main/script_debug.hpp +++ b/addons/main/script_debug.hpp @@ -6,22 +6,16 @@ STACK TRACING //#define DEBUG_EVENTS #ifdef ENABLE_CALLSTACK + #define CALLSTACK(function) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, 'ANON', _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = 'ANON'; _ret = _this call ##function; ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} + #define CALLSTACK_NAMED(function, functionName) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, functionName, _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = functionName; _ret = _this call ##function; ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} + #define DUMPSTACK ([__FILE__, __LINE__] call ACE_DUMPSTACK_FNC) -#define CALLSTACK(function) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, 'ANON', _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = 'ANON'; _ret = _this call ##function; ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} -#define CALLSTACK_NAMED(function, functionName) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, functionName, _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = functionName; _ret = _this call ##function; ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} -#define DUMPSTACK ([__FILE__, __LINE__] call ACE_DUMPSTACK_FNC) - -#define FUNC(var1) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, 'TRIPLES(ADDON,fnc,var1)', _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = 'TRIPLES(ADDON,fnc,var1)'; _ret = _this call TRIPLES(ADDON,fnc,var1); ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} -#define EFUNC(var1,var2) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, 'TRIPLES(DOUBLES(PREFIX,var1),fnc,var2)', _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = 'TRIPLES(DOUBLES(PREFIX,var1),fnc,var2)'; _ret = _this call TRIPLES(DOUBLES(PREFIX,var1),fnc,var2); ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} - + #define FUNC(var1) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, 'TRIPLES(ADDON,fnc,var1)', _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = 'TRIPLES(ADDON,fnc,var1)'; _ret = _this call TRIPLES(ADDON,fnc,var1); ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} + #define EFUNC(var1,var2) {private ['_ret']; if(ACE_IS_ERRORED) then { ['AUTO','AUTO'] call ACE_DUMPSTACK_FNC; ACE_IS_ERRORED = false; }; ACE_IS_ERRORED = true; ACE_STACK_TRACE set [ACE_STACK_DEPTH, [diag_tickTime, __FILE__, __LINE__, ACE_CURRENT_FUNCTION, 'TRIPLES(DOUBLES(PREFIX,var1),fnc,var2)', _this]]; ACE_STACK_DEPTH = ACE_STACK_DEPTH + 1; ACE_CURRENT_FUNCTION = 'TRIPLES(DOUBLES(PREFIX,var1),fnc,var2)'; _ret = _this call TRIPLES(DOUBLES(PREFIX,var1),fnc,var2); ACE_STACK_DEPTH = ACE_STACK_DEPTH - 1; ACE_IS_ERRORED = false; _ret;} #else -#define CALLSTACK(function) function -#define CALLSTACK_NAMED(function, functionName) function -#define DUMPSTACK - -#define FUNC(var1) TRIPLES(ADDON,fnc,var1) -#define EFUNC(var1,var2) TRIPLES(DOUBLES(PREFIX,var1),fnc,var2) - + #define CALLSTACK(function) function + #define CALLSTACK_NAMED(function, functionName) function + #define DUMPSTACK #endif @@ -32,7 +26,7 @@ PERFORMANCE COUNTERS SECTION #ifdef ENABLE_PERFORMANCE_COUNTERS #define CBA_fnc_addPerFrameHandler { _ret = [(_this select 0), (_this select 1), (_this select 2), #function] call CBA_fnc_addPerFrameHandler; if(isNil "ACE_PFH_COUNTER" ) then { ACE_PFH_COUNTER=[]; }; ACE_PFH_COUNTER pushBack [[_ret, __FILE__, __LINE__], [(_this select 0), (_this select 1), (_this select 2)]]; _ret } - + #define CREATE_COUNTER(x) if(isNil "ACE_COUNTERS" ) then { ACE_COUNTERS=[]; }; GVAR(DOUBLES(x,counter))=[]; GVAR(DOUBLES(x,counter)) set[0, QUOTE(GVAR(DOUBLES(x,counter)))]; GVAR(DOUBLES(x,counter)) set[1, diag_tickTime]; ACE_COUNTERS pushBack GVAR(DOUBLES(x,counter)); #define BEGIN_COUNTER(x) if(isNil QUOTE(GVAR(DOUBLES(x,counter)))) then { CREATE_COUNTER(x) }; GVAR(DOUBLES(x,counter)) set[2, diag_tickTime]; #define END_COUNTER(x) GVAR(DOUBLES(x,counter)) pushBack [(GVAR(DOUBLES(x,counter)) select 2), diag_tickTime]; @@ -43,4 +37,4 @@ PERFORMANCE COUNTERS SECTION #define BEGIN_COUNTER(x) /* disabled */ #define END_COUNTER(x) /* disabled */ #define DUMP_COUNTERS /* disabled */ -#endif \ No newline at end of file +#endif diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index c2ecab058b..a65d126110 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -1,17 +1,9 @@ #include "\x\cba\addons\main\script_macros_common.hpp" #include "\x\cba\addons\xeh\script_xeh.hpp" -//Faster Array Unwraping (skips the IS_ARRAY check normaly found in EXPLODE_1_SYS) -#undef EXPLODE_2_SYS -#define EXPLODE_1_SYS_FAST(ARRAY,A) A =(ARRAY) select 0 -#define EXPLODE_2_SYS(ARRAY,A,B) EXPLODE_1_SYS_FAST(ARRAY,A); B = (ARRAY) select 1 - // Default versioning level #define DEFAULT_VERSIONING_LEVEL 2 -#define EGVAR(module,var) TRIPLES(PREFIX,module,var) -#define QEGVAR(module,var) QUOTE(EGVAR(module,var)) - #define DGVAR(varName) if(isNil "ACE_DEBUG_NAMESPACE") then { ACE_DEBUG_NAMESPACE = []; }; if(!(QUOTE(GVAR(varName)) in ACE_DEBUG_NAMESPACE)) then { PUSH(ACE_DEBUG_NAMESPACE, QUOTE(GVAR(varName))); }; GVAR(varName) #define DVAR(varName) if(isNil "ACE_DEBUG_NAMESPACE") then { ACE_DEBUG_NAMESPACE = []; }; if(!(QUOTE(varName) in ACE_DEBUG_NAMESPACE)) then { PUSH(ACE_DEBUG_NAMESPACE, QUOTE(varName)); }; varName #define DFUNC(var1) TRIPLES(ADDON,fnc,var1) @@ -22,14 +14,6 @@ #define PATHTOEF(var1,var2) PATHTOF_SYS(PREFIX,var1,var2) -#ifndef STRING_MACROS_GUARD -#define STRING_MACROS_GUARD - #define LSTRING(var1) QUOTE(TRIPLES(STR,ADDON,var1)) - #define ELSTRING(var1,var2) QUOTE(TRIPLES(STR,DOUBLES(PREFIX,var1),var2)) - #define CSTRING(var1) QUOTE(TRIPLES($STR,ADDON,var1)) - #define ECSTRING(var1,var2) QUOTE(TRIPLES($STR,DOUBLES(PREFIX,var1),var2)) -#endif - #define GETVAR_SYS(var1,var2) getVariable [ARR_2(QUOTE(var1),var2)] #define SETVAR_SYS(var1,var2) setVariable [ARR_2(QUOTE(var1),var2)] #define SETPVAR_SYS(var1,var2) setVariable [ARR_3(QUOTE(var1),var2,true)] diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index c87a23aba2..a8b5d80778 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -11,7 +11,5 @@ #define VERSION MAJOR.MINOR.PATCHLVL.BUILD #define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD -#define ACE_TAG A.C.E. - // MINIMAL required version for the Mod. Components can specify others.. -#define REQUIRED_VERSION 0.5 +#define REQUIRED_VERSION 1.52 From d24569953bb6be0255fcbb8f9d89b53a3b3552d2 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 31 Oct 2015 15:21:54 +0100 Subject: [PATCH 33/51] Fix CONTRIBUTING.md links --- CONTRIBUTING.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6b7f1006fa..f92fa5e1e4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,7 @@ Indicate if the issue appears on stable or development version. In case it is th ## Reporting the issue -Head over to the ACE3 GitHub issue tracker and press the "New issue" button in the top right corner. Add a descriptive title and copy the following issue template in to the text area: +Head over to the [ACE3 GitHub issue tracker](issues) and press the [New issue](issues/new) button in the top right corner. Add a descriptive title and copy the following issue template in to the text area: ``` ACE3 Version: 3.x.x @@ -43,8 +43,8 @@ ACE3 Version: 3.x.x A video of the issue might be helpful in resolving it faster. +GitHub uses [Markdown](http://daringfireball.net/projects/markdown/syntax) to style the output. If you want to know more about it (e.g. how to [turn text bold](https://help.github.com/articles/markdown-basics/#styling-text), how to denote [code blocks](https://help.github.com/articles/markdown-basics/#inline-formats) or [inline code](https://help.github.com/articles/markdown-basics/#multiple-lines)) have a look at the [GitHub Markdown Documentation](https://help.github.com/articles/github-flavored-markdown). -Github uses "Markdown" to style the output. If you want to know more about it (e.g. how to turn text bold, how to denote code blocks or inline code) have a look at the GitHub markdown documentation. # Feature Requests @@ -54,11 +54,11 @@ ACE2, AGM and CSE had a lot of features implemented or planned. All of them are Please refrain from making requests for any planned or existing features from either ACE2, AGM or CSE. Most of them are already being or have been considered for porting or a rewrite. ## Requesting a feature -In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for ACE 3 Feature requests. Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier. +In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for [ACE3 Feature requests](issues/414). Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier. Following their approval, feature requests may be moved by moderators to a separate issue for further discussion. # Regarding Pull Requests (PRs) -- You want to help but don't know where to start ? Check the wiki entry for [setting up the development environment](http://ace3mod.com/wiki/development/setting-up-the-development-environment.html) +- You want to help but don't know where to start? Check the wiki entry for [setting up the development environment](http://ace3mod.com/wiki/development/setting-up-the-development-environment.html) - [Make sure to respect the file structure](http://ace3mod.com/wiki/development/modularity-and-pbo-structure.html) - [Make sure to respect the coding guidelines](http://ace3mod.com/wiki/development/coding-guidelines.html) From 8d3d9ff8f4f63ef6096bfc43cf24d6f8cf5bfaac Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 31 Oct 2015 15:26:24 +0100 Subject: [PATCH 34/51] Properly fix links --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f92fa5e1e4..ed17a41e67 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,7 @@ Indicate if the issue appears on stable or development version. In case it is th ## Reporting the issue -Head over to the [ACE3 GitHub issue tracker](issues) and press the [New issue](issues/new) button in the top right corner. Add a descriptive title and copy the following issue template in to the text area: +Head over to the [ACE3 GitHub issue tracker](https://github.com/acemod/ACE3/issues) and press the [New issue](https://github.com/acemod/ACE3/issues/new) button in the top right corner. Add a descriptive title and copy the following issue template in to the text area: ``` ACE3 Version: 3.x.x @@ -54,7 +54,7 @@ ACE2, AGM and CSE had a lot of features implemented or planned. All of them are Please refrain from making requests for any planned or existing features from either ACE2, AGM or CSE. Most of them are already being or have been considered for porting or a rewrite. ## Requesting a feature -In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for [ACE3 Feature requests](issues/414). Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier. +In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for [ACE3 Feature requests](https://github.com/acemod/ACE3/issues/414). Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier. Following their approval, feature requests may be moved by moderators to a separate issue for further discussion. From 8f6e9be636e592960f916662cb48a6aed59fad7e Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sun, 1 Nov 2015 16:35:25 +0100 Subject: [PATCH 35/51] Add method to deal with new hitpoints This addition tries to deal with the new hitpoints introduced in Arma3 v1.50 and above. It converts new selection names to by the current medical system usable selection names. This is only a temporarily patch, while we are still working on a larger overhaul to account both the new hitpoints and any potential new features / polishing. --- addons/medical/XEH_preInit.sqf | 1 + addons/medical/functions/fnc_handleDamage.sqf | 7 ++++ .../functions/fnc_translateSelections.sqf | 37 +++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 addons/medical/functions/fnc_translateSelections.sqf diff --git a/addons/medical/XEH_preInit.sqf b/addons/medical/XEH_preInit.sqf index 2625bf4b8a..9563752d92 100644 --- a/addons/medical/XEH_preInit.sqf +++ b/addons/medical/XEH_preInit.sqf @@ -70,6 +70,7 @@ PREP(setDead); PREP(setHitPointDamage); PREP(setStructuralDamage); PREP(setUnconscious); +PREP(translateSelections); PREP(treatment); PREP(treatment_failure); PREP(treatment_success); diff --git a/addons/medical/functions/fnc_handleDamage.sqf b/addons/medical/functions/fnc_handleDamage.sqf index afcf6e12e5..4174f3a0f3 100644 --- a/addons/medical/functions/fnc_handleDamage.sqf +++ b/addons/medical/functions/fnc_handleDamage.sqf @@ -39,6 +39,13 @@ TRACE_3("ACE_DEBUG: HandleDamage",_selection,_damage,_unit); if (_selection == "hands") exitWith {_unit getHit "hands"}; if (_selection == "legs") exitWith {_unit getHit "legs"}; +// Deal with the new hitpoint and selection names introduced with Arma v1.50 and later. +// This will convert new selection names into selection names that the medical system understands +// TODO This should be cleaned up when we revisit the medical system at a later stage +// and instead we should deal with the new hitpoints directly +_selection = [_selection] call FUNC(translateSelections); +_this set [1, _selection]; // ensure that the parameters are set correctly + // If the damage is being weird, we just tell it to fuck off. Ignore: "hands", "legs", "?" if (_selection != "" && {!(_selection in GVAR(SELECTIONS))}) exitWith {0}; //@todo "neck", "pelvis", "spine1", "spine2", "spine3" diff --git a/addons/medical/functions/fnc_translateSelections.sqf b/addons/medical/functions/fnc_translateSelections.sqf new file mode 100644 index 0000000000..410005888e --- /dev/null +++ b/addons/medical/functions/fnc_translateSelections.sqf @@ -0,0 +1,37 @@ +/* + * Author: Glowbal + * Translate selection names into medical usable hit selection names. + * Aims to deal with the new hitpoint system introduced in Arma3 v1.50 and later. + * + * Arguments: + * 0: selection name + * + * Return Value: + * translated selection name + * + * Example: + * ["pelvis"] call ace_medical_fnc_translateSelections + * Returns "body" + * + * Public: No + */ + +#define HEAD_SELECTIONS ["face_hub", "neck", "head"] +#define TORSO_SELECTIONS ["pelvis", "spine1", "spine2", "spine3", "body"] +#define L_ARM_SELECTIONS ["hand_l"] +#define R_ARM_SELECTIONS ["hand_r"] +#define L_LEG_SELECTIONS ["leg_l"] +#define R_LEG_SELECTIONS ["leg_r"] + +params ["_selection"]; + +if (_selection in HEAD_SELECTIONS) exitwith {"head"}; +if (_selection in TORSO_SELECTIONS) exitwith {"body"}; + +// Not necessary unless we get more hitpoints variants in an next arma update +/*if (_selection in L_ARM_SELECTIONS) exitwith {"hand_l"}; +if (_selection in R_ARM_SELECTIONS) exitwith {"hand_r"}; +if (_selection in L_LEG_SELECTIONS) exitwith {"leg_l"}; +if (_selection in R_LEG_SELECTIONS) exitwith {"leg_r"};*/ + +_selection; From bd97c1ee96624d2615fab7dedc91bfb773cfc84e Mon Sep 17 00:00:00 2001 From: Joko Date: Mon, 2 Nov 2015 12:05:43 +0100 Subject: [PATCH 36/51] fix Docu in waitUntilAndExecute --- addons/common/functions/fnc_waitUntilAndExecute.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_waitUntilAndExecute.sqf b/addons/common/functions/fnc_waitUntilAndExecute.sqf index 6a7867d707..bbc6c540fe 100644 --- a/addons/common/functions/fnc_waitUntilAndExecute.sqf +++ b/addons/common/functions/fnc_waitUntilAndExecute.sqf @@ -11,7 +11,7 @@ * None * * Example: - * [{(_this select 0) == vehicle (_this select 0)}, {(_this select 0) setDamage 1;}, [ACE_player]] call ace_common_fnc_waitAndExecute + * [{(_this select 0) == vehicle (_this select 0)}, {(_this select 0) setDamage 1;}, [ACE_player]] call ace_common_fnc_waitUntilAndExecute * * Public: No */ From 50ab2aa904e412681debd93644e4bc7fc82a26d2 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 2 Nov 2015 15:21:34 -0600 Subject: [PATCH 37/51] MicroDagr - move drawEH array define to preInit Fix load order problems (init.sqf can be before postInit) --- addons/microdagr/XEH_clientInit.sqf | 3 --- addons/microdagr/XEH_preInit.sqf | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/microdagr/XEH_clientInit.sqf b/addons/microdagr/XEH_clientInit.sqf index 518a648601..c918bcf454 100644 --- a/addons/microdagr/XEH_clientInit.sqf +++ b/addons/microdagr/XEH_clientInit.sqf @@ -3,9 +3,6 @@ if (!hasInterface) exitWith {}; -//Functions that are called for each draw of the map: -GVAR(miniMapDrawHandlers) = []; - //Add deviceKey entry: private ["_conditonCode", "_toggleCode", "_closeCode"]; _conditonCode = { diff --git a/addons/microdagr/XEH_preInit.sqf b/addons/microdagr/XEH_preInit.sqf index 4e6ed561c3..39a1b313c6 100644 --- a/addons/microdagr/XEH_preInit.sqf +++ b/addons/microdagr/XEH_preInit.sqf @@ -23,4 +23,7 @@ PREP(saveCurrentAndSetNewMode); PREP(showApplicationPage); PREP(updateDisplay); +//Functions that are called for each draw of the map: +GVAR(miniMapDrawHandlers) = []; + ADDON = true; From af5b646adb29cfec7e3dc45448b3f94a0f363c24 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 4 Nov 2015 13:15:40 -0600 Subject: [PATCH 38/51] Update CBA Includes From https://github.com/CBATeam/CBA_A3/tree/354f1b189e889ca63b333dceb682498a3c30b7d2 --- tools/cba/addons/main/script_macros_common.hpp | 6 ++++-- tools/cba/addons/xeh/init_pre.sqf | 10 ++++++++-- tools/cba/addons/xeh/script_xeh.hpp | 6 ++++-- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/tools/cba/addons/main/script_macros_common.hpp b/tools/cba/addons/main/script_macros_common.hpp index 78893db662..d205bfc975 100644 --- a/tools/cba/addons/main/script_macros_common.hpp +++ b/tools/cba/addons/main/script_macros_common.hpp @@ -199,7 +199,7 @@ Parameters: Example: (begin example) - ERROR("Value not found","value of frog not found in config ...yada...yada..."); + ERROR("value of frog not found in config ...yada...yada..."); (end) Author: @@ -674,8 +674,9 @@ Author: Sickboy ------------------------------------------- */ #define GVAR(var1) DOUBLES(ADDON,var1) -#define EGVAR(var1,var2) DOUBLES(DOUBLES(PREFIX,var1),var2) +#define EGVAR(var1,var2) TRIPLES(PREFIX,var1,var2) #define QGVAR(var1) QUOTE(GVAR(var1)) +#define QEGVAR(var1,var2) QUOTE(EGVAR(var1,var2)) /* ------------------------------------------- Macro: GVARMAIN() @@ -694,6 +695,7 @@ Author: Sickboy ------------------------------------------- */ #define GVARMAIN(var1) GVARMAINS(PREFIX,var1) +#define QGVARMAIN(var1) QUOTE(GVARMAIN(var1)) // TODO: What's this? #define SETTINGS DOUBLES(PREFIX,settings) #define CREATELOGIC CREATELOGICS(PREFIX,COMPONENT) diff --git a/tools/cba/addons/xeh/init_pre.sqf b/tools/cba/addons/xeh/init_pre.sqf index 44b4657aca..1b6642c777 100644 --- a/tools/cba/addons/xeh/init_pre.sqf +++ b/tools/cba/addons/xeh/init_pre.sqf @@ -356,5 +356,11 @@ SLX_XEH_STR spawn { */ { (_x/SLX_XEH_STR_PreInit) call FUNC(init_once) } forEach SLX_XEH_CONFIG_FILES; - -XEH_LOG("XEH: PreInit Finished. " + PFORMAT_3("CACHE DISABLED? (Disable caching with cba_cache_disable.pbo)",SLX_XEH_RECOMPILE,CBA_COMPILE_RECOMPILE,CBA_FUNC_RECOMPILE)); +private "_s"; +// Normally, full caching is enabled. If not, log an informative message. +_s = if (SLX_XEH_RECOMPILE || CBA_COMPILE_RECOMPILE || CBA_FUNC_RECOMPILE) then { + PFORMAT_3(" CACHE DISABLED? (Disable caching with cba_cache_disable.pbo)",SLX_XEH_RECOMPILE,CBA_COMPILE_RECOMPILE,CBA_FUNC_RECOMPILE) +} else { + "" +}; +XEH_LOG("XEH: PreInit Finished." + _s); diff --git a/tools/cba/addons/xeh/script_xeh.hpp b/tools/cba/addons/xeh/script_xeh.hpp index ba55dbc917..4f242b492e 100644 --- a/tools/cba/addons/xeh/script_xeh.hpp +++ b/tools/cba/addons/xeh/script_xeh.hpp @@ -40,6 +40,7 @@ local = "_this call SLX_XEH_EH_Local"; \ respawn = "_this call SLX_XEH_EH_Respawn"; \ put = "_this call SLX_XEH_EH_Put"; \ take = "_this call SLX_XEH_EH_Take"; \ +seatSwitched = "_this call SLX_XEH_EH_SeatSwitched"; \ soundPlayed = "_this call SLX_XEH_EH_SoundPlayed"; \ weaponAssembled = "_this call SLX_XEH_EH_WeaponAssembled"; \ weaponDisAssembled = "_this call SLX_XEH_EH_WeaponDisassembled"; @@ -51,11 +52,11 @@ weaponDisAssembled = "_this call SLX_XEH_EH_WeaponDisassembled"; -/* +/* MACRO: DELETE_EVENTHANDLERS Removes all event handlers. - + Example: (begin example) class DefaultEventhandlers; @@ -103,6 +104,7 @@ delete local; \ delete respawn; \ delete put; \ delete take; \ +delete seatSwitched; \ delete soundPlayed; \ delete weaponAssembled; \ delete weaponDisAssembled; From c5da32e4707bbef6254157de08a780e4af6096ae Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 4 Nov 2015 14:36:26 -0600 Subject: [PATCH 39/51] Medical Handle Damage - check hitpoints if selection is weird --- addons/medical/functions/fnc_handleDamage.sqf | 4 +-- .../functions/fnc_translateSelections.sqf | 36 ++++++++++++++++--- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/addons/medical/functions/fnc_handleDamage.sqf b/addons/medical/functions/fnc_handleDamage.sqf index 4174f3a0f3..6d955e72fd 100644 --- a/addons/medical/functions/fnc_handleDamage.sqf +++ b/addons/medical/functions/fnc_handleDamage.sqf @@ -16,7 +16,7 @@ */ #include "script_component.hpp" -params ["_unit", "_selection", "_damage", "_shooter", "_projectile"]; +params ["_unit", "_selection", "_damage", "_shooter", "_projectile", "_hitPointIndex"]; TRACE_5("ACE_DEBUG: HandleDamage Called",_unit, _selection, _damage, _shooter, _projectile); // bug, apparently can fire for remote units in special cases @@ -43,7 +43,7 @@ if (_selection == "legs") exitWith {_unit getHit "legs"}; // This will convert new selection names into selection names that the medical system understands // TODO This should be cleaned up when we revisit the medical system at a later stage // and instead we should deal with the new hitpoints directly -_selection = [_selection] call FUNC(translateSelections); +_selection = [_unit, _selection, _hitPointIndex] call FUNC(translateSelections); _this set [1, _selection]; // ensure that the parameters are set correctly // If the damage is being weird, we just tell it to fuck off. Ignore: "hands", "legs", "?" diff --git a/addons/medical/functions/fnc_translateSelections.sqf b/addons/medical/functions/fnc_translateSelections.sqf index 410005888e..94cb5dcb28 100644 --- a/addons/medical/functions/fnc_translateSelections.sqf +++ b/addons/medical/functions/fnc_translateSelections.sqf @@ -4,29 +4,39 @@ * Aims to deal with the new hitpoint system introduced in Arma3 v1.50 and later. * * Arguments: - * 0: selection name + * 0: Unit + * 1: selection name + * 2: HitPoint Index * * Return Value: * translated selection name * * Example: - * ["pelvis"] call ace_medical_fnc_translateSelections + * [bob, "pelvis", 4] call ace_medical_fnc_translateSelections * Returns "body" * * Public: No */ +#include "script_component.hpp" #define HEAD_SELECTIONS ["face_hub", "neck", "head"] +#define HEAD_HITPOINTS ["hitface", "hitneck", "hithead"] #define TORSO_SELECTIONS ["pelvis", "spine1", "spine2", "spine3", "body"] +#define TORSO_HITPOINTS ["hitpelvis", "hitabdomen", "hitdiaphragm", "hitchest", "hitbody"] #define L_ARM_SELECTIONS ["hand_l"] +#define L_ARM_HITPOINTS ["HitLeftArm", "hand_l"] #define R_ARM_SELECTIONS ["hand_r"] +#define R_ARM_HITPOINTS ["HitRightArm", "hand_r"] #define L_LEG_SELECTIONS ["leg_l"] +#define L_LEG_HITPOINTS ["HitLeftLeg", "leg_l"] #define R_LEG_SELECTIONS ["leg_r"] +#define R_LEG_HITPOINTS ["HitRightLeg", "leg_r"] -params ["_selection"]; +params ["_unit", "_selection", "_hitPointIndex"]; -if (_selection in HEAD_SELECTIONS) exitwith {"head"}; -if (_selection in TORSO_SELECTIONS) exitwith {"body"}; +if (_selection == "") exitWith {""}; +if (_selection in HEAD_SELECTIONS) exitWith {"head"}; +if (_selection in TORSO_SELECTIONS) exitWith {"body"}; // Not necessary unless we get more hitpoints variants in an next arma update /*if (_selection in L_ARM_SELECTIONS) exitwith {"hand_l"}; @@ -34,4 +44,20 @@ if (_selection in R_ARM_SELECTIONS) exitwith {"hand_r"}; if (_selection in L_LEG_SELECTIONS) exitwith {"leg_l"}; if (_selection in R_LEG_SELECTIONS) exitwith {"leg_r"};*/ +//Backup method to detect weird selections/hitpoints +if ((_selection == "?") || {!(_selection in GVAR(SELECTIONS))}) exitWith { + if (_hitPointIndex < 0) exitWith {_selection}; + local _hitPoint = toLower configName ((configProperties [(configFile >> "CfgVehicles" >> (typeOf _unit) >> "HitPoints")]) select _hitPointIndex); + TRACE_4("Weird sel/hit", _unit, _selection, _hitPointIndex, _hitPoint); + + if (_hitPoint in HEAD_HITPOINTS) exitWith {"head"}; + if (_hitPoint in TORSO_HITPOINTS) exitWith {"body"}; + if (_hitPoint in L_ARM_HITPOINTS) exitWith {"hand_l"}; + if (_hitPoint in R_ARM_HITPOINTS) exitWith {"hand_r"}; + if (_hitPoint in L_LEG_HITPOINTS) exitWith {"leg_l"}; + if (_hitPoint in R_LEG_HITPOINTS) exitWith {"leg_r"}; + + _selection +}; + _selection; From 1cebe613fa693784151d5faaf82f608e08ca19eb Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 4 Nov 2015 14:38:32 -0600 Subject: [PATCH 40/51] Fix Capitialzation --- addons/medical/functions/fnc_translateSelections.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/medical/functions/fnc_translateSelections.sqf b/addons/medical/functions/fnc_translateSelections.sqf index 94cb5dcb28..a5f0328181 100644 --- a/addons/medical/functions/fnc_translateSelections.sqf +++ b/addons/medical/functions/fnc_translateSelections.sqf @@ -24,13 +24,13 @@ #define TORSO_SELECTIONS ["pelvis", "spine1", "spine2", "spine3", "body"] #define TORSO_HITPOINTS ["hitpelvis", "hitabdomen", "hitdiaphragm", "hitchest", "hitbody"] #define L_ARM_SELECTIONS ["hand_l"] -#define L_ARM_HITPOINTS ["HitLeftArm", "hand_l"] +#define L_ARM_HITPOINTS ["hitleftarm", "hand_l"] #define R_ARM_SELECTIONS ["hand_r"] -#define R_ARM_HITPOINTS ["HitRightArm", "hand_r"] +#define R_ARM_HITPOINTS ["hitrightarm", "hand_r"] #define L_LEG_SELECTIONS ["leg_l"] -#define L_LEG_HITPOINTS ["HitLeftLeg", "leg_l"] +#define L_LEG_HITPOINTS ["hitleftleg", "leg_l"] #define R_LEG_SELECTIONS ["leg_r"] -#define R_LEG_HITPOINTS ["HitRightLeg", "leg_r"] +#define R_LEG_HITPOINTS ["hitrightleg", "leg_r"] params ["_unit", "_selection", "_hitPointIndex"]; From 38105136fa455b4d4ab9757d25bc649c9f1a0a5a Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 4 Nov 2015 17:43:51 -0600 Subject: [PATCH 41/51] #2820 - Fix target event error --- addons/interaction/XEH_postInit.sqf | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/addons/interaction/XEH_postInit.sqf b/addons/interaction/XEH_postInit.sqf index ae3ebff5c3..6442911faa 100644 --- a/addons/interaction/XEH_postInit.sqf +++ b/addons/interaction/XEH_postInit.sqf @@ -29,12 +29,9 @@ GVAR(isOpeningDoor) = false; if (_unit == ACE_player) then { addCamShake [4, 0.5, 5]; + local _message = parseText format ([["%1 >", localize LSTRING(YouWereTappedRight)], ["< %1", localize LSTRING(YouWereTappedLeft)]] select (_shoulderNum == 0)); + [_message] call FUNC(displayTextStructured); }; - - private "_message"; - _message = parseText format ([["%1 >", localize LSTRING(YouWereTappedRight)], ["< %1", localize LSTRING(YouWereTappedLeft)]] select (_shoulderNum == 0)); - - ["displayTextStructured", _message] call EFUNC(common,targetEvent); }] call EFUNC(common,addEventHandler); // restore global fire teams for JIP From fabbf6d14d3f54a0e231526b2e7d57fa45b56428 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 5 Nov 2015 13:13:37 -0600 Subject: [PATCH 42/51] Nametags - Cleanup isSpeaking for ACRE --- addons/nametags/functions/fnc_initIsSpeaking.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/nametags/functions/fnc_initIsSpeaking.sqf b/addons/nametags/functions/fnc_initIsSpeaking.sqf index 4d4d576c52..3b8aea497a 100644 --- a/addons/nametags/functions/fnc_initIsSpeaking.sqf +++ b/addons/nametags/functions/fnc_initIsSpeaking.sqf @@ -41,7 +41,7 @@ if (isClass (configFile >> "cfgPatches" >> "acre_api")) then { ACE_LOGINFO("ACRE Detected."); DFUNC(isSpeaking) = { params ["_unit"]; - (([_unit] call acre_api_fnc_isSpeaking) || {[ACE_player] call acre_api_fnc_isBroadcasting}) && {!(_unit getVariable ["ACE_isUnconscious", false])} + ([_unit] call acre_api_fnc_isSpeaking) && {!(_unit getVariable ["ACE_isUnconscious", false])} }; } else { if (isClass (configFile >> "cfgPatches" >> "task_force_radio")) then { From 4b200d6909f2132d0c3070a6c63fa57cf086cdca Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 5 Nov 2015 14:00:01 -0800 Subject: [PATCH 43/51] bump to v3.3.3 --- addons/main/script_mod.hpp | 2 +- mod.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index a8b5d80778..6345950d8b 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -5,7 +5,7 @@ #define MAJOR 3 #define MINOR 3 -#define PATCHLVL 2 +#define PATCHLVL 3 #define BUILD 0 #define VERSION MAJOR.MINOR.PATCHLVL.BUILD diff --git a/mod.cpp b/mod.cpp index 2e8513a952..096e6d563d 100644 --- a/mod.cpp +++ b/mod.cpp @@ -1,8 +1,8 @@ -name = "Advanced Combat Environment 3.3.2"; +name = "Advanced Combat Environment 3.3.3"; picture = "logo_ace3_ca.paa"; actionName = "GitHub"; action = "https://github.com/acemod/ACE3"; -description = "ACE3 - Version 3.3.2"; +description = "ACE3 - Version 3.3.3"; logo = "logo_ace3_ca.paa"; logoOver = "logo_ace3_ca.paa"; tooltip = "ACE3"; From c326bc2f87b6ce0ebaa31a3b484fa557547915d9 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 6 Nov 2015 01:05:25 -0600 Subject: [PATCH 44/51] #2772 - Display basicMed wounds for AI in mixed mode --- addons/medical/functions/fnc_displayPatientInformation.sqf | 4 ++-- addons/medical/functions/fnc_modifyMedicalAction.sqf | 2 +- addons/medical_menu/functions/fnc_updateUIInfo.sqf | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/medical/functions/fnc_displayPatientInformation.sqf b/addons/medical/functions/fnc_displayPatientInformation.sqf index f73376cb29..222de4463f 100644 --- a/addons/medical/functions/fnc_displayPatientInformation.sqf +++ b/addons/medical/functions/fnc_displayPatientInformation.sqf @@ -54,7 +54,7 @@ if (_show) then { _allInjuryTexts = []; _genericMessages = []; - if (GVAR(level) >= 2) then { + if (GVAR(level) >= 2 && {([_unit] call FUNC(hasMedicalEnabled))}) then { _partText = [LSTRING(Head), LSTRING(Torso), LSTRING(LeftArm) ,LSTRING(RightArm) ,LSTRING(LeftLeg), LSTRING(RightLeg)] select _selectionN; _genericMessages pushback [localize _partText, [1, 1, 1, 1]]; }; @@ -87,7 +87,7 @@ if (_show) then { _damaged = [false, false, false, false, false, false]; _selectionBloodLoss = [0,0,0,0,0,0]; - if (GVAR(level) >= 2) then { + if (GVAR(level) >= 2 && {([_target] call FUNC(hasMedicalEnabled))}) then { _openWounds = _target getvariable [QGVAR(openWounds), []]; private "_amountOf"; { diff --git a/addons/medical/functions/fnc_modifyMedicalAction.sqf b/addons/medical/functions/fnc_modifyMedicalAction.sqf index 8feaa7bfca..d16ab762d5 100644 --- a/addons/medical/functions/fnc_modifyMedicalAction.sqf +++ b/addons/medical/functions/fnc_modifyMedicalAction.sqf @@ -19,7 +19,7 @@ params ["_target", "_player", "_selectionN", "_actionData"]; -if (GVAR(level) < 2) exitwith { +if (GVAR(level) < 2 || {!([_target] call FUNC(hasMedicalEnabled))}) exitwith { private ["_pointDamage"]; _pointDamage = (_target getvariable [QGVAR(bodyPartStatus), [0,0,0,0,0,0]]) select _selectionN; diff --git a/addons/medical_menu/functions/fnc_updateUIInfo.sqf b/addons/medical_menu/functions/fnc_updateUIInfo.sqf index bcc9811905..56a22689db 100644 --- a/addons/medical_menu/functions/fnc_updateUIInfo.sqf +++ b/addons/medical_menu/functions/fnc_updateUIInfo.sqf @@ -62,7 +62,7 @@ _damaged = [false, false, false, false, false, false]; _selectionBloodLoss = [0, 0, 0, 0, 0, 0]; _allInjuryTexts = []; -if (EGVAR(medical,level) >= 2) then { +if ((EGVAR(medical,level) >= 2) && {([_target] call EFUNC(medical,hasMedicalEnabled))}) then { _openWounds = _target getVariable [QEGVAR(medical,openWounds), []]; private "_amountOf"; { From 6e30e9e0dfe9606c23a9952faacecc26cc4a5992 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 6 Nov 2015 19:02:54 +0000 Subject: [PATCH 45/51] Fix overpressure priority evaluation The code was checking the wrong configs for priority because of some missing variables. --- .../overpressure/functions/fnc_cacheOverPressureValues.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf b/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf index 0717065c43..8de8af6375 100644 --- a/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf +++ b/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf @@ -24,9 +24,9 @@ private ["_array", "_type", "_return", "_config" /*, "_priority"*/]; // get Priority Array from Config _array = [ - getNumber (configFile >> "CfgWeapons" >> QGVAR(priority)), - getNumber (configFile >> "CfgMagazines" >> QGVAR(priority)), - getNumber (configFile >> "CfgAmmo" >> QGVAR(priority)) + getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(priority)), + getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(priority)), + getNumber (configFile >> "CfgAmmo" >> _ammo >> QGVAR(priority)) ]; TRACE_1("Proiroity Array",_array); From 7ec480c98e6341d8f8938d8ef1a109693b3be4a9 Mon Sep 17 00:00:00 2001 From: Jonathan Pereira Date: Sat, 7 Nov 2015 11:39:02 -0200 Subject: [PATCH 46/51] Added ace_captives translation to PT-BR --- addons/captives/stringtable.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index d4166a495d..ea1d99419a 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -181,9 +181,11 @@ Make Unit Handcuffed + Fazer unidade algemada Sync a unit to make them handcuffed.<br />Source: ace_captives + Sincronizar uma unidade para deixá-la algemada.<br/>Source: ace_captives Captives Settings @@ -284,4 +286,4 @@ Rendición o desarme - + \ No newline at end of file From ff60cdcfa316b24046038e989cbc240a346e0481 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 7 Nov 2015 11:44:31 -0600 Subject: [PATCH 47/51] #2828 - Fix empty flashlightProxy model --- addons/map/CfgAmmo.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/map/CfgAmmo.hpp b/addons/map/CfgAmmo.hpp index 805e7b3627..9e98d0efea 100644 --- a/addons/map/CfgAmmo.hpp +++ b/addons/map/CfgAmmo.hpp @@ -6,7 +6,7 @@ class CfgAmmo { class F_20mm_White: FlareBase {}; class ACE_FlashlightProxy_White: F_20mm_White { - model = ""; + model = "\A3\Weapons_f\empty"; effectFlare = "FlareShell"; triggerTime = 0; From 01d679c5dc92162f6cd812d1ce5863d35cf8a6ee Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 7 Nov 2015 14:33:41 -0600 Subject: [PATCH 48/51] #2810 - Delete map glow light from DC players --- addons/map/XEH_postInitClient.sqf | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/addons/map/XEH_postInitClient.sqf b/addons/map/XEH_postInitClient.sqf index c162f8802d..a89e3fb8e3 100644 --- a/addons/map/XEH_postInitClient.sqf +++ b/addons/map/XEH_postInitClient.sqf @@ -1,5 +1,22 @@ #include "script_component.hpp" +//Delete map glow lights from disconnecting players #2810 +if (isServer) then { + addMissionEventHandler ["HandleDisconnect",{ + params ["_disconnectedPlayer"]; + + if ((!GVAR(mapGlow)) || {isNull _disconnectedPlayer}) exitWith {}; + { + if (_x isKindOf "ACE_FlashlightProxy_White") then { + // ACE_LOGINFO_2("Deleting leftover light [%1:%2] from DC player [%3]", _x, typeOf _x, _disconnectedPlayer); + deleteVehicle _x; + }; + } forEach attachedObjects _disconnectedPlayer; + + nil + }]; +}; + // Exit on Headless as well if (!hasInterface) exitWith {}; From dad1388eec5c91f6f3be679652db079fa7db3b4b Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 7 Nov 2015 18:34:46 -0600 Subject: [PATCH 49/51] RealisticNames - add ka-60 v2 (black and white) --- addons/realisticnames/CfgVehicles.hpp | 3 +++ addons/realisticnames/stringtable.xml | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/addons/realisticnames/CfgVehicles.hpp b/addons/realisticnames/CfgVehicles.hpp index c3288815dd..9aea632247 100644 --- a/addons/realisticnames/CfgVehicles.hpp +++ b/addons/realisticnames/CfgVehicles.hpp @@ -308,6 +308,9 @@ class CfgVehicles { class O_Heli_Light_02_F: Heli_Light_02_base_F { displayName = CSTRING(Heli_Light_02_Name); }; + class O_Heli_Light_02_v2_F: Heli_Light_02_base_F { + displayName = CSTRING(Heli_Light_02_v2_Name); + }; class Heli_Light_02_unarmed_base_F; class O_Heli_Light_02_unarmed_F: Heli_Light_02_unarmed_base_F { displayName = CSTRING(Heli_Light_02_unarmed_Name); diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 5f84a4f16d..fbf1e37226 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -817,6 +817,17 @@ Ka-60 Kasatka Ka-60 Kasatka + + Ka-60 Kasatka (Black & White) + Ka-60 Kasatka (černobílá) + Ka-60 Kasatka (noir et blanc) + Ka-60 Kasatka (Schwarz-weiß) + Ka-60 Kasatka (bianco e nero) + Ka-60 Kasatka (czarno-biały) + Ka-60 Kasatka (preto e branco) + Ka-60 Касатка (белый и черный) + Ka-60 Kasatka (blanco y negro) + Ka-60 Kasatka (unarmed) Ka-60 Kasatka (unbewaffnet) From e2e74e0f5d228bae5007e32bb6d9828a6e7e8963 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 10 Nov 2015 16:17:22 -0600 Subject: [PATCH 50/51] =?UTF-8?q?DAGR=20-=20Fix=20degrees=20(=C2=B0=20-=20?= =?UTF-8?q?seems=20to=20need=20UTF-8=20BOM)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/dagr/functions/fnc_outputVector.sqf | 4 ++-- addons/dagr/functions/fnc_outputWP.sqf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/dagr/functions/fnc_outputVector.sqf b/addons/dagr/functions/fnc_outputVector.sqf index 7787a7ff96..93a34899ca 100644 --- a/addons/dagr/functions/fnc_outputVector.sqf +++ b/addons/dagr/functions/fnc_outputVector.sqf @@ -1,4 +1,4 @@ -/* +/* * Author: Rosuto * DAGR vector output loop * @@ -93,5 +93,5 @@ GVAR(vectorGrid) = _dagrGrid; __gridControl ctrlSetText format ["%1", _dagrGrid]; __speedControl ctrlSetText format ["%1", _dagrDist]; __elevationControl ctrlSetText format ["%1", _dagrElevation]; -__headingControl ctrlSetText (if (!GVAR(useDegrees)) then { format ["%1", _bearing] } else { format ["%1�", _bearing] }); +__headingControl ctrlSetText (if (!GVAR(useDegrees)) then { format ["%1", _bearing] } else { format ["%1°", _bearing] }); __timeControl ctrlSetText format ["%1", _dagrTime]; diff --git a/addons/dagr/functions/fnc_outputWP.sqf b/addons/dagr/functions/fnc_outputWP.sqf index 77bee00398..204a5ef556 100644 --- a/addons/dagr/functions/fnc_outputWP.sqf +++ b/addons/dagr/functions/fnc_outputWP.sqf @@ -1,4 +1,4 @@ -/* +/* * Author: Rosuto * DAGR waypoint output loop * @@ -85,7 +85,7 @@ GVAR(outputPFH) = [{ __gridControl ctrlSetText format ["%1", _dagrGrid]; __speedControl ctrlSetText format ["%1", _bearing]; __elevationControl ctrlSetText format ["%1", _dagrGrid2]; - __headingControl ctrlSetText (if (!GVAR(useDegrees)) then { format ["%1", _dagrHeading] } else { format ["%1�", _dagrHeading] }); + __headingControl ctrlSetText (if (!GVAR(useDegrees)) then { format ["%1", _dagrHeading] } else { format ["%1°", _dagrHeading] }); __timeControl ctrlSetText format ["%1", _dagrDistance]; }, GVAR(updateInterval), []] call CBA_fnc_addPerFrameHandler; From 4ff31771d35e5de72f2db12e965c6b9c90ddc0cf Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 10 Nov 2015 20:51:00 -0600 Subject: [PATCH 51/51] DAGR - missing ( --- addons/dagr/functions/fnc_outputVector.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/dagr/functions/fnc_outputVector.sqf b/addons/dagr/functions/fnc_outputVector.sqf index 93a34899ca..7f36facae8 100644 --- a/addons/dagr/functions/fnc_outputVector.sqf +++ b/addons/dagr/functions/fnc_outputVector.sqf @@ -71,7 +71,7 @@ _yCoord = switch true do { _dagrGrid = _xCoord + " " + _yCoord; // Find target elevation -_elevation = floor (_lazPosZ) + EGVAR(common,mapAltitude)); +_elevation = floor ((_lazPosZ) + EGVAR(common,mapAltitude)); _dagrElevation = str _elevation + "m"; // Time