Fix input, fix menu crash

This commit is contained in:
nukeykt 2019-08-31 20:44:02 +09:00 committed by Christoph Oelckers
parent c458223f9d
commit 6b2ebdd444
3 changed files with 16 additions and 5 deletions

View file

@ -534,7 +534,7 @@ short nClockVal;
short fps;
short nRedTicks;
short lastlevel;
short bInMove;
volatile short bInMove;
short nAlarmTicks;
short nButtonColor;
short nEnergyChan;
@ -705,9 +705,12 @@ void bail2dos(const char *fmt, ...)
void faketimerhandler()
{
if (!(totalclock & 3) && !bInMove && moveframes < 4) {
if ((totalclock < ototalclock + 4) || bInMove)
return;
ototalclock += 4;
if (moveframes < 4)
moveframes++;
}
PlayerInterruptKeys();
}
@ -2111,6 +2114,7 @@ main_loc_D:
}
else
{
CONTROL_BindsEnabled = 1;
// Section B
if (!nCDTrackLength && !nFreeze && !nNetPlayerCount)
{

View file

@ -300,7 +300,7 @@ void menu_DoPlasma()
tilesiz[kTile4093].y = kPlasmaHeight;
nSmokeTop = 40 - tilesiz[kExhumedLogo].y / 2;
nSmokeBottom = 40 - tilesiz[kExhumedLogo].y / 2 + tilesiz[kExhumedLogo].y - 1;
nSmokeBottom = nSmokeTop + tilesiz[kExhumedLogo].y - 1;
//uint32_t t = time(0) << 16;
//uint32_t t2 = time(0) | t;
@ -443,13 +443,19 @@ void menu_DoPlasma()
for (int j = 0; j < 5; j++)
{
int pB = plasma_B[j];
if ((plasma_C[j]>>16) <= nSmokeLeft)
plasma_C[j] = nSmokeLeft<<16;
else if ((plasma_C[j]>>16) >= nSmokeRight)
plasma_C[j] = nSmokeRight<<16;
int pC = plasma_C[j];
uint8_t *ptr3 = (uint8_t*)(waloff[kExhumedLogo] + ((pC >> 16) - nSmokeLeft) * tilesiz[kExhumedLogo].y);
plasma_C[j] += plasma_B[j];
if (pB > 0 && (plasma_C[j] >> 16) >= nSmokeRight || pB < 0 && (plasma_C[j] >> 16) <= nSmokeLeft)
if ((pB > 0 && (plasma_C[j] >> 16) >= nSmokeRight) || (pB < 0 && (plasma_C[j] >> 16) <= nSmokeLeft))
{
int esi = plasma_A[j];
plasma_B[j] = -plasma_B[j];

View file

@ -150,6 +150,7 @@ void PlayerInterruptKeys()
}
memset(&info, 0, sizeof(ControlInfo)); // this is done within CONTROL_GetInput() anyway
CONTROL_ProcessBinds();
CONTROL_GetInput(&info);
info.dyaw *= (lMouseSens >> 1) + 1;