Polish for Wrongwarp

- Anti-tailgate measure for the SMK titlescreen recreation (prevents slots on the same row from being used immediately one after the other)
- Slightly reduce spinout chance since it felt too frequent
This commit is contained in:
toaster 2023-06-08 18:28:18 +01:00
parent 2241c443f1
commit 986ec8025d

View file

@ -29,6 +29,7 @@ void M_WrongWarp(INT32 choice)
static void M_WrongWarpTick(void) static void M_WrongWarpTick(void)
{ {
static boolean firsteggman = true; static boolean firsteggman = true;
static boolean antitailgate = false;
UINT8 i, j; UINT8 i, j;
@ -91,6 +92,10 @@ static void M_WrongWarpTick(void)
if (wrongwarp.wrongplayers[i].skin == rskin) if (wrongwarp.wrongplayers[i].skin == rskin)
return; return;
// Prevent tailgating.
if (antitailgate == !!(i & 1))
continue;
// Slot isn't free. // Slot isn't free.
if (wrongwarp.wrongplayers[i].skin != MAXSKINS) if (wrongwarp.wrongplayers[i].skin != MAXSKINS)
continue; continue;
@ -111,12 +116,14 @@ static void M_WrongWarpTick(void)
return; return;
} }
wrongwarp.wrongplayers[i].spinout = M_RandomChance(FRACUNIT/10); wrongwarp.wrongplayers[i].spinout = M_RandomChance(FRACUNIT/11);
} }
// Add the new character! // Add the new character!
wrongwarp.wrongplayers[i].skin = rskin; wrongwarp.wrongplayers[i].skin = rskin;
wrongwarp.wrongplayers[i].across = -WRONGPLAYEROFFSCREEN; wrongwarp.wrongplayers[i].across = -WRONGPLAYEROFFSCREEN;
antitailgate = !!(i & 1);
} }
static boolean M_WrongWarpInputs(INT32 ch) static boolean M_WrongWarpInputs(INT32 ch)