mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-10 23:02:03 +00:00
Ensure the cached float cast variables introduced in r4656 are updated any time the integer versions are.
This fixes the infinite loop when viewing an HUD model at a point when displayrooms is not running, such as the main menu upon initial game load. git-svn-id: https://svn.eduke32.com/eduke32@5876 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
f5363194ff
commit
b768c35175
2 changed files with 22 additions and 6 deletions
|
@ -7845,6 +7845,10 @@ void set_globalang(int16_t ang)
|
||||||
globalang = ang&2047;
|
globalang = ang&2047;
|
||||||
cosglobalang = sintable[(globalang+512)&2047];
|
cosglobalang = sintable[(globalang+512)&2047];
|
||||||
singlobalang = sintable[globalang&2047];
|
singlobalang = sintable[globalang&2047];
|
||||||
|
#ifdef USE_OPENGL
|
||||||
|
fcosglobalang = (float) cosglobalang;
|
||||||
|
fsinglobalang = (float) singlobalang;
|
||||||
|
#endif
|
||||||
cosviewingrangeglobalang = mulscale16(cosglobalang,viewingrange);
|
cosviewingrangeglobalang = mulscale16(cosglobalang,viewingrange);
|
||||||
sinviewingrangeglobalang = mulscale16(singlobalang,viewingrange);
|
sinviewingrangeglobalang = mulscale16(singlobalang,viewingrange);
|
||||||
}
|
}
|
||||||
|
@ -9785,11 +9789,12 @@ int32_t setgamemode(char davidoption, int32_t daxdim, int32_t daydim, int32_t da
|
||||||
else if (dabpp == 8 && j > 8) rendmode = REND_CLASSIC;
|
else if (dabpp == 8 && j > 8) rendmode = REND_CLASSIC;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
xdim = daxdim; ydim = daydim;
|
xdim = daxdim;
|
||||||
|
ydim = daydim;
|
||||||
|
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
fxdim = (float) xdim;
|
fxdim = (float) daxdim;
|
||||||
fydim = (float) ydim;
|
fydim = (float) daydim;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
initsmost();
|
initsmost();
|
||||||
|
@ -11979,6 +11984,9 @@ void setaspect(int32_t daxrange, int32_t daaspect)
|
||||||
{
|
{
|
||||||
viewingrange = daxrange;
|
viewingrange = daxrange;
|
||||||
viewingrangerecip = divscale32(1,daxrange);
|
viewingrangerecip = divscale32(1,daxrange);
|
||||||
|
#ifdef USE_OPENGL
|
||||||
|
fviewingrange = (float) daxrange;
|
||||||
|
#endif
|
||||||
|
|
||||||
yxaspect = daaspect;
|
yxaspect = daaspect;
|
||||||
xyaspect = divscale32(1,yxaspect);
|
xyaspect = divscale32(1,yxaspect);
|
||||||
|
@ -12620,6 +12628,11 @@ void qsetmodeany(int32_t daxdim, int32_t daydim)
|
||||||
xdim = xres;
|
xdim = xres;
|
||||||
ydim = yres;
|
ydim = yres;
|
||||||
|
|
||||||
|
#ifdef USE_OPENGL
|
||||||
|
fxdim = (float) xres;
|
||||||
|
fydim = (float) yres;
|
||||||
|
#endif
|
||||||
|
|
||||||
initsmost();
|
initsmost();
|
||||||
|
|
||||||
ydim16 = yres - STATUS2DSIZ2;
|
ydim16 = yres - STATUS2DSIZ2;
|
||||||
|
|
|
@ -3887,6 +3887,8 @@ void polymost_drawrooms()
|
||||||
bglColorMask(1,0,0,1);
|
bglColorMask(1,0,0,1);
|
||||||
globalposx += singlobalang>>10;
|
globalposx += singlobalang>>10;
|
||||||
globalposy -= cosglobalang>>10;
|
globalposy -= cosglobalang>>10;
|
||||||
|
fglobalposx = (float) globalposx;
|
||||||
|
fglobalposy = (float) globalposy;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -3894,19 +3896,18 @@ void polymost_drawrooms()
|
||||||
bglColorMask(0,1,1,1);
|
bglColorMask(0,1,1,1);
|
||||||
globalposx -= singlobalang>>10;
|
globalposx -= singlobalang>>10;
|
||||||
globalposy += cosglobalang>>10;
|
globalposy += cosglobalang>>10;
|
||||||
|
fglobalposx = (float) globalposx;
|
||||||
|
fglobalposy = (float) globalposy;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//Polymost supports true look up/down :) Here, we convert horizon to angle.
|
//Polymost supports true look up/down :) Here, we convert horizon to angle.
|
||||||
//gchang&gshang are cos&sin of this angle (respectively)
|
//gchang&gshang are cos&sin of this angle (respectively)
|
||||||
fviewingrange = (float) viewingrange;
|
|
||||||
gyxscale = ((float)xdimenscale)*(1.0f/131072.f);
|
gyxscale = ((float)xdimenscale)*(1.0f/131072.f);
|
||||||
gxyaspect = ((float)xyaspect*fviewingrange)*(5.f/(65536.f*262144.f));
|
gxyaspect = ((float)xyaspect*fviewingrange)*(5.f/(65536.f*262144.f));
|
||||||
gviewxrange = fviewingrange * fxdimen * (1.f/(32768.f*1024.f));
|
gviewxrange = fviewingrange * fxdimen * (1.f/(32768.f*1024.f));
|
||||||
fcosglobalang = (float) cosglobalang;
|
|
||||||
gcosang = fcosglobalang*(1.0f/262144.f);
|
gcosang = fcosglobalang*(1.0f/262144.f);
|
||||||
fsinglobalang = (float) singlobalang;
|
|
||||||
gsinang = fsinglobalang*(1.0f/262144.f);
|
gsinang = fsinglobalang*(1.0f/262144.f);
|
||||||
gcosang2 = gcosang * (fviewingrange * (1.0f/65536.f));
|
gcosang2 = gcosang * (fviewingrange * (1.0f/65536.f));
|
||||||
gsinang2 = gsinang * (fviewingrange * (1.0f/65536.f));
|
gsinang2 = gsinang * (fviewingrange * (1.0f/65536.f));
|
||||||
|
@ -4979,6 +4980,7 @@ void polymost_dorotatespritemodel(int32_t sx, int32_t sy, int32_t z, int16_t a,
|
||||||
int const ogpal = globalpal; globalpal = (int32_t) ((uint8_t) dapalnum);
|
int const ogpal = globalpal; globalpal = (int32_t) ((uint8_t) dapalnum);
|
||||||
float const ogxyaspect = gxyaspect; gxyaspect = 1.f;
|
float const ogxyaspect = gxyaspect; gxyaspect = 1.f;
|
||||||
int const oldviewingrange = viewingrange; viewingrange = 65536;
|
int const oldviewingrange = viewingrange; viewingrange = 65536;
|
||||||
|
float const oldfviewingrange = fviewingrange; fviewingrange = 65536.f;
|
||||||
|
|
||||||
vec1 = hud->add;
|
vec1 = hud->add;
|
||||||
|
|
||||||
|
@ -5164,6 +5166,7 @@ void polymost_dorotatespritemodel(int32_t sx, int32_t sy, int32_t z, int16_t a,
|
||||||
if (!nofog) bglEnable(GL_FOG);
|
if (!nofog) bglEnable(GL_FOG);
|
||||||
|
|
||||||
viewingrange = oldviewingrange;
|
viewingrange = oldviewingrange;
|
||||||
|
fviewingrange = oldfviewingrange;
|
||||||
gxyaspect = ogxyaspect;
|
gxyaspect = ogxyaspect;
|
||||||
globalshade = ogshade;
|
globalshade = ogshade;
|
||||||
globalpal = ogpal;
|
globalpal = ogpal;
|
||||||
|
|
Loading…
Reference in a new issue