mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-12-29 05:41:02 +00:00
YUP, I just fixed OGL Precipitation with this branch too. What the fuck? Squashing ancient bugs, woo.
This commit is contained in:
parent
ff443251b1
commit
ab6fd676b5
1 changed files with 35 additions and 13 deletions
|
@ -45,7 +45,7 @@
|
||||||
#include "hw_md2.h"
|
#include "hw_md2.h"
|
||||||
|
|
||||||
#define R_FAKEFLOORS
|
#define R_FAKEFLOORS
|
||||||
//#define HWPRECIP
|
#define HWPRECIP
|
||||||
#define SORTING
|
#define SORTING
|
||||||
//#define POLYSKY
|
//#define POLYSKY
|
||||||
|
|
||||||
|
@ -4401,7 +4401,6 @@ static inline void HWR_DrawPrecipitationSprite(gr_vissprite_t *spr)
|
||||||
FOutVector *wv;
|
FOutVector *wv;
|
||||||
GLPatch_t *gpatch; // sprite patch converted to hardware
|
GLPatch_t *gpatch; // sprite patch converted to hardware
|
||||||
FSurfaceInfo Surf;
|
FSurfaceInfo Surf;
|
||||||
sector_t *sector;
|
|
||||||
|
|
||||||
if (!spr->mobj)
|
if (!spr->mobj)
|
||||||
return;
|
return;
|
||||||
|
@ -4455,19 +4454,38 @@ static inline void HWR_DrawPrecipitationSprite(gr_vissprite_t *spr)
|
||||||
//Hurdler: 25/04/2000: now support colormap in hardware mode
|
//Hurdler: 25/04/2000: now support colormap in hardware mode
|
||||||
HWR_GetMappedPatch(gpatch, spr->colormap);
|
HWR_GetMappedPatch(gpatch, spr->colormap);
|
||||||
|
|
||||||
sector = spr->mobj->subsector->sector;
|
// colormap test
|
||||||
|
|
||||||
if (sector->ffloors)
|
|
||||||
{
|
{
|
||||||
ffloor_t *caster = sector->lightlist[R_GetPlaneLight(sector, spr->mobj->z, false)].caster;
|
sector_t *sector = spr->mobj->subsector->sector;
|
||||||
sector = caster ? §ors[caster->secnum] : sector;
|
UINT8 lightlevel = 255;
|
||||||
|
extracolormap_t *colormap = sector->extra_colormap;
|
||||||
|
|
||||||
|
if (sector->numlights)
|
||||||
|
{
|
||||||
|
INT32 light;
|
||||||
|
|
||||||
|
light = R_GetPlaneLight(sector, spr->mobj->z + spr->mobj->height, false); // Always use the light at the top instead of whatever I was doing before
|
||||||
|
|
||||||
|
if (!(spr->mobj->frame & FF_FULLBRIGHT))
|
||||||
|
lightlevel = *sector->lightlist[light].lightlevel;
|
||||||
|
|
||||||
|
if (sector->lightlist[light].extra_colormap)
|
||||||
|
colormap = sector->lightlist[light].extra_colormap;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!(spr->mobj->frame & FF_FULLBRIGHT))
|
||||||
|
lightlevel = sector->lightlevel;
|
||||||
|
|
||||||
|
if (sector->extra_colormap)
|
||||||
|
colormap = sector->extra_colormap;
|
||||||
}
|
}
|
||||||
|
|
||||||
// sprite lighting by modulating the RGB components
|
if (colormap)
|
||||||
if (sector->extra_colormap)
|
Surf.FlatColor.rgba = HWR_Lighting(lightlevel, colormap->rgba, colormap->fadergba, false, false);
|
||||||
Surf.FlatColor.rgba = HWR_Lighting(spr->sectorlight,sector->extra_colormap->rgba,sector->extra_colormap->fadergba, false, false);
|
|
||||||
else
|
else
|
||||||
Surf.FlatColor.rgba = HWR_Lighting(spr->sectorlight,NORMALFOG,FADEFOG, false, false);
|
Surf.FlatColor.rgba = HWR_Lighting(lightlevel, NORMALFOG, FADEFOG, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
if (spr->mobj->flags2 & MF2_SHADOW)
|
if (spr->mobj->flags2 & MF2_SHADOW)
|
||||||
{
|
{
|
||||||
|
@ -5289,6 +5307,11 @@ static void HWR_ProjectPrecipitationSprite(precipmobj_t *thing)
|
||||||
//
|
//
|
||||||
vis = HWR_NewVisSprite();
|
vis = HWR_NewVisSprite();
|
||||||
vis->x1 = x1;
|
vis->x1 = x1;
|
||||||
|
#if 0
|
||||||
|
vis->x2 = x2;
|
||||||
|
#else
|
||||||
|
(void)x2;
|
||||||
|
#endif
|
||||||
vis->x2 = tx;
|
vis->x2 = tx;
|
||||||
vis->tz = tz;
|
vis->tz = tz;
|
||||||
vis->dispoffset = 0; // Monster Iestyn: 23/11/15: HARDWARE SUPPORT AT LAST
|
vis->dispoffset = 0; // Monster Iestyn: 23/11/15: HARDWARE SUPPORT AT LAST
|
||||||
|
@ -5301,7 +5324,6 @@ static void HWR_ProjectPrecipitationSprite(precipmobj_t *thing)
|
||||||
// set top/bottom coords
|
// set top/bottom coords
|
||||||
vis->ty = FIXED_TO_FLOAT(thing->z + spritecachedinfo[lumpoff].topoffset) - gr_viewz;
|
vis->ty = FIXED_TO_FLOAT(thing->z + spritecachedinfo[lumpoff].topoffset) - gr_viewz;
|
||||||
|
|
||||||
vis->sectorlight = 0xff;
|
|
||||||
vis->precip = true;
|
vis->precip = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue