From e964b2c13533a5bc6522698fb6f9f5879f52e92d Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 8 Dec 2015 20:31:40 -0600 Subject: [PATCH 1/2] Fix PostRepairDamage and toolkit consumtion setting Fix #2982 --- addons/repair/ACE_Repair.hpp | 6 +++++- addons/repair/ACE_Settings.hpp | 2 +- addons/repair/functions/fnc_getPostRepairDamage.sqf | 13 +++++++++---- addons/repair/functions/fnc_isEngineer.sqf | 2 +- addons/repair/functions/fnc_repair.sqf | 2 +- 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/addons/repair/ACE_Repair.hpp b/addons/repair/ACE_Repair.hpp index 251302a93a..9aa8fe7b22 100644 --- a/addons/repair/ACE_Repair.hpp +++ b/addons/repair/ACE_Repair.hpp @@ -34,10 +34,11 @@ class ACE_Repair { displayName = CSTRING(Repairing); // let's make empty string an auto generated string displayNameProgress = CSTRING(RepairingHitPoint); condition = QUOTE(call FUNC(canMiscRepair)); - requiredEngineer = 0; + requiredEngineer = QGVAR(engineerSetting_Repair); repairingTime = 15; callbackSuccess = QUOTE(call FUNC(doRepair)); items[] = {"ToolKit"}; + itemConsumed = QGVAR(consumeItem_ToolKit); claimObjects[] = {}; }; class RepairTrack: MiscRepair { @@ -47,6 +48,7 @@ class ACE_Repair { callbackSuccess = QUOTE(call FUNC(doRepairTrack)); requiredEngineer = QGVAR(engineerSetting_Wheel); claimObjects[] = {{"ACE_Track"}}; + itemConsumed = 0; }; class RemoveTrack: MiscRepair { displayName = CSTRING(RemoveTrack); @@ -54,6 +56,7 @@ class ACE_Repair { condition = QUOTE(call FUNC(canRemove)); callbackSuccess = QUOTE(call FUNC(doRemoveTrack)); requiredEngineer = QGVAR(engineerSetting_Wheel); + itemConsumed = 0; }; class ReplaceTrack: RemoveTrack { displayName = CSTRING(ReplaceTrack); @@ -71,6 +74,7 @@ class ACE_Repair { repairingTime = 30; condition = "damage _target > 0"; callbackSuccess = QUOTE(call FUNC(doFullRepair)); + itemConsumed = 0; }; }; }; diff --git a/addons/repair/ACE_Settings.hpp b/addons/repair/ACE_Settings.hpp index 22e68ce3e9..c3c8daad16 100644 --- a/addons/repair/ACE_Settings.hpp +++ b/addons/repair/ACE_Settings.hpp @@ -41,7 +41,7 @@ class ACE_Settings { displayName = CSTRING(consumeItem_ToolKit_name); description = CSTRING(consumeItem_ToolKit_description); typeName = "SCALAR"; - value = 1; + value = 0; values[] = {ECSTRING(common,No), ECSTRING(common,Yes)}; category = ECSTRING(OptionsMenu,CategoryLogistics); }; diff --git a/addons/repair/functions/fnc_getPostRepairDamage.sqf b/addons/repair/functions/fnc_getPostRepairDamage.sqf index 36e4bf39ae..9388f4474d 100644 --- a/addons/repair/functions/fnc_getPostRepairDamage.sqf +++ b/addons/repair/functions/fnc_getPostRepairDamage.sqf @@ -17,10 +17,15 @@ params ["_unit"]; TRACE_1("params",_unit); -// TODO when near repair station, full repair? +//If in facility or near vehicle then complete repair of hitpoint: if (([_unit] call FUNC(isInRepairFacility) || {[_unit] call FUNC(isNearRepairVehicle)})) exitWith {0}; -if ([_unit, GVAR(engineerSetting_Repair) + 1] call FUNC(isEngineer)) exitWith {GVAR(repairDamageThreshold_Engineer)}; -if ([_unit, GVAR(engineerSetting_Repair)] call FUNC(isEngineer)) exitWith {GVAR(repairDamageThreshold)}; -0.3; +private _class = _unit getVariable ["ACE_IsEngineer", getNumber (configFile >> "CfgVehicles" >> typeOf _unit >> "engineer")]; +//If specialist or more qualified than min, then use engineer threshold: +if ((_class isEqualTo 2) || {[_unit, GVAR(engineerSetting_Repair) + 1] call FUNC(isEngineer)}) exitWith { + (GVAR(repairDamageThreshold_Engineer) min GVAR(repairDamageThreshold)) +}; + +//Return default threshold: +GVAR(repairDamageThreshold) diff --git a/addons/repair/functions/fnc_isEngineer.sqf b/addons/repair/functions/fnc_isEngineer.sqf index 485a300260..d07c12af64 100644 --- a/addons/repair/functions/fnc_isEngineer.sqf +++ b/addons/repair/functions/fnc_isEngineer.sqf @@ -26,4 +26,4 @@ _class = _unit getVariable ["ACE_IsEngineer", getNumber (configFile >> "CfgVehic // We cannot move this function to common because we require the GVAR(engineerSetting_Repair), which only makes sense to include in the repair module. if (_class isEqualType false) then {_class = [0, 1] select _class}; -_class >= (_engineerN min GVAR(engineerSetting_Repair)); +_class >= _engineerN; diff --git a/addons/repair/functions/fnc_repair.sqf b/addons/repair/functions/fnc_repair.sqf index 04dfe523fa..40e5b3bfaa 100644 --- a/addons/repair/functions/fnc_repair.sqf +++ b/addons/repair/functions/fnc_repair.sqf @@ -128,7 +128,7 @@ _consumeItems = if (isNumber (_config >> "itemConsumed")) then { _usersOfItems = []; if (_consumeItems > 0) then { - _usersOfItems = ([_caller, _target, _items] call FUNC(useItems)) select 1; + _usersOfItems = ([_caller, _items] call FUNC(useItems)) select 1; }; // Parse the config for the progress callback From f2bcd66784a95027f46d0f84d926b904325c1a0c Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 14 Dec 2015 19:28:31 -0600 Subject: [PATCH 2/2] Toolkit also consumed on fullRepair --- addons/repair/ACE_Repair.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/repair/ACE_Repair.hpp b/addons/repair/ACE_Repair.hpp index 9aa8fe7b22..d47773cd83 100644 --- a/addons/repair/ACE_Repair.hpp +++ b/addons/repair/ACE_Repair.hpp @@ -74,7 +74,7 @@ class ACE_Repair { repairingTime = 30; condition = "damage _target > 0"; callbackSuccess = QUOTE(call FUNC(doFullRepair)); - itemConsumed = 0; + itemConsumed = QGVAR(consumeItem_ToolKit); }; }; };