/**
 * Author: dkanus
 * Home repo: https://www.insultplayers.ru/git/AcediaFramework/AcediaCore
 * License: GPL
 * Copyright 2023 Anton Tarasenko
 *------------------------------------------------------------------------------
 * This file is part of Acedia.
 *
 * Acedia is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, version 3 of the License, or
 * (at your option) any later version.
 *
 * Acedia is distributed in the hope that it will be useful,, 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Acedia.  If not, see <https://www.gnu.org/licenses/>.
 */
class Unflect_ChatApi_Controller extends KFPlayerController
    dependsOn(ChatAPI);

function SendVoiceMessage(
    PlayerReplicationInfo sender,
    PlayerReplicationInfo statedRecipient,
    name messageType,
    byte messageID,
    name broadcastType,
    optional Pawn soundSender,
    optional vector senderLocation
) {
    local Controller recepient;
    local KFPlayerController kfPlayerRecepient;

    // Don't allow dead people to talk
    if (pawn == none)                       return;
    if (!AllowVoiceMessage(messageType))    return;

    class'Global'.static.GetInstance().chat._EmitOnVoiceMessage(self, messageType, messageID);
    recepient = level.controllerList;
    while (recepient != none) {
        kfPlayerRecepient = KFPlayerController(recepient);
        if (kfPlayerRecepient != none) {
            kfPlayerRecepient.ClientLocationalVoiceMessage(
                sender,
                statedRecipient,
                messagetype,
                messageID,
                soundSender,
                senderLocation);
        }
        recepient = recepient.nextController;
    }
}

defaultproperties {
}