From e5f02f8d63571bb34c79b05fcab01ca1c86d0a69 Mon Sep 17 00:00:00 2001 From: Giallustio Date: Fri, 30 Jan 2015 00:18:45 +0100 Subject: [PATCH] sys_cargo sys_cargo to merge --- TO_MERGE/ace/sys_cargo/$PBOPREFIX$ | 1 + TO_MERGE/ace/sys_cargo/ACE_readme.txt | 44 +++ TO_MERGE/ace/sys_cargo/CfgEventHandlers.hpp | 27 ++ TO_MERGE/ace/sys_cargo/CfgFunctions.hpp | 31 ++ TO_MERGE/ace/sys_cargo/CfgVehicles.hpp | 89 +++++ TO_MERGE/ace/sys_cargo/Defines.hpp | 318 ++++++++++++++++++ TO_MERGE/ace/sys_cargo/Dialog.hpp | 178 ++++++++++ TO_MERGE/ace/sys_cargo/XEH_postInit.sqf | 9 + TO_MERGE/ace/sys_cargo/XEH_preInit.sqf | 295 ++++++++++++++++ TO_MERGE/ace/sys_cargo/box/$PBOPREFIX$ | 1 + TO_MERGE/ace/sys_cargo/box/config.cpp | 12 + TO_MERGE/ace/sys_cargo/box/license.txt | 79 +++++ .../ace/sys_cargo/box/script_component.hpp | 14 + TO_MERGE/ace/sys_cargo/config.cpp | 21 ++ .../data/rsc/ace_ui_background_ca.paa | Bin 0 -> 22052 bytes TO_MERGE/ace/sys_cargo/fnc_canLoadCargo.sqf | 27 ++ TO_MERGE/ace/sys_cargo/fnc_carry.sqf | 153 +++++++++ TO_MERGE/ace/sys_cargo/fnc_carry2.sqf | 23 ++ TO_MERGE/ace/sys_cargo/fnc_drag.sqf | 106 ++++++ TO_MERGE/ace/sys_cargo/fnc_exec.sqf | 0 TO_MERGE/ace/sys_cargo/fnc_init.sqf | 22 ++ TO_MERGE/ace/sys_cargo/fnc_listCargo.sqf | 27 ++ TO_MERGE/ace/sys_cargo/fnc_load.sqf | 105 ++++++ TO_MERGE/ace/sys_cargo/fnc_loadCargo.sqf | 81 +++++ TO_MERGE/ace/sys_cargo/fnc_menuDef.sqf | 206 ++++++++++++ TO_MERGE/ace/sys_cargo/fnc_onload.sqf | 11 + TO_MERGE/ace/sys_cargo/fnc_push.sqf | 35 ++ TO_MERGE/ace/sys_cargo/fnc_unload.sqf | 85 +++++ TO_MERGE/ace/sys_cargo/fnc_unloadCargo.sqf | 46 +++ TO_MERGE/ace/sys_cargo/fnc_view.sqf | 65 ++++ TO_MERGE/ace/sys_cargo/license.txt | 79 +++++ TO_MERGE/ace/sys_cargo/script_component.hpp | 29 ++ TO_MERGE/ace/sys_cargo/slingload/$PBOPREFIX$ | 1 + .../sys_cargo/slingload/CfgEventhandlers.hpp | 6 + .../ace/sys_cargo/slingload/CfgMagazines.hpp | 27 ++ .../ace/sys_cargo/slingload/CfgVehicles.hpp | 101 ++++++ .../ace/sys_cargo/slingload/CfgWeapons.hpp | 11 + .../sys_cargo/slingload/XEH_preClientInit.sqf | 13 + .../ace/sys_cargo/slingload/XEH_preInit.sqf | 12 + .../ace/sys_cargo/slingload/ace_slingrope.p3d | Bin 0 -> 345408 bytes .../sys_cargo/slingload/ace_slingrope_L.p3d | Bin 0 -> 66920 bytes .../sys_cargo/slingload/ace_slingrope_M.p3d | Bin 0 -> 67716 bytes .../sys_cargo/slingload/ace_slingrope_P.p3d | Bin 0 -> 120969 bytes TO_MERGE/ace/sys_cargo/slingload/config.cpp | 37 ++ .../ace/sys_cargo/slingload/data/Anilla.paa | Bin 0 -> 14998 bytes .../sys_cargo/slingload/data/ace_rope_co.paa | Bin 0 -> 44681 bytes .../slingload/data/equip/m_rope_ca.paa | Bin 0 -> 43998 bytes .../ace/sys_cargo/slingload/data/metal8.paa | Bin 0 -> 13470 bytes .../ace/sys_cargo/slingload/data/soga.paa | Bin 0 -> 21977 bytes .../ace/sys_cargo/slingload/fnc_addAction.sqf | 14 + .../slingload/fnc_attachSlingRopeToCargo.sqf | 23 ++ .../fnc_attachSlingRopeToHelicopter.sqf | 116 +++++++ .../fnc_detachSlingRopeFromCargo.sqf | 8 + .../sys_cargo/slingload/fnc_hasropemag.sqf | 9 + .../ace/sys_cargo/slingload/fnc_menuDef.sqf | 117 +++++++ TO_MERGE/ace/sys_cargo/slingload/license.txt | 79 +++++ .../ace/sys_cargo/slingload/m_ace_rope.p3d | Bin 0 -> 59912 bytes TO_MERGE/ace/sys_cargo/slingload/process.sqf | 27 ++ .../sys_cargo/slingload/script_component.hpp | 15 + .../sys_cargo/slingload/ua_release_cargo.sqf | 78 +++++ TO_MERGE/ace/sys_cargo/ua_carry2.sqf | 192 +++++++++++ 61 files changed, 3105 insertions(+) create mode 100644 TO_MERGE/ace/sys_cargo/$PBOPREFIX$ create mode 100644 TO_MERGE/ace/sys_cargo/ACE_readme.txt create mode 100644 TO_MERGE/ace/sys_cargo/CfgEventHandlers.hpp create mode 100644 TO_MERGE/ace/sys_cargo/CfgFunctions.hpp create mode 100644 TO_MERGE/ace/sys_cargo/CfgVehicles.hpp create mode 100644 TO_MERGE/ace/sys_cargo/Defines.hpp create mode 100644 TO_MERGE/ace/sys_cargo/Dialog.hpp create mode 100644 TO_MERGE/ace/sys_cargo/XEH_postInit.sqf create mode 100644 TO_MERGE/ace/sys_cargo/XEH_preInit.sqf create mode 100644 TO_MERGE/ace/sys_cargo/box/$PBOPREFIX$ create mode 100644 TO_MERGE/ace/sys_cargo/box/config.cpp create mode 100644 TO_MERGE/ace/sys_cargo/box/license.txt create mode 100644 TO_MERGE/ace/sys_cargo/box/script_component.hpp create mode 100644 TO_MERGE/ace/sys_cargo/config.cpp create mode 100644 TO_MERGE/ace/sys_cargo/data/rsc/ace_ui_background_ca.paa create mode 100644 TO_MERGE/ace/sys_cargo/fnc_canLoadCargo.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_carry.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_carry2.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_drag.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_exec.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_init.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_listCargo.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_load.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_loadCargo.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_menuDef.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_onload.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_push.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_unload.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_unloadCargo.sqf create mode 100644 TO_MERGE/ace/sys_cargo/fnc_view.sqf create mode 100644 TO_MERGE/ace/sys_cargo/license.txt create mode 100644 TO_MERGE/ace/sys_cargo/script_component.hpp create mode 100644 TO_MERGE/ace/sys_cargo/slingload/$PBOPREFIX$ create mode 100644 TO_MERGE/ace/sys_cargo/slingload/CfgEventhandlers.hpp create mode 100644 TO_MERGE/ace/sys_cargo/slingload/CfgMagazines.hpp create mode 100644 TO_MERGE/ace/sys_cargo/slingload/CfgVehicles.hpp create mode 100644 TO_MERGE/ace/sys_cargo/slingload/CfgWeapons.hpp create mode 100644 TO_MERGE/ace/sys_cargo/slingload/XEH_preClientInit.sqf create mode 100644 TO_MERGE/ace/sys_cargo/slingload/XEH_preInit.sqf create mode 100644 TO_MERGE/ace/sys_cargo/slingload/ace_slingrope.p3d create mode 100644 TO_MERGE/ace/sys_cargo/slingload/ace_slingrope_L.p3d create mode 100644 TO_MERGE/ace/sys_cargo/slingload/ace_slingrope_M.p3d create mode 100644 TO_MERGE/ace/sys_cargo/slingload/ace_slingrope_P.p3d create mode 100644 TO_MERGE/ace/sys_cargo/slingload/config.cpp create mode 100644 TO_MERGE/ace/sys_cargo/slingload/data/Anilla.paa create mode 100644 TO_MERGE/ace/sys_cargo/slingload/data/ace_rope_co.paa create mode 100644 TO_MERGE/ace/sys_cargo/slingload/data/equip/m_rope_ca.paa create mode 100644 TO_MERGE/ace/sys_cargo/slingload/data/metal8.paa create mode 100644 TO_MERGE/ace/sys_cargo/slingload/data/soga.paa create mode 100644 TO_MERGE/ace/sys_cargo/slingload/fnc_addAction.sqf create mode 100644 TO_MERGE/ace/sys_cargo/slingload/fnc_attachSlingRopeToCargo.sqf create mode 100644 TO_MERGE/ace/sys_cargo/slingload/fnc_attachSlingRopeToHelicopter.sqf create mode 100644 TO_MERGE/ace/sys_cargo/slingload/fnc_detachSlingRopeFromCargo.sqf create mode 100644 TO_MERGE/ace/sys_cargo/slingload/fnc_hasropemag.sqf create mode 100644 TO_MERGE/ace/sys_cargo/slingload/fnc_menuDef.sqf create mode 100644 TO_MERGE/ace/sys_cargo/slingload/license.txt create mode 100644 TO_MERGE/ace/sys_cargo/slingload/m_ace_rope.p3d create mode 100644 TO_MERGE/ace/sys_cargo/slingload/process.sqf create mode 100644 TO_MERGE/ace/sys_cargo/slingload/script_component.hpp create mode 100644 TO_MERGE/ace/sys_cargo/slingload/ua_release_cargo.sqf create mode 100644 TO_MERGE/ace/sys_cargo/ua_carry2.sqf diff --git a/TO_MERGE/ace/sys_cargo/$PBOPREFIX$ b/TO_MERGE/ace/sys_cargo/$PBOPREFIX$ new file mode 100644 index 0000000000..b279a734a5 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\sys_cargo \ No newline at end of file diff --git a/TO_MERGE/ace/sys_cargo/ACE_readme.txt b/TO_MERGE/ace/sys_cargo/ACE_readme.txt new file mode 100644 index 0000000000..2308056ca7 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/ACE_readme.txt @@ -0,0 +1,44 @@ +///////////////////////////////////////////////////////////////////////////////// +# # +# ADVANCED COMBAT ENVIRONMENT FILE # +# # +///////////////////////////////////////////////////////////////////////////////// + + +#===========# +| Component | +#===========# + +ace_sys_crewserved + +#================# +| Main author(s) | +#================# + +rocko - Maintenance, Configs, Dialogs + +#=================# +| Contact details | +#=================# + +Mail: rocko@dev-heaven.net +Page: http://dev-heaven.net/projects/show/ace-mod2 + + + +///////////////////////////////////////////////////////////////////////////////// +# # +# ADVANCED COMBAT ENVIRONMENT FILE # +# # +///////////////////////////////////////////////////////////////////////////////// +// // +# Copyright 2009 A.C.E MOD, ALL RIGHTS RESERVED # +// // +// This product is licensed for personal use only. Commercial distribution // +// prohibited. Military use prohibited. Use prohibited if any component // +// of this distribution removed or modified without express written consent // +// of the developer. For further licensing details please refer to the // +// End User License Agreement provided within this PBO file. // +// Any questions or comments, please contact contact@acemod.net // +// // +///////////////////////////////////////////////////////////////////////////////// diff --git a/TO_MERGE/ace/sys_cargo/CfgEventHandlers.hpp b/TO_MERGE/ace/sys_cargo/CfgEventHandlers.hpp new file mode 100644 index 0000000000..fe968e32f4 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/CfgEventHandlers.hpp @@ -0,0 +1,27 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; +class Extended_PostInit_EventHandlers { + class ADDON { + clientInit = QUOTE(call COMPILE_FILE(XEH_postInit)); + }; +}; +class Extended_Killed_EventHandlers { + class AllVehicles { + class ADDON { + killed = QUOTE(_this call FUNC(clearCargo)); + exclude[] = {"Man"}; //Exclude Animals and Humans + }; + }; +}; + +class Extended_InitPost_EventHandlers { + class AllVehicles { + class ADDON { + Init = QUOTE(if (alive (_this select 0)) then {_this call FUNC(init)}); + exclude[] = {"Man"}; //Exclude Animals and Humans + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_cargo/CfgFunctions.hpp b/TO_MERGE/ace/sys_cargo/CfgFunctions.hpp new file mode 100644 index 0000000000..44de214529 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/CfgFunctions.hpp @@ -0,0 +1,31 @@ +// ----------------------------------------------------------------------------- +// Automatically generated by 'functions_config.rb' +// DO NOT MANUALLY EDIT THIS FILE! +// ----------------------------------------------------------------------------- + +class CfgFunctions { + class ACE { + class Cargo { + // ACE_fnc_canLoadCargo + class canLoadCargo { + description = "Checks if vehicle is able to load cargo"; + file = "\z\ace\Addons\sys_cargo\fnc_canLoadCargo.sqf"; + }; + // ACE_fnc_listCargo + class listCargo { + description = "Lists cargo of a vehicle."; + file = "\z\ace\Addons\sys_cargo\fnc_listCargo.sqf"; + }; + // ACE_fnc_loadCargo + class loadCargo { + description = "Load cargo into vehicles."; + file = "\z\ace\Addons\sys_cargo\fnc_loadCargo.sqf"; + }; + // ACE_fnc_unloadCargo + class unloadCargo { + description = "Unloads cargo from a vehicle."; + file = "\z\ace\Addons\sys_cargo\fnc_unloadCargo.sqf"; + }; + }; + }; +}; diff --git a/TO_MERGE/ace/sys_cargo/CfgVehicles.hpp b/TO_MERGE/ace/sys_cargo/CfgVehicles.hpp new file mode 100644 index 0000000000..df5c64a0de --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/CfgVehicles.hpp @@ -0,0 +1,89 @@ +class CfgVehicles { + // TODO: add more cases ? + class All; + class Land; + class Man: Land { ACE_NOCARGOLOAD; }; + class LandVehicle: Land { ACE_LOAD_ONLY; }; + class Tank: LandVehicle { ACE_GEAR_ONLY; }; // Tank must be also ACE_LOAD_ONLY, because some obvious APCs like Bradley are inherited from class Tank instead of Tracked_APC + // TODO: Add exceptions for real class Tank !! + //class T72_Base: Tank + //class ZSU_Base: Tank + //class M1A1: Tank + //class T34: Tank + //class MLRS: Tank + //class 2S6M_Tunguska: Tank + //class M113_Base: Tank { ACE_LOAD_ONLY; }; + //class M2A2_Base: Tank { ACE_LOAD_ONLY; }; + //class T55_Base: Tank + //class BAF_FV510_D: Tank { ACE_LOAD_ONLY; }; + + class Tracked_APC: Tank { ACE_LOAD_ONLY; }; + class Car: LandVehicle { ACE_LOAD_ONLY; }; + //class BIS_alice_emptydoor: Car { ACE_NOCARGOLOAD; }; // FU DOOR + class PaperCar: Car { ACE_NOCARGOLOAD; }; + class Wheeled_APC: Car { ACE_LOAD_ONLY; }; + class Motorcycle: Landvehicle { ACE_CARGO_ONLY; }; + class StaticWeapon: LandVehicle { ACE_CARGO_ONLY; }; + //class StaticCanon: StaticWeapon { ACE_NOCARGOLOAD; }; + class Air; + class Helicopter: Air { ACE_LOAD_ONLY; }; + class ParachuteBase: Helicopter { ACE_NOCARGOLOAD; }; + class Plane: Air { ACE_LOAD_ONLY; }; + class Ship; + class SmallShip: Ship { ACE_LOAD_ONLY; }; + class BigShip: Ship { ACE_LOAD_ONLY; }; + class Ship_F; + class Boat_F: Ship_F { ACE_LOAD_ONLY; }; + + class Rubber_duck_base_F: Boat_F { + ACE_CARGO_ONLY; + ACE_Weight = 260; + }; + class Boat_Armed_01_base_F: Boat_F { ACE_LOAD_ONLY; }; + class Static: All { ACE_NOCARGOLOAD; }; + class Strategic; + class ReammoBox: Strategic { ACE_CARGO_ONLY; }; + class Library_WeaponHolder: Strategic { ACE_NOCARGOLOAD; }; + class WeaponHolder: ReammoBox { ACE_NOCARGOLOAD; }; + class Thing: All { ACE_NOCARGOLOAD; }; + class Wreck: Thing { ACE_NOCARGOLOAD; }; + class ACE_Object: Thing { ACE_NOCARGOLOAD; }; + + // TODO: Move to another hpp file + class thingX: Thing { ACE_NOCARGOLOAD; }; + class RoadCone_F: thingX { ACE_CARGO_ONLY; ACE_Weight = 1; }; + class FloatingStructure_F; + class RoadCone_L_F: FloatingStructure_F { ACE_CARGO_ONLY; ACE_Weight = 1; }; + + + + class ReammoBox_F: thingX { ACE_CARGO_ONLY; }; + /*class FoldChair: Thing { + ACE_CARGO_ONLY; + ACE_Weight = 1; + class Useractions { + class Sit { + displayname = "Sit"; + radius = 2; + position = "Component1"; + onlyforPlayer = 1; + condition = "alive this"; + statement= "player setPosASL getPosASL this; player setDir ((getDir this)+90); player switchMove 'ACE_CoolSit'; player call ace_sys_cargo_fnc_standup"; + }; + }; + };*/ + + // TODO: Add more stuff, like RoadCones, BarbedWire, Other small items to be carried + // Stuff that is to be CARRIED: + /* + - Arty Shells - done + - Fuel Can - done + - RoadCone -done + - Signs (TODO: Need to specify which ones) + - Barbed wire (TODO: Need rolled model to be unrolles for sys_razorwire or so) + - Sparewheel for small cars + - Suitcase + - + - Anything that comes to mind then + */ +}; diff --git a/TO_MERGE/ace/sys_cargo/Defines.hpp b/TO_MERGE/ace/sys_cargo/Defines.hpp new file mode 100644 index 0000000000..dd7d2d1b98 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/Defines.hpp @@ -0,0 +1,318 @@ +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_SLIDER 3 +#define CT_COMBO 4 +#define CT_LISTBOX 5 +#define CT_TOOLBOX 6 +#define CT_CHECKBOXES 7 +#define CT_PROGRESS 8 +#define CT_HTML 9 +#define CT_STATIC_SKEW 10 +#define CT_ACTIVETEXT 11 +#define CT_TREE 12 +#define CT_STRUCTURED_TEXT 13 +#define CT_CONTEXT_MENU 14 +#define CT_CONTROLS_GROUP 15 +#define CT_XKEYDESC 40 +#define CT_XBUTTON 41 +#define CT_XLISTBOX 42 +#define CT_XSLIDER 43 +#define CT_XCOMBO 44 +#define CT_ANIMATED_TEXTURE 45 +#define CT_OBJECT 80 +#define CT_OBJECT_ZOOM 81 +#define CT_OBJECT_CONTAINER 82 +#define CT_OBJECT_CONT_ANIM 83 +#define CT_LINEBREAK 98 +#define CT_USER 99 +#define CT_MAP 100 +#define CT_MAP_MAIN 101 +#define ST_POS 0x0F +#define ST_HPOS 0x03 +#define ST_VPOS 0x0C +#define ST_LEFT 0x00 +#define ST_RIGHT 0x01 +#define ST_CENTER 0x02 +#define ST_DOWN 0x04 +#define ST_UP 0x08 +#define ST_VCENTER 0x0c +#define ST_TYPE 0xF0 +#define ST_SINGLE 0 +#define ST_MULTI 16 +#define ST_TITLE_BAR 32 +#define ST_PICTURE 48 +#define ST_FRAME 64 +#define ST_BACKGROUND 80 +#define ST_GROUP_BOX 96 +#define ST_GROUP_BOX2 112 +#define ST_HUD_BACKGROUND 128 +#define ST_TILE_PICTURE 144 +#define ST_WITH_RECT 160 +#define ST_LINE 176 +#define ST_SHADOW 0x100 +#define ST_NO_RECT 0x200 +#define ST_KEEP_ASPECT_RATIO 0x800 +#define ST_TITLE ST_TITLE_BAR + ST_CENTER +#define SL_DIR 0x400 +#define SL_VERT 0 +#define SL_HORZ 0x400 +#define SL_TEXTURES 0x10 +#define LB_TEXTURES 0x10 +#define LB_MULTI 0x20 +#define FontM "PuristaMedium" +#define FontHTML "PuristaMedium" + + +class ACE_CARGO_RscBgFrame { + type=CT_STATIC; + idc=-1; + style=ST_FRAME; + colorBackground[]={0.4, 0.4, 0.4, 0.75}; + colorText[]={0, 0, 0, 1}; + font=FontM; + SizeEX=0.025; + text=""; +}; +class ACE_CARGO_RscBackground { + colorBackground[]={0.4, 0.4, 0.4, 0.75}; + text=""; + type=CT_STATIC; + idc=-1; + style=ST_LEFT; + colorText[]={1, 1, 1, 1}; + font=FontM; + sizeEx=0.04; +}; +class ACE_CARGO_RscPicture { + type=CT_STATIC; + idc=-1; + style=ST_PICTURE; + colorBackground[]={0, 0, 0, 0}; + colorText[]={1, 1, 1, 1}; + font=FontM; + sizeEx=0.02; + text=""; +}; +class ACE_CARGO_RscButton { + type=CT_BUTTON; + idc=-1; + style=ST_CENTER; + colorText[]={0, 0, 0, 1}; + font=FontHTML; + sizeEx=0.025; + soundPush[]={"", 0.2, 1}; + soundClick[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundClick",0.09,1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",0.09,1}; + default=false; + text=""; + action=""; + colorActive[]={0, 0, 0, 0}; + colorDisabled[]={0, 0, 0, 0.1}; + colorBackground[]={0,0,0,0.3}; + colorBackgroundActive[]={0,0,0,0.4}; + colorBackgroundDisabled[]={0,0,0,0.3}; + colorFocused[]={0.84,1,0.55,1}; + colorShadow[]={1, 1, 1, 0.1}; + colorBorder[]={0, 0, 0, 0.1}; + offsetX=0; + offsetY=0; + offsetPressedX=0; + offsetPressedY=0; + borderSize=0; + soundEnter[]={"", 0.15, 1}; +}; +class ACE_CARGO_RscButton2:ACE_CARGO_RscButton { + x=-1.0; + y=-1.0; + idc=-1; + w=0.01; + h=0.01; + default=true; +}; +class ACE_CARGO_RscShortcutButton { + type = 16; + idc = -1; + style = 0; + default = 0; + w = 0.183825; + h = 0.104575; + color[] = {0.543,0.5742,0.4102,1}; + color2[] = {0.95,0.95,0.95,1}; + colorBackground[] = {1,1,1,1}; + colorbackground2[] = {1,1,1,0.4}; + colorDisabled[] = {1,1,1,0.25}; + periodFocus = 1.2; + periodOver = 0.8; + class HitZone { + left = 0.004; + top = 0.029; + right = 0.004; + bottom = 0.029; + }; + class ShortcutPos { + left = 0.0145; + top = 0.026; + w = 0.0392157; + h = 0.0522876; + }; + class TextPos { + left = 0.05; + top = 0.034; + right = 0.005; + bottom = 0.005; + }; + animTextureNormal = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\normal_ca.paa"; + animTextureDisabled = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\disabled_ca.paa"; + animTextureOver = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\over_ca.paa"; + animTextureFocused = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\focus_ca.paa"; + animTexturePressed = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\down_ca.paa"; + animTextureDefault = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\normal_ca.paa"; + period = 0.4; + font = "PuristaMedium"; + size = 0.03921; + sizeEx = 0.03921; + text = ""; + soundEnter[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundPush",0.09,1}; + soundClick[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundClick",0.09,1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",0.09,1}; + action = ""; + class Attributes { + font = "PuristaMedium"; + color = "#E5E5E5"; + align = "left"; + shadow = "true"; + }; + class AttributesImage { + font = "PuristaMedium"; + color = "#E5E5E5"; + align = "left"; + }; + textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; +}; +class ACE_CARGO_RscShortcutButtonMain: ACE_CARGO_RscShortcutButton { + type = 16; + idc = -1; + style = 0; + default = 0; + w = 0.313726; + h = 0.104575; + color[] = {0.543,0.5742,0.4102,1}; + colorDisabled[] = {1,1,1,0.25}; + colorFocused[] = {1, 1, 1, 0};//Check + colorBackgroundFocused[] = {1, 1, 1, 0};//Check + class HitZone { + left = 0; + top = 0; + right = 0; + bottom = 0; + }; + class ShortcutPos { + left = 0.0204; + top = 0.026; + w = 0.0392157; + h = 0.0522876; + }; + class TextPos { + left = 0.08; + top = 0.034; + right = 0.005; + bottom = 0.005; + }; + animTextureNormal = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\normal_ca.paa"; + animTextureDisabled = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\disabled_ca.paa"; + animTextureOver = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\over_ca.paa"; + animTextureFocused = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\focus_ca.paa"; + animTexturePressed = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\down_ca.paa"; + animTextureDefault = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\normal_ca.paa"; + period = 0.5; + font = "PuristaMedium"; + size = 0.03921; + sizeEx = 0.03921; + text = ""; + soundEnter[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundPush",0.09,1}; + soundClick[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundClick",0.09,1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",0.09,1}; + action = ""; + class Attributes { + font = "PuristaMedium"; + color = "#E5E5E5"; + align = "left"; + shadow = "false"; + }; + class AttributesImage { + font = "PuristaMedium"; + color = "#E5E5E5"; + align = "false"; + }; +}; +class ACE_CARGO_RscEdit { + type=CT_EDIT; + idc=-1; + style=ST_LEFT; + font=FontHTML; + sizeEx=0.02; + colorText[]={0, 0, 0, 1}; + colorSelection[]={0.5, 0.5, 0.5, 1}; + autocomplete=false; + text=""; +}; +class ACE_CARGO_RscLB_C { + style=ST_LEFT; + idc=-1; + colorSelect[]={0.4, 0.4, 0.4, 1}; + colorSelectBackground[]={0.2, 0.2, 0.2, 1}; + colorText[]={0.2, 0.2, 0.2, 1}; + colorBackground[]={0.4, 0.4, 0.4, 1}; + font=FontHTML; + sizeEx=0.025; + rowHeight=0.04; +}; +class ACE_CARGO_RscListBox:ACE_CARGO_RscLB_C { + soundSelect[]={"", 0.1, 1}; + type=CT_LISTBOX; +}; +class ACE_CARGO_RscCombo: ACE_CARGO_RscLB_C { + sizeEx=0.02; + type=CT_COMBO; + wholeHeight=0.3; + soundSelect[]={"", 0.15, 1}; + soundExpand[]={"", 0.15, 1}; + soundCollapse[]={"", 0.15, 1}; + maxHistoryDelay = 1; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + class ScrollBar { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + color[] ={0,0,0,0.6}; + colorActive[] ={0,0,0,1}; + colorDisabled[] ={0,0,0,0.3}; + colorSelectBackground[] ={0.543,0.5742,0.4102,1}; +}; +class ACE_CARGO_RscSliderH { + access=0; + type=CT_SLIDER; + idc=-1; + sizeEx=0.025; + style=1024; + color[]={0.2, 0.2, 0.2, 1}; + colorActive[]={1, 1, 1, 1}; +}; +class ACE_CARGO_RscSliderV { + access=0; + type=CT_SLIDER; + idc=-1; + sizeEx=0.025; + style=0; + color[]={0.2, 0.2, 0.2, 1}; + colorActive[]={1, 1, 1, 1}; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_cargo/Dialog.hpp b/TO_MERGE/ace/sys_cargo/Dialog.hpp new file mode 100644 index 0000000000..4cb6e7b39f --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/Dialog.hpp @@ -0,0 +1,178 @@ +/* ace_sys_cargo | (c) 2013 by rocko */ + +#include "Defines.hpp" + +#define __X SafeZoneX +#define __Y SafeZoneY +#define __W SafeZoneW +#define __H SafeZoneH + +#define UICOMBO 5 // LISTBOX + +class ACE_CARGOUIList { + w = 0.275; + h = 0.04; + colorSelect[] = {0.023529,0,0.0313725,1}; + colorText[] = {0.023529,0,0.0313725,1}; + colorBackground[] = {0.95,0.95,0.95,1}; + colorSelectBackground[] = {0.543,0.5742,0.4102,1}; + colorScrollbar[] = {0.023529,0,0.0313725,1}; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + wholeHeight = 0.45; + color[] = {0,0,0,0.6}; + colorActive[] = {0,0,0,1}; + colorDisabled[] = {0,0,0,0.3}; + font = "PuristaMedium"; + sizeEx = 0.029; + soundSelect[] = {"",0.1,1}; + soundExpand[] = {"",0.1,1}; + soundCollapse[] = {"",0.1,1}; + maxHistoryDelay = 1; + class listScrollBar { + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; +}; + +class ACE_CARGOUIComboBox: ACE_CARGOUIList { + type = UICOMBO; + style = 0; + idc = -1; + sizeEx = 0.025; + wholeHeight = 0.3; +}; + +class ACE_CARGO_RscText { + type = CT_STATIC; + idc = -1; + style = ST_LEFT; + x = 0.0; + y = 0.0; + w = 0.3; + h = 0.03; + sizeEx = 0.023; + colorBackground[] = {0.5, 0.5, 0.5, 0.75}; + colorText[] = { 0, 0, 0, 1 }; + font = "PuristaMedium"; + text = ""; +}; + +class ACE_Cargo_List { + name="ACE_Cargo_List"; + idd=-1; + movingEnable=0; + objects[]={}; + onLoad = "uiNamespace setVariable ['ACE_Cargo_List', _this select 0];['back'] call ace_sys_cargo_fnc_onload"; + onUnload = "[ace_sys_cargo_vehicle,objnull,0,0] call ace_sys_cargo_fnc_cbusy;"; + class controlsBackground { + class BG: ACE_CARGO_RscText { + idc = -1; + type = 0; + style = 48; + x = 0.270792 * safezoneW + safezoneX; + y = 0.224911 * safezoneH + safezoneY; + w = 0.455752 * safezoneW; + h = 0.547272 * safezoneH; + colorText[] = {1, 1, 1, 1}; + colorBackground[] = {0,0,0,0}; + text = "z\ace\addons\sys_cargo\data\rsc\ace_ui_background_ca.paa"; + font = "PuristaMedium"; + sizeEx = 0.032; + }; + }; + class controls { + class Title: ACE_CARGO_RscText { + idc = 30; + x = 0.289755 * safezoneW + safezoneX; + y = 0.231139 * safezoneH + safezoneY; + w = 0.0458417 * safezoneW; + h = 0.0550178 * safezoneH; + sizeEx = 0.05; + colorBackground[] = {1, 1, 1, 0.0}; + colorText[] = {0.643, 0.5742, 0.4102, 1.0}; + text = ""; + }; + class Content: ACE_CARGOUIComboBox { + idc = 99; + text = ""; + x = 0.277061 * safezoneW + safezoneX; + y = 0.283526 * safezoneH + safezoneY; + w = 0.416083 * safezoneW; + h = 0.322891 * safezoneH; + colorSelect[] = {1, 1, 1, 1}; + colorText[] = {1, 1, 1, 1}; + colorBackground[] = {0.8,0.8,0.8,1}; + colorSelectBackground[] = {0, 0, 0, 1}; + colorScrollbar[] = {0.2, 0.2, 0.2, 1}; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + wholeHeight = 0.45; + rowHeight = 0.06; + color[] = {0.8, 0.8, 0.8, 1}; + colorActive[] = {0,0,0,1}; + colorDisabled[] = {0,0,0,0.3}; + font = "PuristaMedium"; + sizeEx = 0.035; + soundSelect[] = {"",0.1,1}; + soundExpand[] = {"",0.1,1}; + soundCollapse[] = {"",0.1,1}; + maxHistoryDelay = 1; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + + class listScrollBar { + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + //onLBSelChanged = QUOTE([_this,'back'] call FUNC(lbselchanged)); + onLBSelChanged = "[_this,'back'] call ace_sys_cargo_fnc_lbselchanged"; + }; + + class Apply_B: ACE_CARGO_RscShortcutButtonMain { + idc=10; + x = 0.451603 * safezoneW + safezoneX; + y = 0.618615 * safezoneH + safezoneY; + w = 0.103494 * safezoneW; + h = 0.0451332 * safezoneH; + size = 0.02; + sizeEx = 0.02; + text = $STR_DIAG_ACE_CARGO_UNLOAD; + //action = QUOTE([GVAR(vehicle),'back'] call FUNC(unload)); + action = "[ace_sys_cargo_vehicle,'back'] call ace_sys_cargo_fnc_unload"; + }; + + class Quit_B: Apply_B { + idc = 20; + x = 0.566379 * safezoneW + safezoneX; + text = $STR_DIAG_ACE_CARGO_CANCEL; + action = "closeDialog 0;"; + }; + }; +}; + +class ACE_CargoFront_List: ACE_Cargo_List { + name="ACE_CargoFront_List"; + onLoad = "uiNamespace setVariable ['ACE_CargoFront_List', _this select 0];['front'] call ace_sys_cargo_fnc_onload"; + class controls: controls { + class Title: Title {}; + class Content: Content { + onLBSelChanged = "[_this,'front'] call ace_sys_cargo_fnc_lbselchanged"; + }; + class Apply_B: Apply_B { + action = "[ace_sys_cargo_vehicle,'front'] call ace_sys_cargo_fnc_unload"; + }; + class Quit_B: Quit_B {}; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_cargo/XEH_postInit.sqf b/TO_MERGE/ace/sys_cargo/XEH_postInit.sqf new file mode 100644 index 0000000000..ae0cc4c176 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/XEH_postInit.sqf @@ -0,0 +1,9 @@ +/* ace_sys_cargo | (c) 2010,2011 by rocko */ + +#include "script_component.hpp" + +ADDON = false; + +//["All", [ace_sys_interaction_key], 2, [QPATHTO_F(fnc_menuDef), "main"]] call CBA_ui_fnc_add; + +ADDON = true; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_cargo/XEH_preInit.sqf b/TO_MERGE/ace/sys_cargo/XEH_preInit.sqf new file mode 100644 index 0000000000..6b5bef730b --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/XEH_preInit.sqf @@ -0,0 +1,295 @@ +/* ace_sys_cargo | (c) 2010,2011 by rocko */ + +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +#include "\a3\editor_f\Data\Scripts\dikCodes.h" + +#define __CONF_MAGAZINES configFile >> "CfgMagazines" +#define __CONF_WEAPONS configFile >> "CfgWeapons" + +ADDON = false; + +if (!isDedicated) then { + ["All", [ace_sys_interaction_key], 2, [QPATHTO_F(fnc_menuDef), "main"]] call CBA_ui_fnc_add; +}; + +PREP(carry); +PREP(carry2); +PREP(drag); +PREP(push); +PREP(load); +PREP(loadCargo); // Workaround +PREP(unloadCargo); // Workaround +PREP(listCargo); // Workaround +PREP(unload); +PREP(onload); +PREP(view); + +PREP(init); + +[QGVAR(setvel), {(_this select 0) setVelocity (_this select 1)}] call ACE_fnc_addReceiverOnlyEventhandler; + +// TODO: Complete rewrite needed: +/* +Function should determine wether an object can be dragged or carried or carried in pairs +Push option ONLY for boat type vehicles (to drop them back into water) + +Carrying objects should be 0 - 30 kg (Carring above 20 kilo slows you down) +Dragging should be 30 - 80 kg +Carrying in pairs should be 80 - 180 kg + +An object that can be dragged should also be able to be carried in pairs + +Everything > 180 kg, needs to be loaded and transported by another vehicle or lifted by air + +*/ + +FUNC(determineCargo) = { +// TODO: Make easier.... +// Immobile: 0 +// Carry: 1 Light objects weight exceeds no more than 20 kg!!! +// Drag: 2 Heavy objects that could not be CARRIED, weight > 15 kg < 100kg +// Push: 3 Heavy objects that could not be CARRIED or DRAGGED, weight > 100 kg! +// Carry with 2 people: 4 Heavy objects (if _type is ((2 && > 80) || (3 && < 200) && _helper) but a second player (_helper) is close ~5 meters) + +// Rev. 2: +// Carry: 1 (0-30 kg) +// Drag: 2 (30-80kg) +// Carry 2 4 (80-145kg) +// Drag OR Carry 2 5 (30-145kg and because its cool) // One override comes from CSW direct, other entities should get a special config entry (e.g ammoboxes etc) + + private ["_weight","_volume","_canDrag","_canCarry","_canPush","_type"]; + + // Calculate volume of cargo to determine weight. + PARAMS_2(_target,_method); + _volume = 0; + _weight = 0; + _canDrag = false; + _canPush = false; + _canCarry = false; + if (getNumber (configFile >> "CfgVehicles" >> typeOf _target >> "ACE_canBeCargo") == 1) then { + _weight = [_target] call FUNC(weight); + + _canCarry = (_weight < __MAXCARRYWEIGHT); + _canDrag = (!_canCarry && {(_weight + __MAXCARRYWEIGHT) <= __MAXDRAGWEIGHT}); + + TRACE_2("DC",_volume,_weight); + switch (true) do { + // PUSH for Boats + case (_target isKindOf "Zodiac" || {_target isKindOf "PBX"}): { _canDrag = false; _canPush = true; _canCarry = false; }; + case (_target isKindOf "ACE_Stretcher"): { _canDrag = false; _canPush = false; _canCarry = false; }; + }; + // Check sys_crewserved override + if (getNumber(configFile >> "CfgVehicles" >> typeOf _target >> "ACE" >>"ACE_CREWSERVED" >> "canDrag") == 1) then { + _canDrag = true; _canPush = false; _canCarry = false; + }; + if (getNumber(configFile >> "CfgVehicles" >> typeOf _target >> "ACE" >>"ACE_CREWSERVED" >> "canCarry") == 1) then { + _canDrag = true; _canPush = false; _canCarry = true; + }; + // Check if a shot mortar + if (_target getVariable ["ace_sys_arty_shoton",false]) then { + _canDrag = false; _canCarry = false; + }; + }; + + if (_canCarry && {!_canDrag} && {!_canPush}) then { _type = 1; }; + if (!_canCarry && {_canDrag} && {!_canPush}) then { _type = 2; }; + if (_canPush && {!_canDrag} && {!_canCarry}) then { _type = 3; }; + if (!_canPush && {!_canDrag} && {!_canCarry}) then { _type = 0; }; + if (!_canCarry && {!_canDrag} && {!_canPush} && {_weight <= __MAXCARRYWEIGHTBY2}) then { _type = 4; }; + if (_canCarry && {_canDrag} && {!_canPush} && {_weight <= __MAXCARRYWEIGHTBY2}) then { _type = 5; }; + + + if (_method == "set") then { + _target setVariable [QGVAR(type),_type,true]; + }; + TRACE_1("DC Carrying method",_type); + _type +}; + +FUNC(clearCargo) = { + private ["_cargolist","_cargofrontlist"]; + PARAMS_1(_vehicle); + _cargolist = [_vehicle] call ACE_fnc_listCargo; + _cargofrontlist = _vehicle getVariable [QGVAR(content_front),[]]; + if (count _cargolist < 1 && {count _cargofrontlist < 1}) exitWith {}; + { + deleteVehicle _x; + } foreach _cargolist + _cargofrontlist; + // TODO: Determine explosives loaded? Create Secondaries for loaded shells, ammoboxes, ammocans etc + // Perhaps should be called from external with explosions, sys_destruction ... + _vehicle setVariable [QGVAR(content),[],true]; + _vehicle setVariable [QGVAR(content_front),[],true]; +}; + +FUNC(determineFrontCargo) = { + PARAMS_1(_vehicle); + private ["_frontLoadingCapability","_l1","_l2","_pl1","_pl2","_pos","_chksum","_max","_cur","_capacity_full"]; + _frontLoadingCapability = true; + if !((typeOf _vehicle) isKindOf "Car") exitWith { // Only on class Car for now... + [false,true,[0,0,0]] + }; + // TODO: Get class ACE value + // Find position between frontlights + _l1 = getText(configFile >> "CfgVehicles" >> typeOf _vehicle >> "Reflectors" >> "Left" >> "selection"); + _l2 = getText(configFile >> "CfgVehicles" >> typeOf _vehicle >> "Reflectors" >> "Right" >> "selection"); + _pl1 = _vehicle selectionPosition _l1; + _pl2 = _vehicle selectionPosition _l2; + _pos = [0,(_pl1 select 1)+0.1,(_pl2 select 2)-0.4]; + _chksum = (_pos select 0)+(_pos select 1)+(_pos select 2); + // TODO: Error if model not conform or has no lights + + // Return position to attach and bool value for 2 in 1 function + if (_chksum == 0.1) then { + _frontLoadingCapability = false; + }; + //_max = getNumber(configFile >> "CfgVehicles" >> typeOf _vehicle >> "ACE" >> "ACE_CARGO" >> "FrontLoadingCapacity"); + _max = 1; + _cur = _vehicle getVariable [QGVAR(content_front),[]]; + _cur = count _cur; + _capacity_free = if (_max - _cur == 0) then {false} else {true}; + [_frontLoadingCapability,_capacity_free,_pos] +}; + +FUNC(attachToFront) = { + PARAMS_2(_cargo,_vehicle); + private ["_currentFrontCargo","_pos"]; + _pos = (_vehicle call FUNC(determineFrontCargo)) select 2; + [_cargo,"set"] call FUNC(determineCargo); + ["","","",["stop",player getVariable QGVAR(carried_object)]] call FUNC(carry); + _cargo attachTo [_vehicle,_pos,""]; + _cargo setVariable [QGVAR(attached_front),true,true]; + _currentFrontCargo = _vehicle getVariable [QGVAR(content_front),[]]; + _currentFrontCargo set [count _currentFrontCargo,_cargo]; + _vehicle setVariable [QGVAR(content_front),_currentFrontCargo]; +}; + +FUNC(detachFront) = { + PARAMS_1(_cargo); + //private "_currentFrontCargo"; + detach _cargo; + _cargo setVariable [QGVAR(attached_front),false,true]; + //_currentFrontCargo = _vehicle getVariable [QGVAR(content_front),[]]; + //if (count _currentFrontCargo < 1) exitWith {}; + //_currentFrontCargo - [_cargo]; + //_vehicle setVariable [QGVAR(content_front),_currentFrontCargo]; +}; + +// TODO: Outsource funcs to external + +// Busy func +FUNC(busy) = { + PARAMS_2(_v,_s); + if (_s == 1) then { + _v setVariable [QGVAR(busy), true, true]; + } else { + _v setVariable [QGVAR(busy), false, true]; + }; +}; + +// Easy set/reset busy states +FUNC(cbusy) = { + PARAMS_4(_v,_c,_sv,_sc); + if (_sv == 1) then { [_v,1] call FUNC(busy); } else { [_v,0] call FUNC(busy); }; + if (_sc == 1) then { [_c,1] call FUNC(busy); } else { [_c,0] call FUNC(busy); }; +}; + +// Volume stuff +FUNC(volume) = { + PARAMS_1(_target); + _bbox = boundingBox _target; + _bc = abs((_bbox select 0) select 0) + abs((_bbox select 1) select 0); + _lc = abs((_bbox select 0) select 1) + abs((_bbox select 1) select 1); + _hc = abs((_bbox select 0) select 2) + abs((_bbox select 1) select 2); + _volume = (_lc * _bc * _hc); + TRACE_1("V Volume",_volume); + _volume; +}; + +// Weight stuff +FUNC(weight) = { + PARAMS_1(_cargo); + private ["_content_weight","_w1","_w2","_volume","_baseweight","_weight"]; + _content_weight = { + PARAMS_2(_items,_type); + private ["_cargo_weight","_item"]; + _cargo_weight = 0; + _item = _items select 0; + if (count _item > 0) then { + _count = _items select 1; + for "_i" from 0 to (count _item - 1) do { + _item_x = _item select _i; + _count_x = _count select _i; + _ItemWeight = switch _type do { + case "m": { 0.075 * getNumber(__CONF_MAGAZINES >> _item_x >> "mass") }; + default { 0.075* getNumber(__CONF_WEAPONS >> _item_x >> "mass") }; + }; + _ItemWeight = _ItemWeight * _count_x; + _cargo_weight = _cargo_weight + _ItemWeight; + }; + //_cargo_weight = _cargo_weight + _cargo_weight; + }; + _cargo_weight; + }; + _w1 = [getMagazineCargo _cargo, "m"] call _content_weight; + _w2 = [getWeaponCargo _cargo, "w"] call _content_weight; + #ifdef DEBUG_MODE_FULL + diag_log format["Weight of all weapons in box: %1",_w2]; + diag_log format["Weight of all magazines in box: %1",_w1]; + #endif + _volume = _cargo call FUNC(volume); + // Check if a weight value was defined and use this prior to calculated weight + _baseweight = if (isNumber(configFile >> "CfgVehicles" >> typeOf _cargo >> "mass")) then { + 0.075 * getNumber(configFile >> "CfgVehicles" >> typeOf _cargo >> "mass"); + } else { + (_volume * 0.5); + }; + TRACE_1("W Weight",_baseweight); + _weight = _baseweight + _w1 + _w2; + _weight; +}; + +GVAR(busy) = { + _this getVariable [QGVAR(busy), false] +}; +GVAR(BOXBusy) = { + PARAMS_2(_box,_busy); + _box setVariable [QGVAR(BOXBusy), _busy == 1, true]; +}; + +FUNC(dragkeydown) = { + // Eventhandler to stop "C" key press while dragging + PARAMS_5(_control,_dikCode,_shift,_ctrl,_alt); + _dikCode_check = actionKeys "TactToggle" + actionKeys "stand" + actionKeys "prone" + actionkeys "crouch" + actionkeys "moveup" + actionkeys "movedown"; //stop standing up while dragging + (_dikCode in _dikCode_check) +}; + +FUNC(lbselchanged) = { + private ["_disp", "_ctrl","_ui"]; + PARAMS_2(_data,_location); + _ui = if (_location == "back") then { "ACE_Cargo_List" } else { "ACE_CargoFront_List" }; + _disp = uiNamespace getVariable _ui; + _ctrl = _disp displayCtrl 10; + if ((_data select 1) != -1) then { + if (!(ctrlEnabled _ctrl) && !(player in crew GVAR(vehicle) || player getVariable [QGVAR(carrying),false])) then { + _ctrl ctrlEnable true; + _ctrl ctrlCommit 0; + }; + } else { + if (ctrlEnabled _ctrl) then { + _ctrl ctrlEnable false; + _ctrl ctrlCommit 0; + }; + }; +}; + +//FUNC(respawn) = { +// (findDisplay 46) displayRemoveEventHandler ["KeyDown", GVAR(drag_keyDownEHId)]; +//}; + +//FUNC(standup) = { +// PARAMS_1(_unit); +// _unit addAction ["Stand up", QPATHTO_F(fnc_exec), _unit, 0, false, true, "", "local _target"]; +//}; + +ADDON = true; diff --git a/TO_MERGE/ace/sys_cargo/box/$PBOPREFIX$ b/TO_MERGE/ace/sys_cargo/box/$PBOPREFIX$ new file mode 100644 index 0000000000..4f2ee63135 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/box/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\sys_cargo\box \ No newline at end of file diff --git a/TO_MERGE/ace/sys_cargo/box/config.cpp b/TO_MERGE/ace/sys_cargo/box/config.cpp new file mode 100644 index 0000000000..766b9ba034 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/box/config.cpp @@ -0,0 +1,12 @@ +#include "script_component.hpp" +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {QUOTE(MAIN_ADDON)}; + version = VERSION; + }; +}; + + diff --git a/TO_MERGE/ace/sys_cargo/box/license.txt b/TO_MERGE/ace/sys_cargo/box/license.txt new file mode 100644 index 0000000000..7113bf4340 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/box/license.txt @@ -0,0 +1,79 @@ +License (short) +=============== + +You are free: +- to Share — to copy, distribute and transmit the work + +Under the following conditions: +- Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). +- Noncommercial — You may not use this work for commercial purposes. +- No Derivative Works — You may not alter, transform, or build upon this work. + +With the understanding that: + +Waiver — Any of the above conditions can be waived if you get permission from the copyright holder. + +Public Domain — Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. + +Other Rights — In no way are any of the following rights affected by the license: + - Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; + - The author's moral rights; + - Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. + +Notice — For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. + + +Full license text +================= + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. +"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, +to Distribute and Publicly Perform the Work including as incorporated in Collections. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. +You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. +If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. +For the avoidance of doubt: + +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, +Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous + +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/TO_MERGE/ace/sys_cargo/box/script_component.hpp b/TO_MERGE/ace/sys_cargo/box/script_component.hpp new file mode 100644 index 0000000000..483522b490 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/box/script_component.hpp @@ -0,0 +1,14 @@ +#define COMPONENT sys_cargo_box +#define MAINCOMPONENT sys_cargo +#define SUBCOMPONENT box +#define ADDONS sys_cargo_box + +#ifdef MAINCOMPONENT + #ifdef SUBCOMPONENT + #define PATHTO_SYS(var1,var2,var3) \MAINPREFIX\##var1\SUBPREFIX\MAINCOMPONENT\SUBCOMPONENT\##var3.sqf + #define PATHTOF_SYS(var1,var2,var3) \MAINPREFIX\##var1\SUBPREFIX\MAINCOMPONENT\SUBCOMPONENT\##var3 + #define PATHTOF2_SYS(var1,var2,var3) MAINPREFIX\##var1\SUBPREFIX\MAINCOMPONENT\SUBCOMPONENT\##var3 + #endif +#endif +#include "\z\ace\addons\main\script_mod.hpp" +#include "\z\ace\addons\main\script_macros.hpp" diff --git a/TO_MERGE/ace/sys_cargo/config.cpp b/TO_MERGE/ace/sys_cargo/config.cpp new file mode 100644 index 0000000000..8c857cfd93 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/config.cpp @@ -0,0 +1,21 @@ +#include "script_component.hpp" + +#include "\z\ace\addons\main\script_config.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "ace_common", "ace_c_vehicle", "ace_c_weapon", "ace_sys_interaction" }; + version = VERSION; + author[] = {"Rocko"}; + }; +}; + +PRELOAD_ADDONS; + +#include "CfgVehicles.hpp" +#include "CfgEventHandlers.hpp" +#include "Dialog.hpp" +#include "CfgFunctions.hpp" diff --git a/TO_MERGE/ace/sys_cargo/data/rsc/ace_ui_background_ca.paa b/TO_MERGE/ace/sys_cargo/data/rsc/ace_ui_background_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..a2bf2a383efeb4a91be24c41bac4a261d0be8155 GIT binary patch literal 22052 zcmeI4v1$TA6h)sfArc5!rkpPbHmO9|C9vBV6g84IY0~El=3~;OOP4NxX6`H)E~x@m z;u+Y*(M9BN-a!`hV&C`e_P*b>DI!uzW!OKp4|TuSs{6iObag+{F}%K9uWt1CZ9bh{ zU%d|Jm*M<8pWfch>NT6LTQ<7pUB`zWe6AwCwh`Zt5tlnX`R`StL^M%!_Ql?51bhlS zoB;FTG?)*3zy~LQ4^D$V-~&E50eo;8^Z_66!3p4l)1VLdfDcXpADjk#zz2MA0{GxG z=mS3BgA>39r$Ha^0Uw+IJ~$2ffDicK1n|LW&_~10?13ut`6Tk1Zxo6o?|DWK1 zg*`m*fq9?@3Zqum!8|Yz%tM_9<{^s#J)j5lpw@sMWHF!z^x)Kbkn1> "CfgVehicles" >> typeOf _vehicle >> "ACE_canBeLoad") == 1) \ No newline at end of file diff --git a/TO_MERGE/ace/sys_cargo/fnc_carry.sqf b/TO_MERGE/ace/sys_cargo/fnc_carry.sqf new file mode 100644 index 0000000000..6aa145d305 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/fnc_carry.sqf @@ -0,0 +1,153 @@ +/* ace_sys_cargo | (c) 2010,2011 by rocko */ + +#include "script_component.hpp" + +#define CARRYOFFSET 0.5 + +private["_unit","_action","_box","_pos2","_dir","_modelPos","_params","_track"]; + +if (dialog) then { closeDialog 0; }; + +if (count _this < 2) then { + _params = ["","","",["start", _this select 0]]; +} else { + _params = _this; +}; + +// TODO: Check other interactions, entering a car while carrying something, ladders, dying + +//["","",_action,["stop",_box]] spawn FUNC(carry) + +_unit = player; +_action = (_params select 3) select 0; +_box = (_params select 3) select 1; // TODO: should be (_this select 0) + +switch _action do { + case "start": { + // Monitor Roadway LOD occlusion + _track = true; + + if (_unit getVariable [QGVAR(carrying),false] || {_unit getVariable [QGVAR(dragging),false]}) exitWith { + [localize "STR_ACE_CARGO_ERR_OCC",[1,0,0,1],true,0] spawn ace_fnc_visual; + }; + if (_box getVariable [QGVAR(busy),false]) exitWith { + [localize "STR_ACE_CARGO_ERR_OCC",[1,0,0,1],true,0] spawn ace_fnc_visual; + }; + if ((_unit distance _box) <= 2.5) then { + [objnull,_box,1,1] call FUNC(cbusy); + detach _box; + _safetyCarryOffset = _box getVariable [QGVAR(carryOffsetInc),0]; + _offset = 0.6 + _safetyCarryOffset; + _box attachTo [_unit,[0,_offset,1]]; // Obs: Boxes that have a roadway lod, cause player flying into air. Need to make sure box clips into player to avoid this OR move box that far away so that roadway lod makes no contact with player (0.4 = clipping, 0.7 = outbound) + _unit setVariable [QGVAR(carrying), true, false]; + _unit setVariable [QGVAR(carried_object),_box]; // TODO: Probably should be extended to all stuff we attachto player, so it becomes tracked + _box setDir (_dir - (getDir _unit)); + _unit selectWeapon (primaryWeapon _unit); + _unit switchMove "amovpercmstpslowwrfldnon"; //"amovpercmstpslowwrfldnon_player_idlesteady03"; + _weight = [_box] call FUNC(weight); + [_unit,_weight] call INC_MASS; // TODO: Get Weight + if (_weight > 13) then { + _unit forceWalk true; + }; + // TODO: Move to config properties to automatically decide what to do with special items + + + //Ruckcratechek + if (_box isKindOf "ACE_Rucksack_crate") then { + _box setVectorDirAndUp [[-0.0204803,-0.585819,0.810183],[0.00794978,-0.810423,-0.585792]]; + _track = false; + }; + //Artyshell + if (_box isKindOf "ACE_Arty_ShellHolder") then { + _box setVariable ["ACE_ARTY_OWNER", _unit, true]; + _unit setVariable ["ACE_ARTY_CARRY_SHELL", _box, false]; + _box attachTo [_unit,[0.2,0.5,1.15]]; + _track = false; + }; + + #define ACE_TEXT_RED(Text) ("" + ##Text + "") + + // TODO: Use displayName of carriedObject if it has one.... + _carry_action = _unit addAction[ACE_TEXT_RED((localize "STR_ACE_CARGO_CARRYRELASE")),QPATHTO_F(fnc_carry),["stop",_box],-100,false,false,"","_target == player"]; + _unit setVariable [QGVAR(carrying_action_index),_carry_action]; + //GVAR(drag_keyDownEHId) = (findDisplay 46) displayAddEventHandler ["KeyDown", "_this call ace_sys_cargo_fnc_dragkeydown"]; // Add "C" key down eventhandler + _fired_i = _unit addEventHandler ["fired", {(_this select 0) setVariable ["ace_sys_cargo_forcedrop",true]}]; + _getin_i = _unit addEventhandler ["getin",{(_this select 0) setVariable ["ace_sys_cargo_forcedrop",true];}]; + _unit setVariable [QGVAR(carryFEH),_fired_i]; + _unit setVariable [QGVAR(carryGIH),_getin_i]; + _unit setVariable [QGVAR(forcedrop),false]; + _box setVariable [QUOTE(GVARMAIN(attachedBy)), QUOTE(COMPONENT), true]; + }; + + // Service Loop + while { _unit getVariable QGVAR(carrying) } do { + _bugflyHeight1 = ((getposasl _box) select 2); //diag_log format ["h1: %1",_bugflyHeight1]; + sleep 0.25; + _bugflyHeight2 = ((getposasl _box) select 2); //diag_log format ["h2: %1",_bugflyHeight2]; + _animdrop = !(weaponLowered player); // ["aidlpercmstpsraswrfldnon_idlesteady04","aidlpercmstpsraswrfldnon_aiming01","aidlpercmstpsraswrfldnon_idlesteady02","aidlpercmstpsraswrfldnon_idlesteady03","aidlpercmstpsraswrfldnon_idlesteady01","aidlpercmstpsraswrfldnon_aiming02"]; + _standing = ((_unit call CBA_fnc_getUnitAnim) select 0) in ["stand"]; + _forcedrop = _unit getVariable [QGVAR(forcedrop),false]; + // DBG + //player sidechat format ["%1 %2 %3",_animdrop,_standing,_forcedrop]; + if (!_standing || {_animdrop} || {_forcedrop}) then { ["","",0,["stop",_box]] spawn FUNC(carry) }; + _bugflyRate = (_bugflyHeight2 - _bugflyHeight1) * 4; + //player globalchat format ["%1",_bugflyRate]; + if (_track && {speed _unit == 0} && {_bugflyRate > 10}) then { + _curBoxOffset = _box getVariable [QGVAR(carryOffsetInc),0]; + _newBoxOffset = _curBoxOffset + 0.2; + _box setVariable [QGVAR(carryOffsetInc),_newBoxOffset,true]; // Set new safety carrying offset to avoid further bugging + player setposATL [(getposATL player select 0), (getposATL player select 1), 0]; + ["","",0,["stop",_box]] spawn FUNC(carry); + }; + sleep 0.25; + }; + }; + case "stop": { + if (local _unit) then { localize "STR_ACE_CARGO_DROPPED" call ace_fnc_visual; }; + _box = (_this select 3) select 1; + + _bldg = [_unit,0.1] call ACE_fnc_inBuilding; + + _unit setVariable [QGVAR(carried_pos_end), getPosATL _unit, false]; + + + _posZ = if (_bldg) then { ((_unit modelToWorld [0,0,0]) select 2) - 0.05 } else { (getPosATL _unit) select 2 }; + _pos_end = _unit getVariable [QGVAR(carried_pos_end),(getPosATL _unit)]; + _pos_end set [0,(_pos_end select 0)+(sin (direction _unit) * 1.4)]; + _pos_end set [1,(_pos_end select 1)+(cos (direction _unit) * 1.4)]; + _pos_end set [2,_posZ]; + + detach _box; + _box setPosATL _pos_end; + + _unit setVariable [QGVAR(carried_pos_end), nil, false]; + _unit removeaction (_unit getVariable QGVAR(carrying_action_index)); + _unit setVariable [QGVAR(carrying), false, false]; + + [objnull,_box,0,0] call FUNC(cbusy); + + // Ruckcratecheck + if (_box isKindOf "ACE_Rucksack_crate") then { + _box setVectorDirAndUp [[-0.0204803,-0.585819,0.810183],[0.00794978,-0.810423,-0.585792]]; + }; + //Artyshell + if (_box isKindOf "ACE_Arty_ShellHolder") then { + _box setVariable ["ACE_ARTY_OWNER", nil, true]; + _unit setVariable ["ACE_ARTY_CARRY_SHELL", nil, false]; + }; + + _unit forceWalk false; + _weight = [_box] call FUNC(weight); + [_unit,0] call INC_MASS; // TODO: Get Weight + // Remove "C" key down eventhandler + //(findDisplay 46) displayRemoveEventHandler ["KeyDown", GVAR(drag_keyDownEHId)]; + _unit removeEventhandler ["fired",(_unit getVariable QGVAR(carryFEH))]; + _unit removeEventhandler ["getin",(_unit getVariable QGVAR(carryGIH))]; + _unit setVariable [QGVAR(carryFEH),-1]; + _unit setVariable [QGVAR(carryGIH),-1]; + _unit setVariable [QGVAR(forcedrop),false]; + _box setVariable [QUOTE(GVARMAIN(attachedBy)), "", true]; + }; +}; + +false diff --git a/TO_MERGE/ace/sys_cargo/fnc_carry2.sqf b/TO_MERGE/ace/sys_cargo/fnc_carry2.sqf new file mode 100644 index 0000000000..9550400c23 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/fnc_carry2.sqf @@ -0,0 +1,23 @@ +/* ace_sys_cargo | (c) 2010,2011 by rocko */ + +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +private "_var"; + +PARAMS_3(_component,_unit,_type); + +switch (_type) do { + case "CARRIER": { + if (_component getVariable [QGVAR(busy),false]) then { + [localize "STR_ACE_CARGO_ERR_OCC",[1,0,0,1],true,0] spawn ace_fnc_visual; + } else { + [_component,_unit,0,["front", "grab"]] execVM QPATHTO_C(ua_carry2.sqf); + }; + }; + case "HELPER": { + [_component,_unit,0,["back", "grab"]] execVM QPATHTO_C(ua_carry2.sqf); + }; +}; + +false diff --git a/TO_MERGE/ace/sys_cargo/fnc_drag.sqf b/TO_MERGE/ace/sys_cargo/fnc_drag.sqf new file mode 100644 index 0000000000..466df43c21 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/fnc_drag.sqf @@ -0,0 +1,106 @@ +/* ace_sys_cargo | (c) 2010,2011 by rocko */ + +#include "script_component.hpp" + +private["_unit","_action","_box","_pos2","_dir","_modelPos","_drag_action","_params","_modelPosZ"]; + +if (dialog) then { closeDialog 0; }; + +if (count _this < 2) then { + _params = ["","","",["start", _this select 0]]; +} else { + _params = _this; +}; + +_unit = player; +_action = (_params select 3) select 0; +_box = (_params select 3) select 1; // TODO: should be (_this select 0) +switch _action do { + case "start": { + if ({alive _x} count (crew _box) > 0) exitWith {}; + //if (_box call CBA_fnc_locked) exitWith {}; + if ((_unit distance _box) > 2.5) exitWith { [localize "STR_ACE_CARGO_ERR_NOWEP",[1,0,0,1],true,0] spawn ace_fnc_visual; }; + if (_unit getVariable [QGVAR(carrying),false] || {_unit getVariable [QGVAR(dragging),false]}) exitWith { + [localize "STR_ACE_CARGO_ERR_OCC",[1,0,0,1],true,0] spawn ace_fnc_visual; + }; + if (_box getVariable [QGVAR(busy),false]) exitWith { + [localize "STR_ACE_CARGO_ERR_OCC",[1,0,0,1],true,0] spawn ace_fnc_visual; + }; + if ((_unit distance _box) <= 2.5) then { + [objnull,_box,1,1] call FUNC(cbusy); + detach _box; + _unit playActionNow "grabDrag"; + _pos2 = getPosATL _box; + _dir = getDir _box; + _modelPos = _unit worldToModel _pos2; //is ATL format + if (_box isKindOf "StaticWeapon") then { + if (typeOf _box in ["ACE_M252","ACE_M224_1","ACE_2b14_82mm","ACE_120Tampella_Baseplate","ACE_120Tampella_Barrel"]) then { _modelPosZ = 0; } else { _modelPosZ = 0.8; }; + } else { _modelPosZ = 0; }; + + + + //_modelPosZ = if (typeOf _box in ["ACE_M252","ACE_M224_1","ACE_2b14_82mm"]) then { 0 }; // Argh!!1: TODO: Fix ACE mortar axis + _box attachTo [_unit,[_modelPos select 0,_modelPos select 1,_modelPosZ],""]; + _unit setVariable [QGVAR(dragging), true, false]; + _unit setVariable [QGVAR(dragged_object),_box]; // TODO: Probably should be extended to all stuff we attachto player, so it becomes tracked + _box setDir (_dir - (getDir _unit)); + //Ruckcratechek + if (_box isKindOf "ACE_Rucksack_crate") then { + _box setVectorDirAndUp [[-0.0204803,-0.585819,0.810183],[0.00794978,-0.810423,-0.585792]]; + }; + _box lock true; + #define ACE_TEXT_RED(Text) ("" + ##Text + "") + _drag_action = _unit addAction [ACE_TEXT_RED((localize "STR_ACE_CARGO_RELASE")),QPATHTO_F(fnc_drag),["stop",_box],-100,false,false,"","_target == player"]; + GVAR(drag_keyDownEHId) = (findDisplay 46) displayAddEventHandler ["KeyDown", "_this call ace_sys_cargo_fnc_dragkeydown"]; // Add "C" key down eventhandler + }; + + waitUntil { animationState _unit == "ACINPKNLMSTPSRASWRFLDNON" }; + + + _weight = ([_box] call FUNC(weight)) * sin 45; + [_unit,_weight] call INC_MASS; + + while { alive _unit && {_unit getVariable QGVAR(dragging)} } do { + sleep 0.5; + + if !(animationState _unit in ["acinpknlmstpsraswrfldnon","acinpknlmwlksraswrfldb"]) exitWith { + _unit setVariable [QGVAR(dragging), false, false]; + _unit setVariable [QGVAR(dragged_object),objNull]; + _unit switchMove "ACINPKNLMSTPSRASWRFLDNON"; + ["","",_drag_action,["stop",_box]] spawn FUNC(drag); + }; + }; + }; + case "stop": { + // Remove "C" key down eventhandler + (findDisplay 46) displayRemoveEventHandler ["KeyDown", GVAR(drag_keyDownEHId)]; + + // Dragging in building?? + _bldg = [_unit,0.1] call ACE_fnc_inBuilding; + + _box = (_this select 3) select 1; + _unit setVariable [QGVAR(dragged_pos_end), getPosATL _box, false]; + _box lock false; + _unit playAction "released"; + detach _box; + _posZ = if (_bldg) then { ((_unit modelToWorld [0,0,0]) select 2) - 0.05 } else { (getPosATL _unit) select 2 }; + _pos_end = _unit getVariable QGVAR(dragged_pos_end); + _box setPosATL [_pos_end select 0, _pos_end select 1, _posZ]; + _unit setVariable [QGVAR(dragged_pos_end), nil, false]; + _unit removeaction (_this select 2); + _unit setVariable [QGVAR(dragging), false, false]; + [objnull,_box,0,0] call FUNC(cbusy); + + // Ruckcratecheck + if (_box isKindOf "ACE_Rucksack_crate") then { + _box setVectorDirAndUp [[-0.0204803,-0.585819,0.810183],[0.00794978,-0.810423,-0.585792]]; + }; + if (_box isKindOf "StaticWeapon") then { + //_box setVariable ["ace_sys_crewserved_pitch",0,true]; + [_box] call ace_sys_crewserved_fnc_setPitch_stored; // Screwsup + }; + [_unit,0] call INC_MASS; + }; +}; + +false diff --git a/TO_MERGE/ace/sys_cargo/fnc_exec.sqf b/TO_MERGE/ace/sys_cargo/fnc_exec.sqf new file mode 100644 index 0000000000..e69de29bb2 diff --git a/TO_MERGE/ace/sys_cargo/fnc_init.sqf b/TO_MERGE/ace/sys_cargo/fnc_init.sqf new file mode 100644 index 0000000000..b796199983 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/fnc_init.sqf @@ -0,0 +1,22 @@ +/* ace_sys_cargo | (c) 2014 by rocko */ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +if (productVersion select 2 <= 110) exitWith {}; + +PARAMS_1(_vehicle); + +_m = getMass _vehicle; +_com = getCenterOfMass _vehicle; +_currentcontent = _vehicle getVariable [QGVAR(content), []]; +if (count _currentcontent > 0) then { + _vehicle setVariable [QGVAR(content), []]; + _error = format["You cannot bypass the loading function for (%1) - ",_vehicle]; TRACE_1("Content hack detected",""); + WARNING(_error); +}; + +_vehicle setVariable [QGVAR(mass),_m]; +_vehicle setVariable [QGVAR(comass),_com]; + +_vehicle setVariable [QGVAR(ready),true]; + diff --git a/TO_MERGE/ace/sys_cargo/fnc_listCargo.sqf b/TO_MERGE/ace/sys_cargo/fnc_listCargo.sqf new file mode 100644 index 0000000000..044638aa65 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/fnc_listCargo.sqf @@ -0,0 +1,27 @@ +/* +Function: ACE_fnc_listCargo + +Description: + Lists cargo of a vehicle. + +Parameters: + _vehicle - Vehicle to load cargo into. (Must exist) [Object] +Returns: + Array + +Example: + (begin example) + ["MyTruck"] call ACE_fnc_listCargo; + (end) + +Author: + rocko +*/ + +#include "script_component.hpp" + +PARAMS_1(_vehicle); + +_currentcargo = _vehicle getVariable [QGVAR(content), []]; +TRACE_1("",_currentcargo); +_currentcargo diff --git a/TO_MERGE/ace/sys_cargo/fnc_load.sqf b/TO_MERGE/ace/sys_cargo/fnc_load.sqf new file mode 100644 index 0000000000..33e7d0c5d2 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/fnc_load.sqf @@ -0,0 +1,105 @@ +/* ace_sys_cargo | (c) 2010,2011 by rocko */ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +private["_unit","_action","_box","_pos2","_dir","_modelPos","_drag_action","_params","_process"]; + +if (dialog) then { closeDialog 0; }; + +PARAMS_2(_cargo,_vehicle); + +private "_dragnet"; +// Fix, when a player is dragging an object dragging doesn't stop, +_dragnet = player getVariable [QGVAR(dragging), false]; +if (_dragnet) exitWith { + (localize "STR_ACE_DRAGQUEENSTOP") spawn ace_fnc_visual; +}; +// Box is in process? +if (_cargo getVariable [QGVAR(busy),false]) exitWith { + [localize "STR_ACE_CARGO_ERR_OCC",[1,0,0,1],true,0] spawn ace_fnc_visual; +}; + +// Mexican hidden in a box? +if ({alive _x} count (crew _cargo) > 0) exitWith { (localize "STR_ACE_CARGO_ERR_MEXICO") spawn ace_fnc_visual; }; + +// Store each cargo element loaded into vehicle +_currentcontent = _vehicle getVariable [QGVAR(content), []]; +TRACE_1("Current content",_currentcontent); + +// Weight managment +// Max capacity and weight limits for the vehicle +_volume_vehicle = [_vehicle] call FUNC(volume); +_size_vehicle = sizeOf (typeOf _vehicle); +_weight_vehicle = floor (_volume_vehicle * _size_vehicle * 4); +_weight_vehicle_maxload = floor (_weight_vehicle / 5); +_weight_vehicle_current = 0; +if (count _currentcontent > 0) then { + { + private ["_w"]; + _w = [_x, 0] call FUNC(weight); + _weight_vehicle_current = _weight_vehicle_current + _w; + } foreach _currentcontent; +}; +TRACE_5("V S W Wmax Wcur",_volume_vehicle, _size_vehicle, _weight_vehicle, _weight_vehicle_maxload, _weight_vehicle_current); + +// Max capacity and weight limits for the cargo +_volume_cargo = [_cargo] call FUNC(volume); +_weight_cargo = [_cargo,0] call FUNC(weight); +TRACE_1("",_weight_cargo); + +_loading_allowed = ((_weight_vehicle_maxload - _weight_vehicle_current) >= _weight_cargo); + +TRACE_1("",_loading_allowed); +if !(_loading_allowed) exitWith { (localize "STR_ACE_CARGO_ERR_HEAVY") spawn ace_fnc_visual; }; + +//set busy state for vehicle +[_vehicle,_cargo,1,1] call FUNC(cbusy); + +if (local player) then { + #ifndef DEBUG_MODE_FULL + #define __DELAY ((50/145) * _weight_cargo) // 50 seconds to load a 145kg heavy object alone + _potHelper = (position player) nearEntities ["CaManBase",5] - [player]; + if (player in _potHelper) then { _potHelper = _potHelper - [player] }; + _time = if (count _potHelper > 0) then { __DELAY / 2 } else { __DELAY }; + + player setVariable ["ACE_PB_Result", 0]; + [_time,[localize "STR_ACE_CARGO_LOADING"],true,true] spawn ace_progressbar; + waitUntil { (player getVariable "ACE_PB_Result" != 0) }; + _process = (player getVariable "ACE_PB_Result" == 1); + player setVariable ["ACE_PB_Result", 0]; + #endif + #ifdef DEBUG_MODE_FULL + _process = true; + #endif +}; +if (!_process) exitWith { + // Reset busy state for vehicle + [_vehicle,_cargo,0,0] call FUNC(cbusy); +}; + +// Load +_newcontent = _currentcontent; +_newcontent set [count _newcontent,_cargo]; +TRACE_1("New content", _newcontent); + +_vehicle setVariable [QGVAR(content), _newcontent, true]; // Add cargo variables + +// Store loading position = unloading cargo will make the cargo appear at the same spot where it was when a player loaded it +// Relative to transporter +_cargo setVariable [QGVAR(Distance), (_cargo distance _vehicle), true]; + +// Hide _cargo +// Avoid cargo setPosing in water and accidentally killing it +_cargo_pos = getPosATL _cargo; +#ifndef DEBUG_MODE_FULL // TEST MODE TO CHECK WETHER LOADED OBJECTS ARE DELETED + detach _cargo; + //_cargo setPos [_cargo_pos select 0, _cargo_pos select 1, (_cargo_pos select 2) - 20]; + // Put stuff to [0,0,0] no matter what + _cargo setPos [0,0,0]; +#endif + +// SetVariable +[_cargo,"set"] call FUNC(determineCargo); // Using "set", so data is only stored over net if object is loaded only + +// Reset busy state for vehicle +[_vehicle,_cargo,0,0] call FUNC(cbusy); diff --git a/TO_MERGE/ace/sys_cargo/fnc_loadCargo.sqf b/TO_MERGE/ace/sys_cargo/fnc_loadCargo.sqf new file mode 100644 index 0000000000..dbc7eedc94 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/fnc_loadCargo.sqf @@ -0,0 +1,81 @@ +/* +Function: ACE_fnc_loadCargo + +Description: + Load cargo into vehicles. + +Parameters: + _cargo - Cargo object to load. (Must exist) [Array of one or more objects] + _vehicle - Vehicle to load cargo into. (Must exist) [Object] +Returns: + nothing + +Example: + (begin example) + [[myCrate1, myCrate2], myTruck] call ACE_fnc_loadCargo; + (end) + +Author: + rocko +*/ + +#include "script_component.hpp" + +PARAMS_2(_cargo,_vehicle); + +private "_error"; +{ + _preloading_allowed = true; + if (isNull _x) then { _error = format["Cargo (%1) does not exist",_x]; _preloading_allowed = false; TRACE_1("Cargo isNull",""); }; + if (isNil "_x") then { _error = format["Cargo (%1) does not exist",_x]; _preloading_allowed = false; TRACE_1("Cargo isNil",""); }; + if (isNull _vehicle) then { _error = format["Vehicle (%1) does not exist",_vehicle]; _preloading_allowed = false; TRACE_1("Vehicle isNull",""); }; + if (_x getVariable [QGVAR(busy),false]) then { _error = format["Cargo (%1) is busy",_x]; _preloading_allowed = false; TRACE_1("Cargo is busy",""); }; + if ({alive _x} count (crew _x) > 0) then { _error = format["Cargo (%1) has crew",_x]; _preloading_allowed = false; TRACE_1("Cargo is occupied",""); }; + + TRACE_1("Current cargo processed",_x); + _currentcontent = _vehicle getVariable [QGVAR(content), []]; TRACE_1("Current content",_currentcontent); + _volume_vehicle = [_vehicle] call FUNC(volume); + _size_vehicle = sizeOf (typeOf _vehicle); + _weight_vehicle = floor (_volume_vehicle * _size_vehicle * 4); + _weight_vehicle_maxload = floor (_weight_vehicle / 5); + _weight_vehicle_current = 0; + if (count _currentcontent > 0) then { + { + private ["_w"]; + _w = [_x] call FUNC(weight); + _weight_vehicle_current = _weight_vehicle_current + _w; + } foreach _currentcontent; + }; + TRACE_5("VSWWmaxWcur",_volume_vehicle, _size_vehicle, _weight_vehicle, _weight_vehicle_maxload, _weight_vehicle_current); + + _volume_cargo = [_x] call FUNC(volume); TRACE_1("",_volume_cargo); + _weight_cargo = [_x] call FUNC(weight); TRACE_1("",_weight_cargo); + _loading_allowed = ((_weight_vehicle_maxload - _weight_vehicle_current) >= _weight_cargo); TRACE_1("",_loading_allowed); + if (!_loading_allowed) then { _error = format["Weight/Volume of cargo (%1) exceeds allowed values for %2",_x,(typeOf _vehicle)]; }; + if (_loading_allowed && {_preloading_allowed}) then { + _newcontent = _currentcontent; + _newcontent set [count _newcontent,_x]; TRACE_1("New content", _newcontent); + _vehicle setVariable [QGVAR(content), _newcontent, true]; // Add cargo variables + _cargo_pos = getPosATL _x; + detach _x; + // TODO: Test enableSimulation = false; on loaded object + + //_x setPos [_cargo_pos select 0, _cargo_pos select 1, (_cargo_pos select 2) - 20]; TRACE_1("Setpos cargo item",(getPos _x)); + // Put stuff to [0,0,0] no matter what + _x setPos [0,0,0]; + + //_x spawn { // Check if cargo item is below surface + // private "_cargo_item"; + // _cargo_item = _this; + // sleep 5; + // if ((getPos _cargo_item select 2) > 0) then { + // TRACE_1("Item hiding below surface failed, setting to [0,0,0]",""); + // _cargo_item setPos [0,0,0]; // TODO: allowdamage false while on "hiding pos"?? + // }; + //}; + + [_x,"set"] call FUNC(determineCargo); + } else { + WARNING(_error); + }; +} foreach _cargo; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_cargo/fnc_menuDef.sqf b/TO_MERGE/ace/sys_cargo/fnc_menuDef.sqf new file mode 100644 index 0000000000..be911d19f9 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/fnc_menuDef.sqf @@ -0,0 +1,206 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +#include "\a3\editor_f\Data\Scripts\dikCodes.h" + +private ["_menuDef", "_target", "_params", "_menuName", "_menuRsc", "_menus"]; +private ["_vehicle", "_displayNameVehicle","_exit","_nearestVehicle"]; +private ["_canDrag","_canPush"]; +private ["_weight"]; + +PARAMS_2(_target,_params); + +_menuDef = []; + +if (typeOf _target == "Weaponholder") exitWith { closeDialog 0; _menuDef }; +// Needs to be fixed in CBA if possible, objects that inherit from any class used for interaction, but should not be able to interacted with, +// e.g class Weaponholder, which inherits from Reammobox! + +_menuName = ""; +_menuRsc = "popup"; + +if (typeName _params == typeName []) then { + if (count _params < 1) exitWith {diag_log format["Error: Invalid params: %1, %2", _this, __FILE__];}; + _menuName = _params select 0; + _menuRsc = if (count _params > 1) then {_params select 1} else {_menuRsc}; +} else { + _menuName = _params; +}; +//----------------------------------------------------------------------------- + +// TODO: Sort functions and scripts! +// Hacked +if (_target isKindOf "ACE_Arty_AimingStakes") exitWith {_menuDef}; + + +// Only allow loading of ammoboxes atm. Later extend to different vehicles (small) or objects +_loadthing = (getNumber (configFile >> "CfgVehicles" >> typeOf _target >> "ACE_canBeLoad") == 1); +_gearthing = (getNumber (configFile >> "CfgVehicles" >> typeOf _target >> "ACE_canGear") == 1); + +// Get exceptional vehicle that can only store gear parts (used in sys_eject - weaponcheck) +// This is used to allow players access the cargo space of non-sys_cargo vehicles! +if (_gearthing) then { + _loadthing = true; +}; + +_cargothing = getNumber (configFile >> "CfgVehicles" >> typeOf _target >> "ACE_canBeCargo") == 1; +_canBeCarried = getNumber (configFile >> "CfgVehicles" >> typeOf _target >> "ACE_canBeCarried") == 1; +_onSling = _target getVariable ["ace_sys_slingload_isLoaded",false]; +TRACE_5("",_target,_loadthing,_cargothing,_gearthing,_canBeCarried); + +if !(_loadthing || {_cargothing} || {_canBeCarried}) exitWith {_menuDef}; + +#define __TMW getNumber(configFile >> "CfgVehicles" >> typeOf _vehicle >> "transportMaxWeapons") +#define __TMM getNumber(configFile >> "CfgVehicles" >> typeOf _vehicle >> "transportMaxMagazines") + +GVAR(target) = _target; + +_displayNameCargo = getText (configFile >> "CfgVehicles" >> typeOf _target >> "displayNameShort"); +if (_displayNameCargo == "") then {_displayNameCargo = typeOf _target}; + +_nearestVehicle = objNull; +if (isNull _target) then {objNull} else { + _ar = nearestObjects [_target, ["Car", "Ship", "Air","Tank"], 8]; + _filter_ar = [_ar, {_x isKindOf "ACE_JerryCan"}] call BIS_fnc_conditionalSelect; + if (count _filter_ar > 0) then { + _ar = _ar - _filter_ar; + }; + if (count _ar > 0) then { _nearestVehicle = _ar select 0 }; +}; +_nearestVehicleDistance = _target distance _nearestVehicle; // Loading distance. Should normally be relatively small +_vehicle = if (!isNull _nearestVehicle && {_nearestVehicleDistance < (2 + (_nearestVehicle call BIS_fnc_boundingCircle)/2)}) then {_nearestVehicle} else {objNull}; + +GVAR(vehicle) = _vehicle; // Set the cargo vehicle to the target, unless a different vehicle was found near + +TRACE_2("TARGET & VEHICLE",_target,_vehicle); + +_vehicleAvailable = !isNull _vehicle && {alive _vehicle}; +if (_vehicleAvailable) then { + _displayNameVehicle = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); + if (_displayNameVehicle == "") then {_displayNameVehicle = typeOf _vehicle}; + TRACE_2("Found",GVAR(vehicle),_vehicleAvailable); + // Check if found vehicle has cargo capacity + if (getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "ACE_canBeLoad") != 1 || {(__TMW == 0 && {__TMM == 0})} || {_vehicle getVariable [QGVAR(busy),false]}) exitWith { + _vehicleAvailable = false; + TRACE_1("...Vehicle cannot transport anything",""); + TRACE_1("...Vehicle has no cargo space",""); + }; +}; + +// Check wether player isInFront of vehicle or behind it. + +_inFront = if !(isNull GVAR(vehicle)) then { [GVAR(vehicle),player,0.1] call ACE_fnc_inFront; } else { false }; +_currentCargo = _target getVariable [QGVAR(content),[]]; +_currentCargo_front = _target getVariable [QGVAR(content_front),[]]; +_type = [_target,"check"] call FUNC(determineCargo); + +private ["_canLoadFront","_frontLoadFree"]; +if (!isNull GVAR(vehicle)) then { + _frontLoading = GVAR(vehicle) call FUNC(determineFrontCargo); + _canLoadFront = _frontLoading select 0; + _frontLoadFree = _frontLoading select 1; +} else { + _canLoadFront = false; + _frontLoadFree = false; +}; +_isCarryingFrontLoadItem = false; +if (player getVariable [QGVAR(carrying),false]) then { + _frontCargoItem = player getVariable QGVAR(carried_object); + if (getNumber (configFile >> "CfgVehicles" >> typeOf _frontCargoItem >> "ACE_canLoadFront") == 1) then { + _isCarryingFrontLoadItem = true; + }; +}; + +// Carry in pairs stuff +// ---------------------------------- +_helperNear = false; +_helper = objNull; +if (_type in [4,5]) then { + _potHelper = (position player) nearEntities ["CaManBase",5] - [player]; + if (player in _potHelper) then { + _potHelper = _potHelper - [player]; + }; + if (count _potHelper > 0) then { + _isPlayer = false; + { + if (isplayer _x) exitWith { _helperNear = true; _helper = _x; }; /// ADD "!" to 'isplayer check' if TESTING in SP !!!!! + } foreach _potHelper; + }; +}; +// Check if component has a front carrier, so the HELP XX CARRYING option comes alive +_canBeCarriedInPairs = (isNil {_target getVariable [QGVAR(carrier_front), nil]}); + +// Check if component has a back carrier +_hasCarrierBack = (!isNil {_target getVariable [QGVAR(carrier_back), nil]}); +_hasCarrierFront = (!isNil {_target getVariable [QGVAR(carrier_front), nil]}); +// Check if component is busy, i.e about to become loaded into something +_nameCarrierFront = if (_hasCarrierFront) then { name (_target getVariable QGVAR(carrier_front)) } else { "" }; + +TRACE_4("",_canBeCarriedInPairs,_hasCarrierBack,_hasCarrierFront,_nameCarrierFront); + +GVAR(helper) = _helper; TRACE_1("",_helper); + +_menus = [ + [ + ["main", "", _menuRsc], + [ + [format [localize "STR_ACE_CARGO_CARRY",_displayNameCargo], // Carry alone + { [GVAR(target)] spawn FUNC(carry) }, + "", "", "", -1, + //1, ({alive _x} count (crew _target) == 0) && {alive _target} && {_cargothing} && {_type == 1} && {!(_target getVariable [QGVAR(attached_front),false])} && {!(player getVariable [QGVAR(carrying),false])}], + 1, _canBeCarried && {ACE_SELFINTERACTION_RESTRICTED} || {({alive _x} count (crew _target) == 0) && {alive _target} && {_cargothing} && {_type == 1} && {!(_target getVariable [QGVAR(attached_front),false])} && {!(player getVariable [QGVAR(carrying),false])} && {!_onSling} && {ACE_SELFINTERACTION_RESTRICTED}}], + + [format [localize "STR_ACE_CARGO_CARRY2",_displayNameCargo], // Carry in pairs + { [GVAR(target),player, "CARRIER"] spawn FUNC(carry2) }, + "", "", "", -1, + _helperNear, _canBeCarriedInPairs && {alive _target} && {!_hasCarrierFront} && {_cargothing} && {_type in [2,4,5]} && {!(_target getVariable [QGVAR(attached_front),false])} && {!(player getVariable [QGVAR(carrying),false])} && {!_onSling} && {ACE_SELFINTERACTION_RESTRICTED}], + + [format [localize "STR_ACE_CARGO_CARRY2_HELP",_nameCarrierFront], // Carry in pairs Help + { [GVAR(target),player, "HELPER"] spawn FUNC(carry2) }, + "", "", "", -1, + 1, _hasCarrierFront && {!_hasCarrierBack} && {alive _target} && {_cargothing} && {_type in [4,5]} && {!(_target getVariable [QGVAR(attached_front),false])} && {!(player getVariable [QGVAR(carrying),false])} && {ACE_SELFINTERACTION_RESTRICTED}], + + [localize "STR_ACE_CARGO_DRAG", // Drag + { [GVAR(target)] spawn FUNC(drag) }, + "", "", "", -1, + 1, ({alive _x} count (crew _target) == 0) && {alive _target} && {_cargothing} && {(player == vehicle player)} && {_type in [2,5]} && {!_onSling} && {ACE_SELFINTERACTION_RESTRICTED}], + + [format [localize "STR_ACE_CARGO_PUSH",_displayNameCargo], // Push + { [GVAR(target)] spawn FUNC(push) }, + "", "", "", -1, + 1, alive _target && {_cargothing} && {_type == 3} && {!_onSling} && {ACE_SELFINTERACTION_RESTRICTED}], + + [format[localize "STR_ACE_LOADCARGO", _displayNameVehicle], // Loading cargo is now only at the vehicles trunk! + {[GVAR(target),GVAR(vehicle)] spawn FUNC(load) }, + "", "", "", -1, + GVAR(vehicle) != GVAR(target) && {_type in [1,2,4,5]}, _vehicleAvailable && {_cargothing} && {alive _target} && {!_inFront} && {!(player getVariable [QGVAR(carrying),false])} && {!_onSling} && {ACE_SELFINTERACTION_RESTRICTED}], + + ["Attach in front", //TODO: localize // Attaching stuff on the front of the vehicle (looks kool but maybe useless) + {[(player getVariable QGVAR(carried_object)),GVAR(vehicle)] spawn FUNC(attachToFront) }, + "", "", "", -1, + GVAR(vehicle) != GVAR(target), _loadthing && {alive _target} && {_inFront} && {_canLoadFront} && {_isCarryingFrontLoadItem} && {_frontLoadFree} && {!_onSling} && {ACE_SELFINTERACTION_RESTRICTED}], + + [localize "STR_ACE_SHOWCARGO", // Cargo access is now only at the vehicles trunk! + { closeDialog 0; createDialog "ACE_Cargo_List" }, + "", "", "", -1, + count _currentCargo > 0, alive _target && {_loadthing} && {getPos _target select 2 < 2} && {!_inFront} && {ACE_SELFINTERACTION_RESTRICTED}], + + [localize "STR_ACE_SHOWCARGO", // Cargo access for items attached to vehicle front + { closeDialog 0; createDialog "ACE_CargoFront_List" }, + "", "", "", -1, + count _currentCargo_front > 0, alive _target && {_loadthing} && {getPos _target select 2 < 2} && {_inFront} && {ACE_SELFINTERACTION_RESTRICTED}] + ] + ] +]; + +//----------------------------------------------------------------------------- + +{ + if (_x select 0 select 0 == _menuName) exitWith {_menuDef = _x}; +} forEach _menus; + +if (count _menuDef == 0) then { + hintC format ["Error: Menu not found: %1\n%2\n%3", str _menuName, if (_menuName == "") then {_this} else {""}, __FILE__]; + diag_log format ["Error: Menu not found: %1, %2, %3", str _menuName, _this, __FILE__]; +}; + +_menuDef // return value diff --git a/TO_MERGE/ace/sys_cargo/fnc_onload.sqf b/TO_MERGE/ace/sys_cargo/fnc_onload.sqf new file mode 100644 index 0000000000..fc6179826f --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/fnc_onload.sqf @@ -0,0 +1,11 @@ +/* ace_sys_cargo | (c) 2010,2011 by rocko */ + +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +PARAMS_1(_location); + +TRACE_1("Dialog open ... list",_location); +[_location] call FUNC(view); + +false \ No newline at end of file diff --git a/TO_MERGE/ace/sys_cargo/fnc_push.sqf b/TO_MERGE/ace/sys_cargo/fnc_push.sqf new file mode 100644 index 0000000000..d4f2817473 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/fnc_push.sqf @@ -0,0 +1,35 @@ +/* ace_sys_cargo | (c) 2010,2011 by rocko */ + +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +PARAMS_1(_target); +_volume = [_target] call FUNC(volume); +_weight = [_target,_volume] call FUNC(weight); + +_push_direction = getDir player; + +_acceleration = 0.02 * _weight; + +_vel = velocity _target; +_pos = getPos _target; + +TRACE_5("",_volume,_weight,_push_direction,_acceleration,_vel); + +_new_vel = [(_vel select 0)+(sin _push_direction*_acceleration),(_vel select 1)+(cos _push_direction*_acceleration),_vel select 2]; +TRACE_1("",_new_vel); + +if (_target isKindOf "Static") then { + _new_pos = [(_pos select 0)+(sin _push_direction*(_acceleration/2)),(_pos select 1)+(cos _push_direction*(_acceleration/2)),_pos select 2]; + _target setPos _new_pos; + _target setPosATL _new_pos; +} else { + [QGVAR(setvel), [_target,_new_vel]] call ACE_fnc_receiverOnlyEvent; +}; +_target spawn { + _target = _this; + sleep 4; + [QGVAR(setvel), [_target,[0,0,0]]] call ACE_fnc_receiverOnlyEvent; + //_pos = getPos _target; + //_target setPos _pos; +}; diff --git a/TO_MERGE/ace/sys_cargo/fnc_unload.sqf b/TO_MERGE/ace/sys_cargo/fnc_unload.sqf new file mode 100644 index 0000000000..da12b7c5e7 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/fnc_unload.sqf @@ -0,0 +1,85 @@ +/* ace_sys_cargo | (c) 2010,2011 by rocko */ + +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +PARAMS_2(_vehicle,_location); + +private ["_disp", "_ctrl", "_index", "_currentcontent", "_vehicle", "_cargo", "_newcontent", "_hasPlaceholder", "_placeholder", "_pos","_ui","_dir"]; + +_ui = if (_location == "back") then {"ACE_Cargo_List"} else {"ACE_CargoFront_List"}; +_disp = uiNamespace getVariable _ui; +_ctrl = _disp displayCtrl 99; + +_index = lbCurSel _ctrl; +if (_index < 0) exitWith { if (dialog) then { closeDialog 0; }; }; +if (dialog) then {closeDialog 0}; + +// Remove cargo item +_currentcontent = if (_location == "back") then { _vehicle getVariable [QGVAR(content), []] } else { _vehicle getVariable [QGVAR(content_front), []] }; +if (isNil "_currentcontent") exitWith {}; +_cargo = _currentcontent select _index; TRACE_1("Unloading _cargo",_cargo); +if (_cargo in _currentcontent) then { + _newcontent = _currentcontent - [_cargo]; + if (_location == "back") then { + TRACE_1("Unloading cargo from trunk",""); + _vehicle setVariable [QGVAR(content), _newcontent, true]; // Add cargo variables + } else { + TRACE_1("Unloading cargo from front",""); + _vehicle setVariable [QGVAR(content_front), _newcontent, true]; // Add cargo variables + [_cargo] call FUNC(detachFront); + }; + if (count _newcontent < 1) then { + _hasPlaceholder = _vehicle getVariable [QGVAR(hasPlaceholder), false]; + if (_hasPlaceholder) then { + _vehicle setVariable [QGVAR(hasPlaceholder), false, true]; // Reset placeholder variable + _placeholder = _vehicle getVariable QGVAR(POB); + detach _placeholder; + deleteVehicle _placeholder; + }; + }; + _at_player = _cargo getVariable [QGVAR(atplayer),false]; + _distance = if (_at_player) then { 1.5 } else { _cargo getVariable [QGVAR(Distance),4]; }; + if (_location == "back") then { + _dir = if (_at_player) then { getDir player + 180 } else { getDir _vehicle - 180 + (random 20) - (random 20); }; + } else { + _dir = if (_at_player) then { getDir player + 180 } else { getDir _vehicle + (random 20) - (random 20); }; + }; + _posV = if (_at_player) then { getPosATL player; } else { getPosATL _vehicle; }; + _unloadPos = [(_posV select 0) + ((sin _dir) * _distance), (_posV select 1) + ((cos _dir) * _distance),_posV select 2]; + + // TODO: Move to config properties to automatically decide what to do with special items + // Ruckcrate check + if (_cargo isKindOf "ACE_Rucksack_crate") then { + _cargo setVectorDirAndUp [[-0.0204803,-0.585819,0.810183],[0.00794978,-0.810423,-0.585792]]; + _cargo_owner = _cargo getVariable "ACE_SYS_CARGO_OWNER"; + if (_cargo_owner == name player) then { + _backpack = toArray(typeOf _cargo); + for "_x" from ((count _backpack) - 6) to ((count _backpack) - 1) do { + _backpack set [_x, nil]; + }; + _backpack = toString(_backpack); + [_cargo,player,nil,_backpack] execVM "\z\ace\addons\sys_ruck\act_TakeRuck.sqf"; + }; + }; + + if (_cargo isKindOf "StaticWeapon") then { + _cargo setVariable ["ace_sys_crewserved_pitch",0,true]; + }; + + if ([_cargo,""] call FUNC(determineCargo) == 1) then { + if !(player getVariable [QGVAR(carrying),false]) then { + [_cargo] spawn FUNC(carry); + }; + }; + if (surfaceIsWater _unloadPos) then { + _unloadPos set [2, (getPosASL player select 2)]; + _cargo setposASL _unloadPos; + } else { + _cargo setpos _unloadPos; + }; + + player reveal _cargo; +}; + +[_vehicle,objnull,0,0] call FUNC(cbusy); diff --git a/TO_MERGE/ace/sys_cargo/fnc_unloadCargo.sqf b/TO_MERGE/ace/sys_cargo/fnc_unloadCargo.sqf new file mode 100644 index 0000000000..6924290b42 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/fnc_unloadCargo.sqf @@ -0,0 +1,46 @@ +/* +Function: ACE_fnc_unloadCargo + +Description: + Unloads cargo from a vehicle. + +Parameters: + _cargo - Cargo object to load. (Must exist) [Array of one or more objects] + _vehicle - Vehicle to load cargo into. (Must exist) [Object] +Returns: + nothing + +Example: + (begin example) + [[myCrate1, myCrate2], myTruck] call ACE_fnc_unloadCargo; + (end) + +Author: + rocko +*/ + +#include "script_component.hpp" + +PARAMS_2(_cargo,_vehicle); +private ["_index", "_currentcontent", "_vehicle", "_cargo", "_newcontent", "_hasPlaceholder", "_placeholder", "_pos"]; + +_currentcontent = _vehicle getVariable QGVAR(content); +if (isNil "_currentcontent") exitWith {}; +{ + if (_x in _currentcontent) then { + _newcontent = _currentcontent - [_x]; + _vehicle setVariable [QGVAR(content), _newcontent, true]; // Add cargo variables + + _dir = getDir _vehicle - 180 + (random 20) - (random 20); + _posV = getPosATL _vehicle; + _unloadPos = [(_posV select 0) + ((sin _dir) * 4), (_posV select 1) + ((cos _dir) * 4),_posV select 2]; + _x setpos _unloadPos; + if (_x isKindOf "ACE_Rucksack_crate") then { + _x setVectorDirAndUp [[-0.0204803,-0.585819,0.810183],[0.00794978,-0.810423,-0.585792]]; + }; + if (_x isKindOf "StaticWeapon") then { + _x setVariable ["ace_sys_crewserved_pitch",0,true]; + }; + }; +} foreach _cargo; +[_vehicle,objnull,0,0] call FUNC(cbusy); diff --git a/TO_MERGE/ace/sys_cargo/fnc_view.sqf b/TO_MERGE/ace/sys_cargo/fnc_view.sqf new file mode 100644 index 0000000000..b06a52cada --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/fnc_view.sqf @@ -0,0 +1,65 @@ +/* ace_sys_cargo | (c) 2010,2011 by rocko */ + +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +private ["_disp", "_ctrl", "_currentcargo", "_item", "_typei", "_name", "_pic", "_dummy", "_weight", "_text", "_index","_ui"]; + +PARAMS_1(_location); + +// Prevent viewing of dialog if vehicle is already accessed by other player // TODO: Better not show in interaction menu +if (GVAR(target) getVariable [QGVAR(busy),false]) exitWith { + [] spawn { + sleep 0.1; + if (dialog) then { closeDialog 0 }; + [localize "STR_ACE_CARGO_ERR_OCC",[1,0,0,1],true,0] spawn ace_fnc_visual; + }; +}; + +_ui = if (_location == "back") then {"ACE_Cargo_List"} else {"ACE_CargoFront_List"}; +_disp = uiNamespace getVariable _ui; +_ctrl = _disp displayCtrl 99; +_tit = _disp displayCtrl 30; + +// Set vehicle busy to prevent multi unloading +[GVAR(target),objnull,1,1] call FUNC(cbusy); + +_currentcargo = if (_location == "back") then { GVAR(target) getVariable [QGVAR(content), []] } else { GVAR(target) getVariable [QGVAR(content_front), []] }; +lbClear _ctrl; + +if (count _currentcargo > 0) then { + _dn = getText(configFile >> "CfgVehicles" >> typeOf GVAR(target) >> "displayName"); + _tit ctrlSetText format[localize "STR_DIAG_ACE_CARGO_TITLE",_dn]; + for "_x" from 0 to (count _currentcargo) - 1 do { + _item = _currentcargo select _x; + _typei = typeOf _item; + _name = _item getVariable "ace_sys_cargo_name"; + if (isNil "_name") then { + _name = getText(configFile >> "CfgVehicles" >> _typei >> "displayName"); + }; + _pic = getText (configFile >> "cfgVehicles" >> _typei >> "icon"); + if (_pic == "" || {_pic == "iconThing"}) then { + _pic = "\ca\data\data\Unknown_object.paa"; + }; + _weight = [_item,1] call FUNC(weight); + // Disable low weight stuff + _text = if (_weight <= 5) then { + _name + } else { + format["%1 %2 kg", _name, round _weight] + }; + _index = _ctrl lbAdd _text; + _ctrl lbSetPicture [_index, _pic]; + }; + _ctrl lbSetCurSel 0; +}; + +if (player in crew GVAR(vehicle) || {count _currentcargo == 0} || {player getVariable [QGVAR(carrying),false]}) then { (_disp displayCtrl 10) ctrlEnable false; _disp displayCtrl 10 ctrlCommit 0; }; // Cannot unload from inside + +[] spawn { + while {dialog} do { + sleep 0.1; + }; + [GVAR(target),objnull,0,0] call FUNC(cbusy); +}; + + diff --git a/TO_MERGE/ace/sys_cargo/license.txt b/TO_MERGE/ace/sys_cargo/license.txt new file mode 100644 index 0000000000..7113bf4340 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/license.txt @@ -0,0 +1,79 @@ +License (short) +=============== + +You are free: +- to Share — to copy, distribute and transmit the work + +Under the following conditions: +- Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). +- Noncommercial — You may not use this work for commercial purposes. +- No Derivative Works — You may not alter, transform, or build upon this work. + +With the understanding that: + +Waiver — Any of the above conditions can be waived if you get permission from the copyright holder. + +Public Domain — Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. + +Other Rights — In no way are any of the following rights affected by the license: + - Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; + - The author's moral rights; + - Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. + +Notice — For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. + + +Full license text +================= + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. +"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, +to Distribute and Publicly Perform the Work including as incorporated in Collections. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. +You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. +If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. +For the avoidance of doubt: + +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, +Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous + +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/TO_MERGE/ace/sys_cargo/script_component.hpp b/TO_MERGE/ace/sys_cargo/script_component.hpp new file mode 100644 index 0000000000..8aabd2fc1f --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/script_component.hpp @@ -0,0 +1,29 @@ +#define COMPONENT sys_cargo +#include "\z\ace\addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_sys_cargo + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_sys_cargo + #define DEBUG_SETTINGS DEBUG_SETTINGS_sys_cargo +#endif + +#include "\z\ace\addons\main\script_macros.hpp" + +// #define JERRYCAN_M ACE_JerryCan_M_15 +#define JERRYCAN_W ACE_JerryCan_Dummy_15 +#define JERRYCAN_V ACE_JerryCan_15 + +#define SPARETYRE_W ACE_Spare_Tyre_Dummy +#define SPARETYRE_V ACE_Spare_Tyre + +#define __MAXCARRYVOLUME 0.7 +#define __MAXCARRYWEIGHT 30 //20 +#define __MAXCARRYWEIGHTBY2 145 //200 +#define __MAXDRAGVOLUME 1.5 +#define __MAXDRAGWEIGHT 80 //100 +#define __MAXPUSHVOLUME 3.2 +#define __MAXPUSHWEIGHT 120 +#define __MAXLOADVOLUME 1.7 //ccm +#define __MAXLOADWEIGHT 200 \ No newline at end of file diff --git a/TO_MERGE/ace/sys_cargo/slingload/$PBOPREFIX$ b/TO_MERGE/ace/sys_cargo/slingload/$PBOPREFIX$ new file mode 100644 index 0000000000..7a4828212a --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\sys_cargo\slingload \ No newline at end of file diff --git a/TO_MERGE/ace/sys_cargo/slingload/CfgEventhandlers.hpp b/TO_MERGE/ace/sys_cargo/slingload/CfgEventhandlers.hpp new file mode 100644 index 0000000000..d21e1e0f0f --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/CfgEventhandlers.hpp @@ -0,0 +1,6 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + clientInit = QUOTE(call COMPILE_FILE(XEH_preClientInit)); + }; +}; diff --git a/TO_MERGE/ace/sys_cargo/slingload/CfgMagazines.hpp b/TO_MERGE/ace/sys_cargo/slingload/CfgMagazines.hpp new file mode 100644 index 0000000000..84bd5f1ae2 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/CfgMagazines.hpp @@ -0,0 +1,27 @@ +#define __MASS 0.94 +class CfgMagazines { + class CA_Magazine; + class ACE_Rope_MRL: CA_Magazine { // Base + scope = 1; + displayName = $STR_DN_ACE_ROPE_MRL; + picture = QPATHTO_T(data\equip\m_rope_ca.paa); + model = QPATHTO_M(m_ace_rope.p3d); + type = "3 * 256"; + ammo = "FakeAmmo"; + count = 1; + initSpeed = 0; + maxLeadSpeed = 0; + nameSound = "mine"; + ACE_Weight = 2; // Diameter: 40 mm , Weight: 94 kg / 100 m + ACE_Size = 400; + ACE_NoPack = 1; // Not packable + ACE_SlingRope = 1; + descriptionShort = ""; + }; + class ACE_Rope_M5: ACE_Rope_MRL { + scope = 2; + displayName = $STR_DN_ACE_ROPE_M5; + ACE_Size = 64; + ACE_Weight = 14.3256; + }; +}; diff --git a/TO_MERGE/ace/sys_cargo/slingload/CfgVehicles.hpp b/TO_MERGE/ace/sys_cargo/slingload/CfgVehicles.hpp new file mode 100644 index 0000000000..9794e96d46 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/CfgVehicles.hpp @@ -0,0 +1,101 @@ +class CfgVehicles { + class Thing; + class ACE_Slingrope_L: Thing { + scope = 1; + animated = 0; + displayName = ""; + model=QPATHTO_M(ace_slingrope_L.p3d); + destructype = "Destructno"; + cost = 0; + armor = 999999; + ace_slingrope=1; + XEH_DISABLED; + }; + + class ACE_Slingrope_M: ACE_Slingrope_L { + model=QPATHTO_M(ace_slingrope_M.p3d); + ace_slingrope=1; + }; + + class ACE_Slingrope_P: ACE_Slingrope_L { + model=QPATHTO_M(ace_slingrope_P.p3d); + ace_slingrope=1; + }; + + class ACE_Slingrope: ACE_Slingrope_L { + model=QPATHTO_M(ace_slingrope.p3d); + ace_slingrope=1; + }; + + // GeoLifter points + // Max Load + // Vehicle Weight + // TODO: Correct values + class Air; + class Helicopter: Air { ACE_canLift = 0; }; + class Plane: Air { ACE_canLift = 0; }; + /*class UH60_Base; + class MH60S: UH60_Base { + ACE_canLift = 1; + ACE_GeoLifterAttachment[] = {{0,1.54,-5.1}}; + ACE_MaxLoad = 5886; + ACE_Weight = 5224; + }; + class UH60M_US_base_EP1; + class UH60M_EP1: UH60M_US_base_EP1 { + ACE_canLift = 1; + ACE_GeoLifterAttachment[] = {{0,1.25,-5.25}}; + ACE_MaxLoad = 5886; + ACE_Weight = 5224; + }; + class UH1_Base: Helicopter { + ACE_canLift = 1; + ACE_GeoLifterAttachment[] = {{0,-4.3,-4.9}}; + ACE_MaxLoad = 3000; + ACE_Weight = 5370; + }; + class UH1H_Base: Helicopter { + ACE_canLift = 1; + ACE_GeoLifterAttachment[] = {{0,1.2,-4.8}}; + ACE_MaxLoad = 3000; + ACE_Weight = 5370; + }; + class MV22: Plane { + ACE_canLift = 1; + ACE_GeoLifterAttachment[] = {{0,0,-5.9}}; + ACE_MaxLoad = 6800; + ACE_Weight = 15000; + }; + class Mi24_Base: Helicopter { + ACE_canLift = 1; + ACE_GeoLifterAttachment[] = {{-0.1,2.5,-5.2}}; + ACE_MaxLoad = 2600; + ACE_Weight = 11000; + }; + class Mi17_base: Helicopter { + ACE_canLift = 1; + ACE_GeoLifterAttachment[] = {{0,1.9,-5.5}}; + ACE_MaxLoad = 5900; + ACE_Weight = 7100; + }; + class CH47_base_EP1: Helicopter { + ACE_canLift = 1; + ACE_GeoLifterAttachment[] = {{0,0,-5.6}}; + ACE_MaxLoad = 10000; + ACE_Weight = 12000; + }; + class AH6_Base_EP1; + class MH6J_EP1: AH6_Base_EP1 { + ACE_canLift = 0; + ACE_GeoLifterAttachment[] = {{0,-0.8,0.5}}; + ACE_MaxLoad = 1000; + ACE_Weight = 3370; + }; + /// BAFF + class BAF_Merlin_HC3_D: Helicopter { + ACE_canLift = 1; + ACE_GeoLifterAttachment[] = {{0.2,2.5,-4.9}}; + ACE_MaxLoad = 6000; + ACE_Weight = 11000; + };*/ +}; diff --git a/TO_MERGE/ace/sys_cargo/slingload/CfgWeapons.hpp b/TO_MERGE/ace/sys_cargo/slingload/CfgWeapons.hpp new file mode 100644 index 0000000000..db6ec69286 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/CfgWeapons.hpp @@ -0,0 +1,11 @@ +class CfgWeapons { + class Default; + class Put: Default { + class ACE_Dummy_Utility; + class ace_sys_ravlifter: ACE_Dummy_Utility { + magazines[] = { + "ACE_Rope_MRL","ACE_Rope_M5" + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_cargo/slingload/XEH_preClientInit.sqf b/TO_MERGE/ace/sys_cargo/slingload/XEH_preClientInit.sqf new file mode 100644 index 0000000000..6b9c90e91b --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/XEH_preClientInit.sqf @@ -0,0 +1,13 @@ +#include "script_component.hpp" + +ADDON = false; +LOG(MSG_INIT); + +PREP(addAction); + +[QGVAR(wh), {player reveal _this}] call CBA_fnc_addEventHandler; +[QGVAR(action), {_this call FUNC(addaction)}] call CBA_fnc_addEventhandler; + +[["LandVehicle","Air","Boat","Thing","StaticWeapon","Reammobox"], [ace_sys_interaction_key], 6, [QPATHTO_F(fnc_menuDef), "main"]] call CBA_ui_fnc_add; + +ADDON = true; diff --git a/TO_MERGE/ace/sys_cargo/slingload/XEH_preInit.sqf b/TO_MERGE/ace/sys_cargo/slingload/XEH_preInit.sqf new file mode 100644 index 0000000000..7c785f3063 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/XEH_preInit.sqf @@ -0,0 +1,12 @@ +#include "script_component.hpp" + +ADDON = false; +LOG(MSG_INIT); + +PREP(hasropemag); + +PREP(attachSlingRopeToHelicopter); +PREP(attachSlingRopeToCargo); +PREP(detachSlingRopeFromCargo); + +ADDON = true; diff --git a/TO_MERGE/ace/sys_cargo/slingload/ace_slingrope.p3d b/TO_MERGE/ace/sys_cargo/slingload/ace_slingrope.p3d new file mode 100644 index 0000000000000000000000000000000000000000..23aa8836d31f0ab34992682780263b0883a72d33 GIT binary patch literal 345408 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 pj7=nM)nV2xOIo$M@Ws#A5UPtp5? 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 literal 0 HcmV?d00001 diff --git a/TO_MERGE/ace/sys_cargo/slingload/ace_slingrope_M.p3d b/TO_MERGE/ace/sys_cargo/slingload/ace_slingrope_M.p3d new file mode 100644 index 0000000000000000000000000000000000000000..4e06c0a8030c6999b94f80f66dbc9bb6fc69a316 GIT binary patch literal 67716 zcmeHw2bdMbwlzs5NRSMoq67s2VaPDkO@<-oILHhz#DPITV8~go5=;aIMFkNR15v`z zjagCDYeYp5K_v)c&hW2w=%v-A{oZ}&`u_L-@3X#dQ+w6kd+l9aRVU0jedy4>Q;VEA zbL7aABS((TwOe#3hdu}Jjp!&h6QeD={q^jlUp<+$d{Vn4;>Eyq%K1sX7Ejnk{B`u`dhO1n^cKeT?)b?*Ka1P(t|E6ryzW>grv(0$gclK-O z=Unl1EWQTf7qn~S*I4|`Z~UhH8sy)1SADa_FHuNVxcwWrEAL8%Z+sMDK`Z@dp_)U9me}u5`Xu_N$F7Ls2f%OIKS6#oel_e*m2Bc4x@uy~ z|HCP3x1ZY4#IN2kBZi*?ziH2j{55_~_EWY$6th1K`^tiC{Zjwj8N>G?e^QCI{;E#T z#PC}1(_S*L|BU=*JnhdNP4;iNZ&}R0D&j9cl;_$UGJLms+ zpq3){kM%-?THo8UG;cZyoFD|J>z{n16l5Cw$z~zy8eyG5i$x zO?w{X|9Rj*zt214Vs_>qmT$0MqvQM-PDcE-+Xnl0XWksc%x~I%Kz=ix_Qlz${*y)e z#r(g-^+I2f)cq-z{PZ{Z7GHpi; zbA4%_8rTmbzZp+^|MQ0U`!3ua^PhnDMJ3YxZ*n~K8^38Ufc)!U9O|#%ckwRfe;N7L z6d2);I9o1;drw}webUb(`~_K;#PHqVH|<{{zZp;a#(C-fiyO+u{JSFl@RGs)*81l# z`AvHv5r5TQ*FUy%NDS`n(NX-5^>{S=G@l)6DisAf-zhPb* z|NE-X#qe_QoA%FzAAIA_s`RW1wzQmEScs{<ow2;H@@I$mN1FS)8zr8LFTQS=-}M!L_kmXD;(vI5UZR=5U8%bg&HR%-81CMU z{N026Bj=8EnZHDkKV{Uy#%BK30}eDc^I!SvK=%{m$84Ig-m+^4yWNogP>{bS=KuT) zgZ-I{FVCj^ftAa%SH70&uY0&v?0OBu{6FZldG}?v9`tEX!Tg)<*|fXu3rAx3*4a1g zoaqnt?|q?iEIxhwzMVZ^NcG43&^i`h4)gDe_}lL~7heSP-}Ta_-Py07i(mf1yhJnq z3C!QjKMnKWZ{#0?`8PB2AIMzT*v!8t?LcEQe>Kd%pOODE%-=))9YKE1snMYv-huC? z#nyBF(1K2-1?O~(I~b466XRaR1=D=zk}SXC*SU5rzGt}C$IbHdFZw)tJq7_BH4Gk*A#|eyV%qF+XYljL)2o)%*GH6rAaR z$E^vTomqTNo9UN4Z|kOYZ_eJ*t>|%Y){s8_>f{@|S`S~e`Ptgz{Vl8S^tu;4?##yc zT^NVIJ2m6|+EX+7*7@+SquU{VbW@G%PV;rC9uetJy zy6>GDv8B|=FTCCNa<1_tQv#+epYcQkxNpEqz;@(Aj2KeVS z8&l`|snxv2y{7uZx}S7z$9O4>v;O72p-nTGKt7>B<*vEj;usjtu3 z+%xwHC(p>f{-Q^wA#aWxWok_D7mZ!u4adJQrD9>(*XJ>}hWe@?gT%7!uiZ!cZ9@v`?9#`wQ3 zUEFQ=dT00RGpC#d@F@=;uJ70yza*4@e_@@gGfz6xuKdz#Ubczfspm_z?>d^tU-)ug zyf-@OO~7~)jCZSaEb;a8H#pCf8RI4%t(o{z?j6pSX`|g!nKiRNo4e6#aU#>t-~3qi zv75GelO7xGfA+)_zxed8le!lwAFJHbEh?nt`->~v?+uyp^;?Nt&BRz2)=u9W59S)sqPrPh7B zmNY+>SZ5Yu7mxA3xG*8{f!bS~z9TaI>{$ufHxzl)8+Ck)J2&B2_5%-W^|A|Ox_w$@ zxx4%Hb^5Jby{pi?bT=#SnZ~1beeA6MVS; zNgF&kbM&~BaarRA3`!e2G&5yf#_-WYGcwZ#rwmRTpO!K%b7)$PF==V%-gh%MMLg$0 zr>Kq#pq~#>9n?8y))7x$d%kvFyDp^sOXh3y*m>;v{n>SoXTJ7&+Sk>dzkPjJcRYD* zUOTTnU;BE*o7cY1_I0$c$6qyHJC8j-d;WGE@y@p}0`o$iF1X1lUAU=3Js)J{!VONv z_sTic^FxLde8S1w>dT};&P`u6jciKU)))CW}C^*#QCv0&6!p3I_a7~jWcr*L{ip2UfTU~-387?&?(EmDCKVb z-$;SKmH$b|vv=wliG< zD#~?B8n~kh&vNWjXIBz`W;@fRprX8Axt_at?|jETb#^83XSOq41}ci?Y@a&2lK3;* zne0<$pCY@G_%oMBD5Y}w?(Ti-_c)hBr#x1@zdNqlOMf`uc4csl^E}&`t^gC|?vtr* z--Rza_NlYafBc#4Ocg*y(VXp5XIBz`W;;_wP*HUC?Neu05`ShpQzcMQmKJU2epc-j z$3As-CGlsrGgSr^<-xA4-5jsH;@GFot|b1?Orgrj9Udd<*Mmv?l-GTyY{Io4;w|5L5(xBovA9AD5afrcX0R8 zu6^q4O5)FKXSy0x6wTQ_b#^83XSOp{0~JMA-#&GACGlsrGgSu_rOcpC?xhvWy7sBF zD~Ug|ov8+>C{)NNzt|b1Z6*DMzNZb{`v_?AC%#nLo0lyR1#8Kb&v7GPuT>+0K*zCd%TrUEDHHc5&@fXP^K0 zGuxSJgNmX#+o#U1B>v2HraGXa=<3_2&aNc>%yy=_prQ;~)Wm)Mrsl4F>g-D5&unL^ z2P#VP<4JCda!p#;P|BjhmD~pt z(%pv8DG$9?$*tC8^dHW*T^U^CJkNHfMqr{OTvpk=ILBDmK6Uo_k3X}WsWGT1nzMcC z>`LO#Y-dUY6-8IyK6Q2_@n^O(C4q`Exl={=l1eGAed_E=;?HbnazI5nezt;pb$V~t zK6Q2_@n^O(xuBwG&i1LZD~Ug|oyk6B_9?O}i9d4_gi@|r|BAC9eT3T-I_27GuR2A? zjr+s-wkv~coafoj)C^3NnJ>TUjRu6^q4O5)FKXKDp1%0~iBiZipFsQ{P?K{V%f&?%a; zT?tHaX0|hNzJ(#W`t6}pbam}YV2U%dov9$0DEh3m19VE0x3ioa9hW$EB{0RA+0Mi( z&Fi4gmpekIY+g6pDSq``j$H{%ab~tN@k(>QYtEgZQ#5D05}4x5Y-h4hnSF}vO5)FK zGux-83#dC&5^_3wrW|#s$HsA!KF?M(Km>55F0b%T#29WQ&#u`7Wo&Z})_ zvQJGnFjF*VyOQ`b+nMZB(;d{5&cW5SD~Ug|oyk5mJwQzvb5F7}f66D0T}k|z?M(Km z=?Q8|wR?IygZCeC>`LO#Y-h4hO)pSWG-tb#_%qv?>{Di+BD<3KGuzDesp$ji-jKxc zMV*!Hu5zh!tlY!(oVhn&$rlQ7o+>+&eQNrGnUXp_w^MD!Rjyr0{F&`c_NnOyYKrD; zR}z0_JCl8CQb0}7)wL^$KeL_5J~jP8P3iqnUuW#gm0i1%_%qv?>{D|ss3{FT8txpL zQrWdDi9fTQ$v!m$KuzJCM`O-*CGlsrGufxiK1FsV@n^P~?NgHm>QqR%eKVc;1^c(bV>D~Ug| zoyk5mLqSc^ob5{D&unM1PgyFc%~NDo5`Si!**-N*K~2%$ikd*D=$$>(I8T+G$v!pB zz)aEK$Lvbt&unM1Pfc@BQ#5D0lK3;*ne0>30@M^;UAvO_GuxT$Q_~XE6#cEpt|b1< zb|(AOv;s9ne;>0ei9fTQ$v!o$K~2$|?MmX$Y-dUZ75BRyr<*{hXr1j!V2blp4M*fK z$S)h;^KRXF&+d`XIktQJ8_uJ}C%Ge_Q@$D6)?N7OM3=tw`RJBA5_k8!XE)S;F?0BC zmkh*FcBhU?ytUUoyGKE%+<5B;UTXF|yECDWhCE#TpU$DulU(W?tN(1W`}P|X{|m1R z!g=la+Ij7|{;K)fJa!&?e)e_8)Z@C&_Ilda)tys=Wo|x*BS48 z?fUKc+1K4(?|Adt^Ree^=e6sKH?KWkdp`C${8iW4&STHdp1)m3yz|XM;3UWo=_|aV zLznNK0-a;~*SOB{`b*u(&?yhrE#?ldzSN~JeU4_YOe%SJ*>0$DoujFUqpa(`H0i1% z%XUwLPI>F>O0Uwe<-2Dy3Y1`+Sk>dzkPk;&1>`8dF}by*CXD%_I0+eqkTR8s`=V^?D^UAx9f;^ zzB3U>(RrK=eHLUB&T9tF>m2AD>->Q0oWgmgjbl3RP~+NH^AR@}@;c6A2F~LR(C0xK z7(-wHLkof5l7K{ZC*R?Uo~I*y4v%%>#*xY$#KosuHT-YeckQ# zjyJD8AA7!bUc0V%^V;*Z=VPzKOeCUcKR}J^I@@{d`PuWg>xd_B_ol5|=d92zJtKY4 z`1HXQaumynUw`g6BR zi(kF?)QiXNWmlZduW|V)UgPRzSFi6==vyrM9*w@?p9J0G_E|#FF)OlqWfX&dNr;)b?o_STz-m|pT?C( zb;wWSx=+KdSL3>a#GbFl<)?W0X(#jKY_R96arr4;ei~OE)geEP z>wE2Xy&Bgy?(O+%Tz-m|pT?C(`Q@j-^6T>?yIzg!lP-I{8ke8q<)?AwQ62KrxIX8w z>(#hEfwAYSarr4;ei~OE<(HqH5A=Mb@1^Qnq8iupnZ7YAKaI;z05Og*L?I1L-}c3ej1mb#+66B^3%BL z(f7;br*X|k-+Ysw#^tAR`Dt8v#4A5x)uZn{>03w|*L?JiEct0%ej1mb#+66B^3%BL z(RYyKr*X|k-xQLc#^tB)^T##jDr2 z;*>{u#Va10S9ZmVPy9BY;x(=~@hGnu&(E;**_Gn;nUg+iQhj!QVc8YW{Nxpn{FGOI zic=odA%DfoE`P<#U-`tZam9&8e)`*>J_FF-{`EH&{S8ll+tc6Z^|yJ&%PxP#tJk>V zlt+2RD;}FycEyWN{D0sJKI721;>4r8ir3#z^|w>y*WWz#w@%e(=NFb;@!}Pa{FGOI zic=odA%DfoE`P<#U-`tZam9&8emN_&96h+xkXFMp(kq<%iwpj>|67i4a^XYV!20)p z%klSr%VGYv8h`({9Do0}9Oi$!@%Mkr@%Mkr@%Mkr@%Mkrq5l@-ul{d2N?p^|-}+TK zzstL;vZZ%6bdDcCoZ>ycFUzlS{h3Jp`NJvBM);fuAL$oBe*xngFrEi`-D}#qw;#M>bKIH4D18rVMm_E~W6vZ?{|@?#!T49u z%V6%C!T;(zt0MLLh9>*N-}ugZb;xsGl-~3HKHlyrZTwa%O88OweF=S>pAy>oZ*?i= z|C#(FF(?Hk`Y&klLciPB4c+Rw@SzOj4kKt(r7-_tF{ zyXD*Z?)r9B+$jCf8_9l=S3Y;cu9uaKG<)tutU$ zSvN}Gn9$L=bM-oB_LUiKl>UADj$VP>>zqfMWw_KYH1zy|UTQ%LKli;U&QDoo-6%a7 zd+g@7S0zrwzK_zsKa}E)8FMD_6`YeO{mh{hr`z>s5?_W7^&W<<@hUhY=ONd<$Q7jz zhfmtutFk*_-$&_-alUG0p2^;d^An{n#W|`!=9~}p27!J@Funz`b20Z1-&~bl6}h7H zZ$E9}_qcws^HaWJew1GG)s9|j^Y@*xJJS3p-QC*Jd2{P~&aMyBd{b{?jF))1g}eF2 zMb4IC#r!D!mrq)_{U>ZCt@!bPm+yvDH%c#_ zzop-P{Vm?&MMd2xeeHvdd@oON_t>PJo~b{G@m(1I4C9wv+t^EL+S|R%&*4Yu8P_E` z4Tkk`^9}sfqh3GIha2NF8z;JFOO$YboU_4;(z`y`$UXnO;(ouZolcbg({;6-7q)fs zU*A>8jnbWiHN6*3xA#B%w5S`Uf7iKze`Q8de?;O-PL$prdu%NB*D37#D1FqYDc;T4 zk5wj}NsQ7*f12Vff=@=qnMCQM4V~k)aCUA-uJP}$iqt2-rxDKIws%%#N9nmgPI30& z9H);xlO3h!`Z&eoSzipFDE&6fy)<&wK&~i#)cy7S&fi?*uPwOOiPEbNsplR3w5z}G zseEpfzTwsSPVtf5{g;w2a7}$vFun)lQ};G>y)ni7W-E6)QTmnl*LRnGbCLUQ!M&dJ zx1nE!@jEd77WAjjTGzLr?(bhb$1Am^lpCc#{$M-Lnf{`8jM8b6itqjU#*?9LBXWzWIBkJ2Z8lHyIc?o9RyoS*+dcMjk= zBJgqc2m1A&q{Q^Q5PK!g&QUx!-H%*RdPVr0_+VAy8tnTheF2`o4&(V0uMzzy{U$t5 zHG&VG<9zB3|3q(!x%b86$}HrH(pP=n%wINVs#9-r88=EVxU#L6&}x_S=CEOIlz#D( zZJkY6&aePEzZhCV3JpL?pAKX=^>uS@?jew2Rjon*gK%ID623a>j+ zdcU{&dTkFhb4&W=+$ep^wSAq3YqfMgd#{WerQepB?EX^cJ7;VD=bb2h%R9;L#FWpy zbroLsqVy-8PjN2ZU(>(f;hKJw{sA7J_iV4~S6^1oH}wyV@tT#|`g5Bf@K)qG;6>>T zu*Vi)fA!tBDmzO51pAZkzplW0s3XvyfL_7SFNcozII;I%x&H&b8_v#ft@Q|J4#O&I6Q%2~Cip*!g3s&15iW5a4* z{wI^%=|d~KQF^Bx_5D>13b@^$IN(I-N2fRU=af$K?jL%wAEn>Cy`49x@*`f&cSiaP zpb!2NJ?)WpPVaXg_S$?h(vQ;D;koJCT&doGr5F2AdREWoZu7<0IxoC+u^Xj-TCJTk z=+bpgh2a_QClUJk$?4@7dT9tSs_I;H8 zH1=v^yr1IVFP;f>{>_5Ai*f3Qu(ylgIf6bPLB9w($ElYHbnIJq51ucucl{`RK74-0 zd!j1X-%)x^aJqPY%*I)=btf3Fh1#m&J=#wAMCq$B_Y!zM&5c}9dSapGe$5`YIA69X z;YaB&Y-;NzA9>ID?81RQ^|pVaKfb)JQ-9q1&dC#Lew1Da&rN&h-s;>@xr863_k60E zyR6vl-l1QMyHR?h$C8~X&OvX;E2(aj-s}jTv#K2MzAc#MM(L?1oB0#x-s(A(OSn<` z{A=6z1&-x)AIh`Zn+N?u=#KjTi|EVV~a-;NjCinF|D&Ntc z{XjuCN>6;Xjo+m5`F_5m4>?i#M(nXuUzT%gy|*gS*1rhGYvJ!3`>;=!@I6$ZFEezG zSI6Hp-iFUAyhk(jYl89nF%Ev0oVjquqV(I~!}mnDW8X*VIq?3Ae{0Fadn@UqEgkR6 zV(-5eoqLb=r#krm)AwJQxsv^++w=G<2R`aV>GwD6f`R*F%ulmOeBi*`3@rr=PNBixZ{)_;#|Jqw0^&1#5PD)N?`47wEYI{oTGP z&Q}GRxpnWm#5eVKg7G>S-+8K^cg^0G?w2P^N9rv{Ci`34<#a!KV2jrR`WEO1pmSXM zp&>2&>l)1Qn$9ojM(O{2wS$*;>x6>xBp2PDg&b%L`^R;L~@SJGtb$%cB_#SN&&LMpMRDTiY>lys5 z<#ptW(ogMa;g>x-!FhB|DK|>L{K<}9#)52TTlZmZl%D6cj?UZVb~*X$4RfRPJ3npV zRzE$-+25g*8>MIDZ|RnwGR1r8gOYxf{`Q@noE6_cPr9kTe|6yk?!hewohbdQ4{Cc~ZEWSvIR9cdN)s9R%u*<4$<;`Y3lKF!cM z{_EKp?(@xy@A&b9B~Ma+4*COuuJL+%e{GQYafW~AA2wr_Sy49|3_{}||byBy1Y9Qwr=?^yWPn(9s(Rn2+n^sb#{pihII?~7eKHU2!tPpm!LpvTfte!GV~ zFG^q0=j4v-9vS7PH1V7$eQE22#P=@P;OwY1#*fnbR6UkmX2VAB**%$VU+AR+J)_C7 z?9R|PVLb06Q{1I56>_d?|8>#@(3e9W9OxV$1O4QzDgK>T7WLjd_U$g}o1r%ibd8VN z`|CEXSCoEe=2wkIV!b*nc-o87$JRTR-Qmb)uVh-Le;xGpfnK=IvFvWpOJKbI>Y9o5 zs%>==8)v#v`o>G9x;M?KGyU%mc4Y&MknFTOyAVs=z1)BCB|!EyzbB`Zr+Z?J#XpvyQrV(P~1BWy-qN`3;LQF zQ~XM+e|mq(lPmDJF*fGHh(~Z)5l$q>TFWSM|K6u%#o`Jp-dKc)|V*JJQ zWxL$!lij=BcFr|tmM2laC(s?}_d#!i@tR#vH)x4{xB~kyO22d0H#_z|Jj$Kd+;gJz zWnGUYRv5L>NqrZ4sq?YKOP~+5^tAQ~*RzBP zhrR}S`McXWGa6_4Pc1#X>(V~$y(m5EvBDf*zUO44a(gq}pKg5Gi_%+eubKVipsn6R zc$|;YyCfY;%-FHn`E^*P`*Pi5iL;>p66iAn{k?Cq+!4(?dnrrr*cGK;Uuv?yEUAOj zqsg+QD1FllXScP%dM(0wMd_>GI@#zEtXHEJo)e{CTH#pY+$T1AAK|gOYSm+jOQC-N zy$bXt(BFq%u}wnuk@Gh=pW(S6N}p6D%Wbsu_^yL%I(SifLc=V-%r}RVF3f1}MCrNl zxKV@;9%#CGl=o)i{`KGf6Y9Ls@fG3UerlgMA0*t!#7OqK{k16cJP_S3%c%1px^0R$ zKP249z{v9(gf6m-s5%&doX z>qatS&M@4_#7NeqNY+Dk&6f4jM>P?11;UL?r32B;xMhGTx+$2eqtk zCTlV$K*X&5hasbpiIKG-isZW0f#`N_?zg%St*v%0hKxogM%IHUvI6w_5HWMVHGpWp z5mUmAOpI&@Q6zUnBZy|p{ni+wnusakMkYokLKMlp#21FT8Jzpgf#^CBQ^Ji*jO0r@ zMRFH5f#|k#?zg58tt~Mn+{nbpW)MYkmo|rpnft8;MEi}H5^iK-WJ`!5%R_Gk(QLWj zT0>M5F(ur{#FNnmqMOBeGLktS{KvQDp|^#InV1r8WMX7Hh$4A%+Cy}EJoj4%h}M>v z5^iK-WJic1dFDDn#LWHH8KV70ObItKF|rFpkvy$kA)0Lk=-nWyiI@^@WMX7@h$4BK zdq8w^J@;Erh^`YcCEUow$X*ad@^PRyM7QyCzx9D=ZHX!2MkYq~g(#AbApIa>=6*|o zXulCt!i`Lf><>{Scg3|3&6fLZ07NwrQ^Ji*d~8aE=;nJqHl;!IBLHL`2oW6bDqWwlp2{$q^ayUehe7qb1 z(QLWjMnY5*F(ur{#K;VYBKb%=3Zfq?;C>qo(RCuGgd3R{nF&!OABo36^s@-uZ`VPz zw#1ZhBNHRXLKMlz@Np0^bH9y;XulCt!i`LfydI)R?urQz&6fLZB1AP2Q^Ji*eBPJ@ z(T^GM*&z#}A5|dpWQdrFDd9#YMoxh!lFutsA^Q0S?zd?Wtt~Mn+{nbp=@3OWhCTx# zX70C{5bZZ&O1P1Uk+UF*OoTogqS_d|4)hx#`k4vtw|_viw#1ZhBNHQUf+*63eltYO+;0mY+Hb^^a3d2V7eW-t zU9pG~{CBY2Z;K(SiI@^@WNHGr1)`h7n?k=8qMOvod>cf}#FTI&6C-bjD6$#!J0Q9p zp8IVHL~Bb-2{$q^aw$ZS&7m)Yh?)CsIYj%7m=bPeV&t6=MYe!`7euq=ep>-iO~jON zBNHQ6LKN8&`rQ!SOwavx4@B3Am=bPeV&p1_B3nVf7oywtx!>-CXl;op;YKD#-Vae^ zYv`*XV&;BZ1JQmXri2@r82JE1kxihlg=n_iZx2FL6EP*+$dnhd4x;zD`Jg`p(L3li z&>x2AM>&X-A>l?QMm_>jWPa%DA$nKOs7E3CnGs^Lg&Ua|`4~iz1)x6;5p!GUPeAm8 zCd8C*BNHPxKoof)^o=vyJWPQ;XOBNHQ^ zgebBQ^lcEmtM34PJ48Q+LQDxaGBI)oM3IG|?}UiCBlK*Det3nL5^iK-);YKD# zz5-DsS9mW(SGYU$S0TDi#FTI&6C+=PD3UAuIz+491NuK9`gs{*O1P1Uk#9g0$rXMR zBIcgZ--76eY=|l0MkYqS4N)X_#XAtqwionwA*zX(5^iMTitb|{{MUh8<@bn#|G2R? z^!Fk9(HP=BkZ>atBR_yBk}JF)qE%6EP*+$i&FA5JkpTIOp%Ho(@}1VEz0NF(ur{#K>GmBv&{$ zuvUEta2{a&&=N5v+{nbp^NdLDit~Xr+o8Z00IMcqO1P0J6_OX8x(;c;`N$Mp;U>WO zf%VFam=bPeVq^g$k}G^6aqu6}H3cpRtk=fGlyD;xBMZS(k%NE>69+Xl11qJZmH!?A@lo81l zE)A?zZwXumSg(zVDd9#YMwT@qxxyD4%&maS0qgZTF(ur{#K=pG$W-79GM9P$BQ4y;$Od4aD0)+;k&`h**qib5*DQ=fw52d)ULSJjNFWH1xc zC)~(X3{n}Ms;L0*l}03^t}>X3FNA~}nTkWIz*C=s(5ou2W<%zy4QAp(kZ>bY2}m_~ z>Jx{8z}12E3YN?@3})iOkZ>bYNys(u)TbcKR})yTs>xi-U?!%78<|Q$65y$tn6I`G zN#;5RGcjivZe%I~sS8hCC$4fmU|lCN*Eg7n=@V{bDg$W%PkrLR{nZdyYspNFfR%}u z5^iKF3uz2beG0<;l?bf;Mdl=fnV1r8WV#sQz*9AGf4N2^nVT5Q#FTI&Q#nXec(^M_^qiGIuhVi7DYmrpqCn z;i*p?xWBppYb}|nE3h&VQ^Ji*S3tVKQ=fuxe{~1e{vvY^gPE8TZe*$e=?PEO#QoLF zh$M4wgPE8TZe*$m=>t!F3c~%>7g)0)b3cQbm=bPessu@ar#^Au{^}2`wIuVk1~V}w z+{jcJG60_X6omUL69uBOvEDt;aSeb|^;YOyakdg4zry$&48Nk|K zmjjOi7Bev=+{kn_WHdZgQw88mBa+NxfW=Hq2{$rTgIotseG0<;H5OR2A@ewcnV1r8 zWU3As4^MsK!2NYSu-1~y6AWfzO1P1!24o^U^(hGV*Cb%=FEVEt%*2#%BhxjI$?#N7 z++S0SNHR|~n29OjMy9JE)8MJ=R33Obu&xuCXBf=HlyDJtacNnd(6P z0Z)Aj!u@peC7Bl)%*2#%BU3%dVtDFP5bm#A zfVIEKe5=7sObItK)rZ^$Pu0Zzb-NKs<~s~#VoJD?sU~CzJawJ8!b^d5oyfe*U?!%7 z8<`qHmcvt@IB3OiT$kGBt;6g{Nxb{(91gB=a_dnV1r8WNHD~4o|&{=l52 z2{$segk-~0@0hv2b^&WG$?O@-#FTI&Q!9uMPrZxh{@M+!{YB=d3}#|VxRI$f5*NH3qJg}}4nO`uNi7DYmrhJeW;iJ%)zl97H6xPDuN%z7 zlyD={g^+*3Q}27*1HS>R*^v27gPE8TZe%J5c?+KU`#=Zaw}JHu1)1M5n29OjMy5iL zcj2kO4|D|H2dqy`$o!tcOiT$kG8Klr4^P$93HSpelFa)JW@1XXktr|aLwM>saa|4o z>pGG7putQ`2{$rvRX>8K_D>h!L%{lkqBHQv#K9*N#PkU_GI2!@!&CdGEASCueQLs} zPYh;avV|L&xT2rJQ#Ex1{>+FZ^HGDDm=bPe;)))Fr>;wP;NxTpW<%x^1~V}w+{nZg z{T!a!KRtj?0_zhBGM_S-i7DYmCa&lg@YMe4349t@pPG>QOM{u15^iMTihc!8)zl04 zYa^1(-x$oqlyD;x_s_TR)OF&zd-qry2&_*idISFi ztiQYy(#1;J+p4vZsfqwzkrzVX0)nFzjTey*lD|!Z=s;M9FStF9nIdc8ZOdK2I z_-~C&T+y8H)OAS#&IPR5kU2N7W=l*7H!^WW^T1R4r$6v{!1~mL%;y`-#FTI&6Ib*C zcxwM#3!E2NpR$oTpTSH_2{$rvMf1Z`H4OkR5JZlCxw1><3k_ysO1P1U`==m0b)C2_ zg@ARP$XwW9CZ>cNnYgM&;HfK`27D2jg3mTmfr|p`FYmJjL2rd zHG#!UObItKaYbvvQ`e;ha00MqL+0ARs)?8qZe-$$)`6$?PfOssz zVaWq*deYR!uv2YkU_dl7QIZYI1;A|$%-Nff#GMQ~AR1YCUD_KKGIcO8YwT#@ZU%-K zO|vs|(5bWG$r`#?xR-&+bB<{Y`mTm$Jg}MbI^gbxow%QY0nu2~I7kn}G7-3^fyV-y zH4qOl?0{%wqNTTCnE>3!z^u8ig$EfJW;8O{)n1RW6vLA>_qXs+1H+6arfUrgBhBhr zQ>tMn9%*1eG&1oDrx_N`ZlHl#qd6PmOv4U{My8pN!G>inaJqqK0S~e8I0M6sMy5Fs zbKW-q4>LSx0}r?GL<7T&MkacWFf8+d&Fe4|IK!|LPcbkc8kt!AD8n)jc(j38vw2;J zXBc)sG&1qJj4>>%={f_Gd8~!!7#LR!Z#QgW;8MlhfFXmqkzpT zIt+M{VJE)Xz<_9E8Ue{NETe%Z8+atJd4-7=8+Jf6GBL+g!;%3!&A`kw-NLsU7-lpw zF^9PpnZPp*PtJapg_ju^W;E3_+pw?(b8W~p*RT_>Ffbq*nRtcg85Y(w-@u%$xmLuh z3_BninX(`^8kT9m|1j_*;F~PG+Q2ZQk!do-T-E8o3k=UGzzZ$>pn+jVBNIIr8I~Eq z<|?!1TMRq#BL)UUBNMB?)v!zjzRkd_*<5wv#|=9mnwah|Ec9GrVAinI!kY|Co^wpR z!shw*U?+{wT&qlsy)VPQ?? z&STB%3_Ec*0|TOwiGvRr7LGk^VAf>rMB-kC9T1ICeCAwlSoqBNsDb%x|CojQ85m|X zGV!&Exo7zt{Dk4jS0EcKJix#(qmhY`8x0F zU$gKH28J1pHSwAAb;H7E#(x@^uN&U5@XZE>8I4SQZStmJ;dAg?2IlLAw=KNbz%Zkc zi8Z`qSjhaYf%!UNpM`HXFwAIVVh!&Z7S8s41M?Nd2NqstV3^U!#GLyL3up78fys2h z!Yd36Gn#5TXjnMAj||M&AF}W&1C!?*6Q4OhHY|LmJZxY-+aIy;Y6HWJ#+vxrxvh<|~eq7B(OE zVMZepJx>{)oXr;oW=*FpY(CDzjHcOrX?U`xuMEtZzqYXXxK19t=Wg1%b)b4)$`Xk#3E zjK?}VN)`GdY-&@-On^k-i*=ov?x3}H-x zpy%ZwW;}cPvo99(@^1^w82YoPoqh43m%SY@eaOe2cJ?KLUiS9D^kKd1X=h(D=w-YrGS5+IU^q)6Twh(3e3^8|TknxNI=S`O+qQF?5b` ze(Z(I1!J5KZNis8=NRi}FMMe*#(HQIz6?6YSRZ?0>a2^saQOgVj-EEw$6ok~V2t(A zCR_nJ$5!VG$5_FESKK8MxC(mOSRZ@g zs=*lRqfPi~=p18x?1ifZW2}!h;p)&i#`@R`*9gW~4{gHNK<60iV^2(-b+H$&8Q@xh zjrGw-H~~7xSRZ@g+QAs>qfNLDbdIq;_QG|8G1f<$a6RZ8V?FGJ>jz`3k2YfJtc$&H zg8(-SY^;wy!i}JFjPZXArUKH7v6p>vG&u@_DX##kS1!VYwfu^#rqZZO9BXd|Z1 zy4VXh32;;Nw6Q++!p(v))<>IgbLbpnee8u>1Y@j^HsO}gImY_f3%3f!SPyN&t)X+Q zNzfBhXI<=tQv;lao;KFUUU*DvXuv35Z(+%*_$AN0cAfH~G7=!LrnV;zHD zxCb!DSPy&Qp23)U*2kKdpS^JJ01pUktb;xrXWs|HG1kFexNk7VI%pH_2c2WAgS~J{ zFvfal6YdY4W2}e0@U_91de+C9n4i6HYJj;uw6PBMsX@+=?d)l1uklRiv~iq0}h9DJNxS)v~iq0{n<~1aEx~L#Ec$!b@nqMvx0th(9a3_ zxj{c4J$-0rPdj_s+0TQ}#&P!aXMY2PW3;m;W(+ZV`myIY$B5YzQ)iEN7U>!3gT|*1 zt`Pfvf6l+#|NIqbo;hkv=IHd%<7?ImEeh7_@Ahw8fpaSxMev_ke_xb@*rJH$zk9nV zPgMWko&Ud^KWbk8%6QJ-7o~P+QT~|10*~jH7Bct;V9%`M_X8b#7Qc6QCcB&}}Bd`Uwc#@FOg{ZYdHLpZtaOV+-OJ)=wwsMj2t* zbt{gr_~ftK()A++vJ2}c2UMT1?3$0T_~b9F+ug-4tXuU}pRnwjkFfaUuiKz?>$>d1 zx)ELV3Cphe2#Zht!n&DU{KC35T=faduK5UyPyV{?RySeGF05OsRiCiznvbyf;8I!n*ZU^$E+a`3Q?o z{<^JDH<`*VtXoD^pRnwjkFfaUFRYt0#V@Q|Emfbe?3$0T_~fszVe4z^vJ2~r@TyN( zcFjjveDW98m)XTHtgoi4K4IB4A7SyyUyo;cywhz}!oNK}rZ#idubJWq%dT7KgvF;D z;)L~hCw^f)KI+CWVcB)-nXvfeFFxhdZ9KxNPd8Kv%dT6tgvBR+VdWFQuX;!{4|rXZ~P zbi;_S?7Ai8HyqqvB!BU%KJg2yKHX>`ton2-hp_nMFFxhd`4CopI-kO_>pTmKPyWKn zCw^hor}HT+yUw$)_~ftWdHek7b%A|eZGYMIx^S|n{UoY7HvfKQ>@dY>E+t2^1%YMC}y5ujr>elnS?8>9p3$m*&^Yy}5 z+&FIf^G0&nZGOF;P#*jFUv=597i|CE?7{0EJ->@jb=%MXs>^=8pt|HQyXGx^*_B7< zQs+c<=^V>$`^zp~#mirLbS`CAT{_3I+y1iK{PH*dIP|yv_Z9g23jBQq{=NeL?_7bL z6jj3&YVq056Vazksd24=Wib~L?(S`z@Xm$2gF&& ArvLx| literal 0 HcmV?d00001 diff --git a/TO_MERGE/ace/sys_cargo/slingload/ace_slingrope_P.p3d b/TO_MERGE/ace/sys_cargo/slingload/ace_slingrope_P.p3d new file mode 100644 index 0000000000000000000000000000000000000000..02334c7ea8613f9a39af0f7f65d7653e52b429e3 GIT binary patch literal 120969 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 z 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 literal 0 HcmV?d00001 diff --git a/TO_MERGE/ace/sys_cargo/slingload/data/equip/m_rope_ca.paa b/TO_MERGE/ace/sys_cargo/slingload/data/equip/m_rope_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..096a14cdfb8ea0dc1e975b1589cb1043b358b7c1 GIT binary patch literal 43998 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 T=t%2NtEILlUjO$04Hx~t^|v{F literal 0 HcmV?d00001 diff --git a/TO_MERGE/ace/sys_cargo/slingload/data/soga.paa b/TO_MERGE/ace/sys_cargo/slingload/data/soga.paa new file mode 100644 index 0000000000000000000000000000000000000000..1bbd1d5500c51aeec3fce727da7f72f9a251db9d GIT binary patch literal 21977 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 literal 0 HcmV?d00001 diff --git a/TO_MERGE/ace/sys_cargo/slingload/fnc_addAction.sqf b/TO_MERGE/ace/sys_cargo/slingload/fnc_addAction.sqf new file mode 100644 index 0000000000..0d7b49b926 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/fnc_addAction.sqf @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +#define ACE_TEXT_RED(Text) ("" + ##Text + "") + +private ["_helicopter", "_currentAction"]; + +_helicopter = _this; +_currentAction = _helicopter getVariable [QGVAR(cutAction), -1]; + +// Prevent double action +if (_currentAction != -1) then { _helicopter removeAction _currentAction }; + +_action_cut = _helicopter addaction [ACE_TEXT_RED(localize "STR_UA_ACE_RELEASESLING"), QPATHTO_F(ua_release_cargo),_helicopter,99,true,true,"","(driver _target) in _target"]; // err, driver target should always be in target :P +_helicopter setVariable [QGVAR(cutAction), _action_cut]; diff --git a/TO_MERGE/ace/sys_cargo/slingload/fnc_attachSlingRopeToCargo.sqf b/TO_MERGE/ace/sys_cargo/slingload/fnc_attachSlingRopeToCargo.sqf new file mode 100644 index 0000000000..48d935d55c --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/fnc_attachSlingRopeToCargo.sqf @@ -0,0 +1,23 @@ +#include "script_component.hpp" + +PARAMS_1(_cargo); + +if (GVAR(disabled)) exitWith { + _cargo spawn { + private "_magHolder"; + sleep 2; + _magHolder = "WeaponHolder" createVehicle [0,0,0]; + _magholder addMagazineCargoGlobal ["ACE_Rope_M5", 1]; + [QGVAR(wh), _magHolder] call CBA_fnc_globalEvent; + _magHolder setPos [((position _this) select 0) + 2, ((position _this) select 1) + 2, 0]; + }; +}; + +player playmove "AinvPknlMstpSlayWrflDnon_medic"; +sleep 5; +player removeMagazine "ACE_Rope_M5"; +_cargo setVariable [QGVAR(hasSlingRope), true, true]; + +// TODO: Process + +// TODO: Visual attached sling rope to cargo, to indicate something is prepared. diff --git a/TO_MERGE/ace/sys_cargo/slingload/fnc_attachSlingRopeToHelicopter.sqf b/TO_MERGE/ace/sys_cargo/slingload/fnc_attachSlingRopeToHelicopter.sqf new file mode 100644 index 0000000000..42c77dbe43 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/fnc_attachSlingRopeToHelicopter.sqf @@ -0,0 +1,116 @@ +#include "script_component.hpp" + +PARAMS_2(_cargo,_helicopter); + +//TODO: Check if helicopter is already filled with cargo aka soldiers, if so, make sling rope break if speed > 50 +// Cargo becomes damaged and slingrope unuseable + +// TODO: Cargo limits +// TODO: Move to process.sqf ? +_crew = crew _helicopter; +_passengers = []; +{ + if ((assignedVehicleRole _x) select 0 == "CARGO") then { + _passengers set [count _passengers, _x]; + }; +} foreach _crew; +//_passenger_weight = 80 * count _passengers; + +private["_cable","_pp","_reduction","_rel","_slingrope_type"]; + +_bboxHelicopter = boundingBox _helicopter; +_bh = abs((_bboxHelicopter select 0) select 2) + (abs((_bboxHelicopter select 1) select 2) * 1.2); +_lh = abs((_bboxHelicopter select 0) select 0) + abs((_bboxHelicopter select 1) select 0); +_hh = abs((_bboxHelicopter select 0) select 1) + abs((_bboxHelicopter select 1) select 1); +_volumeH = _lh * _bh * _hh; + +_bboxCargo = boundingBox _cargo; +_bc = abs((_bboxCargo select 0) select 0) + abs((_bboxCargo select 1) select 0); +_lc = abs((_bboxCargo select 0) select 1) + abs((_bboxCargo select 1) select 1); +_hc = abs((_bboxCargo select 0) select 2) + abs((_bboxCargo select 1) select 2); +_volumeC = _lc * _bc * _hc; + +_tope = 16; +_abort = false; + +// Find the correct sling rope model +if (_volumeC > 0.001) then { + _rel = _volumeH / _volumeC; + if (_rel >= _tope) then { + _slingrope_type = switch (true) do { + case(_volumeC < 150): {1}; + case (_volumeC < 200): {2}; + default {2}; + }; + if (_rel < 20) then { + _slingrope_type = 1; + _volumeC = (_lc * 100) / _bc; + if (_volumeC > 100) then {_volumeC = _volumeC - 100}; + if (_volumeC > 20) then {_slingrope_type = 2}; + }; + } else { _slingrope_type = 2; }; +}; + +if (_abort) exitWith { + _msg1 = "An error occured with the slingload feature."; + hint _msg1; + #ifdef DEBUG_MODE_FULL + _msg2 = format ["H: %1 C: %2", typeOf _helicopter, typeOf _cargo]; + LOG(_msg1); LOG(_msg2); + #endif +}; + +// Execute the lift + +_Obx = 0; +_Oby = 0; +_Obz = 0; + +_dist = -(_helicopter distance _cargo); +_cargo attachTo [_helicopter, [0,0, _dist + 0]]; +_dir = direction _cargo - direction _helicopter; + +if ("Air" counttype [_cargo] > 0) then { _dir = 0; }; +if ("Ship" counttype [_cargo] > 0) then { _dir = 0; }; +if ("Landvehicle" counttype [_cargo] > 0) then { _dir = 0;_slingrope_type = 1; }; +if ("Motorcycle" counttype [_cargo] > 0) then { _slingrope_type = 1; }; + +_center = getArray(configFile >> "CfgVehicles" >> typeOf _helicopter >> "ACE_GeoLifterAttachment") select 0; +_cx = _center select 0; +_cy = _center select 1; +_cz = _center select 2; + +switch (_slingrope_type) do { + case 1: { + _cable = "ACE_Slingrope_L" createvehicle [0,0,0]; + _cable attachto [_helicopter, [_cx + 0.02,_cy - 0.1,_cz + 0.4]]; + _helicopter setvariable [QGVAR(slingrope), _cable,true]; + _pp = _cable selectionposition "Anclaje"; + _cargo attachto [_cable, [_pp select 0, _pp select 1, _pp select 2]]; + _cargo attachto [_cable, [_Obx+(_pp select 0), _Oby+(_pp select 1), _Obz+(_pp select 2)]]; + _cargo setdir _dir; _cargo setpos getpos _cargo; + _reduction = 1.0025; + }; + case 2: { + _cable = "ACE_Slingrope_M" createvehicle [0,0,0]; + _cable attachto [_helicopter, [_cx,_cy,_cz]]; + _helicopter setvariable [QGVAR(slingrope),_cable,true]; + _pp = _cable selectionposition "Anclaje"; + _cargo attachto [_cable, [_Obx+(_pp select 0), _Oby+(_pp select 1), _Obz+(_pp select 2) + 0.5]]; + _cargo setdir _dir; _cargo setpos getpos _cargo; + _reduction = 1.0050; + }; +}; + +// Set variables +_helicopter setVariable [QGVAR(isTransporting),true,true]; +_helicopter setVariable [QGVAR(cargoHeight),(_cargo modeltoworld [0,0,0]) select 2,true]; +_helicopter setVariable [QGVAR(cargo),_cargo,true]; + +// Visual for helicopter +localize "STR_UA_ACE_CARGOHELIHOOKED" spawn ace_fnc_visual; + +[_helicopter, _reduction, _cargo] spawn COMPILE_FILE(process); // Main process loop // TODO: Evaluate some more events for this + +// Add CUT action for driver of helicopter +[QGVAR(action), _helicopter] call CBA_fnc_globalEvent; diff --git a/TO_MERGE/ace/sys_cargo/slingload/fnc_detachSlingRopeFromCargo.sqf b/TO_MERGE/ace/sys_cargo/slingload/fnc_detachSlingRopeFromCargo.sqf new file mode 100644 index 0000000000..5605c01d48 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/fnc_detachSlingRopeFromCargo.sqf @@ -0,0 +1,8 @@ +#include "script_component.hpp" + +PARAMS_1(_cargo); + +player playmove "AinvPknlMstpSlayWrflDnon_medic"; +sleep 5; +player addMagazine "ACE_Rope_M5"; +_cargo setVariable [QGVAR(hasSlingRope), false, true]; diff --git a/TO_MERGE/ace/sys_cargo/slingload/fnc_hasropemag.sqf b/TO_MERGE/ace/sys_cargo/slingload/fnc_hasropemag.sqf new file mode 100644 index 0000000000..98a50e5ff5 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/fnc_hasropemag.sqf @@ -0,0 +1,9 @@ +private ["_r"]; + +#include "script_component.hpp" + +_r = ""; +{ + if (getNumber(configFile >> "CfgMagazines" >> _x >> "ACE_SlingRope") == 1) exitWith {_r = _x}; +} forEach magazines player; +_r \ No newline at end of file diff --git a/TO_MERGE/ace/sys_cargo/slingload/fnc_menuDef.sqf b/TO_MERGE/ace/sys_cargo/slingload/fnc_menuDef.sqf new file mode 100644 index 0000000000..521bfcc194 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/fnc_menuDef.sqf @@ -0,0 +1,117 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +#include "\a3\editor_f\Data\Scripts\dikCodes.h" + +private ["_menuDef", "_target", "_params", "_menuName", "_menuRsc", "_menus"]; + +PARAMS_2(_target,_params); + +if (isNil "_target") exitWith {}; +if (isNull _target) exitWith {}; + +if (typeOf _target == "Weaponholder") exitWith { closeDialog 0 }; +// Needs to be fixed in CBA if possible, objects that inherit from any class used for interaction, but should not be able to interacted with, +// e.g class Weaponholder, which inherits from Reammobox! + +_menuName = ""; +_menuRsc = "popup"; + +if (typeName _params == typeName []) then { + if (count _params < 1) exitWith {diag_log format["Error: Invalid params: %1, %2", _this, __FILE__];}; + _menuName = _params select 0; + _menuRsc = if (count _params > 1) then {_params select 1} else {_menuRsc}; +} else { + _menuName = _params; +}; + +//----------------------------------------------------------------------------- +#define __ADD_SLING (localize "STR_UA_ACE_ATTACHROPECARGO") +#define __REM_SLING (localize "STR_UA_ACE_DETACHROPECARGO") +#define __ADD_SLING_HELI (localize "STR_UA_ACE_ATTACHROPECARGOHELI") + +_displayNameCargo = getText (configFile >> "CfgVehicles" >> typeOf _target >> "displayName"); +if (_displayNameCargo == "") then { _displayNameCargo = typeOf _target; }; + +if (_target isKindOf "StaticShip") then {_target = objNull}; // disable LHD, which is a "building"/"strategic"/"StaticShip" + +if (isNull _target) exitWith {}; + +_cargoHasSlingRope = _target getVariable [QGVAR(hasSlingRope), false]; +_cargoIsLoaded = _target getVariable [QGVAR(isLoaded), false]; +_cargoIsEmpty = ({alive _x} count crew _target == 0); +_cargoIsAttachedToSomethingElse = (_target getVariable ["ace_puller_attached",false]); // || _cargo getVariable ["",false]) // TODO: sys_maintenance_towing // TODO: set a more global var then system specific +_playerHasSlingRope = ("ACE_Rope_M5" in magazines player); + +_playerInCargo = vehicle player != player && {player in (vehicle _target)}; +TRACE_5("",_cargoHasSlingRope,_cargoIsLoaded,_cargoIsEmpty,_playerHasSlingRope,_playerInCargo); + +private["_helicopter"]; +_nearestHelicopter = if (isNull _target) then {objNull} else {nearestObject [_target, "Helicopter"]}; +_nearestHelicopterDist = _target distance _nearestHelicopter; +_helicopter = if (!(isNull _nearestHelicopter) && {isEngineOn _nearestHelicopter} && {_nearestHelicopterDist < 11}) then { _nearestHelicopter; } else { objNull; }; // If helicopter is flying and distance to cargo < minDist +// TODO: Might get fuzzy with the fucking LHD crap carrier + +_helicopterAvailable = (alive _helicopter && {!isNull _helicopter}); +TRACE_1("",_helicopterAvailable); + +_displayNameHelicopter = ""; +_helicopterCanLift = false; +_helicopterIsTransporting = true; // true, Failsafe #1 + +if (_helicopterAvailable) then { + _displayNameHelicopter = getText (configFile >> "CfgVehicles" >> typeOf _helicopter >> "displayName"); + if (_displayNameHelicopter == "") then { _displayNameHelicopter = typeOf _helicopter; }; + + _helicopterIsTransporting = _helicopter getVariable [QGVAR(isTransporting), false]; + _helicopterCanLift = (getNumber(configFile >> "CfgVehicles" >> typeOf _helicopter >> "ACE_canLift") == 1); + + TRACE_1("",_displayNameHelicopter); + TRACE_1("",_helicopterIsTransporting); + TRACE_1("",_helicopterCanLift); +}; + +_disable = _helicopter getVariable [QUOTE(ACE_Slingload_Rule),[]]; +if (typeOf _target in _disable) exitWith { + (localize "STR_DN_ACE_HOOKERBLOCKAGE") spawn ACE_fnc_visual; +}; + +_weight = getNumber(configFile >> "CfgVehicles" >> typeOf _helicopter >> "ACE_MaxLoad") > _target call ace_sys_cargo_fnc_weight; // TODO: Alternative mass and/or ACE_Weight + +GVAR(targets) = [_target,_helicopter]; + +// Attach sling rope to x +_menus = +[ + [ + ["main", _displayNameCargo, _menuRsc], + [ + // Attach sling rope to cargo + [__ADD_SLING, + { [(GVAR(targets) select 0)] spawn FUNC(attachSlingRopeToCargo) }, + "", "", "", DIK_N, 1, alive _target && {!_cargoHasSlingRope} && {_playerHasSlingRope} && {!_playerInCargo} && {ACE_SELFINTERACTION_RESTRICTED}], + // Detach sling rope from cargo + [__REM_SLING, + { [(GVAR(targets) select 0)] spawn FUNC(detachSlingRopeFromCargo) }, + "", "", "", DIK_N, 1, alive _target && {_cargoHasSlingRope} && {!_cargoIsLoaded} && {!_playerInCargo} && {ACE_SELFINTERACTION_RESTRICTED}], + // Attach sling rope to helicopter + [format[(__ADD_SLING_HELI+"%1"), (if (_nearestHelicopterDist < 15) then {format[" %1m", (round ((_target distance _nearestHelicopter)*10))/10]} else {""})], + { GVAR(targets) spawn FUNC(attachSlingRopeToHelicopter) }, + "", "", "", DIK_G, + _cargoIsEmpty && {!_cargoIsAttachedToSomethingElse} && {(_helicopterAvailable || {!isNull _nearestHelicopter})} && {!_helicopterIsTransporting} && {_helicopterCanLift} && {_weight}, + alive _target && {_cargoHasSlingRope} && {!_cargoIsLoaded} && {!_playerInCargo} && {ACE_SELFINTERACTION_RESTRICTED}] + ] + ] +]; + +//----------------------------------------------------------------------------- +_menuDef = []; +{ + if (_x select 0 select 0 == _menuName) exitWith {_menuDef = _x}; +} forEach _menus; + +if (count _menuDef == 0) then { + hintC format ["Error: Menu not found: %1\n%2\n%3", str _menuName, if (_menuName == "") then {_this} else {""}, __FILE__]; + diag_log format ["Error: Menu not found: %1, %2, %3", str _menuName, _params, __FILE__]; +}; + +_menuDef // return value diff --git a/TO_MERGE/ace/sys_cargo/slingload/license.txt b/TO_MERGE/ace/sys_cargo/slingload/license.txt new file mode 100644 index 0000000000..7113bf4340 --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/slingload/license.txt @@ -0,0 +1,79 @@ +License (short) +=============== + +You are free: +- to Share — to copy, distribute and transmit the work + +Under the following conditions: +- Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). +- Noncommercial — You may not use this work for commercial purposes. +- No Derivative Works — You may not alter, transform, or build upon this work. + +With the understanding that: + +Waiver — Any of the above conditions can be waived if you get permission from the copyright holder. + +Public Domain — Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. + +Other Rights — In no way are any of the following rights affected by the license: + - Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; + - The author's moral rights; + - Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. + +Notice — For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. + + +Full license text +================= + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. +"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, +to Distribute and Publicly Perform the Work including as incorporated in Collections. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. +You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. +If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. +For the avoidance of doubt: + +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, +Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous + +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/TO_MERGE/ace/sys_cargo/slingload/m_ace_rope.p3d b/TO_MERGE/ace/sys_cargo/slingload/m_ace_rope.p3d new file mode 100644 index 0000000000000000000000000000000000000000..61f471e1c68921354a9c95aa68be7dd9799fd3ac GIT binary patch literal 59912 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 + +// Sling rope is still attached to the cargo + +detach (_helicopter getVariable QGVAR(slingrope)); +detach _cargo; +deleteVehicle (_helicopter getVariable QGVAR(slingrope)); // Delete physical rope object + +_helicopter setVariable [QGVAR(slingrope), objnull]; + +_helicopter removeAction (_helicopter getvariable QGVAR(cutAction)); +_helicopter setVariable [QGVAR(cutAction), -1]; + +if ((getpos _cargo) select 2 < 2) then { + _altfinal = ((getposASL _cargo) select 2) - ((getpos _cargo) select 2); + _cargo setposASL [getpos _cargo select 0, getpos _cargo select 1, _altfinal]; +} else { + _vel = velocity _helicopter; + _retro = _vel select 2; + _altant = (getpos _cargo) select 2; + _cargo setvelocity [_vel select 0, _vel select 1, -1]; + _helicopter setvelocity [_vel select 0, _vel select 1, _retro]; + + _dam = 0.00; + _delay = 0.01; + + sleep 0.25; + + _static = (_cargo isKindOf "Static"); + if (!_static) then { + if ((getpos _cargo select 2) == _altant) then { + _static = true; + }; + }; + + _pos = getPos _cargo; + + // TODO: Possible cause for statics staying in the air? + while {(position _cargo select 2) > 0} do { + if (_dam < 1) then {_dam = _dam + _delay}; + if (_static) then {_cargo setpos [_pos select 0, _pos select 1, (getpos _cargo select 2) - 0.25]}; + sleep _delay; + }; + if (_static) then {_cargo setpos [_pos select 0, _pos select 1, 0]}; + _cargo setdamage (damage _cargo + _dam); +}; + +_cargo setVariable [QGVAR(isLoaded),false,true]; + +// Create slingrope next to cargo object +_cargo spawn { + private ["_magHolder"]; + sleep 2; + _magHolder = "WeaponHolder" createVehicle [0,0,0]; + _magholder addMagazineCargoGlobal ["ACE_Rope_M5", 1]; + [QGVAR(wh), _magHolder] call CBA_fnc_globalEvent; + _magHolder setPos [((position _this) select 0)+2, ((position _this) select 1)+2,0]; +}; +_cargo setVariable [QGVAR(hasSlingRope), false, true]; + +// Unlock +if (_cargo call CBA_fnc_locked) then { + _lockedBefore = _cargo getVariable [QGVAR(locked), false]; + if !(_lockedBefore) then { + [QGVAR(lock), [_cargo, false]] call CBA_fnc_globalEvent; + }; +}; diff --git a/TO_MERGE/ace/sys_cargo/ua_carry2.sqf b/TO_MERGE/ace/sys_cargo/ua_carry2.sqf new file mode 100644 index 0000000000..66e515dd6d --- /dev/null +++ b/TO_MERGE/ace/sys_cargo/ua_carry2.sqf @@ -0,0 +1,192 @@ +/* ace_sys_cargo | (c) 2010,2011 by rocko */ + +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +#define ACE_TEXT_RED(Text) ("" + ##Text + "") + +PARAMS_4(_component,_unit,_id,_ar); + +_position = _ar select 0; +_action = _ar select 1; +if (_component == _unit) then { + _component = _ar select 2; +}; + +TRACE_3("",_position,_action,_component); + +if (isNil QUOTE(FUNC(sease))) then { + FUNC(ease) = { + private "_unit"; + _unit action ["WeaponOnBack", _unit]; + }; +}; + +if (isNil QUOTE(FUNC(sdrop))) then { + FUNC(sdrop) = { + PARAMS_1(_component); + private ["_carrier_front","_carrier_back"]; + _carrier_front = _component getVariable QGVAR(carrier_front); + _carrier_front removeAction GVAR(drop_action); + _carrier_back = _component getVariable QGVAR(carrier_back); + detach _carrier_back; + detach _component; + _component setPosATL [getPos _component select 0, getPos _component select 1, 0]; + _carrier_front setVariable [QGVAR(monitoring),false,true]; + + _component setVariable [QGVAR(carrier_front), nil, true]; + _component setVariable [QGVAR(carrier_back), nil, true]; + TRACE_1("Dropping component",""); + _component setVelocity [0,0,0]; + + { + //_x setVariable ["ace_sys_stamina_mass",0,true]; // The function is bullshit - but why? + [_x,0] call INC_MASS; + _x removeEventhandler ["fired",(_x getVariable QGVAR(carryFEH))]; + _x removeEventhandler ["getin",(_x getVariable QGVAR(carryGIH))]; + _x setVariable [QGVAR(carryFEH),-1]; + _x setVariable [QGVAR(carryGIH),-1]; + _x setVariable [QGVAR(forcedrop),false]; + _x forceWalk false; + _x forceWalk false; + } foreach [_carrier_front,_carrier_back]; + [objnull,_component,0,0] call FUNC(cbusy); + }; +}; + +switch (toLower _action) do { + case "grab": { // GRAB ACTION + switch (toLower _position) do { + case "front": { + _unit setDir direction _component; // Front position is "driver" + _attachPos = if (count getArray(configFile >> "CfgVehicles" >> typeOf _component >> "attachPosFront") > 0) then { + getArray(configFile >> "CfgVehicles" >> typeOf _component >> "attachPosFront") + } else { [0,-0.5,0.5] }; + _component attachTo [_unit, _attachPos, ""]; // Attach component to front carrier + _component setVariable [QGVAR(carrier_front), _unit, true]; // SetVariable front carrier onto component + [objnull,_component,1,1] call FUNC(cbusy); + + // Add "drop" action, GLOBAL, since we handle player only + GVAR(drop_action) = _unit addAction [ + ACE_TEXT_RED((localize "STR_ACE_CARGO_CARRYRELASE")), + "\z\ace\addons\sys_cargo\ua_carry2.sqf", + ["", "drop",_component], + -1,false,true,"","" + ]; // 0 - target, 1 - caller, 2 - id , 3 - ar=[0 - "", 1 - action] + + if (local _unit) then { + _unit setVariable [QGVAR(monitoring), true]; + }; + //_unit call FUNC(ease); // Put weapon on back while carrying in pairs + + // Stamina Boost on taking knee + pushing loaded stretcher up + _weight = ([_component] call FUNC(weight))/2; + [_unit,_weight] call INC_MASS; + //_unit setVariable ["ace_sys_stamina_mass",_weight,false]; // TODO: Fix weight + _fired_i = _unit addEventHandler ["fired", {(_this select 0) setVariable ["ace_sys_cargo_forcedrop",true]}]; + _getin_i = _unit addEventhandler ["getin",{(_this select 0) setVariable ["ace_sys_cargo_forcedrop",true];}]; + _unit setVariable [QGVAR(carryFEH),_fired_i]; + _unit setVariable [QGVAR(carryGIH),_getin_i]; + _unit setVariable [QGVAR(forcedrop),false]; + }; + case "back": { // Back position is following + _attachPos = if (count getArray(configFile >> "CfgVehicles" >> typeOf _component >> "attachPosRear") > 0) then { + getArray(configFile >> "CfgVehicles" >> typeOf _component >> "attachPosRear") + } else { [0,-0.5,0.5] }; + _unit attachTo [(_component getVariable QGVAR(carrier_front)),_attachPos,""]; // Attach helper to the front carrier + _component setVariable [QGVAR(carrier_back), _unit, true]; // SetVariable back carrier to component + + // Stamina Boost on taking knee + pushing loaded stretcher up + _weight = ([_component] call FUNC(weight))/2; + [_unit,_weight] call INC_MASS; + //_unit setVariable ["ace_sys_stamina_mass",_weight,false]; + _fired_i = _unit addEventHandler ["fired", {(_this select 0) setVariable ["ace_sys_cargo_forcedrop",true]}]; + _getin_i = _unit addEventhandler ["getin",{(_this select 0) setVariable ["ace_sys_cargo_forcedrop",true];}]; + _unit setVariable [QGVAR(carryFEH),_fired_i]; + _unit setVariable [QGVAR(carryGIH),_getin_i]; + _unit setVariable [QGVAR(forcedrop),false]; + }; + }; + }; + case "drop": { // Drop action + _component call FUNC(sdrop); + }; +}; + +TRACE_1("",(_unit getVariable QGVAR(monitoring))); + +// Monitoring script for the front carrier +if (_position == "front") then { + _count = 0; + while { _unit getVariable QGVAR(monitoring) } do { // CALLED WHEN USING GRAB ONLY ! + + TRACE_1("While running",""); + + _carrier_front = _component getVariable QGVAR(carrier_front); + _carrier_back = _component getVariable QGVAR(carrier_back); + + // Check for front carrier, when there is no back carrier within 10 seconds, front carrier drops stretcher again + if (_count > 8 && {isNil "_carrier_back"}) then { + _component call FUNC(sdrop); + //_carrier_front removeAction GVAR(drop_action); + if (local _carrier_front) then { localize "STR_ACE_CARGO_DROPPED" call ace_fnc_visual; }; + TRACE_1("Dropping: No helper",""); + }; + + // Check if the front carrier entered a vehicle! TODO + + // While none of the carriers is dead or unconscious nothing happens + if !(alive _carrier_front) then { + _component call FUNC(sdrop); + TRACE_1("Frontcarrier dead",""); + }; + if !(alive _carrier_back) then { + _component call FUNC(sdrop); + TRACE_1("Backcarrier dead",""); + }; + + // Too fast + if ((velocity _carrier_front call ACE_fnc_magnitude) > 5.51) then { + _component call FUNC(sdrop); + if (local _carrier_front) then { localize "STR_ACE_CARGO_DROPPED" call ace_fnc_visual; }; + TRACE_1("Too fast",""); + }; + + // TODO: Carrier front and back are unconsciousnes (i.e back carriers is unconscious and would be dragged in stretcher) + // TODO: Wrong animation: Taking out Binocular, Raising weapon (combat ready), taking a knee, going prone + // Allow tacticool movement for carrying CSWs + _dropConditionAnim = if (_component isKindOf "StaticWeapon") then { ["stand","kneel"] } else { ["stand"] }; + if !(((_carrier_front call CBA_fnc_getUnitAnim) select 0) in _dropConditionAnim) then { + _component call FUNC(sdrop); + if (local _carrier_front) then { localize "STR_ACE_CARGO_DROPPED" call ace_fnc_visual; }; + TRACE_1("Wrong animation",""); + }; + if !(((_carrier_back call CBA_fnc_getUnitAnim) select 0) in _dropConditionAnim) then { + _component call FUNC(sdrop); + if (local _carrier_back) then { localize "STR_ACE_CARGO_DROPPED" call ace_fnc_visual; }; + TRACE_1("Wrong animation Backcarrier",""); + }; + + // TODO: Anything else not allowed, firing, entering vehicles, climbing up ladders + // Ladders + if ((animationState _carrier_front) in ["ladderrifleon","laddercivilon"]) then { + _component call FUNC(sdrop); + if (local _carrier_front) then { localize "STR_ACE_CARGO_DROPPED" call ace_fnc_visual; }; + TRACE_1("Wrong animation: LADDER",""); + }; + //_dropConditionAnim2 = (animationState _unit) in ["aidlpercmstpsraswrfldnon_idlesteady04","aidlpercmstpsraswrfldnon_aiming01","aidlpercmstpsraswrfldnon_idlesteady02","aidlpercmstpsraswrfldnon_idlesteady03","aidlpercmstpsraswrfldnon_idlesteady01","aidlpercmstpsraswrfldnon_aiming02"]; + //if ((animationState _carrier_front) in _dropConditionAnim2) then { + // _component call FUNC(sdrop); + // if (local _carrier_front) then { localize "STR_ACE_CARGO_DROPPED" call ace_fnc_visual; }; + //}; + //if ((animationState _carrier_back) in _dropConditionAnim2) then { + // _component call FUNC(sdrop); + // if (local _carrier_back) then { localize "STR_ACE_CARGO_DROPPED" call ace_fnc_visual; }; + //}; + + sleep 1; + INC(_count); + }; + _unit setVariable [QGVAR(monitoring),false]; + TRACE_1("Carrying aborted",""); +};