more goggles code cleanup

This commit is contained in:
commy2 2015-09-29 17:57:09 +02:00
parent 477e9f06b6
commit d051d4c208
5 changed files with 22 additions and 23 deletions

View File

@ -1,22 +1,24 @@
/*
* Author: Garth 'L-H' de Wet
* Author: commy2
* Determines whether passed goggles is diving goggles or a variant of them.
*
* Arguments:
* 0: Glasses classname <STRING>
*
* Return Value:
* Whether diving goggles are worn <BOOL>
* Check if these goggles are diving goggles <BOOL>
*
* Example:
* [(goggles ace_player)] call ace_goggles_fnc_isDivingGoggles;
* [goggles ace_player] call ace_goggles_fnc_isDivingGoggles;
*
* Public: Yes
*/
#include "script_component.hpp"
private ["_result", "_glasses"];
_glasses = _this select 0;
_result = _glasses == "G_Diving";
if (_result) exitWith {true};
_result = [configFile >> "CfgGlasses" >> _glasses, configFile >> "CfgGlasses" >> "G_Diving"] call CBA_fnc_inheritsFrom;
_result
params ["_glasses"];
local _config = configFile >> "CfgGlasses" >> _glasses;
if (!isClass _config) exitWith {false};
getNumber (_config >> "mode") == 1 // return

View File

@ -1,6 +1,6 @@
/*
* Author: Garth 'L-H' de Wet
* Determines if goggles are visible on passed unit (Also checks if unit is in vehicle and cameraView is set to GUNNER)
* Determines if goggles are visible on passed unit.
*
* Arguments:
* 0: Unit <OBJECT>
@ -16,20 +16,17 @@
#include "script_component.hpp"
params ["_unit"];
private ["_currentGlasses", "_result", "_position", "_visible"];
private ["_currentGlasses", "_position"];
_currentGlasses = goggles _unit;
_result = false;
if (_currentGlasses != "") then {
_position = getPosASLW _unit;
if (surfaceIsWater _position && {((_position select 2) < 0.25)}) exitWith {
_result = ([_currentGlasses] call FUNC(isDivingGoggles));
};
if (getNumber (ConfigFile >> "CfgGlasses" >> _currentGlasses >> "ACE_Resistance") == 0) exitWith {
_result = false;
};
_result = !([_currentGlasses] call FUNC(isDivingGoggles));
};
if (_currentGlasses == "") exitWith {false};
_result
// requires ACE_Resistance config entry. Returns false for balaclavas and bandanas.
if (getNumber (configFile >> "CfgGlasses" >> _currentGlasses >> "ACE_Resistance") == 0) exitWith {false};
// check if in water and has diving goggles or on land and not diving goggles
_position = getPosASLW _unit;
(surfaceIsWater _position && {_position select 2 < 0.25}) isEqualTo (_currentGlasses call FUNC(isDivingGoggles)) // return