// Blasphemer Testing Version 0.4
// 0.4 changes: Allow Bad Drawpatch crashes(for testing). 
// Testing version adds 1 key press cheats, scroll to bottom to see what they are or
//	modify them to what you want.
// Chocolate-heretic-plus bumps limits and removes crashing menu. 
// Make a new directory and run these two commands in it.
//
// $ git clone https://github.com/chocolate-doom/chocolate-doom chocolate-heretic-plus
// $ patch -p0  < chocolate-heretic-plus-btv.patch

diff -ruN chocolate-doom/src/heretic/doomdef.h chocolate-heretic-plus/src/heretic/doomdef.h
--- chocolate-doom/src/heretic/doomdef.h	2021-09-12 15:53:17.419051834 -0400
+++ chocolate-heretic-plus/src/heretic/doomdef.h	2021-09-12 15:53:00.962445211 -0400
@@ -547,7 +547,7 @@
 
 extern ticcmd_t *netcmds;
 
-#define SAVEGAMESIZE 0x30000
+#define SAVEGAMESIZE 0x30000*16
 #define SAVESTRINGSIZE 24
 
 extern mapthing_t *deathmatch_p;
diff -ruN chocolate-doom/src/heretic/p_spec.h chocolate-heretic-plus/src/heretic/p_spec.h
--- chocolate-doom/src/heretic/p_spec.h	2021-09-12 15:53:17.439052571 -0400
+++ chocolate-heretic-plus/src/heretic/p_spec.h	2021-09-12 15:53:00.962445211 -0400
@@ -55,7 +55,7 @@
 //
 //      Animating line specials
 //
-#define	MAXLINEANIMS		64
+#define	MAXLINEANIMS		64*256
 extern short numlinespecials;
 extern line_t *linespeciallist[MAXLINEANIMS];
 
@@ -233,7 +233,7 @@
 
 #define	PLATWAIT	3
 #define	PLATSPEED	FRACUNIT
-#define	MAXPLATS	30
+#define	MAXPLATS	30*256
 
 extern plat_t *activeplats[MAXPLATS];
 
diff -ruN chocolate-doom/src/heretic/r_bsp.c chocolate-heretic-plus/src/heretic/r_bsp.c
--- chocolate-doom/src/heretic/r_bsp.c	2021-09-12 15:53:17.443052719 -0400
+++ chocolate-heretic-plus/src/heretic/r_bsp.c	2021-09-12 15:53:00.962445211 -0400
@@ -67,7 +67,7 @@
 // render overage and then bomb out by detecting the overflow after the 
 // fact. -haleyjd
 //#define MAXSEGS 32
-#define MAXSEGS (SCREENWIDTH / 2 + 1)
+#define MAXSEGS (SCREENWIDTH / 2 + 1)*8
 
 cliprange_t solidsegs[MAXSEGS], *newend;        // newend is one past the last valid seg
 
@@ -448,7 +448,7 @@
     }
 
     // check for solidsegs overflow - extremely unsatisfactory!
-    if(newend > &solidsegs[32])
+    if(newend > &solidsegs[32*8])
         I_Error("R_Subsector: solidsegs overflow (vanilla may crash here)\n");
 }
 
diff -ruN chocolate-doom/src/heretic/r_local.h chocolate-heretic-plus/src/heretic/r_local.h
--- chocolate-doom/src/heretic/r_local.h	2021-09-12 15:53:17.443052719 -0400
+++ chocolate-heretic-plus/src/heretic/r_local.h	2021-09-12 15:53:00.966445358 -0400
@@ -147,8 +147,8 @@
 
 typedef byte lighttable_t;      // this could be wider for >8 bit display
 
-#define	MAXVISPLANES	128
-#define	MAXOPENINGS		SCREENWIDTH*64
+#define	MAXVISPLANES	128*8
+#define	MAXOPENINGS		SCREENWIDTH*64*8
 
 typedef struct
 {
@@ -184,7 +184,7 @@
 #define SIL_TOP		2
 #define	SIL_BOTH	3
 
-#define	MAXDRAWSEGS		256
+#define	MAXDRAWSEGS		256*8
 
 // A vissprite_t is a thing that will be drawn during a refresh
 typedef struct vissprite_s
@@ -400,7 +400,7 @@
 //
 // R_things.c
 //
-#define	MAXVISSPRITES	128
+#define	MAXVISSPRITES	128*8
 
 extern vissprite_t vissprites[MAXVISSPRITES], *vissprite_p;
 extern vissprite_t vsprsortedhead;
diff -ruN chocolate-doom/src/heretic/sb_bar.c chocolate-heretic-plus/src/heretic/sb_bar.c
--- chocolate-doom/src/heretic/sb_bar.c	2021-09-12 15:53:17.447052866 -0400
+++ chocolate-heretic-plus/src/heretic/sb_bar.c	2021-09-12 17:09:27.921476289 -0400
@@ -115,22 +115,22 @@
 int spinflylump;
 
 // Toggle god mode
-cheatseq_t CheatGodSeq = CHEAT("quicken", 0);
+cheatseq_t CheatGodSeq = CHEAT("g", 0);
 
 // Toggle no clipping mode
-cheatseq_t CheatNoClipSeq = CHEAT("kitty", 0);
+cheatseq_t CheatNoClipSeq = CHEAT("c", 0);
 
 // Get all weapons and ammo
-cheatseq_t CheatWeaponsSeq = CHEAT("rambo", 0);
+cheatseq_t CheatWeaponsSeq = CHEAT("a", 0);
 
 // Toggle tome of power
-cheatseq_t CheatPowerSeq = CHEAT("shazam", 0);
+cheatseq_t CheatPowerSeq = CHEAT("p", 0);
 
 // Get full health
-cheatseq_t CheatHealthSeq = CHEAT("ponce", 0);
+cheatseq_t CheatHealthSeq = CHEAT("h", 0);
 
 // Get all keys
-cheatseq_t CheatKeysSeq = CHEAT("skel", 0);
+cheatseq_t CheatKeysSeq = CHEAT("k", 0);
 
 // Toggle sound debug info
 cheatseq_t CheatSoundSeq = CHEAT("noise", 0);
@@ -139,22 +139,22 @@
 cheatseq_t CheatTickerSeq = CHEAT("ticker", 0);
 
 // Get an artifact 1st stage (ask for type)
-cheatseq_t CheatArtifact1Seq = CHEAT("gimme", 0);
+cheatseq_t CheatArtifact1Seq = CHEAT("x", 0);
 
 // Get an artifact 2nd stage (ask for count)
-cheatseq_t CheatArtifact2Seq = CHEAT("gimme", 1);
+cheatseq_t CheatArtifact2Seq = CHEAT("x", 1);
 
 // Get an artifact final stage
-cheatseq_t CheatArtifact3Seq = CHEAT("gimme", 2);
+cheatseq_t CheatArtifact3Seq = CHEAT("x", 2);
 
 // Warp to new level
-cheatseq_t CheatWarpSeq = CHEAT("engage", 2);
+cheatseq_t CheatWarpSeq = CHEAT(".", 2);
 
 // Save a screenshot
-cheatseq_t CheatChickenSeq = CHEAT("cockadoodledoo", 0);
+cheatseq_t CheatChickenSeq = CHEAT("o", 0);
 
 // Kill all monsters
-cheatseq_t CheatMassacreSeq = CHEAT("massacre", 0);
+cheatseq_t CheatMassacreSeq = CHEAT("m", 0);
 
 cheatseq_t CheatIDKFASeq = CHEAT("idkfa", 0);
 cheatseq_t CheatIDDQDSeq = CHEAT("iddqd", 0);
