From dcb0461a60256192a2f29f5bee08866874b6b62e Mon Sep 17 00:00:00 2001
From: toaster <rollerorbital@gmail.com>
Date: Thu, 28 Jun 2018 23:58:26 +0100
Subject: [PATCH] * Repair dehacked lists for compiling with DEBUGMODE=1. * Fix
 that rat-ass nasty crash with respawning from spectator mode! * Flying ghost
 kart for spectator mode! It's silly and fun... * Allow for .bat files to be
 .gitignored in the Debug compilation folder too!

---
 bin/Mingw/Debug/.gitignore |  1 +
 src/dehacked.c             | 17 +++++++++++++----
 src/k_kart.c               |  4 +++-
 3 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/bin/Mingw/Debug/.gitignore b/bin/Mingw/Debug/.gitignore
index 834f313e3..3458ff764 100644
--- a/bin/Mingw/Debug/.gitignore
+++ b/bin/Mingw/Debug/.gitignore
@@ -1,3 +1,4 @@
 *.exe
 *.mo
 r_opengl.dll
+*.bat
diff --git a/src/dehacked.c b/src/dehacked.c
index d6d8b4134..3eb64bd05 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -6397,6 +6397,16 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
 	"S_SLOWBOOM9",
 	"S_SLOWBOOM10",
 
+	// Ballhog
+	"S_BALLHOG1",
+	"S_BALLHOG2",
+	"S_BALLHOG3",
+	"S_BALLHOG4",
+	"S_BALLHOG5",
+	"S_BALLHOG6",
+	"S_BALLHOG7",
+	"S_BALLHOG8",
+
 	// Self-Propelled Bomb - just an explosion for now...
 	"S_BLUELIGHTNING1",
 	"S_BLUELIGHTNING2",
@@ -7124,7 +7134,6 @@ static const char *const MOBJTYPE_LIST[] = {  // array length left dynamic for s
 
 	"MT_GREENSHIELD", // Orbinaut stuff
 	"MT_GREENITEM",
-	"MT_FIRETRAIL",
 
 	"MT_JAWZ", // Jawz stuff
 	"MT_JAWZ_DUD",
@@ -7558,9 +7567,7 @@ static const char *const KARTSTUFF_LIST[] = {
 	"VOICES",
 	"TAUNTVOICES",
 
-	"BOOSTING",
 	"FLOORBOOST",
-	"SPINOUT",
 	"SPINOUTTYPE",
 
 	"DRIFT",
@@ -7576,10 +7583,12 @@ static const char *const KARTSTUFF_LIST[] = {
 	"ITEMROULETTE",
 	"ROULETTETYPE",
 
+	// Item held stuff
 	"ITEMTYPE",
 	"ITEMAMOUNT",
 	"ITEMHELD",
 
+	// Some items use timers for their duration or effects
 	"ATTRACTIONTIMER",
 	"HYUDOROTIMER",
 	"STEALINGTIMER",
@@ -7593,10 +7602,10 @@ static const char *const KARTSTUFF_LIST[] = {
 	"EGGMANHELD",
 	"SPINOUTTIMER",
 	"JUSTBUMPED",
-	"POWERITEMTIMER",
 	"COMEBACKTIMER",
 	"SADTIMER",
 
+	// Battle Mode vars
 	"BALLOON",
 	"COMEBACKPOINTS",
 	"COMEBACKMODE",
diff --git a/src/k_kart.c b/src/k_kart.c
index 28b7dad40..a1f326988 100644
--- a/src/k_kart.c
+++ b/src/k_kart.c
@@ -5070,7 +5070,9 @@ static void K_drawKartFirstPerson(void)
 			x /= 2;
 	}
 
-	if (stplyr->speed < FixedMul(stplyr->runspeed, stplyr->mo->scale) && (leveltime & 1))
+	if (stplyr->spectator || !stplyr->mo)
+		splitflags |= FF_TRANS50;
+	else if (stplyr->speed < FixedMul(stplyr->runspeed, stplyr->mo->scale) && (leveltime & 1))
 		y++;
 
 	if (cmd->driftturn > 400) // strong left turn
-- 
GitLab