/* * Author: SilentSpike * Sets the spectator camera attributes as desired * * Arguments: * 0: Camera mode * - 0: Free * - 1: Internal * - 2: External * 1: Camera unit (objNull for random) * 2: Camera position (ASL) * 3: Camera heading (0 - 360) * 4: Camera zoom (0.1 - 2) * 5: Camera speed (m/s) * * Return Value: * None * * Example: * [1, objNull] call ace_spectator_fnc_setCameraAttributes * * Public: Yes */ #include "script_component.hpp" params [["_mode",GVAR(camMode),[0]], ["_unit",GVAR(camUnit),[objNull]], ["_position",GVAR(camPos),[[]],3], ["_heading",GVAR(camPan),[0]], ["_zoom",GVAR(camZoom),[0]], ["_speed",GVAR(camSpeed),[0]]]; // Normalize input GVAR(camMode) = floor((_mode min 3) max 0); GVAR(camPan) = ((_heading % 360) max 0); GVAR(camPosition) = _position; GVAR(camSpeed) = _speed; GVAR(camUnit) = _unit; GVAR(camZoom) = (_zoom min 2) max 0; // Apply if camera exists if !(isNil QGVAR(camera)) then { GVAR(camera) setDir GVAR(camPan); GVAR(camera) setPosASL GVAR(camPos); [] call FUNC(transitionCamera); };