mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
e11e102a76
* Enable majority of actions underwater * Remove log * Add logistics_wirecutter support (don't play kneel animations underwater - looks silly) * Don't perform kneel animations when repairing or medicaling underwater * Fix interaction menu rendering underwater (was moving based on player eye level due to height max used for large vehicles) * Fix attach underwater (LIW does not work underwater, LIS does), Add attach scan drawing define * Remove left-over systemChat * Remove vehiclelock from Plane, Disallow linking belt underwater, Allow checking ammo when sitting via action (was already possible via keybind), Use param for LIS
66 lines
1.9 KiB
Plaintext
66 lines
1.9 KiB
Plaintext
/*
|
|
* Author: KoffeinFlummi, Glowbal
|
|
* Callback when repair completes.
|
|
*
|
|
* Arguments:
|
|
* 0: Arguments <ARRAY>
|
|
* 0: Unit that does the repairing <OBJECT>
|
|
* 1: Vehicle to repair <OBJECT
|
|
* 2: Selected hitpoint or hitpointIndex <STRING>or<NUMBER>
|
|
* 3: Repair Action Classname <STRING>
|
|
* 4: Items <ARRAY>
|
|
* 5: User of Items <ARRAY>
|
|
* 6: Claimed Repair Objects <ARRAY>
|
|
*
|
|
* Return Value:
|
|
* None
|
|
*
|
|
* Example:
|
|
* [[unit, vehicle, "hitpoint", "classname", [], [], [aWheel]]] call ace_repair_fnc_repair_success
|
|
*
|
|
* Public: No
|
|
*/
|
|
#include "script_component.hpp"
|
|
|
|
params ["_args"];
|
|
_args params ["_caller", "_target","_selectionName","_className","","","_claimedObjects"];
|
|
TRACE_4("params",_caller,_target,_selectionName,_className);
|
|
|
|
private ["_config","_callback", "_weaponSelect"];
|
|
|
|
if (primaryWeapon _caller == "ACE_FakePrimaryWeapon") then {
|
|
_caller removeWeapon "ACE_FakePrimaryWeapon";
|
|
};
|
|
if (vehicle _caller == _caller && {!underwater _caller}) then {
|
|
[_caller, _caller getVariable [QGVAR(repairPrevAnimCaller), ""], 2] call EFUNC(common,doAnimation);
|
|
};
|
|
_caller setVariable [QGVAR(repairPrevAnimCaller), nil];
|
|
|
|
_weaponSelect = (_caller getVariable [QGVAR(selectedWeaponOnrepair), ""]);
|
|
if (_weaponSelect != "") then {
|
|
_caller selectWeapon _weaponSelect;
|
|
} else {
|
|
_caller action ["SwitchWeapon", _caller, _caller, 299];
|
|
};
|
|
|
|
//Unclaim repair objects:
|
|
{
|
|
TRACE_2("Releasing", _x, (typeOf _x));
|
|
[objNull, _x, false] call EFUNC(common,claim);
|
|
} forEach _claimedObjects;
|
|
|
|
// Record specific callback
|
|
_config = (ConfigFile >> "ACE_Repair" >> "Actions" >> _className);
|
|
|
|
_callback = getText (_config >> "callbackSuccess");
|
|
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?
|