Don't do interpolations if they're already being done. This would cause problems when using showview inside EVENT_DISPLAYROOMS.

git-svn-id: https://svn.eduke32.com/eduke32@1531 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
plagman 2009-10-15 16:02:55 +00:00
parent 256c729910
commit 53691113d4
3 changed files with 13 additions and 0 deletions

View file

@ -66,6 +66,11 @@ void G_DoInterpolations(int32_t smoothratio) //Stick at beginning of draws
{
int32_t i=g_numInterpolations-1, j = 0, odelta, ndelta = 0;
if (g_interpolationLock++)
{
return;
}
for (; i>=0; i--)
{
bakipos[i] = *curipos[i];
@ -79,6 +84,12 @@ void G_DoInterpolations(int32_t smoothratio) //Stick at beginning of draws
inline void G_RestoreInterpolations(void) //Stick at end of drawscreen
{
int32_t i=g_numInterpolations-1;
if (--g_interpolationLock)
{
return;
}
for (; i>=0; i--) *curipos[i] = bakipos[i];
}

View file

@ -699,6 +699,7 @@ extern int32_t everyothertime;
extern int32_t mymaxlag, otherminlag, bufferjitter;
extern int32_t g_numInterpolations, startofdynamicinterpolations;
extern int32_t g_interpolationLock;
extern int32_t oldipos[MAXINTERPOLATIONS];
extern int32_t bakipos[MAXINTERPOLATIONS];
extern int32_t *curipos[MAXINTERPOLATIONS];

View file

@ -172,6 +172,7 @@ int32_t mymaxlag, otherminlag, bufferjitter = 1;
int16_t g_numClouds,clouds[128],cloudx[128],cloudy[128];
int32_t cloudtotalclock = 0,totalmemory = 0;
int32_t g_numInterpolations = 0, startofdynamicinterpolations = 0;
int32_t g_interpolationLock = 0;
int32_t oldipos[MAXINTERPOLATIONS];
int32_t bakipos[MAXINTERPOLATIONS];
int32_t *curipos[MAXINTERPOLATIONS];