mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-01-09 16:32:33 +00:00
Basic additive transmap/blend support
Can currently be used on sprites only added to flames by default because it makes sense
This commit is contained in:
parent
08dc784c17
commit
5558fb073a
6 changed files with 17 additions and 8 deletions
|
|
@ -11123,6 +11123,7 @@ struct {
|
|||
{"FF_TRANS70",FF_TRANS70},
|
||||
{"FF_TRANS80",FF_TRANS80},
|
||||
{"FF_TRANS90",FF_TRANS90},
|
||||
{"FF_TRANSADD",FF_TRANSADD},
|
||||
// compatibility
|
||||
// Transparency for SOCs is pre-shifted
|
||||
{"TR_TRANS10",tr_trans10<<FF_TRANSSHIFT},
|
||||
|
|
@ -11134,6 +11135,7 @@ struct {
|
|||
{"TR_TRANS70",tr_trans70<<FF_TRANSSHIFT},
|
||||
{"TR_TRANS80",tr_trans80<<FF_TRANSSHIFT},
|
||||
{"TR_TRANS90",tr_trans90<<FF_TRANSSHIFT},
|
||||
{"TR_TRANSADD",tr_transadd<<FF_TRANSSHIFT},
|
||||
// Transparency for Lua is not, unless capitalized as above.
|
||||
{"tr_trans10",tr_trans10},
|
||||
{"tr_trans20",tr_trans20},
|
||||
|
|
@ -11144,6 +11146,7 @@ struct {
|
|||
{"tr_trans70",tr_trans70},
|
||||
{"tr_trans80",tr_trans80},
|
||||
{"tr_trans90",tr_trans90},
|
||||
{"tr_transadd",tr_transadd},
|
||||
{"NUMTRANSMAPS",NUMTRANSMAPS},
|
||||
|
||||
// Type of levels
|
||||
|
|
@ -11621,6 +11624,7 @@ struct {
|
|||
{"MFD_TRANS70",MFD_TRANS70},
|
||||
{"MFD_TRANS80",MFD_TRANS80},
|
||||
{"MFD_TRANS90",MFD_TRANS90},
|
||||
{"MFD_TRANSADD",MFD_TRANSADD},
|
||||
{"MFD_TRANSMASK",MFD_TRANSMASK},
|
||||
{"MFD_FULLBRIGHT",MFD_FULLBRIGHT},
|
||||
{"MFD_SEMIBRIGHT",MFD_SEMIBRIGHT},
|
||||
|
|
|
|||
|
|
@ -781,6 +781,7 @@ FBITFIELD HWR_TranstableToAlpha(INT32 transtablenum, FSurfaceInfo *pSurf)
|
|||
case tr_trans70 : pSurf->PolyColor.s.alpha = 0x4c;return PF_Translucent;
|
||||
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;
|
||||
}
|
||||
return PF_Translucent;
|
||||
}
|
||||
|
|
|
|||
14
src/info.c
14
src/info.c
|
|
@ -2231,9 +2231,9 @@ state_t states[NUMSTATES] =
|
|||
{SPR_CHAN, 0, -1, {NULL}, 0, 0, S_NULL}, // S_CEZCHAIN
|
||||
|
||||
// Flame
|
||||
{SPR_FLAM, FF_FULLBRIGHT|FF_ANIMATE, 3*8, {A_FlameParticle}, 7, 3, S_FLAME}, // S_FLAME
|
||||
{SPR_FLAM, FF_FULLBRIGHT|FF_ANIMATE|8, TICRATE, {NULL}, 3, 3, S_NULL}, // S_FLAMEPARTICLE
|
||||
{SPR_FLAM, FF_FULLBRIGHT|FF_ANIMATE, -1, {NULL}, 7, 3, S_NULL}, // S_FLAMEREST
|
||||
{SPR_FLAM, FF_FULLBRIGHT|FF_ANIMATE|FF_TRANSADD, 3*8, {A_FlameParticle}, 7, 3, S_FLAME}, // S_FLAME
|
||||
{SPR_FLAM, FF_FULLBRIGHT|FF_ANIMATE|FF_TRANSADD|8, TICRATE, {NULL}, 3, 3, S_NULL}, // S_FLAMEPARTICLE
|
||||
{SPR_FLAM, FF_FULLBRIGHT|FF_ANIMATE|FF_TRANSADD, -1, {NULL}, 7, 3, S_NULL}, // S_FLAMEREST
|
||||
|
||||
// Eggman statue
|
||||
{SPR_ESTA, 0, -1, {NULL}, 0, 0, S_NULL}, // S_EGGSTATUE1
|
||||
|
|
@ -4383,10 +4383,10 @@ state_t states[NUMSTATES] =
|
|||
|
||||
{SPR_AUDI, 4|FF_ANIMATE, -1, {NULL}, 1, 17, S_NULL}, // S_AUDIENCE_CHAO_LOSE
|
||||
|
||||
{SPR_FLAM, 0, 3, {NULL}, 0, 0, S_FLAYM2}, // S_FLAYM1,
|
||||
{SPR_FLAM, 1, 3, {NULL}, 0, 0, S_FLAYM3}, // S_FLAYM2,
|
||||
{SPR_FLAM, 2, 3, {NULL}, 0, 0, S_FLAYM4}, // S_FLAYM3,
|
||||
{SPR_FLAM, 3, 3, {NULL}, 0, 0, S_FLAYM1}, // S_FLAYM4,
|
||||
{SPR_FLAM, FF_FULLBRIGHT|FF_TRANSADD|0, 3, {NULL}, 0, 0, S_FLAYM2}, // S_FLAYM1,
|
||||
{SPR_FLAM, FF_FULLBRIGHT|FF_TRANSADD|1, 3, {NULL}, 0, 0, S_FLAYM3}, // S_FLAYM2,
|
||||
{SPR_FLAM, FF_FULLBRIGHT|FF_TRANSADD|2, 3, {NULL}, 0, 0, S_FLAYM4}, // S_FLAYM3,
|
||||
{SPR_FLAM, FF_FULLBRIGHT|FF_TRANSADD|3, 3, {NULL}, 0, 0, S_FLAYM1}, // S_FLAYM4,
|
||||
|
||||
{SPR_DECO, 0, -1, {NULL}, 0, 0, S_NULL}, // S_DEVIL,
|
||||
{SPR_DECO, 1, -1, {NULL}, 0, 0, S_NULL}, // S_ANGEL,
|
||||
|
|
|
|||
|
|
@ -268,6 +268,7 @@ typedef enum
|
|||
MFD_TRANS70 = 0x0070,
|
||||
MFD_TRANS80 = 0x0080,
|
||||
MFD_TRANS90 = 0x0090,
|
||||
MFD_TRANSADD = 0x00A0,
|
||||
MFD_TRANSMASK = 0x00F0,
|
||||
// Brightness override flags
|
||||
MFD_FULLBRIGHT = 0x0100,
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@
|
|||
#define FF_TRANS70 (tr_trans70<<FF_TRANSSHIFT)
|
||||
#define FF_TRANS80 (tr_trans80<<FF_TRANSSHIFT)
|
||||
#define FF_TRANS90 (tr_trans90<<FF_TRANSSHIFT)
|
||||
#define FF_TRANSADD (tr_transadd<<FF_TRANSSHIFT)
|
||||
|
||||
/// \brief Frame flags: frame always appears full bright (mutually exclusive with below, currently takes priority)
|
||||
#define FF_FULLBRIGHT 0x00100000
|
||||
|
|
@ -99,6 +100,7 @@ typedef enum
|
|||
tr_trans70,
|
||||
tr_trans80,
|
||||
tr_trans90,
|
||||
tr_transadd,
|
||||
NUMTRANSMAPS
|
||||
} transnum_t;
|
||||
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ UINT8 *dc_source;
|
|||
// -----------------------
|
||||
// translucency stuff here
|
||||
// -----------------------
|
||||
#define NUMTRANSTABLES 9 // how many translucency tables are used
|
||||
#define NUMTRANSTABLES 10 // how many translucency tables are used
|
||||
|
||||
UINT8 *transtables; // translucency tables
|
||||
|
||||
|
|
@ -172,6 +172,7 @@ void R_InitTranslationTables(void)
|
|||
W_ReadLump(W_GetNumForName("TRANS70"), transtables+0x60000);
|
||||
W_ReadLump(W_GetNumForName("TRANS80"), transtables+0x70000);
|
||||
W_ReadLump(W_GetNumForName("TRANS90"), transtables+0x80000);
|
||||
W_ReadLump(W_GetNumForName("TRANSADD"),transtables+0x90000);
|
||||
}
|
||||
|
||||
/** \brief Retrieves a translation colormap from the cache.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue