add camera tool to observe projectile in flight

This commit is contained in:
Brandon Danyluk 2021-04-12 17:03:21 -06:00
parent e54e6ec254
commit 8948e8ac77
4 changed files with 43 additions and 0 deletions

View File

@ -11,3 +11,7 @@
false
},
[15, [false, true, false]], false] call CBA_fnc_addKeybind; //Ctrl+Tab Key
#ifdef ENABLE_PROJECTILE_CAMERA
GVAR(dev_fnc_projectileCamera) = compile preprocessFileLineNumbers QPATHTOF(dev\projectileCamera.sqf);
#endif

View File

@ -0,0 +1,34 @@
#include "\z\ace\addons\missileguidance\script_component.hpp"
// tracks a projectile until it explodes
params ["_projectile"];
private _camera = "camera" camCreate getPosATL _projectile;
_camera camPrepareFOV 0.7;
_camera cameraEffect ["internal", "back"];
_camera camCommitPrepared 0;
[{
params ["_args", "_pfh"];
_args params ["_projectile", "_camera", "_projectilePos"];
if !(alive _projectile) exitWith {
[{
params ["_camera"];
_camera cameraEffect ["terminate", "back"];
_camera camCommitPrepared 0;
camDestroy _camera;
}, [_camera], 1.5] call CBA_fnc_waitAndExecute;
_camera camPrepareTarget _projectilePos;
_camera camCommitPrepared 0;
[_pfh] call CBA_fnc_removePerFrameHandler;
};
_camera camPrepareTarget _projectile;
_camera camPrepareRelPos [0, -5, 1];
_camera camCommitPrepared 0;
_args set [2, getPosATL _projectile];
}, 0, [_projectile, _camera, getPosATL _projectile]] call CBA_fnc_addPerFrameHandler;

View File

@ -175,6 +175,10 @@ if (_onFiredFunc != "") then {
[LINKFUNC(guidancePFH),0, _args ] call CBA_fnc_addPerFrameHandler;
#ifdef ENABLE_PROJECTILE_CAMERA
[_projectile] call GVAR(dev_fnc_projectileCamera);
#endif
/* Clears locking settings
(vehicle _shooter) setVariable [QGVAR(target), nil];

View File

@ -3,6 +3,7 @@
#include "\z\ace\addons\main\script_mod.hpp"
#define DRAW_GUIDANCE_INFO
#define ENABLE_PROJECTILE_CAMERA
#define DEBUG_MODE_FULL
#define DISABLE_COMPILE_CACHE
// #define ENABLE_PERFORMANCE_COUNTERS