From 627a11545a8ef50f942470b0caed848d8595a0ba Mon Sep 17 00:00:00 2001
From: jonpas <jonpas33@gmail.com>
Date: Tue, 11 Oct 2016 14:18:58 +0200
Subject: [PATCH 01/10] Fix documentation README commands

---
 docs/README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/README.md b/docs/README.md
index 9c20ecb281..e5cd08ac19 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -32,10 +32,10 @@
 
 - Install `make` and `gcc`
     ```
-    sudo apt-get make gcc
+    sudo apt-get install make gcc
     ```
 
-- Install `ruby 2.0`, `rbuy2.0-dev` and `ruby-switch`
+- Install `ruby2.0`, `rbuy2.0-dev` and `ruby-switch`
     ```
     sudo apt-add-repository ppa:brightbox/ruby-ng
     sudo apt update

From cbbdd6f9392aa0a0a33416a9a4f6a04c503f9a0b Mon Sep 17 00:00:00 2001
From: jonpas <jonpas33@gmail.com>
Date: Tue, 11 Oct 2016 14:21:54 +0200
Subject: [PATCH 02/10] Use apt-get consitently instead of new apt only

---
 docs/README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/README.md b/docs/README.md
index e5cd08ac19..d3bd41e20e 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -38,8 +38,8 @@
 - Install `ruby2.0`, `rbuy2.0-dev` and `ruby-switch`
     ```
     sudo apt-add-repository ppa:brightbox/ruby-ng
