mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-11 07:11:39 +00:00
- Duke: Interpolate camera sprite angle in animatecamsprite()
. Fixes a "fixme".
This commit is contained in:
parent
407b5346e3
commit
88608e0682
2 changed files with 5 additions and 4 deletions
|
@ -1997,6 +1997,7 @@ void camera(int i)
|
|||
|
||||
if (s->hitag > 0)
|
||||
{
|
||||
hittype[i].tempang = s->ang;
|
||||
if (t[1] < s->hitag)
|
||||
s->ang += 8;
|
||||
else if (t[1] < (s->hitag * 3))
|
||||
|
|
|
@ -244,7 +244,7 @@ void renderMirror(int cposx, int cposy, int cposz, binangle cang, fixedhoriz cho
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void animatecamsprite(int smoothRatio)
|
||||
void animatecamsprite(double smoothratio)
|
||||
{
|
||||
const int VIEWSCREEN_ACTIVE_DISTANCE = 8192;
|
||||
|
||||
|
@ -268,12 +268,12 @@ void animatecamsprite(int smoothRatio)
|
|||
|
||||
screen->RenderTextureView(canvas, [=](IntRect& rect)
|
||||
{
|
||||
// fixme: This needs to interpolate the camera's angle. Position is not relevant because cameras do not move.
|
||||
auto camera = &sprite[sp->owner];
|
||||
auto ang = hittype[sp->owner].tempang + xs_CRoundToInt(fmulscale16(((camera->ang - hittype[sp->owner].tempang + 1024) & 2047) - 1024, smoothratio));
|
||||
// Note: no ROR or camera here for now - the current setup has no means to detect these things before rendering the scene itself.
|
||||
drawrooms(camera->x, camera->y, camera->z, camera->ang, 100 + camera->shade, camera->sectnum); // why 'shade'...?
|
||||
drawrooms(camera->x, camera->y, camera->z, ang, 100 + camera->shade, camera->sectnum); // why 'shade'...?
|
||||
display_mirror = 1; // should really be 'display external view'.
|
||||
fi.animatesprites(camera->x, camera->y, camera->ang, smoothRatio);
|
||||
fi.animatesprites(camera->x, camera->y, ang, smoothratio);
|
||||
display_mirror = 0;
|
||||
renderDrawMasks();
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue