nuclide/cstrike/src/client/radio.qc

143 lines
3.7 KiB
Plaintext
Executable File

/*
* Copyright (c) 2016-2020 Marco Hladik <marco@icculus.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
string g_cstrikeRadioWAVs[43] = {
"radio/blow.wav",
"radio/bombdef.wav",
"radio/bombpl.wav",
"radio/circleback.wav",
"radio/clear.wav",
"radio/com_followcom.wav",
"radio/com_getinpos.wav",
"radio/com_go.wav",
"radio/com_reportin.wav",
"radio/ct_affirm.wav",
"radio/ct_backup.wav",
"radio/ct_coverme.wav",
"radio/ct_enemys.wav",
"radio/ct_fireinhole.wav",
"radio/ct_imhit.wav",
"radio/ct_inpos.wav",
"radio/ct_point.wav",
"radio/ct_reportingin.wav",
"radio/ctwin.wav",
"radio/enemydown.wav",
"radio/fallback.wav",
"radio/fireassis.wav",
"radio/followme.wav",
"radio/getout.wav",
"radio/go.wav",
"radio/hitassist.wav",
"radio/hosdown.wav",
"radio/letsgo.wav",
"radio/locknload.wav",
"radio/matedown.wav",
"radio/meetme.wav",
"radio/moveout.wav",
"radio/negative.wav",
"radio/position.wav",
"radio/regroup.wav",
"radio/rescued.wav",
"radio/roger.wav",
"radio/rounddraw.wav",
"radio/sticktog.wav",
"radio/stormfront.wav",
"radio/takepoint.wav",
"radio/terwin.wav",
"radio/vip.wav"
};
string g_cstrikeRadioChat[43] = {
_("RADIO_BLOW"),
_("RADIO_BOMBDEF"),
_("RADIO_BOMBPL"),
_("RADIO_CIRCLEBACK"),
_("RADIO_CLEAR"),
_("RADIO_COM_FOLLOWCOM"),
_("RADIO_COM_GETINPOS"),
_("RADIO_COM_GO"),
_("RADIO_COM_REPORTIN"),
_("RADIO_CT_AFFIRM"),
_("RADIO_CT_BACKUP"),
_("RADIO_CT_COVERME"),
_("RADIO_CT_ENEMYS"),
_("RADIO_CT_FIREINHOLE"),
_("RADIO_CT_IMHIT"),
_("RADIO_CT_INPOS"),
_("RADIO_CT_POINT"),
_("RADIO_CT_REPORTINGIN"),
_("RADIO_CTWIN"),
_("RADIO_ENEMYDOWN"),
_("RADIO_FALLBACK"),
_("RADIO_FIREASSIS"),
_("RADIO_FOLLOWME"),
_("RADIO_GETOUT"),
_("RADIO_GO"),
_("RADIO_HITASSIST"),
_("RADIO_HOSDOWN"),
_("RADIO_LETSGO"),
_("RADIO_LOCKNLOAD"),
_("RADIO_MATEDOWN"),
_("RADIO_MEETME"),
_("RADIO_MOVEOUT"),
_("RADIO_NEGATIVE"),
_("RADIO_POSITION"),
_("RADIO_REGROUP"),
_("RADIO_RESCUED"),
_("RADIO_ROGER"),
_("RADIO_ROUNDDRAW"),
_("RADIO_STICKTOG"),
_("RADIO_STORMFRONT"),
_("RADIO_TAKEPOINT"),
_("RADIO_TERWIN"),
_("RADIO_VIP"),
};
void
Radio_Init(void)
{
for (int i = 0; i < g_cstrikeRadioWAVs.length; i++)
precache_sound(g_cstrikeRadioWAVs[i]);
}
/*
=================
Radio_PlayMessage
Play a radio message that doesn't come from a player
=================
*/
void
Radio_PlayMessage(float fMessage)
{
sound(world, CHAN_VOICE, g_cstrikeRadioWAVs[fMessage], 1, ATTN_NONE, 0, SOUNDFLAG_NOSPACIALISE);
CSQC_Parse_Print(sprintf("^2[RADIO]^xF80: %s", g_cstrikeRadioChat[fMessage]), PRINT_CHAT);
}
/*
=================
Radio_PlayPlayerMessage
This radio message does come from a player
=================
*/
void
Radio_PlayPlayerMessage(float fPlayerNum, float fMessage)
{
sound(world, CHAN_VOICE, g_cstrikeRadioWAVs[fMessage], 1, ATTN_NONE, 0, SOUNDFLAG_NOSPACIALISE);
CSQC_Parse_Print(sprintf("^2[RADIO] %s%s^xF80: %s", HUD_GetChatColorHEX(stof(getplayerkeyvalue(fPlayerNum, "*team"))), getplayerkeyvalue(fPlayerNum, "name"), g_cstrikeRadioChat[fMessage]), PRINT_CHAT);
}