ACE3/addons/viewdistance/functions/fnc_adaptViewDistance.sqf
Wanderrful 635b667a74 Fixed viewdistance error while controlling UAV (#5308)
* Fixed viewdistance error while controlling UAV.

When you take control of UAV drones, the view distance does not properly update to your setting because it thinks that you are still the land infantry guy.  So I've experimented a bit in the editor and found a condition that will properly return true when you are in control of a drone aircraft.  I've also adapted this for use with land-based UAV stuff (like the Stomper).

To accomplish this, I created a private *_isControllingDrone* variable that will detect if the player is currently in control of any UAV.  I also edited the _landVehicle and _airVehicle scripts so if and only *_isControllingDrone* returns true, then it will check whether the drone is a subclass of "LandVehicle" or an "Air".

That's all I did.  Please accept my pull request!

* Use ACE_controlledUAV event
2017-09-10 14:42:19 -05:00

45 lines
1.0 KiB
Plaintext

/*
* Author: Winter
* Sets the player's current view distance according to whether s/he is on foot, in a land vehicle or in an air vehicle.
*
* Arguments:
* 0: Show Prompt <BOOL>
*
* Return Value:
* None
*
* Example:
* [] call ace_viewdistance_fnc_adaptViewDistance
*
* Public: No
*/
#include "script_component.hpp"
params ["_showPrompt"];
if (!GVAR(enabled) || isNull ACE_player) exitWith {};
private _vehicle = vehicle ACE_player;
ACE_controlledUAV params ["_uav"];
if (!isNull _uav) then {
TRACE_1("using UAV",ACE_controlledUAV);
_vehicle = _uav;
};
private _landVehicle = _vehicle isKindOf "LandVehicle" || {_vehicle isKindOf "Ship_F"};
private _airVehicle = _vehicle isKindOf "Air";
if (!_landVehicle && !_airVehicle) exitWith {
[GVAR(viewDistanceOnFoot), _showPrompt] call FUNC(changeViewDistance);
};
if (_landVehicle) exitWith {
[GVAR(viewDistanceLandVehicle), _showPrompt] call FUNC(changeViewDistance);
};
if (_airVehicle) exitWith {
[GVAR(viewDistanceAirVehicle), _showPrompt] call FUNC(changeViewDistance);
};