Zeus/Medical - Fix modules for rewrite (#6914)

* Zeus/Medical - Fix modules for rewrite

* move wakeup logic to medical_treatment
This commit is contained in:
PabstMirror 2019-04-03 08:17:17 -05:00 committed by Magnetar
parent 55a7d53437
commit 9588b13942
5 changed files with 21 additions and 7 deletions

View File

@ -14,8 +14,8 @@
* Success? <BOOLEAN>
*
* Example:
* [bob, true] call ace_medical_status__fnc_setUnconscious;
* [player, true, 5, true] call ace_medical_status_fnc_setUnconscious;
* [bob, true] call ace_medical_fnc_setUnconscious;
* [player, true, 5, true] call ace_medical_fnc_setUnconscious;
*
* Public: yes
*/

View File

@ -16,6 +16,17 @@ params ["_target"];
if (!alive _target) exitWith {};
// Treatment conditions would normally limit this to non-unconc units, but treatment event may be called externally (zeus)
if (_target getVariable [QEGVAR(medical,inCardiacArrest), false]) then {
TRACE_1("exiting cardiac arrest",_target);
[QEGVAR(medical,CPRSucceeded), _target] call CBA_fnc_localEvent;
};
if (_target getVariable ["ACE_isUnconscious",false]) then {
TRACE_1("waking up",_target); // wake up first or unconc variables will be reset
[QEGVAR(medical,WakeUp), _target] call CBA_fnc_localEvent;
};
_target setVariable [VAR_PAIN, 0, true];
_target setVariable [VAR_BLOOD_VOL, DEFAULT_BLOOD_VOLUME, true];

View File

@ -76,7 +76,9 @@ private _tourniquets = GET_TOURNIQUETS(_unit);
_tourniquetPain = _tourniquetPain max (CBA_missionTime - _x - 120) * 0.001;
};
} forEach _tourniquets;
if (_tourniquetPain > 0) then {
[_unit, _tourniquetPain] call EFUNC(medical_status,adjustPainLevel);
};
private _heartRate = [_unit, _deltaT, _syncValues] call FUNC(updateHeartRate);
[_unit, _deltaT, _syncValues] call FUNC(updatePainSuppress);

View File

@ -43,8 +43,9 @@ switch (false) do {
};
// Heal validated target
if (["ace_medical"] call EFUNC(common,isModLoaded) && {EGVAR(medical,level) > 0}) then {
[QEGVAR(medical,treatmentAdvanced_fullHealLocal), [_unit, _unit], _unit] call CBA_fnc_targetEvent;
if (["ace_medical"] call EFUNC(common,isModLoaded)) then {
TRACE_1("healing with ace_medical",_unit);
[QEGVAR(medical_treatment,treatmentFullHealLocal), [_unit], _unit] call CBA_fnc_targetEvent;
} else {
// BI's scripted revive system
if ((missionNamespace getVariable ["bis_revive_mode", 0]) != 0) then {

View File

@ -37,9 +37,9 @@ if (isNil QEFUNC(medical,setUnconscious)) then {
if !(alive _unit) then {
[LSTRING(OnlyAlive)] call FUNC(showMessage);
} else {
private _conscious = GETVAR(_unit,ACE_isUnconscious,false);
private _unconscious = GETVAR(_unit,ACE_isUnconscious,false);
// Function handles locality for me
[_unit, !_conscious, 10e10] call EFUNC(medical,setUnconscious);
[_unit, !_unconscious, 10e10] call EFUNC(medical,setUnconscious);
};
};
};