Added separate handling for Air vehicles (longer view distances), Fixed normal zoom level to actual A3 value

This commit is contained in:
jonpas 2015-08-17 18:46:14 +02:00
parent 3147cb038b
commit f14830624b

View File

@ -13,8 +13,13 @@
* *
* Public: No * Public: No
*/ */
#define DEBUG_MODE_FULL
#include "script_component.hpp" #include "script_component.hpp"
#define VD_NORMAL_ZOOM 1.00041
#define VD_ZOOM_DIVISION 35
#define VD_ZOOM_DIVISION_AIR 10
params ["", "_idPFH"]; params ["", "_idPFH"];
// Remove PFH and set Object View Distance back to what it was before // Remove PFH and set Object View Distance back to what it was before
@ -26,11 +31,22 @@ if (GVAR(objectViewDistanceCoeff) < 6) exitWith {
private ["_zoom"]; private ["_zoom"];
_zoom = (call CBA_fnc_getFov) select 1; _zoom = (call CBA_fnc_getFov) select 1;
if (_zoom > 0.94) then { // Air
if ((vehicle ACE_player) isKindOf "Air") exitWith {
if (_zoom > VD_NORMAL_ZOOM) then {
// Dynamically set Object View Distance based on player's Zoom Level and View Distance
setObjectViewDistance ((_zoom / VD_ZOOM_DIVISION_AIR * (viewDistance - GVAR(fovBasedPFHminimalViewDistance))) + GVAR(fovBasedPFHminimalViewDistance));
} else {
setObjectViewDistance (GVAR(fovBasedPFHminimalViewDistance) + viewDistance / 10);
};
TRACE_2("FoV Based",getObjectViewDistance select 0,_zoom);
};
// Land
if (_zoom > VD_NORMAL_ZOOM) then {
// Dynamically set Object View Distance based on player's Zoom Level and View Distance // Dynamically set Object View Distance based on player's Zoom Level and View Distance
setObjectViewDistance ((_zoom/34.98 * (viewDistance - GVAR(fovBasedPFHminimalViewDistance))) + GVAR(fovBasedPFHminimalViewDistance)); setObjectViewDistance ((_zoom / VD_ZOOM_DIVISION * (viewDistance - GVAR(fovBasedPFHminimalViewDistance))) + GVAR(fovBasedPFHminimalViewDistance));
} else { } else {
setObjectViewDistance GVAR(fovBasedPFHminimalViewDistance); setObjectViewDistance GVAR(fovBasedPFHminimalViewDistance);
}; };
TRACE_2("FoV Based",getObjectViewDistance select 0,_zoom); TRACE_2("FoV Based",getObjectViewDistance select 0,_zoom);