From e6dbab8c8772fb2bcb31bee4641cfe81f6b0b6c4 Mon Sep 17 00:00:00 2001 From: Sotirios Pupakis Date: Mon, 22 Apr 2024 15:24:56 +0200 Subject: [PATCH] Breech operation --- .hemtt/missions/test.Stratis/mission.sqm | Bin 9841 -> 10057 bytes addons/m119/XEH_PREP.hpp | 5 ++ addons/m119/XEH_preInit.sqf | 2 + addons/m119/functions/.gitkeep | 0 addons/m119/functions/fnc_canCloseBreech.sqf | 31 ++++++++++ addons/m119/functions/fnc_canOpenBreech.sqf | 32 +++++++++++ addons/m119/functions/fnc_closeBreech.sqf | 34 +++++++++++ addons/m119/functions/fnc_init.sqf | 33 +++++++++++ addons/m119/functions/fnc_openBreech.sqf | 34 +++++++++++ addons/m119/stringtable.xml | 18 +++++- addons/m119/tbd_m119/CfgVehicles.hpp | 56 ++++--------------- 11 files changed, 200 insertions(+), 45 deletions(-) delete mode 100644 addons/m119/functions/.gitkeep create mode 100644 addons/m119/functions/fnc_canCloseBreech.sqf create mode 100644 addons/m119/functions/fnc_canOpenBreech.sqf create mode 100644 addons/m119/functions/fnc_closeBreech.sqf create mode 100644 addons/m119/functions/fnc_init.sqf create mode 100644 addons/m119/functions/fnc_openBreech.sqf diff --git a/.hemtt/missions/test.Stratis/mission.sqm b/.hemtt/missions/test.Stratis/mission.sqm index dd3f691e2dda9ea456619dd2ff67914b659703cc..9b1a187bf778fe0760980cdf00787fbe17aaf047 100644 GIT binary patch delta 3343 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 [_arty] call tbd_m119_m119_fnc_canCloseBreech; + + Public: + No +*/ + +#include "..\script_component.hpp" + +params ["_arty"]; + +private _ret = _arty getVariable [QGVAR(breech), false] && _arty animationSourcePhase "open_breech_source" == 1; +_ret diff --git a/addons/m119/functions/fnc_canOpenBreech.sqf b/addons/m119/functions/fnc_canOpenBreech.sqf new file mode 100644 index 0000000..82dd5ae --- /dev/null +++ b/addons/m119/functions/fnc_canOpenBreech.sqf @@ -0,0 +1,32 @@ + +/* + FILE: fnc_canOpenBreech.sqf + + Name: tbd_m119_m119_fnc_canOpenBreech + + Author(s): + ilbinek + + Description: + Checks if the M119 can open the breech + + Parameters: + _arty - object - M119 to be canCloseBreeched + + Returns: + Nothing + + Examples: + > [_arty] call tbd_m119_m119_fnc_canOpenBreech; + + Public: + Yes +*/ + + +#include "..\script_component.hpp" + +params ["_arty"]; + +private _ret = (!(_arty getVariable [QGVAR(breech), false]) && _arty animationSourcePhase "open_breech_source" == 0); +_ret diff --git a/addons/m119/functions/fnc_closeBreech.sqf b/addons/m119/functions/fnc_closeBreech.sqf new file mode 100644 index 0000000..860adde --- /dev/null +++ b/addons/m119/functions/fnc_closeBreech.sqf @@ -0,0 +1,34 @@ + +/* + FILE: fnc_closeBreech.sqf + + Name: tbd_m119_m119_fnc_closeBreech + + Author(s): + ilbinek + + Description: + Close the M119 breech + + Parameters: + _arty - object - M119 to be canCloseBreeched + + Returns: + Nothing + + Examples: + > [_arty] call tbd_m119_m119_fnc_closeBreech; + + Public: + No +*/ + +#include "..\script_component.hpp" + +params ["_arty"]; + +if !([_arty] call FUNC(canCloseBrach)) exitWith {}; + +_arty animateSource ["open_breech_source", 0]; +_arty animateSource ["handle_breech_source", 0]; +_arty setVariable [QGVAR(breech), false, true]; diff --git a/addons/m119/functions/fnc_init.sqf b/addons/m119/functions/fnc_init.sqf new file mode 100644 index 0000000..9ce2f42 --- /dev/null +++ b/addons/m119/functions/fnc_init.sqf @@ -0,0 +1,33 @@ +/* + FILE: fnc_init.sqf + + Name: tbd_m119_m119_fnc_init + + Author(s): + ilbinek + + Description: + Init all variables for the M119 + + Parameters: + _arty - object - M119 to be inited + + Returns: + Nothing + + Examples: + > [_arty] call tbd_m119_m119_fnc_init; + + Public: + No +*/ + +#include "..\script_component.hpp" + +params ["_arty"]; + +// Set the state variables +_arty setVariable [QGVAR(folded), false, true]; +_arty setVariable [QGVAR(breech), false, true]; +_arty setVariable [QGVAR(loaded), false, true]; +_arty setVariable [QGVAR(fired), false, true]; diff --git a/addons/m119/functions/fnc_openBreech.sqf b/addons/m119/functions/fnc_openBreech.sqf new file mode 100644 index 0000000..c0ff23c --- /dev/null +++ b/addons/m119/functions/fnc_openBreech.sqf @@ -0,0 +1,34 @@ + +/* + FILE: fnc_openBreech.sqf + + Name: tbd_m119_m119_fnc_openBreech + + Author(s): + ilbinek + + Description: + Open the M119 breech + + Parameters: + _arty - object - M119 to be canCloseBreeched + + Returns: + Nothing + + Examples: + > [_arty] call tbd_m119_m119_fnc_openBreech; + + Public: + No +*/ + +#include "..\script_component.hpp" + +params ["_arty"]; + +if !([_arty] call FUNC(canOpenBrach)) exitWith {}; + +_arty animateSource ["open_breech_source", 1]; +_arty animateSource ["handle_breech_source", 1]; +_arty setVariable [QGVAR(breech), true, true]; diff --git a/addons/m119/stringtable.xml b/addons/m119/stringtable.xml index fb5e908..bca847e 100644 --- a/addons/m119/stringtable.xml +++ b/addons/m119/stringtable.xml @@ -1,9 +1,25 @@ - + M119 M119 + + Open breech + Otevřít zadovku + + + Close breech + Zavřít zadovku + + + Fold + Složit + + + Unfold + Rozložit + diff --git a/addons/m119/tbd_m119/CfgVehicles.hpp b/addons/m119/tbd_m119/CfgVehicles.hpp index 6639b5c..316d2fe 100644 --- a/addons/m119/tbd_m119/CfgVehicles.hpp +++ b/addons/m119/tbd_m119/CfgVehicles.hpp @@ -168,7 +168,6 @@ class CfgVehicles { soundPosition = "konec_hlavne"; }; - class handle_breech_source { source = "user"; initPhase = 0; @@ -202,56 +201,25 @@ class CfgVehicles { initPhase = 1; animPeriod = 0; }; - }; class ACE_Actions: ACE_Actions { - class VASIL_LoadMag { - selection = "load_magazine"; - distance = 1; - condition = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_2B9_VASILEK_MAGAZINE)))] call FUNC(canLoadWeapon)); + class TBD_OpenBreech { + selection = "int_handle_breech"; + distance = 1.5; + condition = QUOTE([ARR_1(_target)] call FUNC(canOpenBreech)); showDisabled = 0; - displayName = CSTRING(LOAD_MAGAZINE); - icon = "x\tbd_mortars\addons\main\data\load.paa"; - statement = QUOTE([ARR_2(_target,QUOTE(QUOTE(TBD_2B9_VASILEK_MAGAZINE)))] call FUNC(loadWeapon)); - }; - - class ACE_MainActions: ACE_MainActions { - selection = "interact"; - - class VASIL_Fold { - distance = 2.5; - condition = QUOTE([ARR_1(_target)] call FUNC(canFold)); - showDisabled = 0; - displayName = CSTRING(FOLD); - statement = QUOTE([ARR_1(_target)] call FUNC(fold)); - }; - - class VASIL_Unfold { - distance = 2.5; - condition = QUOTE([ARR_1(_target)] call FUNC(canUnfold)); - showDisabled = 0; - displayName = CSTRING(UNFOLD); - statement = QUOTE([ARR_1(_target)] call FUNC(unfold)); - }; + displayName = CSTRING(open_breech); + statement = QUOTE([ARR_1(_target)] call FUNC(openBreech)); }; - class VASIL_Tow { - selection = "towing_point"; - distance = 2.5; - condition = QUOTE([ARR_1(_target)] call FUNC(canBeTowed)); + class TBD_CloseBreech { + selection = "int_handle_breech"; + distance = 1.5; + condition = QUOTE([ARR_1(_target)] call FUNC(canCloseBreech)); showDisabled = 0; - displayName = CSTRING(TOW); - statement = QUOTE([ARR_1(_target)] call FUNC(tow)); - }; - - class VASIL_Detach { - selection = "towing_point"; - distance = 2.5; - condition = QUOTE(_target getVariable [ARR_2(QUOTE(QGVAR(towed)),false)]); - showDisabled = 0; - displayName = CSTRING(DETACH); - statement = QUOTE([ARR_1(_target)] call FUNC(detach)); + displayName = CSTRING(close_breech); + statement = QUOTE([ARR_1(_target)] call FUNC(closeBreech)); }; }; };