Set camera attributes

This commit is contained in:
SilentSpike 2015-07-20 22:45:28 +01:00
parent 34d2ec1d5a
commit c3329ca8fc
2 changed files with 43 additions and 0 deletions

View File

@ -11,6 +11,7 @@ PREP(handleRespawn);
PREP(handleToolbar);
PREP(handleUnits);
PREP(moduleSpectatorSettings);
PREP(setCameraAttributes);
PREP(setSpectator);
PREP(transitionCamera);
PREP(toggleInterface);

View File

@ -0,0 +1,42 @@
/*
* Author: SilentSpike
* Sets the spectator camera attributes as desired
*
* Arguments:
* 0: Camera mode <NUMBER> <OPTIONAL>
* - 0: Free
* - 1: Internal
* - 2: External
* 1: Camera unit (objNull for random) <OBJECT> <OPTIONAL>
* 2: Camera position (ASL) <ARRAY> <OPTIONAL>
* 3: Camera heading (0 - 360) <NUMBER> <OPTIONAL>
* 4: Camera zoom (0.1 - 2) <NUMBER> <OPTIONAL>
* 5: Camera speed (m/s) <NUMBER> <OPTIONAL>
*
* Return Value:
* None <NIL>
*
* 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);
};