#include "script_component.hpp" /* * Author: KoffeinFlummi, Glowbal * Callback when repair fails. * * Arguments: * 0: Arguments * 0: Unit that does the repairing * 1: Vehicle to repair or * 3: Repair Action Classname * 4: None * 5: Items available * 6: Claimed Repair Objects * * Return Value: * None * * Example: * [[unit, vehicle, "hitpoint", "classname", nil, [items], [aWheel]]] call ace_repair_fnc_repair_failure * * Public: No */ params ["_args"]; _args params ["_caller", "_target","_selectionName","_className","","_usersOfItems", "_claimedObjects"]; TRACE_5("params",_caller,_target,_selectionName,_className,_usersOfItems); if (primaryWeapon _caller == "ACE_FakePrimaryWeapon") then { _caller removeWeapon "ACE_FakePrimaryWeapon"; }; _caller removeEventHandler ["AnimDone", _caller getVariable [QGVAR(repairLoopAnimEh), -1]]; _caller setVariable [QGVAR(repairLoopAnimEh), nil]; if (vehicle _caller == _caller && {!(_caller call EFUNC(common,isSwimming))}) then { [_caller, _caller getVariable [QGVAR(repairPrevAnimCaller), ""], 2] call EFUNC(common,doAnimation); }; _caller setVariable [QGVAR(repairCurrentAnimCaller), nil]; _caller setVariable [QGVAR(repairPrevAnimCaller), nil]; private _weaponSelect = (_caller getVariable [QGVAR(selectedWeaponOnrepair), ""]); if (_weaponSelect != "") then { _caller selectWeapon _weaponSelect; } else { _caller action ["SwitchWeapon", _caller, _caller, 299]; }; { (_x select 0) addItem (_x select 1); } forEach _usersOfItems; //Unclaim repair objects: { TRACE_2("Releasing", _x, (typeOf _x)); [objNull, _x, false] call EFUNC(common,claim); } forEach _claimedObjects; // Record specific callback private _config = (ConfigFile >> "ACE_Repair" >> "Actions" >> _className); private _callback = getText (_config >> "callbackFailure"); if (isNil _callback) then { _callback = compile _callback; } else { _callback = missionNamespace getVariable _callback; }; if (!(_callback isEqualType {})) then {_callback = {TRACE_1("callback was NOT code",_callback)};}; _args call _callback; //todo: repair litter?