From dcdbf911a5f1f9a363e9a624ad070f02f5ad5302 Mon Sep 17 00:00:00 2001
From: toaster <rollerorbital@gmail.com>
Date: Wed, 3 Oct 2018 20:56:43 +0100
Subject: [PATCH 1/7] Don't have all of your mines disappear into the aether if
 you have to shield-drop ONE, because they're not all out at once. (This is
 only really relevant to debug testing, given picking up additional
 HUD-dropped mines isn't very likely.

---
 src/k_kart.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/k_kart.c b/src/k_kart.c
index db317803..823cbf97 100644
--- a/src/k_kart.c
+++ b/src/k_kart.c
@@ -3140,7 +3140,7 @@ void K_DropHnextList(player_t *player)
 	mobj_t *work = player->mo, *nextwork, *dropwork;
 	INT32 flip;
 	mobjtype_t type;
-	boolean orbit, ponground;
+	boolean orbit, ponground, dropall = true;
 
 	if (!work)
 		return;
@@ -3180,6 +3180,7 @@ void K_DropHnextList(player_t *player)
 				break;
 			case MT_SSMINE_SHIELD:
 				orbit = false;
+				dropall = false;
 				type = MT_SSMINE;
 				break;
 			case MT_FAKESHIELD:
@@ -3258,7 +3259,8 @@ void K_DropHnextList(player_t *player)
 		player->kartstuff[k_bananadrag] = 0;
 		if (player->kartstuff[k_eggmanheld])
 			player->kartstuff[k_eggmanheld] = 0;
