DDS Decompression
Alpha channel id dds decompress fix
TrainType changed from string to int (enum). Added experimental trapezoid roads. Some functions changed from bool/int into void, when no return value, in some other added return true/false at end.
Added roll display on roads (simpler than rail), road sides are flat.
Created graphical roll for rail, except switches (need to be repaired). Solved unstability of revisions 32 and 33 (reason in pNext pointer). Also corrected bug in couplers initialization. Some sqrt(x*x+y*y) simplified to hypot(x,y).
Added switch left/right decoder from SPKS (still no animation). Solved problem with roll jumps - was (1-s), should be (1.0-s). Using of degrees replaced with radians, only in one case degrees are used (RadToDeg).
Enabled switch animations. Corrected "smuga.dds" and default filtering for TGA.
Turntable - work in progress (can be rotated, train movement do to). Removed message boxes if unknown event1 or event2 in a track (still logged).
Turntable works OK, angle is in vector3.y, so Quark has to be updated. Events none_* are ignored in multiple. The animation of switch and turntable is not smooth. Some normal tracks disappear - are visible at bottom side.
Solved problem with track triangles at bottom side. Was i=fLength/fStep+1, should be i=ceil(fLength/fStep).
Clearing unwanted control points. Segmentation changed from min(5,0.02*radius) into min(0.5,0.03*radius). Dedicated FastGetPoint for 0 and 1. Fixed cab animations. Extra filtering modes for "%" in TGA texture name, followed by digit.
Segmentation length revoked. Extra global parameters for TGA filtering (defaultfiltering, ballastfiltering, railprofiltering).
Logged events ignored inside multiple. Trapezoid roads top texture is better mapped at shorter side.
Events like "none_*" are totally ignored. Roads are textured without top texture resizing (texture is a square of TexLength side).
Corrected mapping of top texture for roads.
Removed some unused character constants (sets). The "_Integer" one conflicted with STLport in C++ Builder 6 (otherwise _USE_OLD_RW_STL must be defined). Some variables (ConversionError, LineCount, FreeFlyModeFlag) moved from CONST into VAR area.
VBO support detection. Trianagles (nodes) of all 3 types are compiled in one DisplayList per 100m sector - reduced amount of DisplayLists, but still too many for Intel cards.
Triangles (nodes) displayed as Vertex Array, half step towards VBO (other things still as DisplayList). Works OK on Intel 82815G/GV/910GL Express (no missed triangles). The code needs optimalization. VBO doesn't like double and throws overflow on floats.
Next step towards VBO. Vertex Array/VBO data moved into TSubRect level (reduced number of arrays), not released when not used. Switching to VBO fails.
!!! Work in progress !!! Triangles, lines, rails and roads drawn with VBO (or Vertex Array when no VBO found). Rivers, models, dynamics and cab view temporary disabled, as Display Lists cause crash when used with VBO. Switch animation not available (common VBO at sector level).