mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
e06c6f7835
* General - Replace toLower with toLowerANSI where applicable * whoops Co-authored-by: PabstMirror <pabstmirror@gmail.com> * Update addons/repair/functions/fnc_setHitPointDamage.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update addons/repair/dev/draw_showRepairInfo.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update addons/tagging/XEH_preStart.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update addons/vehicle_damage/functions/fnc_handleCookoff.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update addons/tagging/XEH_preStart.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * comparment -> compartment * Update fnc_showHud.sqf * Update fnc_registerObjects.sqf * Update addons/common/functions/fnc_cbaSettings_settingChanged.sqf --------- Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
67 lines
2.1 KiB
Plaintext
67 lines
2.1 KiB
Plaintext
#include "..\script_component.hpp"
|
|
/*
|
|
* Author: Phyma
|
|
* Find glass door.
|
|
*
|
|
* Arguments:
|
|
* 0: Distance <NUMBER>
|
|
* 1: House <OBJECT>
|
|
* 2: Door name <STRING>
|
|
*
|
|
* Return Value:
|
|
* 0: Door Name <STRING>
|
|
*
|
|
* Example:
|
|
* [player, target] call ace_interaction_fnc_getGlassDoor
|
|
*
|
|
* Public: No
|
|
*/
|
|
|
|
params ["_distance", "_house", "_door"];
|
|
|
|
private _doorParts = [];
|
|
private _doorPos = [];
|
|
private _animate = animationNames _house;
|
|
private _glassDoor = _door splitString "_";
|
|
private _glassPos = (_house selectionPosition [(_glassDoor select 0) + "_" + (_glassDoor select 1) + "_effects", "Memory"]);
|
|
// Calculate all animation names so we know what is there
|
|
{
|
|
private _animName = toLowerANSI _x;
|
|
if (((_animName find "door") != -1) && ((_animName find "locked") == -1) && ((_animName find "disabled") == -1) && ((_animName find "handle") == -1)) then {
|
|
private _splitStr = _animName splitString "_";
|
|
_doorParts pushBack ((_splitStr select 0) + "_" + (_splitStr select 1) + "_trigger");
|
|
};
|
|
} forEach _animate;
|
|
|
|
|
|
// Get the pos of all the door components and save the parts
|
|
{
|
|
_doorPos pushBack (_house selectionPosition [_x, "Memory"]);
|
|
} forEach _doorParts;
|
|
|
|
// Calculate what door that is closest to the glass door
|
|
private _lowestDistance = 0;
|
|
{
|
|
private _objDist = _glassPos distance _x;
|
|
//Make sure we dont take another door by mistake
|
|
if (_objDist <= _distance) then {
|
|
//Need to set the value in the beginning
|
|
if (_lowestDistance == 0) then {
|
|
_lowestDistance = _objDist;
|
|
private _splitStr = (_doorParts select _forEachIndex) splitString "_";
|
|
_door = (_splitStr select 0) + "_" + (_splitStr select 1);
|
|
} else {
|
|
if (_objDist < _lowestDistance) then {
|
|
_lowestDistance = _objDist;
|
|
private _splitStr = (_doorParts select _forEachIndex) splitString "_";
|
|
_door = (_splitStr select 0) + "_" + (_splitStr select 1);
|
|
};
|
|
};
|
|
};
|
|
} forEach _doorPos;
|
|
|
|
// Check if we have a door or if it is the glass part
|
|
if ((isNil "_door") || ((_door find "glass") != -1)) exitWith {};
|
|
|
|
_door
|