Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions addons/medical_engine/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ if (isNil QUOTE(PAIN_FADE_TIME)) then {PAIN_FADE_TIME = PAIN_FADE_TIME_DEFAULT};
if (isNil QUOTE(LIMPING_DAMAGE_THRESHOLD)) then {LIMPING_DAMAGE_THRESHOLD = LIMPING_DAMAGE_THRESHOLD_DEFAULT};
if (isNil QUOTE(FRACTURE_DAMAGE_THRESHOLD)) then {FRACTURE_DAMAGE_THRESHOLD = FRACTURE_DAMAGE_THRESHOLD_DEFAULT};
if (isNil QUOTE(CARDIAC_OUTPUT_MIN)) then {CARDIAC_OUTPUT_MIN = CARDIAC_OUTPUT_MIN_DEFAULT};
if (isNil QUOTE(MEDICAL_ACTIVITY)) then {MEDICAL_ACTIVITY = MEDICAL_ACTIVITY_DEFAULT};
// Derive the alternate fatal damage coefficents
if (isNil QUOTE(FATAL_SUM_DAMAGE_WEIBULL_K) || isNil QUOTE(FATAL_SUM_DAMAGE_WEIBULL_L)) then {
private _x1 = 0.5;
Expand Down
6 changes: 6 additions & 0 deletions addons/medical_engine/script_macros_medical.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -223,3 +223,9 @@

// Ignore UAV/Drone AI Base Classes
#define IGNORE_BASE_UAVPILOTS "B_UAV_AI", "O_UAV_AI", "UAV_AI_base_F"

// Medical Activity (optimization for AI)
#define VAR_MEDICAL_ACTIVITY QEGVAR(medical,medicalActivity)
#define MEDICAL_ACTIVITY EGVAR(medical,const_medicalActivity)
#define MEDICAL_ACTIVITY_DEFAULT false
#define IS_MEDICAL_ACTIVITY(unit) (unit getVariable [VAR_MEDICAL_ACTIVITY, MEDICAL_ACTIVITY])
13 changes: 13 additions & 0 deletions addons/medical_statemachine/XEH_postInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,16 @@
[{_this enableSimulation true}, _unit, 2] call CBA_fnc_waitAndExecute;
};
}] call CBA_fnc_addEventHandler;

DFUNC(activateMedical) = {
params ["_unit"];
if (!IS_MEDICAL_ACTIVITY(_unit)) then {
TRACE_2("activating medical for unit",_unit,typeOf _unit);
_unit setVariable [VAR_MEDICAL_ACTIVITY, true, true];
};
};
[QEGVAR(medical,woundReceived), LINKFUNC(activateMedical)] call CBA_fnc_addEventHandler;
["ace_treatmentStarted", {
params ["", "_patient"];
_patient call FUNC(activateMedical);
}] call CBA_fnc_addEventHandler;
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ params ["_unit"];

// If the unit died the loop is finished
if (!alive _unit || {!local _unit}) exitWith {};
if !((isPlayer _unit) || {IS_MEDICAL_ACTIVITY(_unit)}) exitWith {};

if ([_unit] call EFUNC(medical_vitals,handleUnitVitals)) then { // returns true when update ran
private _painLevel = GET_PAIN_PERCEIVED(_unit);
Expand Down
Loading