From 917dea7070b5aa345a4f48da2741ec1726f70d98 Mon Sep 17 00:00:00 2001
From: mazmazz <mar.marcoz@outlook.com>
Date: Sun, 16 Sep 2018 23:09:37 -0400
Subject: [PATCH 1/2] Separate Lua from musicplus-core

---
 src/lua_baselib.c | 406 ----------------------------------------------
 src/lua_hook.h    |   4 -
 src/lua_hooklib.c |  63 -------
 src/lua_script.h  |   3 -
 4 files changed, 476 deletions(-)

diff --git a/src/lua_baselib.c b/src/lua_baselib.c
index 00058b24d..3c0a78f88 100644
--- a/src/lua_baselib.c
+++ b/src/lua_baselib.c
@@ -2269,392 +2269,6 @@ static int lib_sSpeedMusic(lua_State *L)
 	return 1;
 }
 
-#ifdef HAVE_LUA_MUSICPLUS
-static int lib_sMusicType(lua_State *L)
-{
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 1) && lua_isuserdata(L, 1))
-	{
-		player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-		lua_pushinteger(L, S_MusicType());
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sMusicPlaying(lua_State *L)
-{
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 1) && lua_isuserdata(L, 1))
-	{
-		player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-		lua_pushboolean(L, S_MusicPlaying());
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sMusicPaused(lua_State *L)
-{
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 1) && lua_isuserdata(L, 1))
-	{
-		player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-		lua_pushboolean(L, S_MusicPaused());
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sMusicName(lua_State *L)
-{
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 1) && lua_isuserdata(L, 1))
-	{
-		player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-		lua_pushstring(L, S_MusicName());
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sMusicInfo(lua_State *L)
-{
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 1) && lua_isuserdata(L, 1))
-	{
-		player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-	{
-		char mname[7];
-		UINT16 mflags;
-		boolean looping;
-		if (S_MusicInfo(mname, &mflags, &looping))
-		{
-			lua_pushstring(L, mname);
-			lua_pushinteger(L, mflags);
-			lua_pushboolean(L, looping);
-		}
-		else
-			lua_pushboolean(L, false);
-	}
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sMusicExists(lua_State *L)
-{
-#ifdef MUSICSLOT_COMPATIBILITY
-	const char *music_name;
-	UINT32 music_num;
-	char music_compat_name[7];
-	UINT16 music_flags = 0;
-	NOHUD
-	if (lua_isnumber(L, 1))
-	{
-		music_num = (UINT32)luaL_checkinteger(L, 1);
-		music_flags = (UINT16)(music_num & 0x0000FFFF);
-		if (music_flags && music_flags <= 1035)
-			snprintf(music_compat_name, 7, "%sM", G_BuildMapName((INT32)music_flags));
-		else if (music_flags && music_flags <= 1050)
-			strncpy(music_compat_name, compat_special_music_slots[music_flags - 1036], 7);
-		else
-			music_compat_name[0] = 0; // becomes empty string
-		music_compat_name[6] = 0;
-		music_name = (const char *)&music_compat_name;
-	}
-	else
-	{
-		music_num = 0;
-		music_name = luaL_checkstring(L, 1);
-	}
-#else
-	const char *music_name = luaL_checkstring(L, 1);
-#endif
-	boolean checkMIDI = lua_opttrueboolean(L, 2);
-	boolean checkDigi = lua_opttrueboolean(L, 3);
-	NOHUD
-	lua_pushboolean(L, S_MusicExists(music_name, checkMIDI, checkDigi));
-	return 1;
-}
-
-static int lib_sGetMusicLength(lua_State *L)
-{
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 1) && lua_isuserdata(L, 1))
-	{
-		player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-		lua_pushinteger(L, (int)S_GetMusicLength());
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sSetMusicLoopPoint(lua_State *L)
-{
-	UINT32 looppoint = (UINT32)luaL_checkinteger(L, 1);
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 2) && lua_isuserdata(L, 2))
-	{
-		player = *((player_t **)luaL_checkudata(L, 2, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-		lua_pushboolean(L, S_SetMusicLoopPoint(looppoint));
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sGetMusicLoopPoint(lua_State *L)
-{
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 1) && lua_isuserdata(L, 1))
-	{
-		player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-		lua_pushinteger(L, (int)S_GetMusicLoopPoint());
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sSetMusicPosition(lua_State *L)
-{
-	UINT32 position = (UINT32)luaL_checkinteger(L, 1);
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 2) && lua_isuserdata(L, 2))
-	{
-		player = *((player_t **)luaL_checkudata(L, 2, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-		lua_pushboolean(L, S_SetMusicPosition(position));
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sGetMusicPosition(lua_State *L)
-{
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 1) && lua_isuserdata(L, 1))
-	{
-		player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-		lua_pushinteger(L, (int)S_GetMusicPosition());
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sStopMusic(lua_State *L)
-{
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 1) && lua_isuserdata(L, 1))
-	{
-		player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-	{
-		S_StopMusic();
-		lua_pushboolean(L, true);
-	}
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sPauseMusic(lua_State *L)
-{
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 1) && lua_isuserdata(L, 1))
-	{
-		player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-	{
-		S_PauseAudio();
-		lua_pushboolean(L, true);
-	}
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sResumeMusic(lua_State *L)
-{
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 1) && lua_isuserdata(L, 1))
-	{
-		player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-	{
-		S_ResumeAudio();
-		lua_pushboolean(L, true);
-	}
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sSetInternalMusicVolume(lua_State *L)
-{
-	UINT32 volume = (UINT32)luaL_checkinteger(L, 1);
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 2) && lua_isuserdata(L, 2))
-	{
-		player = *((player_t **)luaL_checkudata(L, 2, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-	{
-		S_SetInternalMusicVolume(volume);
-		lua_pushboolean(L, true);
-	}
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sStopFadingMusic(lua_State *L)
-{
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 1) && lua_isuserdata(L, 1))
-	{
-		player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-	{
-		S_StopFadingMusic();
-		lua_pushboolean(L, true);
-	}
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sFadeMusic(lua_State *L)
-{
-	UINT32 target_volume = (UINT32)luaL_checkinteger(L, 1);
-	UINT32 ms;
-	INT32 source_volume;
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 3) && lua_isuserdata(L, 3))
-	{
-		player = *((player_t **)luaL_checkudata(L, 3, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-		ms = (UINT32)luaL_checkinteger(L, 2);
-		source_volume = -1;
-	}
-	else if (!lua_isnone(L, 4) && lua_isuserdata(L, 4))
-	{
-		player = *((player_t **)luaL_checkudata(L, 4, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-		source_volume = (INT32)luaL_checkinteger(L, 2);
-		ms = (UINT32)luaL_checkinteger(L, 3);
-	}
-	else if (luaL_optinteger(L, 3, UINT32_MAX) == UINT32_MAX)
-	{
-		ms = (UINT32)luaL_checkinteger(L, 2);
-		source_volume = -1;
-	}
-	else
-	{
-		source_volume = (INT32)luaL_checkinteger(L, 2);
-		ms = (UINT32)luaL_checkinteger(L, 3);
-	}
-
-	NOHUD
-
-	if (!player || P_IsLocalPlayer(player))
-		lua_pushboolean(L, S_FadeMusicFromVolume(target_volume, source_volume, ms));
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-static int lib_sFadeOutStopMusic(lua_State *L)
-{
-	UINT32 ms = (UINT32)luaL_checkinteger(L, 1);
-	player_t *player = NULL;
-	NOHUD
-	if (!lua_isnone(L, 2) && lua_isuserdata(L, 2))
-	{
-		player = *((player_t **)luaL_checkudata(L, 2, META_PLAYER));
-		if (!player)
-			return LUA_ErrInvalid(L, "player_t");
-	}
-	if (!player || P_IsLocalPlayer(player))
-	{
-		lua_pushboolean(L, S_FadeOutStopMusic(ms));
-	}
-	else
-		lua_pushnil(L);
-	return 1;
-}
-
-#endif
 static int lib_sOriginPlaying(lua_State *L)
 {
 	void *origin = *((mobj_t **)luaL_checkudata(L, 1, META_MOBJ));
@@ -3032,26 +2646,6 @@ static luaL_Reg lib[] = {
 	{"S_StopSound",lib_sStopSound},
 	{"S_ChangeMusic",lib_sChangeMusic},
 	{"S_SpeedMusic",lib_sSpeedMusic},
-#ifdef HAVE_LUA_MUSICPLUS
-	{"S_MusicType",lib_sMusicType},
-	{"S_MusicPlaying",lib_sMusicPlaying},
-	{"S_MusicPaused",lib_sMusicPaused},
-	{"S_MusicName",lib_sMusicName},
-	{"S_MusicInfo",lib_sMusicInfo},
-	{"S_MusicExists",lib_sMusicExists},
-	{"S_GetMusicLength",lib_sGetMusicLength},
-	{"S_SetMusicLoopPoint",lib_sSetMusicLoopPoint},
-	{"S_GetMusicLoopPoint",lib_sGetMusicLoopPoint},
-	{"S_SetMusicPosition",lib_sSetMusicPosition},
-	{"S_GetMusicPosition",lib_sGetMusicPosition},
-	{"S_PauseMusic",lib_sPauseMusic},
-	{"S_ResumeMusic",lib_sResumeMusic},
-	{"S_StopMusic",lib_sStopMusic},
-	{"S_SetInternalMusicVolume", lib_sSetInternalMusicVolume},
-	{"S_StopFadingMusic",lib_sStopFadingMusic},
-	{"S_FadeMusic",lib_sFadeMusic},
-	{"S_FadeOutStopMusic",lib_sFadeOutStopMusic},
-#endif
 	{"S_OriginPlaying",lib_sOriginPlaying},
 	{"S_IdPlaying",lib_sIdPlaying},
 	{"S_SoundPlaying",lib_sSoundPlaying},
diff --git a/src/lua_hook.h b/src/lua_hook.h
index f445b0c42..fb793019b 100644
--- a/src/lua_hook.h
+++ b/src/lua_hook.h
@@ -88,9 +88,5 @@ boolean LUAh_HurtMsg(player_t *player, mobj_t *inflictor, mobj_t *source, UINT8
 #define LUAh_MobjMoveBlocked(mo) LUAh_MobjHook(mo, hook_MobjMoveBlocked) // Hook for P_XYMovement (when movement is blocked)
 boolean LUAh_MapThingSpawn(mobj_t *mo, mapthing_t *mthing); // Hook for P_SpawnMapThing by mobj type
 boolean LUAh_FollowMobj(player_t *player, mobj_t *mo); // Hook for P_PlayerAfterThink Smiles mobj-following
-#ifdef HAVE_LUA_MUSICPLUS
-boolean LUAh_MusicChange(const char *oldname, char *newname, UINT16 *mflags, boolean *looping,
-	UINT32 *position, UINT32 *prefadems, UINT32 *fadeinms); // Hook for music changes
-#endif
 
 #endif
diff --git a/src/lua_hooklib.c b/src/lua_hooklib.c
index 8d0ce2d16..55bcb76c0 100644
--- a/src/lua_hooklib.c
+++ b/src/lua_hooklib.c
@@ -1193,67 +1193,4 @@ boolean LUAh_FollowMobj(player_t *player, mobj_t *mobj)
 	return hooked;
 }
 
-#ifdef HAVE_LUA_MUSICPLUS
-
-// Hook for music changes
-boolean LUAh_MusicChange(const char *oldname, char *newname, UINT16 *mflags, boolean *looping,
-	UINT32 *position, UINT32 *prefadems, UINT32 *fadeinms)
-{
-	hook_p hookp;
-	boolean hooked = false;
-
-	if (!gL || !(hooksAvailable[hook_MusicChange/8] & (1<<(hook_MusicChange%8))))
-		return false;
-
-	lua_settop(gL, 0);
-
-	for (hookp = roothook; hookp; hookp = hookp->next)
-		if (hookp->type == hook_MusicChange)
-		{
-			lua_pushfstring(gL, FMT_HOOKID, hookp->id);
-			lua_gettable(gL, LUA_REGISTRYINDEX);
-			lua_pushstring(gL, oldname);
-			lua_pushstring(gL, newname);
-			lua_pushinteger(gL, *mflags);
-			lua_pushboolean(gL, *looping);
-			lua_pushinteger(gL, *position);
-			lua_pushinteger(gL, *prefadems);
-			lua_pushinteger(gL, *fadeinms);
-			if (lua_pcall(gL, 7, 6, 0)) {
-				CONS_Alert(CONS_WARNING,"%s\n",lua_tostring(gL,-1));
-				lua_pop(gL, 1);
-				continue;
-			}
-
-			// output 1: true, false, or string musicname override
-			if (lua_isboolean(gL, -6) && lua_toboolean(gL, -6))
-				hooked = true;
-			else if (lua_isstring(gL, -6))
-				strncpy(newname, lua_tostring(gL, -6), 7);
-			// output 2: mflags override
-			if (lua_isnumber(gL, -5))
-				*mflags = lua_tonumber(gL, -5);
-			// output 3: looping override
-			if (lua_isboolean(gL, -4))
-				*looping = lua_toboolean(gL, -4);
-			// output 4: position override
-			if (lua_isboolean(gL, -3))
-				*position = lua_tonumber(gL, -3);
-			// output 5: prefadems override
-			if (lua_isboolean(gL, -2))
-				*prefadems = lua_tonumber(gL, -2);
-			// output 6: fadeinms override
-			if (lua_isboolean(gL, -1))
-				*fadeinms = lua_tonumber(gL, -1);
-
-			lua_pop(gL, 6);
-		}
-
-	lua_settop(gL, 0);
-	newname[6] = 0;
-	return hooked;
-}
-
-#endif
-
 #endif
diff --git a/src/lua_script.h b/src/lua_script.h
index c750ce7dd..51f1eaeaa 100644
--- a/src/lua_script.h
+++ b/src/lua_script.h
@@ -97,7 +97,4 @@ void COM_Lua_f(void);
 // uncomment if you want seg_t/node_t in Lua
 // #define HAVE_LUA_SEGS
 
-// uncomment for extended music features
-#define HAVE_LUA_MUSICPLUS
-
 #endif

From d7f4c9be84980cfbd694471ffd017d2d394f9e30 Mon Sep 17 00:00:00 2001
From: mazmazz <mar.marcoz@outlook.com>
Date: Sun, 16 Sep 2018 23:10:23 -0400
Subject: [PATCH 2/2] S_ChangeMusicAdvanced -> S_ChangeMusicEx

---
 src/d_netcmd.c    | 2 +-
 src/f_finale.c    | 4 ++--
 src/lua_baselib.c | 2 +-
 src/p_user.c      | 4 ++--
 src/s_sound.c     | 6 +++---
 src/s_sound.h     | 8 ++++----
 6 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index f57b7e569..4be1da776 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -4051,7 +4051,7 @@ static void Command_Tunes_f(void)
 	mapmusflags = (track & MUSIC_TRACKMASK);
 	mapmusposition = position;
 
-	S_ChangeMusicAdvanced(mapmusname, mapmusflags, true, mapmusposition, 0, 0);
+	S_ChangeMusicEx(mapmusname, mapmusflags, true, mapmusposition, 0, 0);
 
 	if (argc > 3)
 	{
diff --git a/src/f_finale.c b/src/f_finale.c
index 3b3ae8a91..755a1103a 100644
--- a/src/f_finale.c
+++ b/src/f_finale.c
@@ -1831,7 +1831,7 @@ static void F_AdvanceToNextScene(void)
 	picypos = cutscenes[cutnum]->scene[scenenum].ycoord[picnum];
 
 	if (cutscenes[cutnum]->scene[scenenum].musswitch[0])
-		S_ChangeMusicAdvanced(cutscenes[cutnum]->scene[scenenum].musswitch,
+		S_ChangeMusicEx(cutscenes[cutnum]->scene[scenenum].musswitch,
 			cutscenes[cutnum]->scene[scenenum].musswitchflags,
 			cutscenes[cutnum]->scene[scenenum].musicloop,
 			cutscenes[cutnum]->scene[scenenum].musswitchposition, 0, 0);
@@ -1905,7 +1905,7 @@ void F_StartCustomCutscene(INT32 cutscenenum, boolean precutscene, boolean reset
 	stoptimer = 0;
 
 	if (cutscenes[cutnum]->scene[0].musswitch[0])
-		S_ChangeMusicAdvanced(cutscenes[cutnum]->scene[0].musswitch,
+		S_ChangeMusicEx(cutscenes[cutnum]->scene[0].musswitch,
 			cutscenes[cutnum]->scene[0].musswitchflags,
 			cutscenes[cutnum]->scene[0].musicloop,
 			cutscenes[cutnum]->scene[scenenum].musswitchposition, 0, 0);
diff --git a/src/lua_baselib.c b/src/lua_baselib.c
index 3c0a78f88..08f6e3051 100644
--- a/src/lua_baselib.c
+++ b/src/lua_baselib.c
@@ -2242,7 +2242,7 @@ static int lib_sChangeMusic(lua_State *L)
 
 	if (!player || P_IsLocalPlayer(player))
 	{
-		S_ChangeMusicAdvanced(music_name, music_flags, looping, position, prefadems, fadeinms);
+		S_ChangeMusicEx(music_name, music_flags, looping, position, prefadems, fadeinms);
 		lua_pushboolean(L, true);
 	}
 	else
diff --git a/src/p_user.c b/src/p_user.c
index ae7288858..fd4e5b5d7 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -1277,13 +1277,13 @@ void P_RestoreMusic(player_t *player)
 		if (mapheaderinfo[gamemap-1]->levelflags & LF_SPEEDMUSIC)
 		{
 			S_SpeedMusic(1.4f);
-			S_ChangeMusicAdvanced(mapmusname, mapmusflags, true, mapmusposition, 0, 0);
+			S_ChangeMusicEx(mapmusname, mapmusflags, true, mapmusposition, 0, 0);
 		}
 		else
 			S_ChangeMusicInternal("_shoes", true);
 	}
 	else
-		S_ChangeMusicAdvanced(mapmusname, mapmusflags, true, mapmusposition, 0, 0);
+		S_ChangeMusicEx(mapmusname, mapmusflags, true, mapmusposition, 0, 0);
 }
 
 //
diff --git a/src/s_sound.c b/src/s_sound.c
index e711a16f0..ed929af0b 100644
--- a/src/s_sound.c
+++ b/src/s_sound.c
@@ -1551,11 +1551,11 @@ static void S_ClearQueue(void)
 
 static void S_ChangeMusicToQueue(void)
 {
-	S_ChangeMusicAdvanced(queue_name, queue_flags, queue_looping, queue_position, 0, queue_fadeinms);
+	S_ChangeMusicEx(queue_name, queue_flags, queue_looping, queue_position, 0, queue_fadeinms);
 	S_ClearQueue();
 }
 
-void S_ChangeMusicAdvanced(const char *mmusic, UINT16 mflags, boolean looping, UINT32 position, UINT32 prefadems, UINT32 fadeinms)
+void S_ChangeMusicEx(const char *mmusic, UINT16 mflags, boolean looping, UINT32 position, UINT32 prefadems, UINT32 fadeinms)
 {
 	if (S_MusicDisabled())
 		return;
@@ -1741,5 +1741,5 @@ void S_Start(void)
 
 	if (cv_resetmusic.value)
 		S_StopMusic();
-	S_ChangeMusicAdvanced(mapmusname, mapmusflags, true, mapmusposition, 0, 0);
+	S_ChangeMusicEx(mapmusname, mapmusflags, true, mapmusposition, 0, 0);
 }
diff --git a/src/s_sound.h b/src/s_sound.h
index 3cb05000b..7a962d11a 100644
--- a/src/s_sound.h
+++ b/src/s_sound.h
@@ -176,9 +176,9 @@ UINT32 S_GetMusicPosition(void);
 // note: music flags 12 bits for tracknum (gme, other formats with more than one track)
 //       13-15 aren't used yet
 //       and the last bit we ignore (internal game flag for resetting music on reload)
-void S_ChangeMusicAdvanced(const char *mmusic, UINT16 mflags, boolean looping, UINT32 position, UINT32 prefadems, UINT32 fadeinms);
-#define S_ChangeMusicInternal(a,b) S_ChangeMusicAdvanced(a,0,b,0,0,0)
-#define S_ChangeMusic(a,b,c) S_ChangeMusicAdvanced(a,b,c,0,0,0)
+void S_ChangeMusicEx(const char *mmusic, UINT16 mflags, boolean looping, UINT32 position, UINT32 prefadems, UINT32 fadeinms);
+#define S_ChangeMusicInternal(a,b) S_ChangeMusicEx(a,0,b,0,0,0)
+#define S_ChangeMusic(a,b,c) S_ChangeMusicEx(a,b,c,0,0,0)
 
 // Stops the music.
 void S_StopMusic(void);
@@ -195,7 +195,7 @@ void S_SetInternalMusicVolume(INT32 volume);
 void S_StopFadingMusic(void);
 boolean S_FadeMusicFromVolume(UINT8 target_volume, INT16 source_volume, UINT32 ms);
 #define S_FadeMusic(a, b) S_FadeMusicFromVolume(a, -1, b)
-#define S_FadeInChangeMusic(a,b,c,d) S_ChangeMusicAdvanced(a,b,c,0,0,d)
+#define S_FadeInChangeMusic(a,b,c,d) S_ChangeMusicEx(a,b,c,0,0,d)
 boolean S_FadeOutStopMusic(UINT32 ms);
 
 //