Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds support for several Quake 2 features, including area lights, palette and texture loading and transparent/sky/fence textures. Here's the list of notable changes:
Palette handling and loading:
The palette iteslf and palette handling functions were moved to the new imglib.cc file. LoadPalette function was added. For Quake 2, it will try to load the palette from pics/colormap.pcx and replace the palette with hardcoded Quake 2 palette if that fails. For Hexen 2, it will replace the palette with hardcoded Hexen 2 palette.
External texture loading:
Most of Quake 2 source ports can use true-color textures stored in conventional image formats. Several changes were made to support that in a generic manner:
Surface lights:
This is not a direct port of qrad3 surface lights logic. Instead, it's a tweaked version of bouce light logic tuned to look similar to qrad3/arghrad3 surface lights (that's why there are some strange scalers here and there...). Lights setup is done in surflight.cc.
Other notable changes: