mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-15 17:01:28 +00:00
Create a new struct for hictinting that uses a uint16_t for flags.r
git-svn-id: https://svn.eduke32.com/eduke32@6215 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
84c913d04c
commit
70245fc4f1
8 changed files with 41 additions and 26 deletions
|
@ -1276,8 +1276,8 @@ extern int32_t glrendmode;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void hicinit(void);
|
void hicinit(void);
|
||||||
// effect bitset: 1 = greyscale, 2 = invert
|
typedef uint16_t polytintflags_t;
|
||||||
void hicsetpalettetint(int32_t palnum, char r, char g, char b, char effect);
|
void hicsetpalettetint(int32_t palnum, char r, char g, char b, polytintflags_t effect);
|
||||||
// flags bitset: 1 = don't compress
|
// flags bitset: 1 = don't compress
|
||||||
int32_t hicsetsubsttex(int32_t picnum, int32_t palnum, const char *filen, float alphacut,
|
int32_t hicsetsubsttex(int32_t picnum, int32_t palnum, const char *filen, float alphacut,
|
||||||
float xscale, float yscale, float specpower, float specfactor, char flags);
|
float xscale, float yscale, float specpower, float specfactor, char flags);
|
||||||
|
|
|
@ -18,7 +18,12 @@ typedef struct hicreplc_t {
|
||||||
char palnum, flags;
|
char palnum, flags;
|
||||||
} hicreplctyp;
|
} hicreplctyp;
|
||||||
|
|
||||||
extern palette_t hictinting[MAXPALOOKUPS];
|
typedef struct {
|
||||||
|
polytintflags_t f;
|
||||||
|
uint8_t r, g, b;
|
||||||
|
} polytint_t;
|
||||||
|
|
||||||
|
extern polytint_t hictinting[MAXPALOOKUPS];
|
||||||
extern hicreplctyp *hicreplc[MAXTILES];
|
extern hicreplctyp *hicreplc[MAXTILES];
|
||||||
extern int32_t hicinitcounter;
|
extern int32_t hicinitcounter;
|
||||||
|
|
||||||
|
|
|
@ -224,9 +224,9 @@ typedef struct pthtyp_t
|
||||||
int16_t picnum;
|
int16_t picnum;
|
||||||
|
|
||||||
uint16_t flags; // see pthtyp_flags
|
uint16_t flags; // see pthtyp_flags
|
||||||
|
polytintflags_t effects;
|
||||||
char palnum;
|
char palnum;
|
||||||
char shade;
|
char shade;
|
||||||
char effects;
|
|
||||||
char skyface;
|
char skyface;
|
||||||
} pthtyp;
|
} pthtyp;
|
||||||
|
|
||||||
|
@ -240,7 +240,7 @@ EDUKE32_STATIC_ASSERT(TO_PTH_NOTRANSFIX(DAMETH_TRANS1) == 0);
|
||||||
EDUKE32_STATIC_ASSERT(TO_PTH_NOTRANSFIX(DAMETH_MASKPROPS) == 0);
|
EDUKE32_STATIC_ASSERT(TO_PTH_NOTRANSFIX(DAMETH_MASKPROPS) == 0);
|
||||||
|
|
||||||
extern void gloadtile_art(int32_t,int32_t,int32_t,int32_t,int32_t,pthtyp *,int32_t);
|
extern void gloadtile_art(int32_t,int32_t,int32_t,int32_t,int32_t,pthtyp *,int32_t);
|
||||||
extern int32_t gloadtile_hi(int32_t,int32_t,int32_t,hicreplctyp *,int32_t,pthtyp *,int32_t,char);
|
extern int32_t gloadtile_hi(int32_t,int32_t,int32_t,hicreplctyp *,int32_t,pthtyp *,int32_t,polytintflags_t);
|
||||||
|
|
||||||
extern int32_t globalnoeffect;
|
extern int32_t globalnoeffect;
|
||||||
extern int32_t drawingskybox;
|
extern int32_t drawingskybox;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#include "baselayer.h"
|
#include "baselayer.h"
|
||||||
|
|
||||||
|
|
||||||
palette_t hictinting[MAXPALOOKUPS];
|
polytint_t hictinting[MAXPALOOKUPS];
|
||||||
|
|
||||||
hicreplctyp *hicreplc[MAXTILES];
|
hicreplctyp *hicreplc[MAXTILES];
|
||||||
int32_t hicinitcounter = 0;
|
int32_t hicinitcounter = 0;
|
||||||
|
@ -118,7 +118,7 @@ void hicinit(void)
|
||||||
// palette shifts on true-colour textures and only true-colour textures.
|
// palette shifts on true-colour textures and only true-colour textures.
|
||||||
// effect bitset: 1 = greyscale, 2 = invert
|
// effect bitset: 1 = greyscale, 2 = invert
|
||||||
//
|
//
|
||||||
void hicsetpalettetint(int32_t palnum, char r, char g, char b, char effect)
|
void hicsetpalettetint(int32_t palnum, char r, char g, char b, polytintflags_t effect)
|
||||||
{
|
{
|
||||||
if ((uint32_t)palnum >= (uint32_t)MAXPALOOKUPS) return;
|
if ((uint32_t)palnum >= (uint32_t)MAXPALOOKUPS) return;
|
||||||
if (!hicinitcounter) hicinit();
|
if (!hicinitcounter) hicinit();
|
||||||
|
@ -282,7 +282,7 @@ int32_t hicclearsubst(int32_t picnum, int32_t palnum)
|
||||||
|
|
||||||
#include "compat.h"
|
#include "compat.h"
|
||||||
|
|
||||||
void hicsetpalettetint(int32_t palnum, char r, char g, char b, char effect)
|
void hicsetpalettetint(int32_t palnum, char r, char g, char b, polytintflags_t effect)
|
||||||
{
|
{
|
||||||
UNREFERENCED_PARAMETER(palnum);
|
UNREFERENCED_PARAMETER(palnum);
|
||||||
UNREFERENCED_PARAMETER(r);
|
UNREFERENCED_PARAMETER(r);
|
||||||
|
|
|
@ -719,7 +719,7 @@ int32_t mdloadskin(md2model_t *m, int32_t number, int32_t pal, int32_t surf)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
char const effect = hicfxmask(pal);
|
polytintflags_t const effect = hicfxmask(pal);
|
||||||
|
|
||||||
// CODEDUP: gloadtile_hi
|
// CODEDUP: gloadtile_hi
|
||||||
|
|
||||||
|
|
|
@ -1100,10 +1100,11 @@ void gloadtile_art(int32_t dapic, int32_t dapal, int32_t tintpalnum, int32_t das
|
||||||
|
|
||||||
if (!fullbrightloadingpass && tintpalnum >= 0)
|
if (!fullbrightloadingpass && tintpalnum >= 0)
|
||||||
{
|
{
|
||||||
uint8_t const r = hictinting[tintpalnum].r;
|
polytint_t const & tint = hictinting[tintpalnum];
|
||||||
uint8_t const g = hictinting[tintpalnum].g;
|
polytintflags_t const effect = tint.f;
|
||||||
uint8_t const b = hictinting[tintpalnum].b;
|
uint8_t const r = tint.r;
|
||||||
uint8_t const effect = hictinting[tintpalnum].f;
|
uint8_t const g = tint.g;
|
||||||
|
uint8_t const b = tint.b;
|
||||||
|
|
||||||
if (effect & HICTINT_GRAYSCALE)
|
if (effect & HICTINT_GRAYSCALE)
|
||||||
{
|
{
|
||||||
|
@ -1221,7 +1222,7 @@ void gloadtile_art(int32_t dapic, int32_t dapal, int32_t tintpalnum, int32_t das
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t gloadtile_hi(int32_t dapic,int32_t dapalnum, int32_t facen, hicreplctyp *hicr,
|
int32_t gloadtile_hi(int32_t dapic,int32_t dapalnum, int32_t facen, hicreplctyp *hicr,
|
||||||
int32_t dameth, pthtyp *pth, int32_t doalloc, char effect)
|
int32_t dameth, pthtyp *pth, int32_t doalloc, polytintflags_t effect)
|
||||||
{
|
{
|
||||||
if (!hicr) return -1;
|
if (!hicr) return -1;
|
||||||
|
|
||||||
|
|
|
@ -8878,7 +8878,7 @@ static int32_t osdcmd_vars_pk(const osdfuncparm_t *parm)
|
||||||
static int32_t osdcmd_tint(const osdfuncparm_t *parm)
|
static int32_t osdcmd_tint(const osdfuncparm_t *parm)
|
||||||
{
|
{
|
||||||
int32_t i;
|
int32_t i;
|
||||||
palette_t *p;
|
polytint_t *p;
|
||||||
|
|
||||||
if (parm->numparms==1)
|
if (parm->numparms==1)
|
||||||
{
|
{
|
||||||
|
@ -8891,10 +8891,9 @@ static int32_t osdcmd_tint(const osdfuncparm_t *parm)
|
||||||
}
|
}
|
||||||
else if (parm->numparms==0)
|
else if (parm->numparms==0)
|
||||||
{
|
{
|
||||||
palette_t notint = { 0xFF, 0xFF, 0xFF, 0x00 };
|
|
||||||
OSD_Printf("Hightile tintings:\n");
|
OSD_Printf("Hightile tintings:\n");
|
||||||
for (i=0,p=&hictinting[0]; i<=M32_MAXPALOOKUPS; i++,p++)
|
for (i=0,p=&hictinting[0]; i<=M32_MAXPALOOKUPS; i++,p++)
|
||||||
if (Bmemcmp(&hictinting[i], ¬int, 4))
|
if (p->r != 255 || p->g != 255 || p->b != 255 || p->f != 0)
|
||||||
OSD_Printf("pal %d: rgb %3d %3d %3d f %d\n", i, p->r, p->g, p->b, p->f);
|
OSD_Printf("pal %d: rgb %3d %3d %3d f %d\n", i, p->r, p->g, p->b, p->f);
|
||||||
}
|
}
|
||||||
else if (parm->numparms>=2)
|
else if (parm->numparms>=2)
|
||||||
|
|
|
@ -167,8 +167,11 @@ void G_SetCrosshairColor(int32_t r, int32_t g, int32_t b)
|
||||||
|
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
// XXX: this makes us also load all hightile textures tinted with the crosshair color!
|
// XXX: this makes us also load all hightile textures tinted with the crosshair color!
|
||||||
Bmemcpy(&hictinting[CROSSHAIR_PAL], &CrosshairColors, sizeof(palette_t));
|
polytint_t & crosshairtint = hictinting[CROSSHAIR_PAL];
|
||||||
hictinting[CROSSHAIR_PAL].f = HICTINT_USEONART | HICTINT_GRAYSCALE;
|
crosshairtint.r = CrosshairColors.r;
|
||||||
|
crosshairtint.g = CrosshairColors.g;
|
||||||
|
crosshairtint.b = CrosshairColors.b;
|
||||||
|
crosshairtint.f = HICTINT_USEONART | HICTINT_GRAYSCALE;
|
||||||
#endif
|
#endif
|
||||||
invalidatetile(CROSSHAIR, -1, -1);
|
invalidatetile(CROSSHAIR, -1, -1);
|
||||||
}
|
}
|
||||||
|
@ -856,21 +859,28 @@ void G_DisplayRest(int32_t smoothratio)
|
||||||
// this takes care of fullscreen tint for OpenGL
|
// this takes care of fullscreen tint for OpenGL
|
||||||
if (getrendermode() >= REND_POLYMOST)
|
if (getrendermode() >= REND_POLYMOST)
|
||||||
{
|
{
|
||||||
|
polytint_t & fstint = hictinting[MAXPALOOKUPS-1];
|
||||||
|
|
||||||
if (pp->palette == WATERPAL)
|
if (pp->palette == WATERPAL)
|
||||||
{
|
{
|
||||||
static const palette_t wp = { 224, 192, 255, 0 };
|
fstint.r = 224;
|
||||||
Bmemcpy(&hictinting[MAXPALOOKUPS-1], &wp, sizeof(palette_t));
|
fstint.g = 192;
|
||||||
|
fstint.b = 255;
|
||||||
|
fstint.f = 0;
|
||||||
}
|
}
|
||||||
else if (pp->palette == SLIMEPAL)
|
else if (pp->palette == SLIMEPAL)
|
||||||
{
|
{
|
||||||
static const palette_t sp = { 208, 255, 192, 0 };
|
fstint.r = 208;
|
||||||
Bmemcpy(&hictinting[MAXPALOOKUPS-1], &sp, sizeof(palette_t));
|
fstint.g = 255;
|
||||||
|
fstint.b = 192;
|
||||||
|
fstint.f = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
hictinting[MAXPALOOKUPS-1].r = 255;
|
fstint.r = 255;
|
||||||
hictinting[MAXPALOOKUPS-1].g = 255;
|
fstint.g = 255;
|
||||||
hictinting[MAXPALOOKUPS-1].b = 255;
|
fstint.b = 255;
|
||||||
|
fstint.f = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // USE_OPENGL
|
#endif // USE_OPENGL
|
||||||
|
|
Loading…
Reference in a new issue