/*
 * Author: commy2
 *
 * Unmutes the unit. Only unmutes if the last reason was removed.
 *
 * Argument:
 * 0: Unit (Object)
 * 1: Reason to unmute the unit. (String)
 *
 * Return value:
 * Nothing
 */
#include "script_component.hpp"

private ["_unit", "_reason"];

_unit = _this select 0;
_reason = _this select 1;

if (isNull _unit) exitWith {};

// remove reason to mute to the unit
private "_muteUnitReasons";
_muteUnitReasons = _unit getVariable [QGVAR(muteUnitReasons), []];

if (_reason in _muteUnitReasons) then {
    _muteUnitReasons deleteAt (_muteUnitReasons find _reason);
    _unit setVariable [QGVAR(muteUnitReasons), _muteUnitReasons, true];
};

// don't unmute if there is another mute reason!
if (count _muteUnitReasons > 0) exitWith {};

private "_speaker";
_speaker = _unit getVariable ["ACE_OriginalSpeaker", ""];

if (_speaker == "") exitWith {};

["setSpeaker", _unit, [_unit, _speaker]] call FUNC(targetEvent);