diff --git a/src/d_clisrv.c b/src/d_clisrv.c index ebbd97dac..a7193327d 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -5534,6 +5534,11 @@ boolean TryRunTics(tic_t realtics) if (gametic % TICRATE == 0) { Schedule_Run(); + + if (cv_livestudioaudience.value) + { + LiveStudioAudience(); + } } ExtraDataTicker(); diff --git a/src/d_netcmd.c b/src/d_netcmd.c index eb79b950f..62bc4ee29 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -151,6 +151,7 @@ static void KartComeback_OnChange(void); static void KartEliminateLast_OnChange(void); static void Schedule_OnChange(void); +static void LiveStudioAudience_OnChange(void); #ifdef NETGAME_DEVMODE static void Fishcake_OnChange(void); @@ -567,6 +568,12 @@ consvar_t cv_schedule = CVAR_INIT ("schedule", "On", CV_NETVAR|CV_CALL, CV_OnOff consvar_t cv_automate = CVAR_INIT ("automate", "On", CV_NETVAR, CV_OnOff, NULL); +#ifdef DEVELOP +consvar_t cv_livestudioaudience = CVAR_INIT ("livestudioaudience", "On", CV_NETVAR|CV_CALL, CV_OnOff, LiveStudioAudience_OnChange); +#else +consvar_t cv_livestudioaudience = CVAR_INIT ("livestudioaudience", "Off", CV_NETVAR|CV_CALL, CV_OnOff, LiveStudioAudience_OnChange); +#endif + char timedemo_name[256]; boolean timedemo_csv; char timedemo_csv_id[256]; @@ -597,6 +604,8 @@ const char *automate_names[AEV__MAX] = "VoteStart" // AEV_VOTESTART }; +static UINT32 livestudioaudience_timer = 90; + /// \warning Keep this up-to-date if you add/remove/rename net text commands const char *netxcmdnames[MAXNETXCMD - 1] = { @@ -828,6 +837,7 @@ void D_RegisterServerCommands(void) CV_RegisterVar(&cv_schedule); CV_RegisterVar(&cv_automate); + CV_RegisterVar(&cv_livestudioaudience); CV_RegisterVar(&cv_dummyconsvar); @@ -4135,6 +4145,19 @@ void Automate_Clear(void) } } +void LiveStudioAudience(void) +{ + if (livestudioaudience_timer == 0) + { + S_StartSound(NULL, sfx_mbv91); + livestudioaudience_timer = 90; + } + else + { + livestudioaudience_timer--; + } +} + static void Command_MotD_f(void) { size_t i, j; @@ -6457,6 +6480,11 @@ static void Schedule_OnChange(void) } } +static void LiveStudioAudience_OnChange(void) +{ + livestudioaudience_timer = 90; +} + void Got_DiscordInfo(UINT8 **p, INT32 playernum) { if (playernum != serverplayer /*&& !IsPlayerAdmin(playernum)*/) diff --git a/src/d_netcmd.h b/src/d_netcmd.h index 9914380ff..7125e3b27 100644 --- a/src/d_netcmd.h +++ b/src/d_netcmd.h @@ -131,6 +131,8 @@ extern consvar_t cv_director; extern consvar_t cv_schedule; +extern consvar_t cv_livestudioaudience; + extern char timedemo_name[256]; extern boolean timedemo_csv; extern char timedemo_csv_id[256]; @@ -274,6 +276,8 @@ void Automate_Run(automateEvents_t type); void Automate_Set(automateEvents_t type, const char *command); void Automate_Clear(void); +void LiveStudioAudience(void); + // used for the player setup menu UINT8 CanChangeSkin(INT32 playernum);