From 2a2ec6fdfd52d0ce74b0ad07ab1baf2c56a4df56 Mon Sep 17 00:00:00 2001
From: spherallic <spherallic@gmail.com>
Date: Wed, 22 Mar 2023 12:09:51 +0100
Subject: [PATCH] Remove last traces of Mumble code

---
 src/android/i_system.c |  12 ----
 src/d_clisrv.c         |   2 +-
 src/dummy/i_system.c   |   8 ---
 src/i_system.h         |   8 ---
 src/s_sound.c          |  11 ---
 src/sdl/i_system.c     | 154 -----------------------------------------
 6 files changed, 1 insertion(+), 194 deletions(-)

diff --git a/src/android/i_system.c b/src/android/i_system.c
index ff8b88de53..e04710cf4b 100644
--- a/src/android/i_system.c
+++ b/src/android/i_system.c
@@ -158,18 +158,6 @@ const char *I_GetJoyName(INT32 joyindex)
   return NULL;
 }
 
-void I_SetupMumble(void)
-{
-}
-
-#ifndef NOMUMBLE
-void I_UpdateMumble(const mobj_t *mobj, const listener_t listener)
-{
-	(void)mobj;
-	(void)listener;
-}
-#endif
-
 void I_OutputMsg(const char *fmt, ...)
 {
   va_list argptr;
diff --git a/src/d_clisrv.c b/src/d_clisrv.c
index ca9f4a24e7..d32b873f80 100755
--- a/src/d_clisrv.c
+++ b/src/d_clisrv.c
@@ -79,7 +79,7 @@ boolean server = true; // true or false but !server == client
 boolean nodownload = false;
 boolean serverrunning = false;
 INT32 serverplayer = 0;
-char motd[254], server_context[8]; // Message of the Day, Unique Context (even without Mumble support)
+char motd[254], server_context[8]; // Message of the Day, Unique Context
 
 // Server specific vars
 UINT8 playernode[MAXPLAYERS];
diff --git a/src/dummy/i_system.c b/src/dummy/i_system.c
index 8556c02486..b26fcdd96b 100644
--- a/src/dummy/i_system.c
+++ b/src/dummy/i_system.c
@@ -80,14 +80,6 @@ const char *I_GetJoyName(INT32 joyindex)
 	return NULL;
 }
 
-#ifndef NOMUMBLE
-void I_UpdateMumble(const mobj_t *mobj, const listener_t listener)
-{
-	(void)mobj;
-	(void)listener;
-}
-#endif
-
 void I_OutputMsg(const char *error, ...)
 {
 	(void)error;
diff --git a/src/i_system.h b/src/i_system.h
index deea9f8a8d..3ad7f71772 100644
--- a/src/i_system.h
+++ b/src/i_system.h
@@ -185,14 +185,6 @@ INT32 I_NumJoys(void);
 */
 const char *I_GetJoyName(INT32 joyindex);
 
-#ifndef NOMUMBLE
-#include "p_mobj.h" // mobj_t
-#include "s_sound.h" // listener_t
-/** \brief to update Mumble of Player Postion
-*/
-void I_UpdateMumble(const mobj_t *mobj, const listener_t listener);
-#endif
-
 /**	\brief Startup the first mouse
 */
 void I_StartupMouse(void);
diff --git a/src/s_sound.c b/src/s_sound.c
index d0089022a7..265021e582 100644
--- a/src/s_sound.c
+++ b/src/s_sound.c
@@ -846,14 +846,7 @@ void S_UpdateSounds(void)
 
 	// We're done now, if we're not in a level.
 	if (gamestate != GS_LEVEL)
-	{
-#ifndef NOMUMBLE
-		// Stop Mumble cutting out. I'm sick of it.
-		I_UpdateMumble(NULL, listener);
-#endif
-
 		goto notinlevel;
-	}
 
 	if (dedicated || sound_disabled)
 		return;
@@ -883,10 +876,6 @@ void S_UpdateSounds(void)
 		listener.angle = listenmobj->angle;
 	}
 
