From db3797fd35da9dfde3dcef754b48ac47d9ea602d Mon Sep 17 00:00:00 2001
From: wolfy852 <wolfy852@hotmail.com>
Date: Sun, 14 Feb 2016 05:19:40 -0600
Subject: [PATCH] Add PlayerSpawn hook

---
 src/lua_hook.h    | 2 ++
 src/lua_hooklib.c | 1 +
 src/p_mobj.c      | 6 ++++++
 3 files changed, 9 insertions(+)

diff --git a/src/lua_hook.h b/src/lua_hook.h
index da2dcdc38..f3af7f304 100644
--- a/src/lua_hook.h
+++ b/src/lua_hook.h
@@ -42,6 +42,7 @@ enum hook {
 	hook_LinedefExecute,
 	hook_PlayerMsg,
 	hook_HurtMsg,
+	hook_PlayerSpawn,
 
 	hook_MAX // last hook
 };
@@ -75,5 +76,6 @@ boolean LUAh_BotAI(mobj_t *sonic, mobj_t *tails, ticcmd_t *cmd); // Hook for B_B
 boolean LUAh_LinedefExecute(line_t *line, mobj_t *mo, sector_t *sector); // Hook for linedef executors
 boolean LUAh_PlayerMsg(int source, int target, int flags, char *msg); // Hook for chat messages
 boolean LUAh_HurtMsg(player_t *player, mobj_t *inflictor, mobj_t *source); // Hook for hurt messages
+#define LUAh_PlayerSpawn(player) LUAh_PlayerHook(player, hook_PlayerSpawn) // Hook for P_SpawnPlayer 
 
 #endif
diff --git a/src/lua_hooklib.c b/src/lua_hooklib.c
index 0415d23e6..dfd6d703c 100644
--- a/src/lua_hooklib.c
+++ b/src/lua_hooklib.c
@@ -53,6 +53,7 @@ const char *const hookNames[hook_MAX+1] = {
 	"LinedefExecute",
 	"PlayerMsg",
 	"HurtMsg",
+	"PlayerSpawn",
 	NULL
 };
 
diff --git a/src/p_mobj.c b/src/p_mobj.c
index 25ae8815a..4916dbfdf 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -8294,6 +8294,12 @@ void P_SpawnPlayer(INT32 playernum)
 
 	// Spawn with a pity shield if necessary.
 	P_DoPityCheck(p);
+	
+#ifdef HAVE_BLUA 
+	if (LUAh_PlayerSpawn(p)) // Lua hook for player spawning :)
+		;
+#endif
+
 }
 
 void P_AfterPlayerSpawn(INT32 playernum)
-- 
GitLab