* Heretic: check if backsector is NULL
* NULL pointer, not assumed random bytes
* More correct comment
* More actual comment
Co-Authored-By: Turo Lamminen <turol@users.noreply.github.com>
---------
Co-authored-by: Turo Lamminen <turol@users.noreply.github.com>
The stem of the torch uses a colour included in the 'flame' brightmap
on a few pixels, and it looks funny in the dark. The head of the
torch uses this colour too but it still doesn't look too bad when
it's excluded from the brightmap.
This is largely Lee Killough's original fix taken from MBF. There are
some extra improvements that Fabian added to Doom that are not present
here. In particular this implementation does not composite single patch
textures, because doing so breaks the Heretic and Hexen skies.
* Doom & Heretic: generate HSV tables only once at startup
* Doom & Heretic: generate pal_color[] array from original palette
* Doom: replace truecolor-only occurences of colormaps[] with pal_color[]
* Heretic: replace truecolor-only occurences of colormaps[] with pal_color[]
* Hexen: replace truecolor-only occurences of colormaps[] with pal_color[]
* Add comment(s) for introduced pal_color[] array
* Initials
* Vissprite blending function
* Minimal support for foggy maps and gamma-correction
* Implement ice and Wraithverge palettes
* Implement Bloodscourge palettes
Also fine-tune Wraithverge a little bit.
* Implement poison palettes
This is exactly what happens when the vanilla bug with the missing first palette plays on our side, because index 13 uses a different colouring!
* Fine-tune color panes for better representation of paletted render
Still not 100% identical to vanilla, but very close. Probably it will not be possible to see the difference without comparing frame by frame.
* Fine-tune colors even more using DoomWiki values
Good to know I was very close to them! 👩🏻🎨
Co-Authored-By: kitchen-ace <47063032+kitchen-ace@users.noreply.github.com>
* Refactor foggy colormaps handling
First of all, reduce diff and get rid of "actual_colormap" external variable as we always know exactly which colormap should be used.
Next, since things are gettig more complicated in true color, it might be a good idea to do not alter original R_InitColormaps function and use our own instead. Original one doesn't need any incoming parameters after all.
Colour translations and string tables are now generated only once at startup, we don't need to regenerate them every level change and every gamma-correction change (worth to follow this suite for other games in other PR).
Finally, foggy maps now have decent fog, but this seems to be the last nail in the coffin of "support for modified colormaps"...
* Do not forget to release PLAYPAL lump name
It's locked at the start of R_InitTrueColormaps and must be released in the end, since commonly it is loaded into PU_CACHE!
* implement "Alt" tinttab blending
* Review and slightly simplify Raven patch drawing functions
In this commit:
- V_DrawShadowedPatch: shadows now uses proper values for paletted render and more accurate opacity for true colour (that's why they were not intense enough).
- V_DrawAltTLPatch: now uses proper translucency levels for paletted and true colour renders (drawalttinttab).
- There is no need of arrays for Raven translucent patches, as they will never be coloured (dp_translation) or have different translucencies (dp_translucent), let's just use straight and simple declarations.
* Implement true color fading for finale screens
* Fix accidental delete
* Handle vanilla bug with incorrect 255th COLORMAP color
And provide reasonable support for custom COLORMAP lump: do not replace black with white if custom COLORMAP is loaded.
Co-Authored-By: Fabian Greffrath <fabian@greffrath.com>
* Translucensy for Cleric's Icon of the Defender effects
This is where difference between common and "alt" blending functions is very notable.
* bring (non-)truecolor colormaps in line with Vanilla Hexen
* truecolor Hexen: draw patches directly with palette colors
* Remove no longer used code, macrocize BLENDSTEP
* Guard alt tinttab sprite blending with "else"
---------
Co-authored-by: kitchen-ace <47063032+kitchen-ace@users.noreply.github.com>
Co-authored-by: Fabian Greffrath <fabian@greffrath.com>
* Heretic/Hexen: enable demo fast-forwarding
The button was already assignable, it just didn't do anything.
Additionally, don't pop up the menu during a demo, unless the user
presses the menu key, as in Crispy Doom.
* Hexen: fix usergame being disabled when not in a demo
Crispy already has x and y offsets on flats for interpolated scrolling.
Using these for drawing all scrolling flats means any flat can scroll,
and in any direction, without visual errors.
* doom: Sideloading renames lumps in autoloaded wads
Lumps in autoloaded wads pulled in by sideloading are now subject to the
same renaming as the original sideloaded wad.
* doom: Rename sideloaded Master Levels *PIC lumps
* doom: Master Levels has its own intermission pic
* doom: Allow autoload for aggregated Master Levels
Autoload from the MASTERLEVELS.WAD folder when using the loose Master
Levels wads.