-#ifndef NOMUMBLE
-	I_UpdateMumble(players[consoleplayer].mo, listener);
-#endif
-
 #ifdef HW3SOUND
 	if (hws_mode != HWS_DEFAULT_MODE)
 	{
diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c
index 66eeffa30b..fdbd75e1ea 100644
--- a/src/sdl/i_system.c
+++ b/src/sdl/i_system.c
@@ -108,23 +108,6 @@ typedef LPVOID (WINAPI *p_MapViewOfFile) (HANDLE, DWORD, DWORD, DWORD, SIZE_T);
 #define NEWSIGNALHANDLER
 #endif
 
-#ifndef NOMUMBLE
-#ifdef __linux__ // need -lrt
-#include <sys/mman.h>
-#ifdef MAP_FAILED
-#define HAVE_SHM
-#endif
-#include <wchar.h>
-#endif
-
-#ifdef _WIN32
-#define HAVE_MUMBLE
-#define WINMUMBLE
-#elif defined (HAVE_SHM)
-#define HAVE_MUMBLE
-#endif
-#endif // NOMUMBLE
-
 #ifndef O_BINARY
 #define O_BINARY 0
 #endif
@@ -206,12 +189,6 @@ static char returnWadPath[256];
 
 #include "../d_main.h"
 
-#if !defined(NOMUMBLE) && defined(HAVE_MUMBLE)
-// Mumble context string
-#include "../d_clisrv.h"
-#include "../byteptr.h"
-#endif
-
 /**	\brief	The JoyReset function
 
 	\param	JoySet	Joystick info to reset
@@ -1654,134 +1631,6 @@ const char *I_GetJoyName(INT32 joyindex)
 	return joyname;
 }
 
-#ifndef NOMUMBLE
-#ifdef HAVE_MUMBLE
-// Best Mumble positional audio settings:
-// Minimum distance 3.0 m
-// Bloom 175%
-// Maximum distance 80.0 m
-// Minimum volume 50%
-#define DEG2RAD (0.017453292519943295769236907684883l) // TAU/360 or PI/180
-#define MUMBLEUNIT (64.0f) // FRACUNITS in a Meter
-
-static struct {
-#ifdef WINMUMBLE
-	UINT32 uiVersion;
-	DWORD uiTick;
-#else
-	Uint32 uiVersion;
-	Uint32 uiTick;
-#endif
-	float fAvatarPosition[3];
-	float fAvatarFront[3];
-	float fAvatarTop[3]; // defaults to Y-is-up (only used for leaning)
-	wchar_t name[256]; // game name
-	float fCameraPosition[3];
-	float fCameraFront[3];
-	float fCameraTop[3]; // defaults to Y-is-up (only used for leaning)
-	wchar_t identity[256]; // player id
-#ifdef WINMUMBLE
-	UINT32 context_len;
-#else
-	Uint32 context_len;
-#endif
-	unsigned char context[256]; // server/team
-	wchar_t description[2048]; // game description
-} *mumble = NULL;
-#endif // HAVE_MUMBLE
-
-static void I_SetupMumble(void)
-{
-#ifdef WINMUMBLE
-	HANDLE hMap = OpenFileMappingW(FILE_MAP_ALL_ACCESS, FALSE, L"MumbleLink");
-	if (!hMap)
-		return;
-
-	mumble = MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(*mumble));
-	if (!mumble)
-		CloseHandle(hMap);
-#elif defined (HAVE_SHM)
-	int shmfd;
-	char memname[256];
-
-	snprintf(memname, 256, "/MumbleLink.%d", getuid());
-	shmfd = shm_open(memname, O_RDWR, S_IRUSR | S_IWUSR);
-
-	if(shmfd < 0)
-		return;
-
-	mumble = mmap(NULL, sizeof(*mumble), PROT_READ | PROT_WRITE, MAP_SHARED, shmfd, 0);
-	if (mumble == MAP_FAILED)
-		mumble = NULL;
-#endif
-}
-
-void I_UpdateMumble(const mobj_t *mobj, const listener_t listener)
-{
-#ifdef HAVE_MUMBLE
-	double angle;
-	fixed_t anglef;
-
-	if (!mumble)
-		return;
-
-	if(mumble->uiVersion != 2) {
-		wcsncpy(mumble->name, L"SRB2 "VERSIONSTRINGW, 256);
-		wcsncpy(mumble->description, L"Sonic Robo Blast 2 with integrated Mumble Link support.", 2048);
-		mumble->uiVersion = 2;
-	}
-	mumble->uiTick++;
-
-	if (!netgame || gamestate != GS_LEVEL) { // Zero out, but never delink.
-		mumble->fAvatarPosition[0] = mumble->fAvatarPosition[1] = mumble->fAvatarPosition[2] = 0.0f;
-		mumble->fAvatarFront[0] = 1.0f;
-		mumble->fAvatarFront[1] = mumble->fAvatarFront[2] = 0.0f;
-		mumble->fCameraPosition[0] = mumble->fCameraPosition[1] = mumble->fCameraPosition[2] = 0.0f;
-		mumble->fCameraFront[0] = 1.0f;
-		mumble->fCameraFront[1] = mumble->fCameraFront[2] = 0.0f;
-		return;
-	}
-
-	{
-		UINT8 *p = mumble->context;
-		WRITEMEM(p, server_context, 8);
-		WRITEINT16(p, gamemap);
-		mumble->context_len = (UINT32)(p - mumble->context);
-	}
-
-	if (mobj) {
-		mumble->fAvatarPosition[0] = FIXED_TO_FLOAT(mobj->x) / MUMBLEUNIT;
-		mumble->fAvatarPosition[1] = FIXED_TO_FLOAT(mobj->z) / MUMBLEUNIT;
-		mumble->fAvatarPosition[2] = FIXED_TO_FLOAT(mobj->y) / MUMBLEUNIT;
-
-		anglef = AngleFixed(mobj->angle);
-		angle = FIXED_TO_FLOAT(anglef)*DEG2RAD;
-		mumble->fAvatarFront[0] = (float)cos(angle);
-		mumble->fAvatarFront[1] = 0.0f;
-		mumble->fAvatarFront[2] = (float)sin(angle);
-	} else {
-		mumble->fAvatarPosition[0] = mumble->fAvatarPosition[1] = mumble->fAvatarPosition[2] = 0.0f;
-		mumble->fAvatarFront[0] = 1.0f;
-		mumble->fAvatarFront[1] = mumble->fAvatarFront[2] = 0.0f;
-	}
-
-	mumble->fCameraPosition[0] = FIXED_TO_FLOAT(listener.x) / MUMBLEUNIT;
-	mumble->fCameraPosition[1] = FIXED_TO_FLOAT(listener.z) / MUMBLEUNIT;
-	mumble->fCameraPosition[2] = FIXED_TO_FLOAT(listener.y) / MUMBLEUNIT;
-
-	anglef = AngleFixed(listener.angle);
-	angle = FIXED_TO_FLOAT(anglef)*DEG2RAD;
-	mumble->fCameraFront[0] = (float)cos(angle);
-	mumble->fCameraFront[1] = 0.0f;
-	mumble->fCameraFront[2] = (float)sin(angle);
-#else
-	(void)mobj;
-	(void)listener;
-#endif // HAVE_MUMBLE
-}
-#undef WINMUMBLE
-#endif // NOMUMBLE
-
 #ifdef HAVE_TERMIOS
 
 void I_GetMouseEvents(void)
@@ -2331,9 +2180,6 @@ INT32 I_StartupSystem(void)
 	 SDLlinked.major, SDLlinked.minor, SDLlinked.patch);
 	if (SDL_Init(0) < 0)
 		I_Error("SRB2: SDL System Error: %s", SDL_GetError()); //Alam: Oh no....
-#ifndef NOMUMBLE
-	I_SetupMumble();
-#endif
 	return 0;
 }
 
-- 
GitLab