diff --git a/src/r_plane.cpp b/src/r_plane.cpp index cd0b9f4a5..8fd055053 100644 --- a/src/r_plane.cpp +++ b/src/r_plane.cpp @@ -1034,26 +1034,19 @@ void R_DrawSinglePlane (visplane_t *pl, fixed_t alpha, bool masked) CVAR (Bool, r_skyboxes, true, 0) static int numskyboxes; -struct VisplaneAndAlpha -{ - visplane_t *Visplane; - fixed_t Alpha; -}; - void R_DrawSkyBoxes () { static TArray interestingStack; static TArray drawsegStack; static TArray visspriteStack; static TArray viewxStack, viewyStack, viewzStack; - static TArray visplaneStack; + static TArray visplaneStack; numskyboxes = 0; if (visplanes[MAXVISPLANES] == NULL) return; - VisplaneAndAlpha vaAdder = { 0 }; int savedextralight = extralight; fixed_t savedx = viewx; fixed_t savedy = viewy; @@ -1169,9 +1162,8 @@ void R_DrawSkyBoxes () viewxStack.Push (viewx); viewyStack.Push (viewy); viewzStack.Push (viewz); - vaAdder.Visplane = pl; - vaAdder.Alpha = sky->PlaneAlpha; - visplaneStack.Push (vaAdder); + pl->alpha = sky->PlaneAlpha; + visplaneStack.Push (pl); R_RenderBSPNode (nodes + numnodes - 1); R_DrawPlanes (); @@ -1200,13 +1192,13 @@ void R_DrawSkyBoxes () ds_p = firstdrawseg; vissprite_p = firstvissprite; - visplaneStack.Pop (vaAdder); - if (vaAdder.Alpha > 0) + visplaneStack.Pop (pl); + if (pl->alpha > 0) { - R_DrawSinglePlane (vaAdder.Visplane, vaAdder.Alpha, true); + R_DrawSinglePlane (pl, pl->alpha, true); } - *freehead = vaAdder.Visplane; - freehead = &vaAdder.Visplane->next; + *freehead = pl; + freehead = &pl->next; } firstvissprite = vissprites; vissprite_p = vissprites + savedvissprite_p; diff --git a/src/r_plane.h b/src/r_plane.h index 369083bad..6dfd1e00d 100644 --- a/src/r_plane.h +++ b/src/r_plane.h @@ -54,6 +54,7 @@ struct visplane_s float visibility; fixed_t viewx, viewy, viewz; angle_t viewangle; + fixed_t alpha; unsigned short *bottom; // [RH] bottom and top arrays are dynamically unsigned short pad; // allocated immediately after the