Adding vision to setCameraAttributes

This commit is contained in:
SilentSpike 2015-07-21 15:44:11 +01:00
parent c0fd26f706
commit dcea8f4929
3 changed files with 33 additions and 13 deletions

View File

@ -14,6 +14,7 @@
};*/
GVAR(availableModes) = [[0,1,2], [1,2], [0], [1], [2]] select GVAR(restrictModes);
GVAR(availableVisions) = [[-2,-1,0,1], [-2,-1], [-2,0,1], [-2]] select GVAR(restrictVisions);
GVAR(camMode) = GVAR(availableModes) select 0;
if (GVAR(system)) then {
// Add event handlers to correctly enter spectator upon death

View File

@ -8,11 +8,16 @@
* - 1: Internal
* - 2: External
* 1: Camera unit (objNull for random) <OBJECT> <OPTIONAL>
* 2: Camera position (ASL) <ARRAY> <OPTIONAL>
* 3: Camera pan (0 - 360) <NUMBER> <OPTIONAL>
* 4: Camera tilt (-90 - 90) <NUMBER> <OPTIONAL>
* 5: Camera zoom (0.1 - 2) <NUMBER> <OPTIONAL>
* 6: Camera speed (m/s) <NUMBER> <OPTIONAL>
* 2: Camera vision <NUMBER> <OPTIONAL>
* - -2: Normal
* - -1: Night vision
* - 0: Thermal white hot
* - 1: Thermal black hot
* 3: Camera position (ASL) <ARRAY> <OPTIONAL>
* 4: Camera pan (0 - 360) <NUMBER> <OPTIONAL>
* 5: Camera tilt (-90 - 90) <NUMBER> <OPTIONAL>
* 6: Camera zoom (0.1 - 2) <NUMBER> <OPTIONAL>
* 7: Camera speed (m/s) <NUMBER> <OPTIONAL>
*
* Return Value:
* None <NIL>
@ -25,18 +30,37 @@
#include "script_component.hpp"
params [["_mode",GVAR(camMode),[0]], ["_unit",GVAR(camUnit),[objNull]], ["_position",GVAR(camPos),[[]],3], ["_heading",GVAR(camPan),[0]], ["_tilt",GVAR(camTilt),[0]], ["_zoom",GVAR(camZoom),[0]], ["_speed",GVAR(camSpeed),[0]]];
params [
["_mode",GVAR(camMode),[0]],
["_unit",GVAR(camUnit),[objNull]],
["_vision",GVAR(camVision),[0]],
["_position",GVAR(camPos),[[]],3],
["_heading",GVAR(camPan),[0]],
["_tilt",GVAR(camTilt),[0]],
["_zoom",GVAR(camZoom),[0]],
["_speed",GVAR(camSpeed),[0]]
];
// Normalize input
GVAR(camMode) = floor((_mode min 3) max 0);
if !(_mode in GVAR(availableModes)) then {
_mode = GVAR(availableModes) select 0;
};
if !(_vision in GVAR(availableVisions)) then {
_vision = GVAR(availableVisions) select 0;
};
GVAR(camPan) = ((_heading % 360) max 0);
GVAR(camPosition) = _position;
GVAR(camSpeed) = _speed;
GVAR(camTilt) = ((_heading min -90) max 90);
GVAR(camUnit) = _unit;
GVAR(camVision) = _vision;
GVAR(camZoom) = (_zoom min 2) max 0;
// Apply if camera exists
if !(isNil QGVAR(camera)) then {
[] call FUNC(transitionCamera);
[_mode,_unit,_vision] call FUNC(transitionCamera);
} else {
GVAR(camMode) = _mode;
};

View File

@ -27,11 +27,6 @@
params [["_newMode",GVAR(camMode)], ["_newUnit",GVAR(camUnit)], ["_newVision",GVAR(camVision)]];
if !(_newMode in GVAR(availableModes)) exitWith {
[1] call FUNC(cycleCamera);
[nil, _newUnit, _newVision] call FUNC(transitionCamera);
};
// When no units available to spectate, exit to freecam
if (GVAR(unitList) isEqualTo []) then {
_newMode = 0;