From: z411 Date: Tue, 21 May 2024 20:35:05 +0000 (+0000) Subject: Implemented relative team announcing and a smarter CTF announcer X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=05007c94622a715e044cd913c131864ce2044ab4;p=xonotic%2Fxonotic-data.pk3dir.git Implemented relative team announcing and a smarter CTF announcer --- diff --git a/notifications.cfg b/notifications.cfg index 22a4e70a3..dd611b21e 100644 --- a/notifications.cfg +++ b/notifications.cfg @@ -20,6 +20,13 @@ seta notification_ANNCE_ACHIEVEMENT_ELECTROBITCH "2" "0 = disabled, 1 = enabled seta notification_ANNCE_ACHIEVEMENT_IMPRESSIVE "1" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" seta notification_ANNCE_ACHIEVEMENT_YODA "1" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" seta notification_ANNCE_BEGIN "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" +seta notification_ANNCE_CTF_PICKUP_ENEMY "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" +seta notification_ANNCE_CTF_PICKUP "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" +seta notification_ANNCE_CTF_PICKUP_TEAM "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" +seta notification_ANNCE_CTF_PICKUP_YOU "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" +seta notification_ANNCE_CTF_RETURN_ENEMY "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" +seta notification_ANNCE_CTF_RETURN "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" +seta notification_ANNCE_CTF_RETURN_TEAM "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" seta notification_ANNCE_HEADSHOT "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" seta notification_ANNCE_INSTAGIB_LASTSECOND "1" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" seta notification_ANNCE_INSTAGIB_NARROWLY "1" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" @@ -88,6 +95,7 @@ seta notification_ANNCE_REMAINING_FRAG_2 "1" "0 = disabled, 1 = enabled if gentl seta notification_ANNCE_REMAINING_FRAG_3 "1" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" seta notification_ANNCE_REMAINING_MIN_1 "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" seta notification_ANNCE_REMAINING_MIN_5 "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" +seta notification_ANNCE_TEAM_SCORES "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" seta notification_ANNCE_TIMEOUT "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" seta notification_ANNCE_VOTE_ACCEPT "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" seta notification_ANNCE_VOTE_CALL "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled" diff --git a/qcsrc/common/gamemodes/gamemode/ctf/sv_ctf.qc b/qcsrc/common/gamemodes/gamemode/ctf/sv_ctf.qc index e16ed9138..e963e6e72 100644 --- a/qcsrc/common/gamemodes/gamemode/ctf/sv_ctf.qc +++ b/qcsrc/common/gamemodes/gamemode/ctf/sv_ctf.qc @@ -614,6 +614,10 @@ void ctf_Handle_Capture(entity flag, entity toucher, int capturetype) if(!old_time || new_time < old_time) GameRules_scoring_add(player, CTF_CAPTIME, new_time - old_time); + // Scores announcer + // TODO : This should call a function and announce which team is leading if the leader announcing code is merged. + Send_Notification(NOTIF_ALL, NULL, MSG_ANNCE, APP_TEAM_NUM(player.team, ANNCE_TEAM_SCORES)); + // effects Send_Effect_(flag.capeffect, flag.origin, '0 0 0', 1); #if 0 @@ -648,6 +652,14 @@ void ctf_Handle_Return(entity flag, entity player) { Send_Notification(NOTIF_ONE, player, MSG_CENTER, APP_TEAM_NUM(flag.team, CENTER_CTF_RETURN)); Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM(flag.team, INFO_CTF_RETURN), player.netname); + + FOREACH_CLIENT(IS_PLAYER(it), { + if(it.team == flag.team) + Send_Notification(NOTIF_ONE_ONLY, it, MSG_ANNCE, ANNCE_CTF_RETURN_TEAM); + else + Send_Notification(NOTIF_ONE_ONLY, it, MSG_ANNCE, ANNCE_CTF_RETURN_ENEMY); + }); + Send_Notification(NOTIF_ALL_SPEC, NULL, MSG_ANNCE, APP_TEAM_NUM(flag.team, ANNCE_CTF_RETURN)); } _sound(player, CH_TRIGGER, flag.snd_flag_returned, VOL_BASE, ATTEN_NONE); ctf_EventLog("return", flag.team, player); @@ -717,16 +729,22 @@ void ctf_Handle_Pickup(entity flag, entity player, int pickuptype) // messages and sounds Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_NUM(flag.team, INFO_CTF_PICKUP), player.netname); + Send_Notification(NOTIF_ALL_SPEC, NULL, MSG_ANNCE, APP_TEAM_NUM(flag.team, ANNCE_CTF_PICKUP)); + if(ctf_stalemate) Send_Notification(NOTIF_ONE, player, MSG_CENTER, CENTER_CTF_STALEMATE_CARRIER); if(!flag.team) Send_Notification(NOTIF_ONE, player, MSG_CENTER, CENTER_CTF_PICKUP_NEUTRAL); else if(CTF_DIFFTEAM(player, flag)) + { Send_Notification(NOTIF_ONE, player, MSG_CENTER, APP_TEAM_NUM(flag.team, CENTER_CTF_PICKUP)); + Send_Notification(NOTIF_ONE_ONLY, player, MSG_ANNCE, ANNCE_CTF_PICKUP_YOU); + } else Send_Notification(NOTIF_ONE, player, MSG_CENTER, ((SAME_TEAM(player, flag)) ? CENTER_CTF_PICKUP_RETURN : CENTER_CTF_PICKUP_RETURN_ENEMY), Team_ColorCode(flag.team)); Send_Notification(NOTIF_TEAM_EXCEPT, player, MSG_CHOICE, APP_NUM(flag.team, CHOICE_CTF_PICKUP_TEAM), Team_ColorCode(player.team), player.netname); + Send_Notification(NOTIF_TEAM_ONLY_EXCEPT, player, MSG_ANNCE, ANNCE_CTF_PICKUP_TEAM); if(!flag.team) FOREACH_CLIENT(IS_PLAYER(it) && it != player && DIFF_TEAM(it, player), { Send_Notification(NOTIF_ONE, it, MSG_CHOICE, CHOICE_CTF_PICKUP_ENEMY_NEUTRAL, Team_ColorCode(player.team), player.netname); }); @@ -734,7 +752,10 @@ void ctf_Handle_Pickup(entity flag, entity player, int pickuptype) if(flag.team) FOREACH_CLIENT(IS_PLAYER(it) && it != player, { if(CTF_SAMETEAM(flag, it)) + { Send_Notification(NOTIF_ONE, it, MSG_CHOICE, ((SAME_TEAM(flag, player)) ? CHOICE_CTF_PICKUP_ENEMY_TEAM : CHOICE_CTF_PICKUP_ENEMY), Team_ColorCode(player.team), player.netname); + Send_Notification(NOTIF_ONE_ONLY, it, MSG_ANNCE, ANNCE_CTF_PICKUP_ENEMY); + } else if(DIFF_TEAM(player, it)) Send_Notification(NOTIF_ONE, it, MSG_CHOICE, APP_NUM(flag.team, CHOICE_CTF_PICKUP_ENEMY_OTHER), Team_ColorCode(player.team), player.netname); }); @@ -810,6 +831,13 @@ void ctf_CheckFlagReturn(entity flag, int returntype) case RETURN_TIMEOUT: Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_NUM(flag.team, INFO_CTF_FLAGRETURN_TIMEOUT)); break; } + FOREACH_CLIENT(IS_PLAYER(it), { + if(it.team == flag.team) + Send_Notification(NOTIF_ONE_ONLY, it, MSG_ANNCE, ANNCE_CTF_RETURN_TEAM); + else + Send_Notification(NOTIF_ONE_ONLY, it, MSG_ANNCE, ANNCE_CTF_RETURN_ENEMY); + }); + Send_Notification(NOTIF_ALL_SPEC, NULL, MSG_ANNCE, APP_TEAM_NUM(flag.team, ANNCE_CTF_RETURN)); _sound(flag, CH_TRIGGER, flag.snd_flag_respawn, VOL_BASE, ATTEN_NONE); ctf_EventLog("returned", flag.team, NULL); flag.enemy = NULL; diff --git a/qcsrc/common/notifications/all.inc b/qcsrc/common/notifications/all.inc index effed26d9..69bf2dc21 100644 --- a/qcsrc/common/notifications/all.inc +++ b/qcsrc/common/notifications/all.inc @@ -106,12 +106,12 @@ #define ANNCE_LENGTH 0 #define ANNCE_DEFTIME 2 -#define MULTITEAM_ANNCE(prefix, defaultvalue, sound, channel, volume, position) \ +#define MULTITEAM_ANNCE(prefix, defaultvalue, sound, channel, volume, position, queuetime) \ NOTIF_ADD_AUTOCVAR(ANNCE_##prefix, defaultvalue) \ - MSG_ANNCE_NOTIF_TEAM(NUM_TEAM_1, prefix##_RED, prefix, defaultvalue, sprintf(sound, strtolower(STATIC_NAME_TEAM_1)), channel, volume, position) \ - MSG_ANNCE_NOTIF_TEAM(NUM_TEAM_2, prefix##_BLUE, prefix, defaultvalue, sprintf(sound, strtolower(STATIC_NAME_TEAM_2)), channel, volume, position) \ - MSG_ANNCE_NOTIF_TEAM(NUM_TEAM_3, prefix##_YELLOW, prefix, defaultvalue, sprintf(sound, strtolower(STATIC_NAME_TEAM_3)), channel, volume, position) \ - MSG_ANNCE_NOTIF_TEAM(NUM_TEAM_4, prefix##_PINK, prefix, defaultvalue, sprintf(sound, strtolower(STATIC_NAME_TEAM_4)), channel, volume, position) + MSG_ANNCE_NOTIF_TEAM(NUM_TEAM_1, prefix##_RED, prefix, defaultvalue, sprintf(sound, strtolower(STATIC_NAME_TEAM_1)), channel, volume, position, queuetime) \ + MSG_ANNCE_NOTIF_TEAM(NUM_TEAM_2, prefix##_BLUE, prefix, defaultvalue, sprintf(sound, strtolower(STATIC_NAME_TEAM_2)), channel, volume, position, queuetime) \ + MSG_ANNCE_NOTIF_TEAM(NUM_TEAM_3, prefix##_YELLOW, prefix, defaultvalue, sprintf(sound, strtolower(STATIC_NAME_TEAM_3)), channel, volume, position, queuetime) \ + MSG_ANNCE_NOTIF_TEAM(NUM_TEAM_4, prefix##_PINK, prefix, defaultvalue, sprintf(sound, strtolower(STATIC_NAME_TEAM_4)), channel, volume, position, queuetime) // MSG_ANNCE_NOTIFICATIONS MSG_ANNCE_NOTIF(ACHIEVEMENT_AIRSHOT, N_GNTLOFF, "airshot", CH_INFO, VOL_BASEVOICE, ATTEN_NONE, ANNCE_DEFTIME) @@ -210,6 +210,17 @@ MSG_ANNCE_NOTIF(VOTE_CALL, N__ALWAYS, "votecall", CH_INFO, VOL_BASEVOICE, ATTEN_NONE, ANNCE_DEFTIME) MSG_ANNCE_NOTIF(VOTE_FAIL, N__ALWAYS, "votefail", CH_INFO, VOL_BASEVOICE, ATTEN_NONE, ANNCE_DEFTIME) + MULTITEAM_ANNCE(TEAM_SCORES, N__ALWAYS, "scores_%s", CH_INFO, VOL_BASEVOICE, ATTEN_NONE, ANNCE_DEFTIME) + + MSG_ANNCE_NOTIF(CTF_PICKUP_YOU, N__ALWAYS, "ctf_pickup_you", CH_INFO, VOL_BASEVOICE, ATTEN_NONE, ANNCE_DEFTIME) + MSG_ANNCE_NOTIF(CTF_PICKUP_TEAM, N__ALWAYS, "ctf_pickup_team", CH_INFO, VOL_BASEVOICE, ATTEN_NONE, ANNCE_DEFTIME) + MSG_ANNCE_NOTIF(CTF_PICKUP_ENEMY, N__ALWAYS, "ctf_pickup_enemy", CH_INFO, VOL_BASEVOICE, ATTEN_NONE, ANNCE_DEFTIME) + MULTITEAM_ANNCE(CTF_PICKUP, N__ALWAYS, "ctf_pickup_%s", CH_INFO, VOL_BASEVOICE, ATTEN_NONE, ANNCE_DEFTIME) + + MSG_ANNCE_NOTIF(CTF_RETURN_TEAM, N__ALWAYS, "ctf_return_team", CH_INFO, VOL_BASEVOICE, ATTEN_NONE, ANNCE_DEFTIME) + MSG_ANNCE_NOTIF(CTF_RETURN_ENEMY, N__ALWAYS, "ctf_return_enemy", CH_INFO, VOL_BASEVOICE, ATTEN_NONE, ANNCE_DEFTIME) + MULTITEAM_ANNCE(CTF_RETURN, N__ALWAYS, "ctf_return_%s", CH_INFO, VOL_BASEVOICE, ATTEN_NONE, ANNCE_DEFTIME) + #undef N___NEVER #undef N_GNTLOFF #undef N__ALWAYS diff --git a/qcsrc/common/notifications/all.qc b/qcsrc/common/notifications/all.qc index 58910887e..55be5d5b2 100644 --- a/qcsrc/common/notifications/all.qc +++ b/qcsrc/common/notifications/all.qc @@ -41,6 +41,7 @@ string Notification_CheckArgs( break; } + case NOTIF_ALL_SPEC: case NOTIF_ALL: { if (client) { @@ -50,6 +51,7 @@ string Notification_CheckArgs( } case NOTIF_TEAM: + case NOTIF_TEAM_ONLY: { if (!teamplay) { return "Teamplay not active!"; @@ -60,6 +62,7 @@ string Notification_CheckArgs( } case NOTIF_TEAM_EXCEPT: + case NOTIF_TEAM_ONLY_EXCEPT: { if (!teamplay) { return "Teamplay not active!"; @@ -120,6 +123,20 @@ bool Notification_ShouldSend(NOTIF broadcast, entity to_client, entity other_cli ) ) ); + case NOTIF_TEAM_ONLY: + return ( + (to_client.team == other_client.team) + ); + case NOTIF_TEAM_ONLY_EXCEPT: + return ( + (to_client != other_client) + && + (to_client.team == other_client.team) + ); + case NOTIF_ALL_SPEC: + return ( + (IS_SPEC(to_client) || IS_OBSERVER(to_client)) + ); case NOTIF_ALL: return true; case NOTIF_ALL_EXCEPT: diff --git a/qcsrc/common/notifications/all.qh b/qcsrc/common/notifications/all.qh index 00bd94bb7..3d63f5bd2 100644 --- a/qcsrc/common/notifications/all.qh +++ b/qcsrc/common/notifications/all.qh @@ -251,10 +251,16 @@ ENUMCLASS(NOTIF) CASE(NOTIF, TEAM) /** send only to X team and their spectators, except for Y person and their spectators */ CASE(NOTIF, TEAM_EXCEPT) + /** send only to X team; don't include spectators */ + CASE(NOTIF, TEAM_ONLY) + /** send to team X team except for Y person; don't include spectators */ + CASE(NOTIF, TEAM_ONLY_EXCEPT) /** send to everyone */ CASE(NOTIF, ALL) /** send to everyone except X person and their spectators */ CASE(NOTIF, ALL_EXCEPT) + /** send to all spectators **/ + CASE(NOTIF, ALL_SPEC) ENUMCLASS_END(NOTIF) string Get_Notif_BroadcastName(NOTIF broadcast) @@ -263,10 +269,13 @@ string Get_Notif_BroadcastName(NOTIF broadcast) { case NOTIF_ONE: return "NOTIF_ONE"; case NOTIF_ONE_ONLY: return "NOTIF_ONE_ONLY"; + case NOTIF_ALL_SPEC: return "NOTIF_ALL_SPEC"; case NOTIF_ALL_EXCEPT: return "NOTIF_ALL_EXCEPT"; case NOTIF_ALL: return "NOTIF_ALL"; case NOTIF_TEAM: return "NOTIF_TEAM"; case NOTIF_TEAM_EXCEPT: return "NOTIF_TEAM_EXCEPT"; + case NOTIF_TEAM_ONLY: return "NOTIF_TEAM_ONLY"; + case NOTIF_TEAM_ONLY_EXCEPT: return "NOTIF_TEAM_ONLY_EXCEPT"; } LOG_WARNF("Get_Notif_BroadcastName(%d): Improper broadcast!", broadcast); return ""; diff --git a/sound/announcer/default/ctf_pickup_blue.ogg b/sound/announcer/default/ctf_pickup_blue.ogg new file mode 100644 index 000000000..971f0b16b Binary files /dev/null and b/sound/announcer/default/ctf_pickup_blue.ogg differ diff --git a/sound/announcer/default/ctf_pickup_enemy.ogg b/sound/announcer/default/ctf_pickup_enemy.ogg new file mode 100644 index 000000000..a57f61a0d Binary files /dev/null and b/sound/announcer/default/ctf_pickup_enemy.ogg differ diff --git a/sound/announcer/default/ctf_pickup_pink.ogg b/sound/announcer/default/ctf_pickup_pink.ogg new file mode 100644 index 000000000..b6ac41001 Binary files /dev/null and b/sound/announcer/default/ctf_pickup_pink.ogg differ diff --git a/sound/announcer/default/ctf_pickup_red.ogg b/sound/announcer/default/ctf_pickup_red.ogg new file mode 100644 index 000000000..fb09a66f0 Binary files /dev/null and b/sound/announcer/default/ctf_pickup_red.ogg differ diff --git a/sound/announcer/default/ctf_pickup_team.ogg b/sound/announcer/default/ctf_pickup_team.ogg new file mode 100644 index 000000000..1836329a5 Binary files /dev/null and b/sound/announcer/default/ctf_pickup_team.ogg differ diff --git a/sound/announcer/default/ctf_pickup_yellow.ogg b/sound/announcer/default/ctf_pickup_yellow.ogg new file mode 100644 index 000000000..82d5cf3bb Binary files /dev/null and b/sound/announcer/default/ctf_pickup_yellow.ogg differ diff --git a/sound/announcer/default/ctf_pickup_you.ogg b/sound/announcer/default/ctf_pickup_you.ogg new file mode 100644 index 000000000..ce565f90f Binary files /dev/null and b/sound/announcer/default/ctf_pickup_you.ogg differ diff --git a/sound/announcer/default/ctf_return_blue.ogg b/sound/announcer/default/ctf_return_blue.ogg new file mode 100644 index 000000000..44f9d3482 Binary files /dev/null and b/sound/announcer/default/ctf_return_blue.ogg differ diff --git a/sound/announcer/default/ctf_return_enemy.ogg b/sound/announcer/default/ctf_return_enemy.ogg new file mode 100644 index 000000000..78125d5e2 Binary files /dev/null and b/sound/announcer/default/ctf_return_enemy.ogg differ diff --git a/sound/announcer/default/ctf_return_pink.ogg b/sound/announcer/default/ctf_return_pink.ogg new file mode 100644 index 000000000..a21060b96 Binary files /dev/null and b/sound/announcer/default/ctf_return_pink.ogg differ diff --git a/sound/announcer/default/ctf_return_red.ogg b/sound/announcer/default/ctf_return_red.ogg new file mode 100644 index 000000000..e7b440212 Binary files /dev/null and b/sound/announcer/default/ctf_return_red.ogg differ diff --git a/sound/announcer/default/ctf_return_team.ogg b/sound/announcer/default/ctf_return_team.ogg new file mode 100644 index 000000000..95c19c307 Binary files /dev/null and b/sound/announcer/default/ctf_return_team.ogg differ diff --git a/sound/announcer/default/ctf_return_yellow.ogg b/sound/announcer/default/ctf_return_yellow.ogg new file mode 100644 index 000000000..4c39fccaa Binary files /dev/null and b/sound/announcer/default/ctf_return_yellow.ogg differ diff --git a/sound/announcer/default/scores_blue.ogg b/sound/announcer/default/scores_blue.ogg new file mode 100644 index 000000000..d29982032 Binary files /dev/null and b/sound/announcer/default/scores_blue.ogg differ diff --git a/sound/announcer/default/scores_pink.ogg b/sound/announcer/default/scores_pink.ogg new file mode 100644 index 000000000..5d33c807b Binary files /dev/null and b/sound/announcer/default/scores_pink.ogg differ diff --git a/sound/announcer/default/scores_red.ogg b/sound/announcer/default/scores_red.ogg new file mode 100644 index 000000000..ff508bc73 Binary files /dev/null and b/sound/announcer/default/scores_red.ogg differ diff --git a/sound/announcer/default/scores_yellow.ogg b/sound/announcer/default/scores_yellow.ogg new file mode 100644 index 000000000..706be3f66 Binary files /dev/null and b/sound/announcer/default/scores_yellow.ogg differ diff --git a/sound/ctf/blue_capture.ogg b/sound/ctf/blue_capture.ogg new file mode 100755 index 000000000..f3a2ef3c8 Binary files /dev/null and b/sound/ctf/blue_capture.ogg differ diff --git a/sound/ctf/blue_capture.wav b/sound/ctf/blue_capture.wav deleted file mode 100644 index 84c69e0cf..000000000 Binary files a/sound/ctf/blue_capture.wav and /dev/null differ diff --git a/sound/ctf/blue_dropped.ogg b/sound/ctf/blue_dropped.ogg new file mode 100755 index 000000000..d9a861cba Binary files /dev/null and b/sound/ctf/blue_dropped.ogg differ diff --git a/sound/ctf/blue_dropped.wav b/sound/ctf/blue_dropped.wav deleted file mode 100644 index ca3aa97b8..000000000 Binary files a/sound/ctf/blue_dropped.wav and /dev/null differ diff --git a/sound/ctf/blue_returned.ogg b/sound/ctf/blue_returned.ogg new file mode 100755 index 000000000..900f5bc37 Binary files /dev/null and b/sound/ctf/blue_returned.ogg differ diff --git a/sound/ctf/blue_returned.wav b/sound/ctf/blue_returned.wav deleted file mode 100644 index 7d0042b87..000000000 Binary files a/sound/ctf/blue_returned.wav and /dev/null differ diff --git a/sound/ctf/blue_taken.ogg b/sound/ctf/blue_taken.ogg new file mode 100755 index 000000000..7b48dcc21 Binary files /dev/null and b/sound/ctf/blue_taken.ogg differ diff --git a/sound/ctf/blue_taken.wav b/sound/ctf/blue_taken.wav deleted file mode 100644 index 646b2981e..000000000 Binary files a/sound/ctf/blue_taken.wav and /dev/null differ diff --git a/sound/ctf/red_capture.ogg b/sound/ctf/red_capture.ogg new file mode 100755 index 000000000..ea92826cc Binary files /dev/null and b/sound/ctf/red_capture.ogg differ diff --git a/sound/ctf/red_capture.wav b/sound/ctf/red_capture.wav deleted file mode 100644 index 29995b0d9..000000000 Binary files a/sound/ctf/red_capture.wav and /dev/null differ diff --git a/sound/ctf/red_dropped.ogg b/sound/ctf/red_dropped.ogg new file mode 100755 index 000000000..480c1b011 Binary files /dev/null and b/sound/ctf/red_dropped.ogg differ diff --git a/sound/ctf/red_dropped.wav b/sound/ctf/red_dropped.wav deleted file mode 100644 index ad1ddc212..000000000 Binary files a/sound/ctf/red_dropped.wav and /dev/null differ diff --git a/sound/ctf/red_returned.ogg b/sound/ctf/red_returned.ogg new file mode 100755 index 000000000..732cdd9ee Binary files /dev/null and b/sound/ctf/red_returned.ogg differ diff --git a/sound/ctf/red_returned.wav b/sound/ctf/red_returned.wav deleted file mode 100644 index e75941377..000000000 Binary files a/sound/ctf/red_returned.wav and /dev/null differ diff --git a/sound/ctf/red_taken.ogg b/sound/ctf/red_taken.ogg new file mode 100755 index 000000000..cd2570eb9 Binary files /dev/null and b/sound/ctf/red_taken.ogg differ diff --git a/sound/ctf/red_taken.wav b/sound/ctf/red_taken.wav deleted file mode 100644 index 5d3de40c9..000000000 Binary files a/sound/ctf/red_taken.wav and /dev/null differ