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

View file

@ -300,7 +300,7 @@ void menu_DoPlasma()
tilesiz[kTile4093].y = kPlasmaHeight; tilesiz[kTile4093].y = kPlasmaHeight;
nSmokeTop = 40 - tilesiz[kExhumedLogo].y / 2; 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 t = time(0) << 16;
//uint32_t t2 = time(0) | t; //uint32_t t2 = time(0) | t;
@ -443,13 +443,19 @@ void menu_DoPlasma()
for (int j = 0; j < 5; j++) for (int j = 0; j < 5; j++)
{ {
int pB = plasma_B[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]; int pC = plasma_C[j];
uint8_t *ptr3 = (uint8_t*)(waloff[kExhumedLogo] + ((pC >> 16) - nSmokeLeft) * tilesiz[kExhumedLogo].y); uint8_t *ptr3 = (uint8_t*)(waloff[kExhumedLogo] + ((pC >> 16) - nSmokeLeft) * tilesiz[kExhumedLogo].y);
plasma_C[j] += plasma_B[j]; 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]; int esi = plasma_A[j];
plasma_B[j] = -plasma_B[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 memset(&info, 0, sizeof(ControlInfo)); // this is done within CONTROL_GetInput() anyway
CONTROL_ProcessBinds();
CONTROL_GetInput(&info); CONTROL_GetInput(&info);
info.dyaw *= (lMouseSens >> 1) + 1; info.dyaw *= (lMouseSens >> 1) + 1;