replace more filter with select

This commit is contained in:
commy2 2016-02-06 11:58:31 +01:00
parent 2ebd2f9046
commit 41e39c9c3a
9 changed files with 20 additions and 22 deletions

View File

@ -17,7 +17,7 @@
params [["_array", [], [[]]], ["_code", {}, [{}]]];
ACE_DEPRECATED("ace_common_fnc_filter","3.7.0","apply");
ACE_DEPRECATED("ace_common_fnc_map","3.7.0","apply");
// copy array to not alter the original one
_array = + _array;

View File

@ -21,10 +21,7 @@ params ["_player", "_target", "_weapon"];
private ["_compatibleMags", "_filteredMags", "_magToPass", "_magToPassIndex", "_playerName", "_magToPassDisplayName"];
_compatibleMags = getArray (configfile >> "CfgWeapons" >> _weapon >> "magazines");
_filteredMags = [magazinesAmmoFull _player, {
params ["_className", "", "_loaded"];
_className in _compatibleMags && !_loaded
}] call EFUNC(common,filter);
_filteredMags = magazinesAmmoFull _player select {(_x select 0) in _compatibleMags && {!(_x select 2)}};
//select magazine with most ammo
_magToPass = _filteredMags select 0;

View File

@ -17,14 +17,14 @@ if (GVAR(BFT_Enabled) and {(!isNil "ACE_player") and {alive ACE_player}}) then {
_playerSide = call EFUNC(common,playerSide);
if !(GVAR(BFT_HideAiGroups)) then {
_groupsToDrawMarkers = [allGroups, {side _this == _playerSide}] call EFUNC(common,filter);
_groupsToDrawMarkers = allGroups select {side _x == _playerSide};
} else {
_groupsToDrawMarkers = [allGroups, {
_groupsToDrawMarkers = allGroups select {
_anyPlayers = {
[_x] call EFUNC(common,isPlayer);
} count units _this;
(side _this == _playerSide) && _anyPlayers > 0
}] call EFUNC(common,filter);
} count units _x;
(side _x == _playerSide) && _anyPlayers > 0
}; // @todo, simplify this
};
{

View File

@ -95,11 +95,12 @@ TRACE_1("Player is on foot or in an open vehicle","");
// Using chemlights
_nearObjects = [_unit nearObjects ["SmokeShell", 4], {
alive _this && {(typeOf _this == "Chemlight_red") || {
(typeOf _this == "Chemlight_green") || {
(typeOf _this == "Chemlight_blue") || {
(typeOf _this == "Chemlight_yellow")}}}}}] call EFUNC(common,filter);
_nearObjects = (_unit nearObjects ["SmokeShell", 4]) select {
alive _x && {(typeOf _x == "Chemlight_red") || {
(typeOf _x == "Chemlight_green") || {
(typeOf _x == "Chemlight_blue") || {
(typeOf _x == "Chemlight_yellow")}}}}}; // @todo, simplify this
if (count (_nearObjects) > 0) then {
_light = _nearObjects select 0;

View File

@ -32,6 +32,6 @@ private _maxAmmo = 0;
{
_maxAmmo = _maxAmmo max (_x select 1);
} forEach ([magazinesAmmo _player, {_this select 0 == _magazineType}] call EFUNC(common,filter));
} forEach (magazinesAmmo _player select {_x select 0 == _magazineType});
_maxAmmo > 0

View File

@ -32,7 +32,7 @@ private _maxAmmo = 0;
{
_maxAmmo = _maxAmmo max (_x select 1);
} forEach ([magazinesAmmo _player, {_this select 0 == _magazineType}] call EFUNC(common,filter));
} forEach (magazinesAmmo _player select {_x select 0 == _magazineType});
if (_maxAmmo == 0) exitWith {};

View File

@ -25,4 +25,4 @@ _magazines = magazines _unit;
_magazines = [_magazines, {toLower _this}] call EFUNC(common,map);
// get reloaders magazine types compatible with targets launcher. No duplicates.
[getArray (configFile >> "CfgWeapons" >> _weapon >> "magazines"), {toLower _this in _magazines}] call EFUNC(common,filter)
getArray (configFile >> "CfgWeapons" >> _weapon >> "magazines") select {toLower _x in _magazines} // return

View File

@ -25,7 +25,7 @@ private _leave = false;
if (GVAR(EnableSafeZone)) then {
private _allNearestPlayers = [position _unit, GVAR(SafeZoneRadius)] call FUNC(nearestPlayers);
private _nearestEnemyPlayers = [_allNearestPlayers, {((side GVAR(OriginalGroup)) getFriend (side _this) < 0.6) && !(_this getVariable [QGVAR(IsPlayerControlled), false])}] call EFUNC(common,filter);
private _nearestEnemyPlayers = _allNearestPlayers select {((side GVAR(OriginalGroup)) getFriend side _x < 0.6) && !(_x getVariable [QGVAR(IsPlayerControlled), false])};
if (count _nearestEnemyPlayers > 0) exitWith {
_leave = true;

View File

@ -57,9 +57,9 @@ private _nextGrenade = _grenades select _nextGrenadeIndex;
if (_currentGrenade == _nextGrenade) exitWith {false};
// current best method to select a grenade: remove all grenades except the one you want to select, then add them back
private _uniformGrenades = [uniformItems _unit, {_x in GVAR(GrenadesAll) && {_x != _nextGrenade}}] call EFUNC(common,filter);
private _vestGrenades = [vestItems _unit, {_x in GVAR(GrenadesAll) && {_x != _nextGrenade}}] call EFUNC(common,filter);
private _backpackGrenades = [backpackItems _unit, {_x in GVAR(GrenadesAll) && {_x != _nextGrenade}}] call EFUNC(common,filter);
private _uniformGrenades = uniformItems _unit select {_x in GVAR(GrenadesAll) && {_x != _nextGrenade}};
private _vestGrenades = vestItems _unit select {_x in GVAR(GrenadesAll) && {_x != _nextGrenade}};
private _backpackGrenades = backpackItems _unit select {_x in GVAR(GrenadesAll) && {_x != _nextGrenade}};
// remove all grenades except those we are switching to --> this breaks the selector
{_unit removeItemFromUniform _x; false} count _uniformGrenades;