diff --git a/addons/spectator/functions/fnc_handleCamera.sqf b/addons/spectator/functions/fnc_handleCamera.sqf index 1362ad2d80..0c79191b63 100644 --- a/addons/spectator/functions/fnc_handleCamera.sqf +++ b/addons/spectator/functions/fnc_handleCamera.sqf @@ -17,7 +17,7 @@ #include "script_component.hpp" // Kill PFH when not in free cam (or display is closed) -if ((GVAR(camMode) != 0) || isNull (GETUVAR(GVAR(display),displayNull))) exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; }; +if (isNil QGVAR(camHandler)) exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; }; _oldPos = getPosASL GVAR(camera); _mX = 0; diff --git a/addons/spectator/functions/fnc_handleInterface.sqf b/addons/spectator/functions/fnc_handleInterface.sqf index 088972a066..9a34cd180b 100644 --- a/addons/spectator/functions/fnc_handleInterface.sqf +++ b/addons/spectator/functions/fnc_handleInterface.sqf @@ -135,6 +135,8 @@ switch (toLower _mode) do { with uiNamespace do { GVAR(display) = nil; }; + + GVAR(camHandler) = nil; }; // Mouse events case "onmousebuttondown": { diff --git a/addons/spectator/functions/fnc_updateCamera.sqf b/addons/spectator/functions/fnc_updateCamera.sqf index 440b7103ab..77fb53a6f0 100644 --- a/addons/spectator/functions/fnc_updateCamera.sqf +++ b/addons/spectator/functions/fnc_updateCamera.sqf @@ -23,7 +23,7 @@ if (GVAR(camMode) == 0) then { // Free cameraEffectEnableHUD false; // Handle camera movement - [FUNC(handleCamera), 0] call CBA_fnc_addPerFrameHandler; + if (isNil QGVAR(camHandler)) then { GVAR(camHandler) = [FUNC(handleCamera), 0] call CBA_fnc_addPerFrameHandler; }; } else { // When null unit is given choose random if (isNull _newUnit) then { @@ -45,5 +45,6 @@ if (GVAR(camMode) == 0) then { // Free // Terminate camera view GVAR(camera) cameraEffect ["terminate", "back"]; + GVAR(camHandler) = nil; cameraEffectEnableHUD true; };