Fix Polymer issues introduced with change to Q16.16 view angles

git-svn-id: https://svn.eduke32.com/eduke32@6760 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
terminx 2018-03-09 10:20:53 +00:00
parent ef853e8b92
commit 491783d81e

View file

@ -1214,7 +1214,7 @@ void polymer_drawrooms(int32_t daposx, int32_t daposy, int32_t daposz, fix16_t d
polymer_emptybuckets(); polymer_emptybuckets();
viewangle = fix16_to_int(daang); viewangle = daang;
enddrawing(); enddrawing();
return; return;
} }
@ -1225,7 +1225,7 @@ void polymer_drawrooms(int32_t daposx, int32_t daposy, int32_t daposz, fix16_t d
curmodelviewmatrix = rootmodelviewmatrix; curmodelviewmatrix = rootmodelviewmatrix;
// build globals used by rotatesprite // build globals used by rotatesprite
viewangle = fix16_to_int(daang); viewangle = daang;
set_globalang(daang); set_globalang(daang);
// polymost globals used by polymost_dorotatesprite // polymost globals used by polymost_dorotatesprite
@ -2050,7 +2050,7 @@ static void polymer_displayrooms(const int16_t dacursectnum)
//glEnable(GL_CLIP_PLANE0); //glEnable(GL_CLIP_PLANE0);
if (mirrorlist[i].wallnum >= 0) if (mirrorlist[i].wallnum >= 0)
preparemirror(globalposx, globalposy, globalang, preparemirror(globalposx, globalposy, qglobalang,
mirrorlist[i].wallnum, &gx, &gy, &viewangle); mirrorlist[i].wallnum, &gx, &gy, &viewangle);
gx = globalposx; gx = globalposx;
@ -2441,7 +2441,7 @@ static inline void polymer_inb4mirror(_prvert* buffer, GLfloat* plane)
static void polymer_animatesprites(void) static void polymer_animatesprites(void)
{ {
if (asi.animatesprites) if (asi.animatesprites)
asi.animatesprites(globalposx, globalposy, viewangle, asi.smoothratio); asi.animatesprites(globalposx, globalposy, fix16_to_int(viewangle), asi.smoothratio);
} }
static void polymer_freeboard(void) static void polymer_freeboard(void)
@ -3966,7 +3966,7 @@ void polymer_updatesprite(int32_t snum)
{ {
// do surgery on the face tspr to make it look like a wall sprite // do surgery on the face tspr to make it look like a wall sprite
tspr->cstat |= 16; tspr->cstat |= 16;
tspr->ang = (viewangle + 1024) & 2047; tspr->ang = (fix16_to_int(viewangle) + 1024) & 2047;
} }
if (flipu) if (flipu)
@ -3979,7 +3979,7 @@ void polymer_updatesprite(int32_t snum)
switch (tspr->cstat & SPR_ALIGN_MASK) switch (tspr->cstat & SPR_ALIGN_MASK)
{ {
case 0: case 0:
ang = (float)((viewangle) & 2047) * (360.f/2048.f); ang = (float)((fix16_to_int(viewangle)) & 2047) * (360.f/2048.f);
glTranslatef(spos[0], spos[1], spos[2]); glTranslatef(spos[0], spos[1], spos[2]);
glRotatef(-ang, 0.0f, 1.0f, 0.0f); glRotatef(-ang, 0.0f, 1.0f, 0.0f);
@ -6129,7 +6129,7 @@ static inline void polymer_culllight(int16_t lighti)
static void polymer_prepareshadows(void) static void polymer_prepareshadows(void)
{ {
int16_t oviewangle, oglobalang; fix16_t oviewangle, oglobalang;
int32_t i, j, k; int32_t i, j, k;
int32_t gx, gy, gz; int32_t gx, gy, gz;
int32_t oldoverridematerial; int32_t oldoverridematerial;
@ -6140,7 +6140,7 @@ static void polymer_prepareshadows(void)
gz = globalposz; gz = globalposz;
// build globals used by drawmasks // build globals used by drawmasks
oviewangle = viewangle; oviewangle = viewangle;
oglobalang = globalang; oglobalang = qglobalang;
i = j = k = 0; i = j = k = 0;
@ -6174,8 +6174,8 @@ static void polymer_prepareshadows(void)
set_globalpos(prlights[i].x, prlights[i].y, prlights[i].z); set_globalpos(prlights[i].x, prlights[i].y, prlights[i].z);
// build globals used by rotatesprite // build globals used by rotatesprite
viewangle = prlights[i].angle; viewangle = fix16_from_int(prlights[i].angle);
set_globalang(prlights[i].angle); set_globalang(fix16_from_int(prlights[i].angle));
oldoverridematerial = overridematerial; oldoverridematerial = overridematerial;
// smooth model shadows // smooth model shadows