- Fixed: Wall drawing handled fixed light levels improperly (but did not
completely ignore them, either). - Separated light level fixing out of player_t's fixedcolormap parameter. Using a fixed light level (e.g. PowerTorch) will no longer wipe out colored lighting. - Moved the blending rectangle drawing into a separate discrete stage, since doing it while copying the 3D view window to the display now blends underneath the weapon instead of on top of it. - Consolidated the special colormaps into a single 2D table. - Tweaked the special colormaps slightly to make the true color results more closely match the paletted approximations. - fb_d3d9_shaders.h was getting unwieldy, so I moved the shaders out of the executable and into zdoom.pk3. Shaders are still precompiled so I don't need to pull in a dependancy on D3DX. - Added a few more shaders to accomodate drawing weapons with all the in-game lighting models. These are accessed with the new DrawTexture tags DTA_SpecialColormap and DTA_ColormapStyle. - Player weapon sprites are now drawn using Direct3D and receive all the benefits thereof. SVN r1858 (trunk)
This commit is contained in:
parent
857002e12f
commit
b8eb530a0d
93 changed files with 1188 additions and 1288 deletions
|
|
@ -1159,45 +1159,23 @@ void R_SetupFrame (AActor *actor)
|
|||
}
|
||||
|
||||
fixedcolormap = NULL;
|
||||
fixedlightlev = 0;
|
||||
fixedlightlev = -1;
|
||||
|
||||
if (player != NULL && camera == player->mo && player->fixedcolormap)
|
||||
if (player != NULL && camera == player->mo)
|
||||
{
|
||||
if (player->fixedcolormap < NUMCOLORMAPS)
|
||||
if (player->fixedcolormap >= 0 && player->fixedcolormap < NUM_SPECIALCOLORMAPS)
|
||||
{
|
||||
fixedlightlev = player->fixedcolormap*256;
|
||||
fixedcolormap = NormalLight.Maps;
|
||||
fixedcolormap = SpecialColormaps[player->fixedcolormap];
|
||||
}
|
||||
else switch (player->fixedcolormap)
|
||||
else if (player->fixedlightlevel >= 0 && player->fixedlightlevel < NUMCOLORMAPS)
|
||||
{
|
||||
case INVERSECOLORMAP:
|
||||
fixedcolormap = InverseColormap;
|
||||
break;
|
||||
|
||||
case REDCOLORMAP:
|
||||
fixedcolormap = RedColormap;
|
||||
break;
|
||||
|
||||
case GREENCOLORMAP:
|
||||
fixedcolormap = GreenColormap;
|
||||
break;
|
||||
|
||||
case BLUECOLORMAP:
|
||||
fixedcolormap = BlueColormap;
|
||||
break;
|
||||
|
||||
case GOLDCOLORMAP:
|
||||
fixedcolormap = GoldColormap;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
fixedlightlev = player->fixedlightlevel * 256;
|
||||
}
|
||||
}
|
||||
// [RH] Inverse light for shooting the Sigil
|
||||
else if (extralight == INT_MIN)
|
||||
if (fixedcolormap == NULL && extralight == INT_MIN)
|
||||
{
|
||||
fixedcolormap = InverseColormap;
|
||||
fixedcolormap = SpecialColormaps[INVERSECOLORMAP];
|
||||
extralight = 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue