# HG changeset patch # User Adam Kaminski # Date 1626032738 14400 # Sun Jul 11 15:45:38 2021 -0400 # Node ID a235cb68a06718f8dcdc5dffcae8d821434901e3 # Parent 8be49b5bad3002b9311b9ae480ba963be9dc59ac Added the server command: "StopAllSoundsOnThing" which stops all sounds an actor is playing on the client's end. diff -r 8be49b5bad30 -r a235cb68a067 src/cl_main.cpp --- a/src/cl_main.cpp Fri Jul 09 14:56:07 2021 -0400 +++ b/src/cl_main.cpp Sun Jul 11 15:45:38 2021 -0400 @@ -2233,6 +2233,17 @@ } break; + case SVC2_STOPALLSOUNDSONTHING: + { + AActor* actor = CLIENT_FindThingByNetID( pByteStream->ReadShort()); + + if ( actor ) + { + S_StopAllSoundsFromActor( actor ); + } + } + break; + case SVC2_SHOOTDECAL: { FName decalName = NETWORK_ReadName( pByteStream ); diff -r 8be49b5bad30 -r a235cb68a067 src/network_enums.h --- a/src/network_enums.h Fri Jul 09 14:56:07 2021 -0400 +++ b/src/network_enums.h Sun Jul 11 15:45:38 2021 -0400 @@ -378,6 +378,7 @@ ENUM_ELEMENT ( SVC2_SYNCMAPROTATION ), ENUM_ELEMENT ( SVC2_ADDTOMAPROTATION ), ENUM_ELEMENT ( SVC2_DELFROMMAPROTATION ), + ENUM_ELEMENT ( SVC2_STOPALLSOUNDSONTHING ), // [BB] Commands necessary for the account system. ENUM_ELEMENT ( SVC2_SRP_USER_START_AUTHENTICATION ), ENUM_ELEMENT ( SVC2_SRP_USER_PROCESS_CHALLENGE ), diff -r 8be49b5bad30 -r a235cb68a067 src/sv_commands.cpp --- a/src/sv_commands.cpp Fri Jul 09 14:56:07 2021 -0400 +++ b/src/sv_commands.cpp Sun Jul 11 15:45:38 2021 -0400 @@ -3913,6 +3913,18 @@ //***************************************************************************** // +void SERVERCOMMANDS_StopAllSoundsOnThing( AActor *pActor, ULONG ulPlayerExtra, ServerCommandFlags flags ) +{ + if ( EnsureActorHasNetID( pActor ) == false ) + return; + + NetCommand command ( SVC2_STOPALLSOUNDSONTHING ); + command.addShort( pActor->NetID ); + command.sendCommandToClients(); +} + +//***************************************************************************** +// void SERVERCOMMANDS_FullUpdateCompleted( ULONG ulClient ) { ServerCommands::FullUpdateCompleted().sendCommandToClients( ulClient, SVCF_ONLYTHISCLIENT ); diff -r 8be49b5bad30 -r a235cb68a067 src/sv_commands.h --- a/src/sv_commands.h Fri Jul 09 14:56:07 2021 -0400 +++ b/src/sv_commands.h Sun Jul 11 15:45:38 2021 -0400 @@ -232,6 +232,7 @@ void SERVERCOMMANDS_SetThingSpecies( AActor *mobj, ULONG ulPlayerExtra = MAXPLAYERS, ServerCommandFlags flags = 0 ); void SERVERCOMMANDS_UpdateThingScaleNotAtDefault( AActor* pActor, ULONG ulPlayerExtra = MAXPLAYERS, ServerCommandFlags flags = 0 ); void SERVERCOMMANDS_FlashStealthMonster( AActor* pActor, ULONG ulPlayerExtra = MAXPLAYERS, ServerCommandFlags flags = 0 ); +void SERVERCOMMANDS_StopAllSoundsOnThing( AActor* pActor, ULONG ulPlayerExtra = MAXPLAYERS, ServerCommandFlags flags = 0 ); // Print commands. These print some sort of message to the screen. void SERVERCOMMANDS_Print( const char *pszString, ULONG ulPrintLevel, ULONG ulPlayerExtra = MAXPLAYERS, ServerCommandFlags flags = 0 );