-
Notifications
You must be signed in to change notification settings - Fork 740
/
fnc_treatmentSuccess.sqf
51 lines (41 loc) · 1.39 KB
/
fnc_treatmentSuccess.sqf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "script_component.hpp"
/*
* Author: KoffeinFlummi, Glowbal, mharis001
* Handles treatment process success.
*
* Arguments:
* 0: Arguments <ARRAY>
* 0: Medic <OBJECT>
* 1: Patient <OBJECT>
* 2: Body Part <STRING>
* 3: Treatment <STRING>
* 4: Item User <OBJECT>
* 5: Used Item <STRING>
*
* Return Value:
* None
*
* Public: No
*/
params ["_args"];
_args params ["_medic", "_patient", "_bodyPart", "_classname"];
// Switch medic to end animation immediately
private _endInAnim = _medic getVariable QGVAR(endInAnim);
if (!isNil "_endInAnim") then {
if (animationState _medic != _endInAnim) then {
[_medic, _endInAnim, 2] call EFUNC(common,doAnimation);
};
_medic setVariable [QGVAR(endInAnim), nil];
};
// Reset medic animation speed coefficient
[QEGVAR(common,setAnimSpeedCoef), [_medic, 1]] call CBA_fnc_globalEvent;
if (!isNil QEGVAR(advanced_fatigue,setAnimExclusions)) then {
EGVAR(advanced_fatigue,setAnimExclusions) deleteAt (EGVAR(advanced_fatigue,setAnimExclusions) find QUOTE(ADDON));
};
// Call treatment specific success callback
GET_FUNCTION(_callbackSuccess,configFile >> QGVAR(actions) >> _classname >> "callbackSuccess");
_args call _callbackSuccess;
// Call litter creation handler
_args call FUNC(createLitter);
// Emit local event for medical API
["ace_treatmentSucceded", [_medic, _patient, _bodyPart, _classname]] call CBA_fnc_localEvent;