From d22b895e22fbc600e22bce1767547f1211078027 Mon Sep 17 00:00:00 2001
From: Misa <infoteddyatgitgud@cock.li>
Date: Tue, 30 Jun 2020 23:43:33 -0700
Subject: [PATCH] Allow edentity terminals to use any sprite they want

Checkpoints can use any sprite they want, why not terminals, too?
---
 desktop_version/src/Map.cpp | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/desktop_version/src/Map.cpp b/desktop_version/src/Map.cpp
index 623b6b0a..fe040275 100644
--- a/desktop_version/src/Map.cpp
+++ b/desktop_version/src/Map.cpp
@@ -1728,10 +1728,27 @@ void mapclass::loadlevel(int rx, int ry)
 				break;
 				}
 				case 18: //Terminals
+				{
 				obj.customscript=edentity[edi].scriptname;
-				obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8),(edentity[edi].y*8)- ((ry-100)*30*8)+8, 20, 1);
-				obj.createblock(5, (edentity[edi].x*8)- ((rx-100)*40*8)-8, (edentity[edi].y*8)- ((ry-100)*30*8)+8, 20, 16, 35);
+
+				int usethistile = edentity[edi].p1;
+				int usethisy = (edentity[edi].y*8)- ((ry-100)*30*8);
+
+				// This isn't a boolean: we just swap 0 and 1 around and leave the rest alone
+				if (usethistile == 0)
+				{
+					usethistile = 1; // Unflipped
+				}
+				else if (usethistile == 1)
+				{
+					usethistile = 0; // Flipped;
+					usethisy -= 8;
+				}
+
+				obj.createentity((edentity[edi].x*8)- ((rx-100)*40*8), usethisy+8, 20, usethistile);
+				obj.createblock(5, (edentity[edi].x*8)- ((rx-100)*40*8)-8, usethisy+8, 20, 16, 35);
 				break;
+				}
 				case 19: //Script Box
 				game.customscript[tempscriptbox]=edentity[edi].scriptname;
 				obj.createblock(1, (edentity[edi].x*8)- ((rx-100)*40*8), (edentity[edi].y*8)- ((ry-100)*30*8),