ACE3/addons/reload/functions/fnc_canCheckAmmo.sqf
2015-04-21 19:35:04 -05:00

53 lines
1.3 KiB
Plaintext

/*
* Author: CAA-Picard
* Check if the player can check the ammo of the target.
*
* Argument:
* 0: Player <OBJECT>
* 1: Target <OBJECT>
*
* Return value:
* Can link belt<BOOL>
*
* Example:
* [player, bob] call ace_reload_fnc_canCheckAmmo
*
* Public: No
*/
#include "script_component.hpp"
EXPLODE_2_PVT(_this,_player,_target);
private ["_magazineType", "_magazineCfg"];
// Return true for static weapons if they have been fired once, @todo 1.40 this work-around doesn't work anymore
if (_target isKindOf "StaticWeapon") exitWith {
if (currentMagazine _target != "") exitWith {true};
private ["_magazines","_found"];
_magazines = magazinesAmmoFull _target;
_found = false;
{
if (_x select 2) exitWith {
_found = true;
};
} forEach _magazines;
_found
};
// Return false for all other vehicles
if !(_target isKindOf "CAManBase") exitWith {false};
// For men
if (currentWeapon _target == "") exitWith {false};
// Check if their current magazine is a belt
_magazineType = currentMagazine _target;
_magazineCfg = configFile >> "CfgMagazines" >> _magazineType;
if (getNumber (_magazineCfg >> "ACE_isBelt") == 1) exitWith {true};
// Check for rocket launchers
if (currentWeapon _target == secondaryWeapon _target) exitWith {true};
false