From a53f68a34748beb92b19aab1853b82ceb4f53770 Mon Sep 17 00:00:00 2001
From: SilentSpike <silentspike100+Github@gmail.com>
Date: Sat, 10 Jun 2017 11:41:01 +0100
Subject: [PATCH] Use getUnitTrait for medics, engineers and EOD (#5246)

---
 addons/common/functions/fnc_isEOD.sqf      | 2 +-
 addons/common/functions/fnc_isEngineer.sqf | 2 +-
 addons/medical/functions/fnc_isMedic.sqf   | 2 +-
 addons/repair/functions/fnc_isEngineer.sqf | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/addons/common/functions/fnc_isEOD.sqf b/addons/common/functions/fnc_isEOD.sqf
index ee82cf2068..2a6e04247c 100644
--- a/addons/common/functions/fnc_isEOD.sqf
+++ b/addons/common/functions/fnc_isEOD.sqf
@@ -20,4 +20,4 @@
 
 params ["_unit"];
 
-_unit getVariable ["ACE_isEOD", getNumber (configFile >> "CfgVehicles" >> typeOf _unit >> "canDeactivateMines") == 1] // return
+_unit getVariable ["ACE_isEOD", _unit getUnitTrait "explosiveSpecialist"] // return
diff --git a/addons/common/functions/fnc_isEngineer.sqf b/addons/common/functions/fnc_isEngineer.sqf
index 01eabfc0b3..96a00970f6 100644
--- a/addons/common/functions/fnc_isEngineer.sqf
+++ b/addons/common/functions/fnc_isEngineer.sqf
@@ -17,7 +17,7 @@
 
 params ["_unit"];
 
-private _isEngineer = _unit getVariable ["ACE_isEngineer", getNumber (configFile >> "CfgVehicles" >> typeOf _unit >> "engineer") == 1];
+private _isEngineer = _unit getVariable ["ACE_isEngineer", _unit getUnitTrait "engineer"];
 //Handle ace_repair modules setting this to a number
 if (_isEngineer isEqualType 0) then {_isEngineer = _isEngineer > 0};
 
diff --git a/addons/medical/functions/fnc_isMedic.sqf b/addons/medical/functions/fnc_isMedic.sqf
index 9d93f50c74..f09fe88dbb 100644
--- a/addons/medical/functions/fnc_isMedic.sqf
+++ b/addons/medical/functions/fnc_isMedic.sqf
@@ -19,7 +19,7 @@
 
 params ["_unit", ["_medicN", 1]];
 
-private _class = _unit getVariable [QGVAR(medicClass), getNumber (configFile >> "CfgVehicles" >> typeOf _unit >> "attendant")];
+private _class = _unit getVariable [QGVAR(medicClass), [0, 1] select (_unit getUnitTrait "medic")];
 
 if (_class >= _medicN min GVAR(medicSetting)) exitWith {true};
 if (!GVAR(increaseTrainingInLocations)) exitWith {false};
diff --git a/addons/repair/functions/fnc_isEngineer.sqf b/addons/repair/functions/fnc_isEngineer.sqf
index d07c12af64..d2ee71b913 100644
--- a/addons/repair/functions/fnc_isEngineer.sqf
+++ b/addons/repair/functions/fnc_isEngineer.sqf
@@ -20,7 +20,7 @@ params ["_unit", ["_engineerN", 1]];
 TRACE_2("params",_unit,_engineerN);
 
 private ["_class"];
-_class = _unit getVariable ["ACE_IsEngineer", getNumber (configFile >> "CfgVehicles" >> typeOf _unit >> "engineer")];
+_class = _unit getVariable ["ACE_IsEngineer", _unit getUnitTrait "engineer"];
 
 // This if statement is here for copmatability with the common variant of isEngineer, which requires a bool.
 // We cannot move this function to common because we require the GVAR(engineerSetting_Repair), which only makes sense to include in the repair module.