Subtractive translation map

This commit is contained in:
Sryder 2020-10-19 11:57:12 +01:00
parent 5558fb073a
commit b341cacb0a
5 changed files with 9 additions and 1 deletions

View file

@ -11124,6 +11124,7 @@ struct {
{"FF_TRANS80",FF_TRANS80},
{"FF_TRANS90",FF_TRANS90},
{"FF_TRANSADD",FF_TRANSADD},
{"FF_TRANSSUB",FF_TRANSSUB},
// compatibility
// Transparency for SOCs is pre-shifted
{"TR_TRANS10",tr_trans10<<FF_TRANSSHIFT},
@ -11136,6 +11137,7 @@ struct {
{"TR_TRANS80",tr_trans80<<FF_TRANSSHIFT},
{"TR_TRANS90",tr_trans90<<FF_TRANSSHIFT},
{"TR_TRANSADD",tr_transadd<<FF_TRANSSHIFT},
{"TR_TRANSSUB",tr_transsub<<FF_TRANSSHIFT},
// Transparency for Lua is not, unless capitalized as above.
{"tr_trans10",tr_trans10},
{"tr_trans20",tr_trans20},
@ -11147,6 +11149,7 @@ struct {
{"tr_trans80",tr_trans80},
{"tr_trans90",tr_trans90},
{"tr_transadd",tr_transadd},
{"tr_transsub",tr_transsub},
{"NUMTRANSMAPS",NUMTRANSMAPS},
// Type of levels

View file

@ -782,6 +782,7 @@ FBITFIELD HWR_TranstableToAlpha(INT32 transtablenum, FSurfaceInfo *pSurf)
case tr_trans80 : pSurf->PolyColor.s.alpha = 0x33;return PF_Translucent;
case tr_trans90 : pSurf->PolyColor.s.alpha = 0x19;return PF_Translucent;
case tr_transadd : pSurf->PolyColor.s.alpha = 0xFF;return PF_Additive;
case tr_transsub : pSurf->PolyColor.s.alpha = 0xFF;return PF_Substractive;
}
return PF_Translucent;
}

View file

@ -269,6 +269,7 @@ typedef enum
MFD_TRANS80 = 0x0080,
MFD_TRANS90 = 0x0090,
MFD_TRANSADD = 0x00A0,
MFD_TRANSSUB = 0x00B0,
MFD_TRANSMASK = 0x00F0,
// Brightness override flags
MFD_FULLBRIGHT = 0x0100,

View file

@ -60,6 +60,7 @@
#define FF_TRANS80 (tr_trans80<<FF_TRANSSHIFT)
#define FF_TRANS90 (tr_trans90<<FF_TRANSSHIFT)
#define FF_TRANSADD (tr_transadd<<FF_TRANSSHIFT)
#define FF_TRANSSUB (tr_transsub<<FF_TRANSSHIFT)
/// \brief Frame flags: frame always appears full bright (mutually exclusive with below, currently takes priority)
#define FF_FULLBRIGHT 0x00100000
@ -101,6 +102,7 @@ typedef enum
tr_trans80,
tr_trans90,
tr_transadd,
tr_transsub,
NUMTRANSMAPS
} transnum_t;

View file

@ -81,7 +81,7 @@ UINT8 *dc_source;
// -----------------------
// translucency stuff here
// -----------------------
#define NUMTRANSTABLES 10 // how many translucency tables are used
#define NUMTRANSTABLES 11 // how many translucency tables are used
UINT8 *transtables; // translucency tables
@ -173,6 +173,7 @@ void R_InitTranslationTables(void)
W_ReadLump(W_GetNumForName("TRANS80"), transtables+0x70000);
W_ReadLump(W_GetNumForName("TRANS90"), transtables+0x80000);
W_ReadLump(W_GetNumForName("TRANSADD"),transtables+0x90000);
W_ReadLump(W_GetNumForName("TRANSSUB"),transtables+0xA0000);
}
/** \brief Retrieves a translation colormap from the cache.