Merge branch 'revert-b9078802' into 'master'

Sky offsets

See merge request KartKrew/Kart!1796
This commit is contained in:
Oni 2024-01-09 08:11:04 +00:00
commit 130adcdb92
3 changed files with 20 additions and 7 deletions

View file

@ -734,6 +734,8 @@ static void R_DrawSkyPlane(visplane_t *pl, void(*colfunc)(drawcolumndata_t*), bo
}
INT32 angle = (pl->viewangle + xtoviewangle[viewssnum][x + i])>>ANGLETOSKYSHIFT;
angle -= (skytextureoffset >> FRACBITS);
dc.iscale = FixedMul(skyscale[viewssnum], FINECOSINE(xtoviewangle[viewssnum][x + i]>>ANGLETOFINESHIFT));
dc.x = x + i;
dc.source =

View file

@ -37,10 +37,14 @@ INT32 skyflatnum;
*/
INT32 skytexture;
/** \brief the horizon line in a 256x128 sky texture
/** \brief the horizon line of the sky texture
*/
INT32 skytexturemid;
/** \brief the x offset of the sky texture
*/
INT32 skytextureoffset;
/** \brief the scale of the sky
*/
fixed_t skyscale[MAXSPLITSCREENPLAYERS];
@ -61,12 +65,19 @@ char globallevelskytexture[9];
*/
void R_SetupSkyDraw(void)
{
// the horizon line in a 256x128 sky texture
skytexturemid = (textures[skytexture]->height/2)<<FRACBITS;
// the horizon line in the sky texture
skytexturemid = (textures[skytexture]->height / 2) << FRACBITS;
skytextureoffset = 0;
// Sal: Add arbritrary offset that makes it
// line up with the horizon line special
skytexturemid += (16 << FRACBITS);
if (textures[skytexture]->type == TEXTURETYPE_SINGLEPATCH)
{
// Sal: Allow for sky offsets
texpatch_t *const tex_patch = &textures[skytexture]->patches[0];
patch_t *patch = W_CachePatchNumPwad(tex_patch->wad, tex_patch->lump, PU_CACHE);
skytexturemid += (patch->topoffset << FRACBITS);
skytextureoffset += (patch->leftoffset << FRACBITS);
}
R_SetSkyScale();
}

View file

@ -26,7 +26,7 @@ extern "C" {
/// \brief The sky map is 256*128*4 maps.
#define ANGLETOSKYSHIFT 22
extern INT32 skytexture, skytexturemid;
extern INT32 skytexture, skytexturemid, skytextureoffset;
extern fixed_t skyscale[MAXSPLITSCREENPLAYERS];
extern INT32 skyflatnum;