-    sudo apt update
-    sudo apt install ruby2.0 ruby2.0-dev ruby-switch
+    sudo apt-get update
+    sudo apt-get install ruby2.0 ruby2.0-dev ruby-switch
     ```
 
 - Set Ruby version

From 4fb5d230acab62f75a5fd11b9ca5c6a820f9da66 Mon Sep 17 00:00:00 2001
From: commy2 <commy-2@gmx.de>
Date: Tue, 11 Oct 2016 18:44:27 +0200
Subject: [PATCH 03/10] remove civilian rank icons from nametags (#4538)

---
 addons/nametags/XEH_postInit.sqf | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/addons/nametags/XEH_postInit.sqf b/addons/nametags/XEH_postInit.sqf
index bebe840b47..594fe595ff 100644
--- a/addons/nametags/XEH_postInit.sqf
+++ b/addons/nametags/XEH_postInit.sqf
@@ -35,3 +35,6 @@ GVAR(showNamesTime) = -10;
         call FUNC(updateSettings);
     };
 }] call CBA_fnc_addEventHandler;
+
+// civilians don't use military ranks
+["CIV_F", ["","","","","","",""]] call FUNC(setFactionRankIcons);

From c390b6c1fca866cc6ca98b9ded7b36367628279e Mon Sep 17 00:00:00 2001
From: commy2 <commy-2@gmx.de>
Date: Tue, 11 Oct 2016 05:06:37 +0200
Subject: [PATCH 04/10] increase red laser alpha, close #4535

---
 addons/laserpointer/functions/fnc_drawLaserpoint.sqf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/addons/laserpointer/functions/fnc_drawLaserpoint.sqf b/addons/laserpointer/functions/fnc_drawLaserpoint.sqf
index 3ea9ed158b..f5320d2c63 100644
--- a/addons/laserpointer/functions/fnc_drawLaserpoint.sqf
+++ b/addons/laserpointer/functions/fnc_drawLaserpoint.sqf
@@ -85,7 +85,7 @@ private _size = 2 * sqrt (1 / _distance) * (call EFUNC(common,getZoom));
 
 drawIcon3D [
     format ["\a3\weapons_f\acc\data\collimdot_%1_ca.paa", ["red", "green"] select _isGreen],
-    [[1,0.25,0.25,0.5*_brightness], [0.25,1,0.25,0.5*_brightness]] select _isGreen,
+    [[1,0.25,0.25,0.6*_brightness], [0.25,1,0.25,0.5*_brightness]] select _isGreen,
     _pL,
     _size,
     _size,

From 2ba0137a1e181e9cc9a93bee53b9a57c73c8b392 Mon Sep 17 00:00:00 2001
From: BaerMitUmlaut <BaerMitUmlaut@users.noreply.github.com>
Date: Tue, 11 Oct 2016 18:48:20 +0200
Subject: [PATCH 05/10] Fix going unconscious while fastroping (#4531)

---
 addons/fastroping/functions/fnc_fastRopeServerPFH.sqf | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf b/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf
index 2ebffe680e..0011e0ecf9 100644
--- a/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf
+++ b/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf
@@ -53,7 +53,12 @@ if (_hasBeenAttached && {isNull attachedTo _unit}) exitWith {
 _dummy setVelocity [0,0,-6];
 
 //Check if fast rope is finished
-if (((getPos _unit select 2) < 0.2) || {ropeLength _ropeTop == 34.5} || {vectorMagnitude (velocity _vehicle) > 5} || {!(alive _unit)} || {captive _unit}) exitWith {
+if (
+    ((getPos _unit select 2) < 0.2)
+    || {ropeLength _ropeTop == 34.5}
+    || {vectorMagnitude (velocity _vehicle) > 5}
+    || {!([_unit] call EFUNC(common,isAwake))}
+) exitWith {
     detach _unit;
 
     //Reset rope

From cd79ebe3ceaa45d27b9bec14c1a191a109fa9aca Mon Sep 17 00:00:00 2001
From: PabstMirror <pabstmirror@gmail.com>
Date: Sat, 8 Oct 2016 10:41:25 -0500
Subject: [PATCH 06/10] Bump REQUIRED_VERSION to 1.64

---
 addons/main/script_mod.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp
index 6f9d0e5a6b..9e687174ab 100644
--- a/addons/main/script_mod.hpp
+++ b/addons/main/script_mod.hpp
@@ -12,7 +12,7 @@
 #define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD
 
 // MINIMAL required version for the Mod. Components can specify others..
-#define REQUIRED_VERSION 1.62
+#define REQUIRED_VERSION 1.64
 #define REQUIRED_CBA_VERSION {3,1,0}
 
 #ifdef COMPONENT_BEAUTIFIED

From 130265fd9fef594cbbe891fe580daf41458e83da Mon Sep 17 00:00:00 2001
From: commy2 <commy-2@gmx.de>
Date: Mon, 10 Oct 2016 19:35:34 +0200
Subject: [PATCH 07/10] add function to disable dogtags for factions, and
 disable for civilians

---
 addons/dogtags/XEH_PREP.hpp                   |  2 ++
 addons/dogtags/XEH_postInit.sqf               |  3 +++
 .../dogtags/functions/fnc_canCheckDogtag.sqf  |  3 +++
 .../dogtags/functions/fnc_canTakeDogtag.sqf   |  3 +++
 .../functions/fnc_disableFactionDogtags.sqf   | 24 +++++++++++++++++++
 5 files changed, 35 insertions(+)
 create mode 100644 addons/dogtags/functions/fnc_disableFactionDogtags.sqf

diff --git a/addons/dogtags/XEH_PREP.hpp b/addons/dogtags/XEH_PREP.hpp
index 33e42ba191..5917600139 100644
--- a/addons/dogtags/XEH_PREP.hpp
+++ b/addons/dogtags/XEH_PREP.hpp
@@ -1,3 +1,4 @@
+
 PREP(addDogtagActions);
 PREP(addDogtagItem);
 PREP(bloodType);
@@ -11,3 +12,4 @@ PREP(sendDogtagData);
 PREP(showDogtag);
 PREP(ssn);
 PREP(takeDogtag);
+PREP(disableFactionDogtags);
diff --git a/addons/dogtags/XEH_postInit.sqf b/addons/dogtags/XEH_postInit.sqf
index b0352c39ef..6a50ce61cf 100644
--- a/addons/dogtags/XEH_postInit.sqf
+++ b/addons/dogtags/XEH_postInit.sqf
@@ -45,3 +45,6 @@ if (["ACE_Medical"] call EFUNC(common,isModLoaded)) then {
         }] call CBA_fnc_addEventHandler;
     };
 };
+
+// disable dogtags for civilians
+"CIV_F" call FUNC(disableFactionDogtags);
diff --git a/addons/dogtags/functions/fnc_canCheckDogtag.sqf b/addons/dogtags/functions/fnc_canCheckDogtag.sqf
index 66a25c94b0..b31911a0c6 100644
--- a/addons/dogtags/functions/fnc_canCheckDogtag.sqf
+++ b/addons/dogtags/functions/fnc_canCheckDogtag.sqf
@@ -20,4 +20,7 @@ params ["_player", "_target"];
 
 if (isNull _target) exitWith {false};
 
+// check if disabled for faction
+if ([GVAR(disabledFactions) getVariable faction _target] param [0, false]) exitWith {false};
+
 (!alive _target) || {_target getVariable ["ACE_isUnconscious", false]}
diff --git a/addons/dogtags/functions/fnc_canTakeDogtag.sqf b/addons/dogtags/functions/fnc_canTakeDogtag.sqf
index 33a3ef055f..37163f68c7 100644
--- a/addons/dogtags/functions/fnc_canTakeDogtag.sqf
+++ b/addons/dogtags/functions/fnc_canTakeDogtag.sqf
@@ -20,4 +20,7 @@ params ["_player", "_target"];
 
 if (isNull _target) exitWith {false};
 
+// check if disabled for faction
+if ([GVAR(disabledFactions) getVariable faction _target] param [0, false]) exitWith {false};
+
 (!alive _target) || {_target getVariable ["ACE_isUnconscious", false]}
diff --git a/addons/dogtags/functions/fnc_disableFactionDogtags.sqf b/addons/dogtags/functions/fnc_disableFactionDogtags.sqf
new file mode 100644
index 0000000000..3100ffb269
--- /dev/null
+++ b/addons/dogtags/functions/fnc_disableFactionDogtags.sqf
@@ -0,0 +1,24 @@
+/*
+ * Author: commy2
+ * Disable this faction from using dogtags.
+ *
+ * Arguments:
+ * 0: Faction <STRING>
+ *
+ * Return Value:
+ * None
+ *
+ * Example:
+ * "CIV_F" call ace_dogtags_fnc_disableFactionDogtags
+ *
+ * Public: Yes
+ */
+#include "script_component.hpp"
+
+params [["_faction", "", [""]]];
+
+if (isNil QGVAR(disabledFactions)) then {
+    GVAR(disabledFactions) = [] call CBA_fnc_createNamespace;
+};
+
+GVAR(disabledFactions) setVariable [_faction, true];

From 5d610cf14854078886976177a3d3c38d2b67a8e0 Mon Sep 17 00:00:00 2001
From: PabstMirror <pabstmirror@gmail.com>
Date: Tue, 11 Oct 2016 11:54:25 -0500
Subject: [PATCH 08/10] Always create namespace at preInit

---
 addons/dogtags/XEH_preInit.sqf                         | 2 ++
 addons/dogtags/functions/fnc_disableFactionDogtags.sqf | 4 ----
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/addons/dogtags/XEH_preInit.sqf b/addons/dogtags/XEH_preInit.sqf
index a7feade1c3..434496058f 100644
--- a/addons/dogtags/XEH_preInit.sqf
+++ b/addons/dogtags/XEH_preInit.sqf
@@ -4,4 +4,6 @@ ADDON = false;
 
 #include "XEH_PREP.hpp"
 
+GVAR(disabledFactions) = [] call CBA_fnc_createNamespace;
+    
 ADDON = true;
diff --git a/addons/dogtags/functions/fnc_disableFactionDogtags.sqf b/addons/dogtags/functions/fnc_disableFactionDogtags.sqf
index 3100ffb269..2418b31f4e 100644
--- a/addons/dogtags/functions/fnc_disableFactionDogtags.sqf
+++ b/addons/dogtags/functions/fnc_disableFactionDogtags.sqf
@@ -17,8 +17,4 @@
 
 params [["_faction", "", [""]]];
 
-if (isNil QGVAR(disabledFactions)) then {
-    GVAR(disabledFactions) = [] call CBA_fnc_createNamespace;
-};
-
 GVAR(disabledFactions) setVariable [_faction, true];

From b8cc10fecbdd8b09c1a019c543fb68bd303118be Mon Sep 17 00:00:00 2001
From: jonpas <jonpas33@gmail.com>
Date: Sat, 8 Oct 2016 15:31:39 +0200
Subject: [PATCH 09/10] Fix #4523 - fuel nozzle disconnect at maximum hose
 distance

---
 addons/refuel/XEH_PREP.hpp                    |  1 +
 .../functions/fnc_maxDistanceDropNozzle.sqf   | 54 +++++++++++++++++++
 addons/refuel/functions/fnc_takeNozzle.sqf    | 41 +++-----------
 3 files changed, 63 insertions(+), 33 deletions(-)
 create mode 100644 addons/refuel/functions/fnc_maxDistanceDropNozzle.sqf

diff --git a/addons/refuel/XEH_PREP.hpp b/addons/refuel/XEH_PREP.hpp
index dac451da17..806d861a69 100644
--- a/addons/refuel/XEH_PREP.hpp
+++ b/addons/refuel/XEH_PREP.hpp
@@ -16,6 +16,7 @@ PREP(handleDisconnect);
 PREP(handleKilled);
 PREP(handleUnconscious);
 PREP(makeJerryCan);
+PREP(maxDistanceDropNozzle);
 PREP(moduleRefuelSettings);
 PREP(readFuelCounter);
 PREP(refuel);
diff --git a/addons/refuel/functions/fnc_maxDistanceDropNozzle.sqf b/addons/refuel/functions/fnc_maxDistanceDropNozzle.sqf
new file mode 100644
index 0000000000..90231a30f2
--- /dev/null
+++ b/addons/refuel/functions/fnc_maxDistanceDropNozzle.sqf
@@ -0,0 +1,54 @@
+/*
+ * Author: GitHawk, Jonpas
+ * Drops the nozzle at maximum hose distance.
+ *
+ * Arguments:
+ * 0: Unit <OBJECT>
+ * 1: Fuel Truck <OBJECT>
+ * 2: End Pos Offset <ARRAY>
+ * 3: Nozzle <OBJECT> (optional)
+ *
+ * Return Value:
+ * None
+ *
+ * Example:
+ * [player, fuelTruck, [0, 0, 0], nozzle] call ace_refuel_fnc_maxDistanceDropNozzle
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+params ["_unit", "_source", "_endPosOffset", "_nozzle"];
+
+// Exit if jerry can (no maximum distance there as it's not connected to anything)
+if (_nozzle getVariable [QGVAR(jerryCan), false]) exitWith {};
+
+// Check distance periodically to drop it at maximum hose length
+[{
+    params ["_args", "_pfID"];
+    _args params [
+        ["_unit", player, [objNull]],
+        ["_source", objNull, [objNull]],
+        ["_endPosOffset", [0, 0, 0], [[]], 3],
+        ["_nozzle", (_args select 0) getVariable [QGVAR(nozzle), objNull], [objNull]]
+    ];
+
+    if (isNull _source || {_unit distance (_source modelToWorld _endPosOffset) > (REFUEL_HOSE_LENGTH - 2)} || {!alive _source}) exitWith {
+        if !(isNull _nozzle) then {
+            [_unit, _nozzle] call FUNC(dropNozzle);
+            REFUEL_UNHOLSTER_WEAPON
+
+            [_unit, "forceWalk", "ACE_refuel", false] call EFUNC(common,statusEffect_set);
+            if (isNull _source || {!alive _source}) then {
+                private _rope = _nozzle getVariable [QGVAR(rope), objNull];
+                if !(isNull _rope) then {
+                    ropeDestroy _rope;
+                };
+                deleteVehicle _nozzle;
+            } else {
+                [LSTRING(Hint_TooFar), 2, _unit] call EFUNC(common,displayTextStructured);
+            };
+        };
+        [_pfID] call CBA_fnc_removePerFrameHandler;
+    };
+}, 0, [_unit, _target, _endPosOffset, _nozzle]] call CBA_fnc_addPerFrameHandler;
diff --git a/addons/refuel/functions/fnc_takeNozzle.sqf b/addons/refuel/functions/fnc_takeNozzle.sqf
index 9548b2ed2f..006c5e0942 100644
--- a/addons/refuel/functions/fnc_takeNozzle.sqf
+++ b/addons/refuel/functions/fnc_takeNozzle.sqf
@@ -82,6 +82,9 @@ if (isNull _nozzle) then { // func is called on fuel truck
                 '!isNull (_target getVariable [QGVAR(nozzle), objNull])'
             ];
             _unit setVariable [QGVAR(ReleaseActionID), _actionID];
+
+            // Drop nozzle at maximum hose distance
+            [_unit, _target, _endPosOffset, _nozzle] call FUNC(maxDistanceDropNozzle);
         },
         "",
         localize LSTRING(TakeNozzleAction),
@@ -123,43 +126,15 @@ if (isNull _nozzle) then { // func is called on fuel truck
                 '!isNull (_target getVariable [QGVAR(nozzle), objNull])'
             ];
             _unit setVariable [QGVAR(ReleaseActionID), _actionID];
+
+            // Drop nozzle at maximum hose distance
+            private _target = _nozzle getVariable QGVAR(source);
+            private _endPosOffset = _nozzle getVariable QGVAR(attachPos);
+            [_unit, _target, _endPosOffset, _nozzle] call FUNC(maxDistanceDropNozzle);
         },
         "",
         localize LSTRING(TakeNozzleAction),
         {true},
         ["isnotinside"]
     ] call EFUNC(common,progressBar);
-
-    _target = _nozzle getVariable QGVAR(source);
-    _endPosOffset = _nozzle getVariable QGVAR(attachPos);
-};
-if !(_nozzle getVariable [QGVAR(jerryCan), false]) then {
-    [{
-        params ["_args", "_pfID"];
-        _args params [
-            ["_unit", player, [objNull]],
-            ["_source", objNull, [objNull]],
-            ["_endPosOffset", [0, 0, 0], [[]], 3],
-            ["_nozzle", _unit getVariable [QGVAR(nozzle), objNull], [objNull]]
-        ];
-
-        if (isNull _source || {_unit distance (_source modelToWorld _endPosOffset) > (REFUEL_HOSE_LENGTH - 2)} || {!alive _source}) exitWith {
-            if !(isNull _nozzle) then {
-                [_unit, _nozzle] call FUNC(dropNozzle);
-                REFUEL_UNHOLSTER_WEAPON
-
-                [_unit, "forceWalk", "ACE_refuel", false] call EFUNC(common,statusEffect_set);
-                if (isNull _source || {!alive _source}) then {
-                    private _rope = _nozzle getVariable [QGVAR(rope), objNull];
-                    if !(isNull _rope) then {
-                        ropeDestroy _rope;
-                    };
-                    deleteVehicle _nozzle;
-                } else {
-                    [LSTRING(Hint_TooFar), 2, _unit] call EFUNC(common,displayTextStructured);
-                };
-            };
-            [_pfID] call cba_fnc_removePerFrameHandler;
-        };
-    }, 0, [_unit, _target, _endPosOffset]] call cba_fnc_addPerFrameHandler;
 };

From 8822cb1b907a48f80550a5a59e9b801f09b55f63 Mon Sep 17 00:00:00 2001
From: commy2 <commy-2@gmx.de>
Date: Tue, 11 Oct 2016 19:04:08 +0200
Subject: [PATCH 10/10] emulate frag grenade ai behaviour for incendiaries
 (#4534)

---
 addons/grenades/functions/fnc_incendiary.sqf  | 21 ++++++++++++++++++-
 .../grenades/functions/fnc_throwGrenade.sqf   |  2 +-
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/addons/grenades/functions/fnc_incendiary.sqf b/addons/grenades/functions/fnc_incendiary.sqf
index 098e2d5e20..6081daa8af 100644
--- a/addons/grenades/functions/fnc_incendiary.sqf
+++ b/addons/grenades/functions/fnc_incendiary.sqf
@@ -16,6 +16,8 @@
  */
 #include "script_component.hpp"
 
+#define ALERT_NEAR_ENEMY_RANGE 60
+
 #define PARTICLE_LIFE_TIME 2
 #define PARTICLE_DENSITY 20
 #define PARTICLE_SIZE 1
@@ -32,12 +34,29 @@
 #define ORIENTATION 5.4
 #define EXPANSION 1
 
-params ["_projectile", "_timeToLive"];
+params ["_projectile", "_timeToLive", "_center"];
 
 if (isNull _projectile) exitWith {TRACE_1("null",_projectile);};
 
 private _position = position _projectile;
 
+// --- AI
+private _nearLocalEnemies = [];
+
+{
+    {
+        if (local _x && {[_center, side _x] call BIS_fnc_sideIsEnemy}) then { // WE WANT THE OBJECTS SIDE HERE!
+            _nearLocalEnemies pushBackUnique _x;
+        };
+    } forEach crew _x;
+} forEach (_position nearObjects ALERT_NEAR_ENEMY_RANGE);
+
+{
+    if (behaviour _x in ["SAFE", "AWARE"]) then {
+        _x setBehaviour "COMBAT";
+    };
+} forEach _nearLocalEnemies;
+
 // --- fire
 private _fire = "#particlesource" createVehicleLocal _position;
 
diff --git a/addons/grenades/functions/fnc_throwGrenade.sqf b/addons/grenades/functions/fnc_throwGrenade.sqf
index 8db3cf3829..92c2639826 100644
--- a/addons/grenades/functions/fnc_throwGrenade.sqf
+++ b/addons/grenades/functions/fnc_throwGrenade.sqf
@@ -56,7 +56,7 @@ if (getNumber (_config >> QGVAR(incendiary)) == 1) then {
     private _fuzeTime = getNumber (_config >> "explosionTime");
     private _timeToLive = getNumber (_config >> "timeToLive");
 
-    [FUNC(incendiary), [_projectile, _timeToLive], _fuzeTime] call CBA_fnc_waitAndExecute;
+    [FUNC(incendiary), [_projectile, _timeToLive, side _unit], _fuzeTime] call CBA_fnc_waitAndExecute; // WE WANT THE OBJECTS SIDE HERE!
 };
 
 // handle throw modes