1. opaque entities
Faster code in 'TestSegmentAgainstOpaqueList': by grouping opaque faces according to their model number.
No bugs in all procedures (direct, bounce), all kinds of light (point, sun, sky) and all vismatrix settings.
In hlcsg, added a flag to automatically copy all brushes of an opaque entity to world and retexture with 'SKIP', so it can chop solid faces.
Disabled reducing of facelight in semiopaque entities.
Fixed wrong opacity when light goes through edge of adjacent semiopaque face.
2. bounce light
Fixed bad assumption that 50% of light of a face must be send out to other faces, witch result in incorrect lighting when sky is used. Then 'SwapTransfers' procedure was removed.
Added a option to adjuct the precentage of light bounced, instead of the constant 50%.
Compress transfer data to cut down memory usage.
3. dynamic light
In gamma correction, consider dynamic light and static together (because in game, they are added without gamma).
Added support for multiple light_environments.
Coring preforms pre style instead of per light, and also performs in bounced light.
4. tricks for entities
Use 'zhlt_transform' key to scale(use its origin as center) or move an entity. Use '-scale #' option in hlcsg to scale the whole map.
Use 'zhlt_usemodel' key to delete model of this entity and copy 'model' value from another entity specified by the value of 'zhlt_usemodel'.
Text string in entity 'game_text' converts to UTF8 format.
You can alter the brightness of the sample under a mdl(such as 'cycler' entity) to fix incorrect brightness of mdl. Add key 'zhlt_copylight' to mdl entity, then lighting information will be copied from the sample under the target entity of 'zhlt_copylight' to the sample under the mdl.
5. compiling
Popup a console window if the compiler is not running in console.
Options can be setted in 'settings.txt'.
6. other features
Allow faces to be outside +/-4096 to build a larger map. Note, origin of visible objects