diff --git a/README.md b/README.md
index ed1c1061a..4780ad7ec 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,11 @@
-
+
+
-
+
diff --git a/VERSION b/VERSION
index dcc5f763b..332200146 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.13.0.32
+1.14.0.34
diff --git a/addons/attributes/CfgWaypointTypes.hpp b/addons/ai/CfgWaypointTypes.hpp
similarity index 72%
rename from addons/attributes/CfgWaypointTypes.hpp
rename to addons/ai/CfgWaypointTypes.hpp
index b2bbd667b..8bb68949f 100644
--- a/addons/attributes/CfgWaypointTypes.hpp
+++ b/addons/ai/CfgWaypointTypes.hpp
@@ -34,7 +34,7 @@ class ZEN_WaypointTypes {
class Land {
displayName = "$STR_A3_CfgWaypoints_Land";
type = "SCRIPTED";
- script = QPATHTOEF(ai,functions\fnc_waypointLand.sqf);
+ script = QPATHTOF(functions\fnc_waypointLand.sqf);
};
class Hook {
displayName = "$STR_ac_hook";
@@ -54,19 +54,13 @@ class ZEN_WaypointTypes {
script = "\a3\functions_f_orange\waypoints\fn_wpDemine.sqf";
};
class Paradrop {
- displayName = ECSTRING(ai,Paradrop);
+ displayName = CSTRING(Paradrop);
type = "SCRIPTED";
- script = QPATHTOEF(ai,functions\fnc_waypointParadrop.sqf);
- };
- class Fastrope {
- displayName = ECSTRING(ai,Fastrope);
- type = "SCRIPTED";
- script = QPATHTOEF(ai,functions\fnc_waypointFastrope.sqf);
- condition = QUOTE(isClass (configFile >> 'CfgPatches' >> 'ace_fastroping'));
+ script = QPATHTOF(functions\fnc_waypointParadrop.sqf);
};
class SearchBuilding {
- displayName = ECSTRING(ai,SearchBuilding);
+ displayName = CSTRING(SearchBuilding);
type = "SCRIPTED";
- script = QPATHTOEF(ai,functions\fnc_waypointSearchBuilding.sqf);
+ script = QPATHTOF(functions\fnc_waypointSearchBuilding.sqf);
};
};
diff --git a/addons/ai/config.cpp b/addons/ai/config.cpp
index b1073d100..7e77149c4 100644
--- a/addons/ai/config.cpp
+++ b/addons/ai/config.cpp
@@ -17,3 +17,4 @@ class CfgPatches {
PRELOAD_ADDONS;
#include "CfgEventHandlers.hpp"
+#include "CfgWaypointTypes.hpp"
diff --git a/addons/ai/functions/fnc_unGarrison.sqf b/addons/ai/functions/fnc_unGarrison.sqf
index 184341f08..0cfebe46a 100644
--- a/addons/ai/functions/fnc_unGarrison.sqf
+++ b/addons/ai/functions/fnc_unGarrison.sqf
@@ -33,7 +33,7 @@
group _unit enableAttack true;
};
- _unit setVariable [QGVAR(garrisonned), false, true];
+ _unit setVariable [QGVAR(garrisoned), false, true];
// End fix for rotating garrisoned units
_unit doWatch objNull;
diff --git a/addons/ai/stringtable.xml b/addons/ai/stringtable.xml
index afd535f40..030058767 100644
--- a/addons/ai/stringtable.xml
+++ b/addons/ai/stringtable.xml
@@ -12,20 +12,6 @@
降落
Atterrare
-
- Fastrope
- Спуск по тросу
- Corde lisse
- Schnelles Abseilen
- Zjazd na linach
- Cabo rápido
- ファストロープ
- 패스트로프
- Rapel Rapido
- 快速索降
- 快速索降
- Discesa veloce
-
Paradrop
Десант
diff --git a/addons/area_markers/CfgContext.hpp b/addons/area_markers/CfgContext.hpp
deleted file mode 100644
index b0e50bb1f..000000000
--- a/addons/area_markers/CfgContext.hpp
+++ /dev/null
@@ -1,9 +0,0 @@
-class EGVAR(context_menu,actions) {
- class ADDON {
- displayName = CSTRING(CreateAreaMarker);
- icon = ICON_MARKERS;
- condition = QUOTE(visibleMap);
- statement = QUOTE([ARR_2(QQGVAR(createMarker),[_position])] call CBA_fnc_serverEvent);
- priority = 100;
- };
-};
diff --git a/addons/area_markers/CfgVehicles.hpp b/addons/area_markers/CfgVehicles.hpp
deleted file mode 100644
index ed27bd842..000000000
--- a/addons/area_markers/CfgVehicles.hpp
+++ /dev/null
@@ -1,8 +0,0 @@
-class CfgVehicles {
- class EGVAR(modules,moduleBase);
- class GVAR(module): EGVAR(modules,moduleBase) {
- displayName = CSTRING(CreateAreaMarker);
- function = QFUNC(module);
- icon = ICON_MARKERS;
- };
-};
diff --git a/addons/area_markers/XEH_PREP.hpp b/addons/area_markers/XEH_PREP.hpp
index 29e6ca6ef..764cb9539 100644
--- a/addons/area_markers/XEH_PREP.hpp
+++ b/addons/area_markers/XEH_PREP.hpp
@@ -5,7 +5,6 @@ PREP(createMarker);
PREP(deleteIcon);
PREP(initDisplayCurator);
PREP(isEditable);
-PREP(module);
PREP(onDraw);
PREP(onKeyDown);
PREP(onMapToggled);
diff --git a/addons/area_markers/XEH_postInit.sqf b/addons/area_markers/XEH_postInit.sqf
index cbffcda1f..cbee9c982 100644
--- a/addons/area_markers/XEH_postInit.sqf
+++ b/addons/area_markers/XEH_postInit.sqf
@@ -16,9 +16,4 @@ if (hasInterface) then {
addMissionEventHandler ["MarkerCreated", {call FUNC(onMarkerCreated)}];
addMissionEventHandler ["MarkerDeleted", {call FUNC(onMarkerDeleted)}];
addMissionEventHandler ["MarkerUpdated", {call FUNC(onMarkerUpdated)}];
-
- // Manually trigger event for 3DEN placed and already existent (JIP) markers
- {
- _x call FUNC(onMarkerCreated);
- } forEach allMapMarkers;
};
diff --git a/addons/area_markers/XEH_preInit.sqf b/addons/area_markers/XEH_preInit.sqf
index 469798001..c95627a23 100644
--- a/addons/area_markers/XEH_preInit.sqf
+++ b/addons/area_markers/XEH_preInit.sqf
@@ -6,6 +6,8 @@ PREP_RECOMPILE_START;
#include "XEH_PREP.hpp"
PREP_RECOMPILE_END;
+#include "initSettings.sqf"
+
if (isServer) then {
// Unique ID for creating markers
GVAR(nextID) = 0;
diff --git a/addons/area_markers/config.cpp b/addons/area_markers/config.cpp
index f4536c88a..e36509081 100644
--- a/addons/area_markers/config.cpp
+++ b/addons/area_markers/config.cpp
@@ -3,12 +3,10 @@
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
- units[] = {
- QGVAR(module)
- };
+ units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
- requiredAddons[] = {"zen_modules"};
+ requiredAddons[] = {"zen_common"};
author = ECSTRING(main,Author);
authors[] = {"mharis001"};
url = ECSTRING(main,URL);
@@ -19,6 +17,4 @@ class CfgPatches {
PRELOAD_ADDONS;
#include "CfgEventHandlers.hpp"
-#include "CfgVehicles.hpp"
-#include "CfgContext.hpp"
#include "gui.hpp"
diff --git a/addons/area_markers/functions/fnc_createMarker.sqf b/addons/area_markers/functions/fnc_createMarker.sqf
index 98405a462..5b61293ef 100644
--- a/addons/area_markers/functions/fnc_createMarker.sqf
+++ b/addons/area_markers/functions/fnc_createMarker.sqf
@@ -6,20 +6,22 @@
*
* Arguments:
* 0: Position
+ * 1: Shape (default: "RECTANGLE")
+ * - Should be either "ELLIPSE" or "RECTANGLE".
*
* Return Value:
* None
*
* Example:
- * [[0, 0, 0]] call zen_area_markers_fnc_createMarker
+ * [[0, 0, 0], "RECTANGLE"] call zen_area_markers_fnc_createMarker
*
* Public: No
*/
-params ["_position"];
+params ["_position", ["_shape", "RECTANGLE"]];
private _marker = createMarker [format [QGVAR(%1), GVAR(nextID)], _position];
-_marker setMarkerShape "RECTANGLE";
+_marker setMarkerShape _shape;
_marker setMarkerSize [50, 50];
GVAR(nextID) = GVAR(nextID) + 1;
diff --git a/addons/area_markers/functions/fnc_deleteIcon.sqf b/addons/area_markers/functions/fnc_deleteIcon.sqf
index de2c4cf27..634c32f42 100644
--- a/addons/area_markers/functions/fnc_deleteIcon.sqf
+++ b/addons/area_markers/functions/fnc_deleteIcon.sqf
@@ -18,6 +18,5 @@
params ["_marker"];
if (_marker in GVAR(icons)) then {
- ctrlDelete (GVAR(icons) get _marker);
- GVAR(icons) deleteAt _marker;
+ ctrlDelete (GVAR(icons) deleteAt _marker);
};
diff --git a/addons/area_markers/functions/fnc_isEditable.sqf b/addons/area_markers/functions/fnc_isEditable.sqf
index 426cd645d..cdb722de5 100644
--- a/addons/area_markers/functions/fnc_isEditable.sqf
+++ b/addons/area_markers/functions/fnc_isEditable.sqf
@@ -17,4 +17,6 @@
params ["_marker"];
-markerShape _marker in ["RECTANGLE", "ELLIPSE"] && {GVAR(blacklist) findIf {_x in _marker} == -1}
+markerShape _marker in ["RECTANGLE", "ELLIPSE"]
+&& {GVAR(blacklist) findIf {_x in _marker} == -1}
+&& {GVAR(editableMarkers) == EDITABLE_MARKERS_ALL || {QUOTE(ADDON) in _marker}}
diff --git a/addons/area_markers/functions/fnc_module.sqf b/addons/area_markers/functions/fnc_module.sqf
deleted file mode 100644
index 382544d79..000000000
--- a/addons/area_markers/functions/fnc_module.sqf
+++ /dev/null
@@ -1,28 +0,0 @@
-#include "script_component.hpp"
-/*
- * Author: mharis001
- * Zeus module function to create an area marker.
- *
- * Arguments:
- * 0: Logic
+
+ Fastrope
+ Спуск по тросу
+ Corde lisse
+ Schnelles Abseilen
+ Zjazd na linach
+ Cabo rápido
+ ファストロープ
+ 패스트로프
+ Rapel Rapido
+ 快速索降
+ 快速索降
+ Discesa veloce
+
diff --git a/optionals/compat_advanced_rappelling/$PBOPREFIX$ b/optionals/compat_advanced_rappelling/$PBOPREFIX$
new file mode 100644
index 000000000..7bc8951ae
--- /dev/null
+++ b/optionals/compat_advanced_rappelling/$PBOPREFIX$
@@ -0,0 +1 @@
+x\zen\addons\compat_advanced_rappelling
diff --git a/optionals/compat_advanced_rappelling/CfgEventHandlers.hpp b/optionals/compat_advanced_rappelling/CfgEventHandlers.hpp
new file mode 100644
index 000000000..865276cfb
--- /dev/null
+++ b/optionals/compat_advanced_rappelling/CfgEventHandlers.hpp
@@ -0,0 +1,11 @@
+class Extended_PreStart_EventHandlers {
+ class ADDON {
+ init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
+ };
+};
+
+class Extended_PreInit_EventHandlers {
+ class ADDON {
+ init = QUOTE(call COMPILE_SCRIPT(XEH_preInit));
+ };
+};
diff --git a/optionals/compat_advanced_rappelling/CfgWaypointTypes.hpp b/optionals/compat_advanced_rappelling/CfgWaypointTypes.hpp
new file mode 100644
index 000000000..f6b583147
--- /dev/null
+++ b/optionals/compat_advanced_rappelling/CfgWaypointTypes.hpp
@@ -0,0 +1,8 @@
+class ZEN_WaypointTypes {
+ class AdvancedRappel {
+ displayName = CSTRING(Rappel);
+ type = "SCRIPTED";
+ script = QPATHTOF(functions\fnc_waypointRappel.sqf);
+ condition = QUOTE(!isNil 'AR_RAPPELLING_INIT');
+ };
+};
diff --git a/optionals/compat_advanced_rappelling/XEH_PREP.hpp b/optionals/compat_advanced_rappelling/XEH_PREP.hpp
new file mode 100644
index 000000000..ee8faa910
--- /dev/null
+++ b/optionals/compat_advanced_rappelling/XEH_PREP.hpp
@@ -0,0 +1 @@
+PREP(canRappel);
diff --git a/optionals/compat_advanced_rappelling/XEH_preInit.sqf b/optionals/compat_advanced_rappelling/XEH_preInit.sqf
new file mode 100644
index 000000000..b47cf6628
--- /dev/null
+++ b/optionals/compat_advanced_rappelling/XEH_preInit.sqf
@@ -0,0 +1,9 @@
+#include "script_component.hpp"
+
+ADDON = false;
+
+PREP_RECOMPILE_START;
+#include "XEH_PREP.hpp"
+PREP_RECOMPILE_END;
+
+ADDON = true;
diff --git a/optionals/compat_advanced_rappelling/XEH_preStart.sqf b/optionals/compat_advanced_rappelling/XEH_preStart.sqf
new file mode 100644
index 000000000..022888575
--- /dev/null
+++ b/optionals/compat_advanced_rappelling/XEH_preStart.sqf
@@ -0,0 +1,3 @@
+#include "script_component.hpp"
+
+#include "XEH_PREP.hpp"
diff --git a/optionals/compat_advanced_rappelling/config.cpp b/optionals/compat_advanced_rappelling/config.cpp
new file mode 100644
index 000000000..5f7b86bb1
--- /dev/null
+++ b/optionals/compat_advanced_rappelling/config.cpp
@@ -0,0 +1,20 @@
+#include "script_component.hpp"
+
+class CfgPatches {
+ class ADDON {
+ name = COMPONENT_NAME;
+ units[] = {};
+ weapons[] = {};
+ requiredVersion = REQUIRED_VERSION;
+ requiredAddons[] = {"zen_ai"};
+ author = ECSTRING(main,Author);
+ authors[] = {"Kex"};
+ url = ECSTRING(main,URL);
+ VERSION_CONFIG;
+ };
+};
+
+PRELOAD_ADDONS;
+
+#include "CfgEventHandlers.hpp"
+#include "CfgWaypointTypes.hpp"
diff --git a/optionals/compat_advanced_rappelling/functions/fnc_canRappel.sqf b/optionals/compat_advanced_rappelling/functions/fnc_canRappel.sqf
new file mode 100644
index 000000000..f10db30d3
--- /dev/null
+++ b/optionals/compat_advanced_rappelling/functions/fnc_canRappel.sqf
@@ -0,0 +1,23 @@
+#include "script_component.hpp"
+/*
+ * Author: Kex
+ * Checks if the given vehicle can be used for rappelling.
+ *
+ * Arguments:
+ * 0: Vehicle
+ *
+ * Return Value:
+ * Can Rappel
+ *
+ * Example:
+ * [_vehicle] call zen_compat_advanced_rappelling_fnc_canRappel
+ *
+ * Public: No
+ */
+
+params ["_vehicle"];
+
+!isNil "AR_RAPPELLING_INIT" && {
+ private _supportedVehicles = missionNamespace getVariable ["AR_SUPPORTED_VEHICLES_OVERRIDE", AR_SUPPORTED_VEHICLES];
+ _supportedVehicles findIf {_vehicle isKindOf _x} != -1
+}
diff --git a/optionals/compat_advanced_rappelling/functions/fnc_waypointRappel.sqf b/optionals/compat_advanced_rappelling/functions/fnc_waypointRappel.sqf
new file mode 100644
index 000000000..eee77474c
--- /dev/null
+++ b/optionals/compat_advanced_rappelling/functions/fnc_waypointRappel.sqf
@@ -0,0 +1,50 @@
+#include "script_component.hpp"
+/*
+ * Author: Kex
+ * Scripted waypoint that makes a group rappel at the waypoint's position.
+ * Requires Duda's Advanced Rappelling to be loaded.
+ *
+ * Arguments:
+ * 0: Group
+ * 1: Waypoint Position
+ *
+ * Return Value:
+ * Waypoint Finished
+ *
+ * Example:
+ * _waypoint setWaypointScript "\x\zen\addons\compat_advanced_rappelling\functions\fnc_waypointRappel.sqf"
+ *
+ * Public: No
+ */
+
+#define RAPPEL_HEIGHT 15
+
+params ["_group", "_waypointPosition"];
+
+private _waypoint = [_group, currentWaypoint _group];
+_waypoint setWaypointDescription localize LSTRING(Rappel);
+
+private _vehicle = vehicle leader _group;
+
+// Exit if the helicopter has no passengers that can be deployed by rappelling
+if (crew _vehicle findIf {assignedVehicleRole _x select 0 == "cargo"} == -1) exitWith {true};
+
+// Exit if rappelling is not enabled for the helicopter
+if !(_vehicle call FUNC(canRappel)) exitWith {true};
+
+// Increase the skill of the pilot for better flying
+private _driver = driver _vehicle;
+private _skill = skill _driver;
+_driver allowFleeing 0;
+_driver setSkill 1;
+
+// Set the group's behaviour to careless to prevent it from flying away in combat
+private _behaviour = behaviour _vehicle;
+_group setBehaviour "CARELESS";
+
+[_vehicle, RAPPEL_HEIGHT, AGLToASL _waypointPosition] call AR_Rappel_All_Cargo;
+
+_driver setSkill _skill;
+_group setBehaviour _behaviour;
+
+true
diff --git a/optionals/compat_advanced_rappelling/functions/script_component.hpp b/optionals/compat_advanced_rappelling/functions/script_component.hpp
new file mode 100644
index 000000000..bc445d61c
--- /dev/null
+++ b/optionals/compat_advanced_rappelling/functions/script_component.hpp
@@ -0,0 +1 @@
+#include "\x\zen\addons\compat_advanced_rappelling\script_component.hpp"
diff --git a/optionals/compat_advanced_rappelling/script_component.hpp b/optionals/compat_advanced_rappelling/script_component.hpp
new file mode 100644
index 000000000..a4ae270a7
--- /dev/null
+++ b/optionals/compat_advanced_rappelling/script_component.hpp
@@ -0,0 +1,17 @@
+#define COMPONENT compat_advanced_rappelling
+#define COMPONENT_BEAUTIFIED Advanced Rappelling Compatibility
+#include "\x\zen\addons\main\script_mod.hpp"
+
+// #define DEBUG_MODE_FULL
+// #define DISABLE_COMPILE_CACHE
+// #define ENABLE_PERFORMANCE_COUNTERS
+
+#ifdef DEBUG_ENABLED_COMPAT_ADVANCED_RAPPELLING
+ #define DEBUG_MODE_FULL
+#endif
+
+#ifdef DEBUG_SETTINGS_COMPAT_ADVANCED_RAPPELLING
+ #define DEBUG_SETTINGS DEBUG_SETTINGS_COMPAT_ADVANCED_RAPPELLING
+#endif
+
+#include "\x\zen\addons\main\script_macros.hpp"
diff --git a/optionals/compat_advanced_rappelling/stringtable.xml b/optionals/compat_advanced_rappelling/stringtable.xml
new file mode 100644
index 000000000..31704aad3
--- /dev/null
+++ b/optionals/compat_advanced_rappelling/stringtable.xml
@@ -0,0 +1,9 @@
+
+
+
+
+ Rappel
+ Abseilen
+
+
+