2015-08-21 23:26:01 +00:00
|
|
|
/*
|
|
|
|
* Author: SilentSpike
|
|
|
|
* Interrupts the spectator interface for external systems
|
|
|
|
*
|
|
|
|
* Arguments:
|
|
|
|
* 0: Reason <STRING>
|
2015-10-04 17:30:07 +00:00
|
|
|
* 1: Interrupting <BOOL> (default: true)
|
2015-08-21 23:26:01 +00:00
|
|
|
*
|
|
|
|
* Return Value:
|
|
|
|
* None <NIL>
|
|
|
|
*
|
|
|
|
* Example:
|
|
|
|
* ["mySystem"] call ace_spectator_fnc_interrupt
|
|
|
|
*
|
|
|
|
* Public: Yes
|
|
|
|
*/
|
|
|
|
#include "script_component.hpp"
|
|
|
|
|
|
|
|
params [["_reason", "", [""]], ["_interrupt", true, [true]]];
|
|
|
|
|
|
|
|
// Nothing to do when spectator is closed
|
|
|
|
if !(GVAR(isSet)) exitWith {};
|
|
|
|
|
|
|
|
if (_reason == "") exitWith { ERROR("Invalid Reason"); };
|
|
|
|
if (_interrupt) then {
|
|
|
|
GVAR(interrupts) pushBack _reason;
|
|
|
|
} else {
|
|
|
|
GVAR(interrupts) = GVAR(interrupts) - [_reason];
|
|
|
|
};
|
|
|
|
|
|
|
|
if (GVAR(interrupts) isEqualTo []) then {
|
|
|
|
if (isNull (findDisplay 12249)) then {
|
|
|
|
createDialog QGVAR(interface);
|
|
|
|
[] call FUNC(transitionCamera);
|
|
|
|
};
|
|
|
|
} else {
|
|
|
|
if !(isNull (findDisplay 12249)) then {
|
|
|
|
while {dialog} do {
|
|
|
|
closeDialog 0;
|
|
|
|
};
|
|
|
|
|
|
|
|
(findDisplay 12249) closeDisplay 0;
|
|
|
|
};
|
|
|
|
};
|