From 7a23b19be800faeecbf86bb0acd35d87f571af2f Mon Sep 17 00:00:00 2001
From: Steel Titanium <steeltitanium1@gmail.com>
Date: Sun, 23 Jun 2019 18:15:40 -0400
Subject: [PATCH] Add startrings level header option

---
 src/dehacked.c | 2 ++
 src/doomstat.h | 1 +
 src/g_game.c   | 2 ++
 3 files changed, 5 insertions(+)

diff --git a/src/dehacked.c b/src/dehacked.c
index f70615af62..2595429575 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -1323,6 +1323,8 @@ static void readlevelheader(MYFILE *f, INT32 num)
 				else
 					mapheaderinfo[num-1]->menuflags &= ~LF2_WIDEICON;
 			}
+			else if (fastcmp(word, "STARTRINGS"))
+				mapheaderinfo[num-1]->startrings = (UINT16)i;
 			else
 				deh_warning("Level header %d: unknown word '%s'", num, word);
 		}
diff --git a/src/doomstat.h b/src/doomstat.h
index efd347dbed..06dfcca0b9 100644
--- a/src/doomstat.h
+++ b/src/doomstat.h
@@ -313,6 +313,7 @@ typedef struct
 	UINT8 menuflags;      ///< LF2_flags: options that affect record attack / nights mode menus
 
 	char selectheading[22]; ///< Level select heading. Allows for controllable grouping.
+	UINT16 startrings;      ///< Number of rings players start with.
 
 	// Freed animals stuff.
 	UINT8 numFlickies;     ///< Internal. For freed flicky support.
diff --git a/src/g_game.c b/src/g_game.c
index af17b2b289..5a11b237f2 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -2449,6 +2449,8 @@ void G_SpawnPlayer(INT32 playernum, boolean starpost)
 	}
 	P_MovePlayerToSpawn(playernum, spawnpoint);
 
+	players[playernum].rings = mapheaderinfo[gamemap-1]->startrings;
+
 #ifdef HAVE_BLUA
 	LUAh_PlayerSpawn(&players[playernum]); // Lua hook for player spawning :)
 #endif
-- 
GitLab