-		else if (player->kartstuff[k_itemheld])
+		else if (player->kartstuff[k_itemheld]
+			&& (dropall || (--player->kartstuff[k_itemamount] <= 0)))
 		{
 			player->kartstuff[k_itemamount] = player->kartstuff[k_itemheld] = 0;
 			player->kartstuff[k_itemtype] = KITEM_NONE;

From ad64279d2829a165abb3d54d0ba9515f94d87ee4 Mon Sep 17 00:00:00 2001
From: TehRealSalt <tehrealsalt@gmail.com>
Date: Wed, 3 Oct 2018 20:48:44 -0400
Subject: [PATCH 2/7] Edit Pink, Navy, and Jet

---
 src/k_kart.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/k_kart.c b/src/k_kart.c
index db317803..00cb29a9 100644
--- a/src/k_kart.c
+++ b/src/k_kart.c
@@ -189,7 +189,7 @@ UINT8 colortranslations[MAXSKINCOLORS][16] = {
 	{ 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63}, // SKINCOLOR_BROWN
 	{ 51,  52,  53,  55,  56,  57,  58,  60,  61,  63,  28,  28,  29,  29,  30,  31}, // SKINCOLOR_LEATHER
 	{120, 120, 120, 121, 121, 122, 122, 123, 124, 125, 126, 128, 129, 131, 133, 135}, // SKINCOLOR_SALMON
-	{121, 121, 144, 144, 145, 145, 146, 146, 147, 148, 149, 150, 151, 134, 136, 138}, // SKINCOLOR_PINK
+	{120, 121, 121, 122, 144, 145, 146, 147, 148, 149, 150, 151, 134, 136, 138, 140}, // SKINCOLOR_PINK
 	{144, 145, 146, 147, 148, 149, 150, 151, 134, 135, 136, 137, 138, 139, 140, 141}, // SKINCOLOR_ROSE
 	{120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 134, 136, 137, 139}, // SKINCOLOR_RASPBERRY
 	{125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140}, // SKINCOLOR_RED
@@ -228,10 +228,10 @@ UINT8 colortranslations[MAXSKINCOLORS][16] = {
 	{120, 120, 208, 208, 209, 210, 211, 212, 213, 215, 216, 217, 218, 219, 222, 223}, // SKINCOLOR_CYAN
 	{120, 120, 208, 209, 210, 226, 215, 216, 217, 229, 229, 205, 205, 206, 207,  31}, // SKINCOLOR_JAWZ
 	{208, 209, 211, 213, 215, 216, 216, 217, 217, 218, 218, 219, 205, 206, 207, 207}, // SKINCOLOR_CERULEAN
-	{215, 215, 215, 216, 216, 217, 218, 204, 204, 205, 205, 206, 207,  29,  30,  31}, // SKINCOLOR_NAVY
+	{211, 212, 213, 215, 216, 218, 219, 205, 206, 206, 207, 207,  28,  29,  30,  31}, // SKINCOLOR_NAVY
 	{120, 120, 200, 200, 200, 201, 201, 201, 202, 202, 202, 203, 204, 205, 206, 207}, // SKINCOLOR_SLATE
 	{120, 200, 200, 201, 201, 202, 202, 203, 203, 204, 204, 205, 205, 206, 207,  31}, // SKINCOLOR_STEEL
-	{200, 201, 202, 203, 204, 205, 206, 207,  28,  28,  29,  29,  30,  30,  31,  31}, // SKINCOLOR_JET
+	{225, 226, 227, 228, 229, 205, 205, 206, 207, 207,  28,  28,  29,  29,  30,  31}, // SKINCOLOR_JET
 	{120, 224, 225, 226, 226, 227, 228, 228, 229, 230, 231, 234, 235, 237, 239, 241}, // SKINCOLOR_PERIWINKLE
 	{224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239}, // SKINCOLOR_BLUE
 	{208, 209, 211, 213, 215, 217, 229, 230, 232, 234, 236, 238, 240, 242, 244, 246}, // SKINCOLOR_SAPPHIRE

From fef3c6374073b3c0f46951cc72ef5b9d96fc449e Mon Sep 17 00:00:00 2001
From: TehRealSalt <tehrealsalt@gmail.com>
Date: Wed, 3 Oct 2018 21:18:07 -0400
Subject: [PATCH 3/7] Moved colors around yet again for nicer invincibility
 effect

- Ruby is closer to the pinks (and where purples would be if it wrapped around)
- Sapphire is closer to the cyans
- Dream is right before the teals
---
 src/dehacked.c | 32 +++++++++++------------
 src/doomdef.h  |  6 ++---
 src/k_kart.c   | 70 +++++++++++++++++++++++++-------------------------
 3 files changed, 54 insertions(+), 54 deletions(-)

diff --git a/src/dehacked.c b/src/dehacked.c
index 99d95259..baa35b74 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -7613,9 +7613,9 @@ static const char *COLOR_ENUMS[] = {					// Rejigged for Kart.
 	"SALMON",         // 10 // SKINCOLOR_SALMON
 	"PINK",           // 11 // SKINCOLOR_PINK
 	"ROSE",           // 12 // SKINCOLOR_ROSE
-	"RASPBERRY",      // 13 // SKINCOLOR_RASPBERRY
-	"RED",            // 14 // SKINCOLOR_RED
-	"RUBY",           // 15 // SKINCOLOR_RUBY
+	"RUBY",           // 13 // SKINCOLOR_RUBY
+	"RASPBERRY",      // 14 // SKINCOLOR_RASPBERRY
+	"RED",            // 15 // SKINCOLOR_RED
 	"CRIMSON",        // 16 // SKINCOLOR_CRIMSON
 	"KETCHUP",        // 17 // SKINCOLOR_KETCHUP
 	"DAWN",           // 18 // SKINCOLOR_DAWN
@@ -7635,16 +7635,16 @@ static const char *COLOR_ENUMS[] = {					// Rejigged for Kart.
 	"VOMIT",          // 32 // SKINCOLOR_VOMIT
 	"GARDEN",         // 33 // SKINCOLOR_GARDEN
 	"LIME",           // 34 // SKINCOLOR_LIME
-	"DREAM",          // 35 // SKINCOLOR_DREAM
-	"TEA",            // 36 // SKINCOLOR_TEA
-	"PISTACHIO",      // 37 // SKINCOLOR_PISTACHIO
-	"ROBOHOOD",       // 38 // SKINCOLOR_ROBOHOOD
-	"MOSS",           // 39 // SKINCOLOR_MOSS
-	"MINT",           // 40 // SKINCOLOR_MINT
-	"GREEN",          // 41 // SKINCOLOR_GREEN
-	"PINETREE",       // 42 // SKINCOLOR_PINETREE
-	"EMERALD",        // 43 // SKINCOLOR_EMERALD
-	"SWAMP",          // 44 // SKINCOLOR_SWAMP
+	"TEA",            // 35 // SKINCOLOR_TEA
+	"PISTACHIO",      // 36 // SKINCOLOR_PISTACHIO
+	"ROBOHOOD",       // 37 // SKINCOLOR_ROBOHOOD
+	"MOSS",           // 38 // SKINCOLOR_MOSS
+	"MINT",           // 39 // SKINCOLOR_MINT
+	"GREEN",          // 40 // SKINCOLOR_GREEN
+	"PINETREE",       // 41 // SKINCOLOR_PINETREE
+	"EMERALD",        // 42 // SKINCOLOR_EMERALD
+	"SWAMP",          // 43 // SKINCOLOR_SWAMP
+	"DREAM",          // 44 // SKINCOLOR_DREAM
 	"AQUA",           // 45 // SKINCOLOR_AQUA
 	"TEAL",           // 46 // SKINCOLOR_TEAL
 	"CYAN",           // 47 // SKINCOLOR_CYAN
@@ -7654,9 +7654,9 @@ static const char *COLOR_ENUMS[] = {					// Rejigged for Kart.
 	"SLATE",          // 51 // SKINCOLOR_SLATE
 	"STEEL",          // 52 // SKINCOLOR_STEEL
 	"JET",            // 53 // SKINCOLOR_JET
-	"PERIWINKLE",     // 54 // SKINCOLOR_PERIWINKLE
-	"BLUE",           // 55 // SKINCOLOR_BLUE
-	"SAPPHIRE",       // 56 // SKINCOLOR_SAPPHIRE
+	"SAPPHIRE",       // 54 // SKINCOLOR_SAPPHIRE
+	"PERIWINKLE",     // 55 // SKINCOLOR_PERIWINKLE
+	"BLUE",           // 56 // SKINCOLOR_BLUE
 	"BLUEBERRY",      // 57 // SKINCOLOR_BLUEBERRY
 	"DUSK",           // 58 // SKINCOLOR_DUSK
 	"PURPLE",         // 59 // SKINCOLOR_PURPLE
diff --git a/src/doomdef.h b/src/doomdef.h
index b5519f6f..c051a58b 100644
--- a/src/doomdef.h
+++ b/src/doomdef.h
@@ -244,9 +244,9 @@ typedef enum
 	SKINCOLOR_SALMON,
 	SKINCOLOR_PINK,
 	SKINCOLOR_ROSE,
+	SKINCOLOR_RUBY,
 	SKINCOLOR_RASPBERRY,
 	SKINCOLOR_RED,
-	SKINCOLOR_RUBY,
 	SKINCOLOR_CRIMSON,
 	SKINCOLOR_KETCHUP,
 	SKINCOLOR_DAWN,
@@ -266,7 +266,6 @@ typedef enum
 	SKINCOLOR_VOMIT,
 	SKINCOLOR_GARDEN,
 	SKINCOLOR_LIME,
-	SKINCOLOR_DREAM,
 	SKINCOLOR_TEA,
 	SKINCOLOR_PISTACHIO,
 	SKINCOLOR_ROBOHOOD,
@@ -276,6 +275,7 @@ typedef enum
 	SKINCOLOR_PINETREE,
 	SKINCOLOR_EMERALD,
 	SKINCOLOR_SWAMP,
+	SKINCOLOR_DREAM,
 	SKINCOLOR_AQUA,
 	SKINCOLOR_TEAL,
 	SKINCOLOR_CYAN,
@@ -285,9 +285,9 @@ typedef enum
 	SKINCOLOR_SLATE,
 	SKINCOLOR_STEEL,
 	SKINCOLOR_JET,
+	SKINCOLOR_SAPPHIRE, // sweet mother, i cannot weave – slender aphrodite has overcome me with longing for a girl
 	SKINCOLOR_PERIWINKLE,
 	SKINCOLOR_BLUE,
-	SKINCOLOR_SAPPHIRE, // sweet mother, i cannot weave – slender aphrodite has overcome me with longing for a girl
 	SKINCOLOR_BLUEBERRY,
 	SKINCOLOR_DUSK,
 	SKINCOLOR_PURPLE,
diff --git a/src/k_kart.c b/src/k_kart.c
index 00cb29a9..bed5a86e 100644
--- a/src/k_kart.c
+++ b/src/k_kart.c
@@ -55,9 +55,9 @@ const char *KartColor_Names[MAXSKINCOLORS] =
 	"Salmon",         // 10 // SKINCOLOR_SALMON
 	"Pink",           // 11 // SKINCOLOR_PINK
 	"Rose",           // 12 // SKINCOLOR_ROSE
-	"Raspberry",      // 13 // SKINCOLOR_RASPBERRY
-	"Red",            // 14 // SKINCOLOR_RED
-	"Ruby",           // 15 // SKINCOLOR_RUBY
+	"Ruby",           // 13 // SKINCOLOR_RUBY
+	"Raspberry",      // 14 // SKINCOLOR_RASPBERRY
+	"Red",            // 15 // SKINCOLOR_RED
 	"Crimson",        // 16 // SKINCOLOR_CRIMSON
 	"Ketchup",        // 17 // SKINCOLOR_KETCHUP
 	"Dawn",           // 18 // SKINCOLOR_DAWN
@@ -77,16 +77,16 @@ const char *KartColor_Names[MAXSKINCOLORS] =
 	"Vomit",          // 32 // SKINCOLOR_VOMIT
 	"Garden",         // 33 // SKINCOLOR_GARDEN
 	"Lime",           // 34 // SKINCOLOR_LIME
-	"Dream",          // 35 // SKINCOLOR_DREAM
-	"Tea",            // 36 // SKINCOLOR_TEA
-	"Pistachio",      // 37 // SKINCOLOR_PISTACHIO
-	"Robo-Hood",      // 38 // SKINCOLOR_ROBOHOOD
-	"Moss",           // 39 // SKINCOLOR_MOSS
-	"Mint",           // 40 // SKINCOLOR_MINT
-	"Green",          // 41 // SKINCOLOR_GREEN
-	"Pinetree",       // 42 // SKINCOLOR_PINETREE
-	"Emerald",        // 43 // SKINCOLOR_EMERALD
-	"Swamp",          // 44 // SKINCOLOR_SWAMP
+	"Tea",            // 35 // SKINCOLOR_TEA
+	"Pistachio",      // 36 // SKINCOLOR_PISTACHIO
+	"Robo-Hood",      // 37 // SKINCOLOR_ROBOHOOD
+	"Moss",           // 38 // SKINCOLOR_MOSS
+	"Mint",           // 39 // SKINCOLOR_MINT
+	"Green",          // 40 // SKINCOLOR_GREEN
+	"Pinetree",       // 41 // SKINCOLOR_PINETREE
+	"Emerald",        // 42 // SKINCOLOR_EMERALD
+	"Swamp",          // 43 // SKINCOLOR_SWAMP
+	"Dream",          // 44 // SKINCOLOR_DREAM
 	"Aqua",           // 45 // SKINCOLOR_AQUA
 	"Teal",           // 46 // SKINCOLOR_TEAL
 	"Cyan",           // 47 // SKINCOLOR_CYAN
@@ -96,9 +96,9 @@ const char *KartColor_Names[MAXSKINCOLORS] =
 	"Slate",          // 51 // SKINCOLOR_SLATE
 	"Steel",          // 52 // SKINCOLOR_STEEL
 	"Jet",            // 53 // SKINCOLOR_JET
-	"Periwinkle",     // 54 // SKINCOLOR_PERIWINKLE
-	"Blue",           // 55 // SKINCOLOR_BLUE
-	"Sapphire",       // 56 // SKINCOLOR_SAPPHIRE
+	"Sapphire",       // 54 // SKINCOLOR_SAPPHIRE
+	"Periwinkle",     // 55 // SKINCOLOR_PERIWINKLE
+	"Blue",           // 56 // SKINCOLOR_BLUE
 	"Blueberry",      // 57 // SKINCOLOR_BLUEBERRY
 	"Dusk",           // 58 // SKINCOLOR_DUSK
 	"Purple",         // 59 // SKINCOLOR_PURPLE
@@ -124,9 +124,9 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] =
 	SKINCOLOR_TEA,8,          // 10 // SKINCOLOR_SALMON
 	SKINCOLOR_PISTACHIO,8,    // 11 // SKINCOLOR_PINK
 	SKINCOLOR_MOSS,8,         // 12 // SKINCOLOR_ROSE
-	SKINCOLOR_MINT,8,         // 13 // SKINCOLOR_RASPBERRY
-	SKINCOLOR_GREEN,6,        // 14 // SKINCOLOR_RED
-	SKINCOLOR_SAPPHIRE,8,     // 15 // SKINCOLOR_RUBY
+	SKINCOLOR_SAPPHIRE,8,     // 13 // SKINCOLOR_RUBY
+	SKINCOLOR_MINT,8,         // 14 // SKINCOLOR_RASPBERRY
+	SKINCOLOR_GREEN,6,        // 15 // SKINCOLOR_RED
 	SKINCOLOR_PINETREE,6,     // 16 // SKINCOLOR_CRIMSON
 	SKINCOLOR_MUSTARD,10,     // 17 // SKINCOLOR_KETCHUP
 	SKINCOLOR_DUSK,8,         // 18 // SKINCOLOR_DAWN
@@ -146,16 +146,16 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] =
 	SKINCOLOR_ROBOHOOD,8,     // 32 // SKINCOLOR_VOMIT
 	SKINCOLOR_LAVENDER,6,     // 33 // SKINCOLOR_GARDEN
 	SKINCOLOR_TANGERINE,8,    // 34 // SKINCOLOR_LIME
-	SKINCOLOR_POMEGRANATE,8,  // 35 // SKINCOLOR_DREAM
-	SKINCOLOR_SALMON,8,       // 36 // SKINCOLOR_TEA
-	SKINCOLOR_PINK,6,         // 37 // SKINCOLOR_PISTACHIO
-	SKINCOLOR_VOMIT,8,        // 38 // SKINCOLOR_ROBOHOOD
-	SKINCOLOR_ROSE,8,         // 39 // SKINCOLOR_MOSS
-	SKINCOLOR_RASPBERRY,8,    // 40 // SKINCOLOR_MINT
-	SKINCOLOR_RED,8,          // 41 // SKINCOLOR_GREEN
-	SKINCOLOR_CRIMSON,8,      // 42 // SKINCOLOR_PINETREE
-	SKINCOLOR_PURPLE,8,       // 43 // SKINCOLOR_EMERALD
-	SKINCOLOR_BYZANTIUM,8,    // 44 // SKINCOLOR_SWAMP
+	SKINCOLOR_SALMON,8,       // 35 // SKINCOLOR_TEA
+	SKINCOLOR_PINK,6,         // 36 // SKINCOLOR_PISTACHIO
+	SKINCOLOR_VOMIT,8,        // 37 // SKINCOLOR_ROBOHOOD
+	SKINCOLOR_ROSE,8,         // 38 // SKINCOLOR_MOSS
+	SKINCOLOR_RASPBERRY,8,    // 39 // SKINCOLOR_MINT
+	SKINCOLOR_RED,8,          // 40 // SKINCOLOR_GREEN
+	SKINCOLOR_CRIMSON,8,      // 41 // SKINCOLOR_PINETREE
+	SKINCOLOR_PURPLE,8,       // 42 // SKINCOLOR_EMERALD
+	SKINCOLOR_BYZANTIUM,8,    // 43 // SKINCOLOR_SWAMP
+	SKINCOLOR_POMEGRANATE,8,  // 44 // SKINCOLOR_DREAM
 	SKINCOLOR_YELLOW,8,       // 45 // SKINCOLOR_AQUA
 	SKINCOLOR_OLIVE,8,        // 46 // SKINCOLOR_TEAL
 	SKINCOLOR_PEACH,8,        // 47 // SKINCOLOR_CYAN
@@ -165,9 +165,9 @@ const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] =
 	SKINCOLOR_GOLD,10,        // 51 // SKINCOLOR_SLATE
 	SKINCOLOR_BRONZE,10,      // 52 // SKINCOLOR_STEEL
 	SKINCOLOR_BURGUNDY,8,     // 53 // SKINCOLOR_JET
-	SKINCOLOR_CREAMSICLE,8,   // 54 // SKINCOLOR_PERIWINKLE
-	SKINCOLOR_ORANGE,8,       // 55 // SKINCOLOR_BLUE
-	SKINCOLOR_RUBY,6,         // 56 // SKINCOLOR_SAPPHIRE
+	SKINCOLOR_RUBY,6,         // 54 // SKINCOLOR_SAPPHIRE
+	SKINCOLOR_CREAMSICLE,8,   // 55 // SKINCOLOR_PERIWINKLE
+	SKINCOLOR_ORANGE,8,       // 56 // SKINCOLOR_BLUE
 	SKINCOLOR_PUMPKIN,8,      // 57 // SKINCOLOR_BLUEBERRY
 	SKINCOLOR_DAWN,6,         // 58 // SKINCOLOR_DUSK
 	SKINCOLOR_EMERALD,8,      // 59 // SKINCOLOR_PURPLE
@@ -191,9 +191,9 @@ UINT8 colortranslations[MAXSKINCOLORS][16] = {
 	{120, 120, 120, 121, 121, 122, 122, 123, 124, 125, 126, 128, 129, 131, 133, 135}, // SKINCOLOR_SALMON
 	{120, 121, 121, 122, 144, 145, 146, 147, 148, 149, 150, 151, 134, 136, 138, 140}, // SKINCOLOR_PINK
 	{144, 145, 146, 147, 148, 149, 150, 151, 134, 135, 136, 137, 138, 139, 140, 141}, // SKINCOLOR_ROSE
+	{121, 122, 145, 146, 147, 149, 131, 132, 133, 134, 135, 197, 197, 198, 199, 255}, // SKINCOLOR_RUBY
 	{120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 134, 136, 137, 139}, // SKINCOLOR_RASPBERRY
 	{125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140}, // SKINCOLOR_RED
-	{121, 122, 145, 146, 147, 149, 131, 132, 133, 134, 135, 197, 197, 198, 199, 255}, // SKINCOLOR_RUBY
 	{130, 131, 132, 133, 134, 136, 137, 138, 139, 139, 140, 140, 141, 141, 142, 143}, // SKINCOLOR_CRIMSON
 	{104, 113, 113,  85,  86,  88, 128, 129, 131, 133, 134, 136, 138, 139, 141, 143}, // SKINCOLOR_KETCHUP
 	{120, 121, 122, 123, 124, 147, 147, 148,  90,  91,  92,  93,  94,  95, 152, 154}, // SKINCOLOR_DAWN
@@ -213,7 +213,6 @@ UINT8 colortranslations[MAXSKINCOLORS][16] = {
 	{121, 144, 145,  72,  73,  84, 114, 115, 107, 108, 109, 183, 223, 207,  30, 246}, // SKINCOLOR_VOMIT
 	{ 98,  99, 112, 101, 113, 114, 106, 179, 180, 180, 181, 182, 183, 173, 174, 175}, // SKINCOLOR_GARDEN
 	{ 96,  97,  99, 100, 102, 104, 160, 162, 164, 166, 168, 171, 223, 223, 207,  31}, // SKINCOLOR_LIME
-	{120, 120,  80,  80,  81, 177, 162, 164, 228, 228, 204, 204, 205, 205, 206, 207}, // SKINCOLOR_DREAM
 	{120, 120, 176, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 182, 183}, // SKINCOLOR_TEA
 	{120, 120, 176, 176, 177, 177, 178, 179, 165, 166, 167, 168, 169, 170, 171, 172}, // SKINCOLOR_PISTACHIO
 	{176, 176, 177, 178, 165, 166, 167, 167, 168, 169, 182, 182, 182, 183, 183, 183}, // SKINCOLOR_ROBOHOOD
@@ -223,6 +222,7 @@ UINT8 colortranslations[MAXSKINCOLORS][16] = {
 	{160, 161, 162, 164, 165, 167, 169, 170, 171, 171, 172, 173, 174, 175,  30,  31}, // SKINCOLOR_PINETREE
 	{160, 184, 184, 185, 185, 186, 186, 187, 187, 188, 188, 189, 189, 190, 191, 175}, // SKINCOLOR_EMERALD
 	{186, 187, 188, 188, 188, 189, 189, 190, 190, 191, 175, 175,  30,  30,  31,  31}, // SKINCOLOR_SWAMP
+	{120, 120,  80,  80,  81, 177, 162, 164, 228, 228, 204, 204, 205, 205, 206, 207}, // SKINCOLOR_DREAM
 	{120, 208, 208, 210, 212, 214, 220, 220, 220, 221, 221, 222, 222, 223, 223, 191}, // SKINCOLOR_AQUA
 	{210, 213, 220, 220, 220, 216, 216, 221, 221, 221, 222, 222, 223, 223, 191,  31}, // SKINCOLOR_TEAL
 	{120, 120, 208, 208, 209, 210, 211, 212, 213, 215, 216, 217, 218, 219, 222, 223}, // SKINCOLOR_CYAN
@@ -232,9 +232,9 @@ UINT8 colortranslations[MAXSKINCOLORS][16] = {
 	{120, 120, 200, 200, 200, 201, 201, 201, 202, 202, 202, 203, 204, 205, 206, 207}, // SKINCOLOR_SLATE
 	{120, 200, 200, 201, 201, 202, 202, 203, 203, 204, 204, 205, 205, 206, 207,  31}, // SKINCOLOR_STEEL
 	{225, 226, 227, 228, 229, 205, 205, 206, 207, 207,  28,  28,  29,  29,  30,  31}, // SKINCOLOR_JET
+	{208, 209, 211, 213, 215, 217, 229, 230, 232, 234, 236, 238, 240, 242, 244, 246}, // SKINCOLOR_SAPPHIRE
 	{120, 224, 225, 226, 226, 227, 228, 228, 229, 230, 231, 234, 235, 237, 239, 241}, // SKINCOLOR_PERIWINKLE
 	{224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239}, // SKINCOLOR_BLUE
-	{208, 209, 211, 213, 215, 217, 229, 230, 232, 234, 236, 238, 240, 242, 244, 246}, // SKINCOLOR_SAPPHIRE
 	{228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 239, 240, 242, 243, 244, 245}, // SKINCOLOR_BLUEBERRY
 	{192, 192, 248, 249, 250, 251, 204, 204, 205, 205, 206, 206, 207,  29,  30,  31}, // SKINCOLOR_DUSK
 	{192, 192, 192, 193, 193, 194, 194, 195, 195, 196, 196, 197, 197, 198, 198, 199}, // SKINCOLOR_PURPLE

From 1cb2c22cbda621b58a8e41bb4164beee5b505c35 Mon Sep 17 00:00:00 2001
From: TehRealSalt <tehrealsalt@gmail.com>
Date: Thu, 4 Oct 2018 14:28:38 -0400
Subject: [PATCH 4/7] Dream is green, Olive is yellow

---
 src/hu_stuff.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/hu_stuff.c b/src/hu_stuff.c
index ab427b48..133db0c8 100644
--- a/src/hu_stuff.c
+++ b/src/hu_stuff.c
@@ -741,11 +741,11 @@ static void Got_Saycmd(UINT8 **p, INT32 playernum)
 				cstart = "\x8f"; // V_PEACHMAP
 			else if (color <= SKINCOLOR_BRONZE)
 				cstart = "\x8A"; // V_GOLDMAP
-			else if (color <= SKINCOLOR_MUSTARD)
+			else if (color <= SKINCOLOR_OLIVE)
 				cstart = "\x82"; // V_YELLOWMAP
 			else if (color <= SKINCOLOR_PISTACHIO)
 				cstart = "\x8b"; // V_TEAMAP
-			else if (color <= SKINCOLOR_SWAMP || color == SKINCOLOR_LIME)
+			else if (color <= SKINCOLOR_DREAM || color == SKINCOLOR_LIME)
 				cstart = "\x83"; // V_GREENMAP
 			else if (color <= SKINCOLOR_TEAL)
 				cstart = "\x8e"; // V_TEALMAP

From 744c41bc8a4dc38b4c644212ce10ab1e41dd3408 Mon Sep 17 00:00:00 2001
From: TehRealSalt <tehrealsalt@gmail.com>
Date: Thu, 4 Oct 2018 14:30:54 -0400
Subject: [PATCH 5/7] Edit the text remaps

Lighter sky, lighter pink, steel is now called steel-blue
---
 src/console.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/console.c b/src/console.c
index ab8635b6..adc94d8a 100644
--- a/src/console.c
+++ b/src/console.c
@@ -154,7 +154,7 @@ static CV_PossibleValue_t menuhighlight_cons_t[] =
 	{V_GOLDMAP, "Always gold"},
 	{V_LAVENDERMAP, "Always lavender"},
 	{V_TEAMAP, "Always tea-green"},
-	{V_STEELMAP, "Always steel"},
+	{V_STEELMAP, "Always steel-blue"},
 	{V_PINKMAP, "Always pink"},
 	{V_TEALMAP, "Always teal"},
 	{V_PEACHMAP, "Always peach"},
@@ -330,12 +330,12 @@ static void CON_SetupColormaps(void)
 	redmap[120]      = (UINT8)126; // battle
 	graymap[120]     =  (UINT8)10;
 	orangemap[120]   =  (UINT8)85; // record attack
-	skymap[120]      = (UINT8)214; // race
+	skymap[120]      = (UINT8)212; // race
 	lavendermap[120] = (UINT8)248;
 	goldmap[120]     = (UINT8)114;
 	teamap[120]      = (UINT8)177;
 	steelmap[120]    = (UINT8)201;
-	pinkmap[120]     = (UINT8)124;
+	pinkmap[120]     = (UINT8)144;
 	tealmap[120]     = (UINT8)220;
 	peachmap[120]    =  (UINT8)69; // nice
 

From 6bae5e952b9abb93c9f9fa4590b9816ed564fd69 Mon Sep 17 00:00:00 2001
From: TehRealSalt <tehrealsalt@gmail.com>
Date: Thu, 4 Oct 2018 18:07:56 -0400
Subject: [PATCH 6/7] Brown text colormap instead of teal, revert sky-blue

---
 src/console.c  | 14 +++++++-------
 src/console.h  |  2 +-
 src/dehacked.c |  2 +-
 src/hu_stuff.c |  6 ++----
 src/v_video.c  |  4 ++--
 src/v_video.h  |  2 +-
 6 files changed, 14 insertions(+), 16 deletions(-)

diff --git a/src/console.c b/src/console.c
index adc94d8a..f79a6faf 100644
--- a/src/console.c
+++ b/src/console.c
@@ -156,7 +156,7 @@ static CV_PossibleValue_t menuhighlight_cons_t[] =
 	{V_TEAMAP, "Always tea-green"},
 	{V_STEELMAP, "Always steel-blue"},
 	{V_PINKMAP, "Always pink"},
-	{V_TEALMAP, "Always teal"},
+	{V_BROWNMAP, "Always brown"},
 	{V_PEACHMAP, "Always peach"},
 	{0, NULL}
 };
@@ -291,7 +291,7 @@ static void CONS_backcolor_Change(void)
 // TODO: This could probably be improved somehow...
 // These colormaps are 99% identical, with just a few changed bytes
 UINT8 *yellowmap, *purplemap, *greenmap, *bluemap, *graymap, *redmap, *orangemap,\
- *skymap, *goldmap, *lavendermap, *teamap, *steelmap, *pinkmap, *tealmap, *peachmap;
+ *skymap, *goldmap, *lavendermap, *teamap, *steelmap, *pinkmap, *brownmap, *peachmap;
 
 static void CON_SetupColormaps(void)
 {
@@ -311,8 +311,8 @@ static void CON_SetupColormaps(void)
 	teamap      = (goldmap+256);
 	steelmap    = (teamap+256);
 	pinkmap     = (steelmap+256);
-	tealmap     = (pinkmap+256);
-	peachmap    = (tealmap+256);
+	brownmap    = (pinkmap+256);
+	peachmap    = (brownmap+256);
 
 	// setup the other colormaps, for console text
 
@@ -330,13 +330,13 @@ static void CON_SetupColormaps(void)
 	redmap[120]      = (UINT8)126; // battle
 	graymap[120]     =  (UINT8)10;
 	orangemap[120]   =  (UINT8)85; // record attack
-	skymap[120]      = (UINT8)212; // race
+	skymap[120]      = (UINT8)214; // race
 	lavendermap[120] = (UINT8)248;
 	goldmap[120]     = (UINT8)114;
 	teamap[120]      = (UINT8)177;
 	steelmap[120]    = (UINT8)201;
-	pinkmap[120]     = (UINT8)144;
-	tealmap[120]     = (UINT8)220;
+	pinkmap[120]     = (UINT8)145;
+	brownmap[120]    =  (UINT8)48;
 	peachmap[120]    =  (UINT8)69; // nice
 
 	// Init back colormap
diff --git a/src/console.h b/src/console.h
index b15ccb6f..e4f01c8e 100644
--- a/src/console.h
+++ b/src/console.h
@@ -39,7 +39,7 @@ extern UINT32 con_scalefactor; // console text scale factor
 extern consvar_t cons_backcolor, cons_menuhighlight;
 
 extern UINT8 *yellowmap, *purplemap, *greenmap, *bluemap, *graymap, *redmap, *orangemap,\
- *skymap, *goldmap, *lavendermap, *teamap, *steelmap, *pinkmap, *tealmap, *peachmap;
+ *skymap, *goldmap, *lavendermap, *teamap, *steelmap, *pinkmap, *brownmap, *peachmap;
 
 // Console bg color (auto updated to match)
 extern UINT8 *consolebgmap;
diff --git a/src/dehacked.c b/src/dehacked.c
index baa35b74..04301ef2 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -8264,7 +8264,7 @@ struct {
 	{"V_TEAMAP",V_TEAMAP},
 	{"V_STEELMAP",V_STEELMAP},
 	{"V_PINKMAP",V_PINKMAP},
-	{"V_TEALMAP",V_TEALMAP},
+	{"V_BROWNMAP",V_BROWNMAP},
 	{"V_PEACHMAP",V_PEACHMAP},
 	{"V_TRANSLUCENT",V_TRANSLUCENT},
 	{"V_10TRANS",V_10TRANS},
diff --git a/src/hu_stuff.c b/src/hu_stuff.c
index 133db0c8..838e8129 100644
--- a/src/hu_stuff.c
+++ b/src/hu_stuff.c
@@ -727,10 +727,10 @@ static void Got_Saycmd(UINT8 **p, INT32 playernum)
 			const UINT8 color = players[playernum].skincolor;
 			if (color <= SKINCOLOR_SILVER || color == SKINCOLOR_SLATE)
 				cstart = "\x80"; // white
-			else if (color <= SKINCOLOR_BEIGE || color == SKINCOLOR_JET)
+			else if (color <= SKINCOLOR_BLACK || color == SKINCOLOR_JET)
 				cstart = "\x86"; // V_GRAYMAP
 			else if (color <= SKINCOLOR_LEATHER)
-				cstart = "\x8A"; // V_GOLDMAP
+				cstart = "\x8e"; // V_BROWNMAP
 			else if (color <= SKINCOLOR_ROSE || color == SKINCOLOR_LILAC)
 				cstart = "\x8d"; // V_PINKMAP
 			else if (color <= SKINCOLOR_KETCHUP)
@@ -747,8 +747,6 @@ static void Got_Saycmd(UINT8 **p, INT32 playernum)
 				cstart = "\x8b"; // V_TEAMAP
 			else if (color <= SKINCOLOR_DREAM || color == SKINCOLOR_LIME)
 				cstart = "\x83"; // V_GREENMAP
-			else if (color <= SKINCOLOR_TEAL)
-				cstart = "\x8e"; // V_TEALMAP
 			else if (color <= SKINCOLOR_NAVY || color == SKINCOLOR_SAPPHIRE)
 				cstart = "\x88"; // V_SKYMAP
 			else if (color <= SKINCOLOR_STEEL)
diff --git a/src/v_video.c b/src/v_video.c
index 46d34acc..8a1a3737 100644
--- a/src/v_video.c
+++ b/src/v_video.c
@@ -1282,8 +1282,8 @@ UINT8 *V_GetStringColormap(INT32 colorflags)
 		return steelmap;
 	case 13: // 0x8D, pink
 		return pinkmap;
-	case 14: // 0x8E, teal
-		return tealmap;
+	case 14: // 0x8E, brown
+		return brownmap;
 	case 15: // 0x8F, peach
 		return peachmap;
 	default: // reset
diff --git a/src/v_video.h b/src/v_video.h
index f6826cf7..734b8037 100644
--- a/src/v_video.h
+++ b/src/v_video.h
@@ -82,7 +82,7 @@ extern UINT8 hudtrans;
 #define V_TEAMAP             0x0000B000
 #define V_STEELMAP           0x0000C000
 #define V_PINKMAP            0x0000D000
-#define V_TEALMAP            0x0000E000
+#define V_BROWNMAP           0x0000E000
 #define V_PEACHMAP           0x0000F000
 
 // use bits 17-20 for alpha transparency

From 2effb6adc36787879516b8cb2b13023fc4c423d2 Mon Sep 17 00:00:00 2001
From: toaster <rollerorbital@gmail.com>
Date: Fri, 5 Oct 2018 23:24:26 +0100
Subject: [PATCH 7/7] Halt frame-perfect egg crash.

(The code is slightly modified from what I put in bug-reports as a potential fix, but I'm glad I was on the right track.)
---
 src/p_inter.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/p_inter.c b/src/p_inter.c
index bd02da42..5ca9a104 100644
--- a/src/p_inter.c
+++ b/src/p_inter.c
@@ -494,11 +494,19 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
 				K_StripOther(player);
 				player->kartstuff[k_itemroulette] = 1;
 				player->kartstuff[k_roulettetype] = 2;
-				if (special->target && special->target->player
-					&& (G_RaceGametype() || special->target->player->kartstuff[k_bumper] > 0))
-					player->kartstuff[k_eggmanblame] = special->target->player-players;
-				else
-					player->kartstuff[k_eggmanblame] = player-players;
+				if (special->target && special->target->player)
+				{
+					if (G_RaceGametype() || special->target->player->kartstuff[k_bumper] > 0)
+						player->kartstuff[k_eggmanblame] = special->target->player-players;
+					else
+						player->kartstuff[k_eggmanblame] = player-players;
+
+					if (special->target->hnext == special)
+					{
+						P_SetTarget(&special->target->hnext, NULL);
+						special->target->player->kartstuff[k_eggmanheld] = 0;
+					}
+				}
 
 				P_RemoveMobj(special);
 				return;