From 40488096c014153680d00a11d2707381930c9b2d Mon Sep 17 00:00:00 2001
From: fickleheart <fickle@tinted.red>
Date: Sun, 23 Feb 2020 15:40:59 -0600
Subject: [PATCH] Make P_PlayLivesJingle player optional in Lua

---
 src/lua_baselib.c | 10 +++++++---
 src/p_user.c      |  4 ++--
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/lua_baselib.c b/src/lua_baselib.c
index e41f81674..8344fca91 100644
--- a/src/lua_baselib.c
+++ b/src/lua_baselib.c
@@ -1674,11 +1674,15 @@ static int lib_pPlayVictorySound(lua_State *L)
 
 static int lib_pPlayLivesJingle(lua_State *L)
 {
-	player_t *player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
+	player_t *player = NULL;
 	//NOHUD
 	//INLEVEL
-	if (!player)
-		return LUA_ErrInvalid(L, "player_t");
+	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");
+	}
 	P_PlayLivesJingle(player);
 	return 0;
 }
diff --git a/src/p_user.c b/src/p_user.c
index 880d932af..2dcfd872c 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -392,7 +392,7 @@ void P_GiveFinishFlags(player_t *player)
 		mobj_t* flag = P_SpawnMobjFromMobj(player->mo, xoffs, yoffs, 0, MT_FINISHFLAG);
 		flag->angle = angle;
 		angle += FixedAngle(120*FRACUNIT);
-		
+
 		P_SetTarget(&flag->target, player->mo);
 	}
 }
@@ -1533,7 +1533,7 @@ void P_PlayJingle(player_t *player, jingletype_t jingletype)
 void P_PlayJingleMusic(player_t *player, const char *musname, UINT16 musflags, boolean looping, UINT16 status)
 {
 	// If gamestate != GS_LEVEL, always play the jingle (1-up intermission)
-	if (gamestate == GS_LEVEL && !P_IsLocalPlayer(player))
+	if (gamestate == GS_LEVEL && player && !P_IsLocalPlayer(player))
 		return;
 
 	S_RetainMusic(musname, musflags, looping, 0, status);