You appear to be missing a massive number of patches and updates.
5.5
Upgrade 5.5
===========
BASIC3D
-------
* OFFSET LIMB, SCALE LIMB and ROTATE LIMB now have optional extra parameter for triggering bounds recalculation
* INTERSECT OBJECT no longer refreshes the VB each time it is called (bug introduced with U5.4)
* DELETE OBJECT now does a better job if SYNC not used right away before same object recreation
CORE
----
* REDIM caused by two sequences of DIM statements no longer crashes if either array is completely empty
* Uninitialised strings now compare correctly even when not initialised
* WRAPVALUE now works again with negative numbers
COMPILER
--------
* Added extra debug reporting into TGC Online elements for greater detail when a connection error occurs
* New TGC.TXT employed so TGC online components can be translated for localized upgrades
* An empty INPUT command will no longer crash the compiler due to zero parameters
DISPLAY
-------
* Set window title will no longer attempt to show the mouse cursor
* Applications using HIDDEN mode no longer get shown at the start of the init phase
QUAKE 2 BSP
-----------
* Sorted problem with alpha blending
NOTES
-----
* Variables can no longer start with a numeric character (ie 3DITEM)
* The default editor detects '...' as a concatenation symbol and will add the next line to current line!
* The default editor is unaware of additional macros and pre-parsers employed by other DBPro editors
* DWORDs are no longer accepted in the compiler as subscripts and must be integer values
* Due to alteration of foundation functionality, object planes have a 180 degree altered rotation on the Y
5.6
List of fixes for Upgrade 5.6 -
Text
* Resolved possible crash on first token command
* Resolved possible crash on next token command
X Model Loading
* Data left over from previous loads caused crashing - now fixed
5.7
Upgrade 5.7
===========
NOTES
-----
* Compiler DLL Protection added for current and future plugins
* Activation System Simplified for easier use on machines that switch and swap hardware
BASIC3D
-------
* New Object Transparency Option; SET OBJECT TRANSPARENCY Obj,4 will set the alpha test to not render alpha
values less than 0x000000CF. Useful for rendering transparent objects in any order rather than z-sorted
5.8
Upgrade 5.8 BETA1-290305
===========
Information
-----------
* Created a series of snippet examples that demonstrate all the fixes from the MAR05BUGLIST
General
-------
* Fixed debugger crashes so that large programs can be traced and stepped through
* Sured up compiler to allow better integration with debugger
* Reverted to the older DX 9.0c runtimes for U58 until MS release the new 2005 runtimes
Compiler
--------
* Booleans and other sub-DWORD sized varaibles can now be used as condition parameters
* Indirect addressing now allows you to assign, read and print the value, ie print *ptr
* Indirect addressing such as *ptr now also works for basic conditions
* Better parsing of conditions where brackets are used inside speed marks
* You can now have speech marks, of an odd number in the REMSTART/REMEND block
* Speed improvements - open setup.ini in the compiler folder, add a group named "[DIRECTIVES]", and an item below this "RemoveSafetyCode=Yes", recompile your program, this solves problems where loops may cause slow down and may significantly increase frame rates
* Host of fixes centered around comments beig parsed, variable handling and error runtime data
* Quotes allowed in REMSTART REMEND block, and REMBLOCK also allowed in SELECT CASE statement
* Changed compiler error 57 to better describe the need to have same function return types
* Can now place comments onto the end of a function declaration
* Fixed parsing of declarations so initialisation values are retained
Basic3D
-------
* Collision against sphere objects (tristrips fixed), no longer crashes out
* SAVE OBJECT no longer saves animated vertex data - uses original data
* LOAD OBJECT no longer crashes if the file contains some forms of invalid data
* X Files can now be loaded with their vertex colours taken into account
* Setting the material diffuse/ambient/etc components will now affect models using multimaterial data
* When transparency is used, zwrite is no longer reset (ignored)
* Instances that use animating bone objects now animate even when source object is not visible
* Deleting objects that are used as shadows or reflections no longer lingers
* Fixed problem of NOZDEPTH object causing ghostMatrix to render with no Zbuffer information
* In respect of the above command DOTPRODUCT3 bump mapping once again possible
* OBJECT IN SCREEN commands now account for the multiple camera viewport settings
* When mesh bounds are created their buffers are updated straight away meaning they will be drawn instantly
* Textures are now allowed if the shader does not specify the useTexture flag in LOAD EFFECT
* Animation now updates the boundbox from pre-created boundsarray (for speed), and fixed from B2
* Added extra code which uses the new exclusion flag of objects to skip code to speed up program
* Pick object now ignores culled polygons unless the CULL flag is set to zero
* CONVX now loads meshes even if the materiallist has only a single material entry (X file fix)
* Put back ability for shaders using PS and not specifying internal textures to work again!
* Additional commands upgraded to public release, undocumented for U58.
For help, examine the NewU58Commands.DBA example provided:
rem Vertex Data Commands
LOCK VERTEXDATA FOR LIMB ObjectNumber, LimbNumber
LOCK VERTEXDATA FOR LIMB ObjectNumber, LimbNumber, LockMode
LOCK VERTEXDATA FOR MESH MeshNumber
ADD MESH TO VERTEXDATA MeshNumber
DELETE MESH FROM VERTEXDATA VertexStart, VertexEnd, IndexStart, IndexEnd
SET VERTEXDATA UV VertexIndex, U, V
SET VERTEXDATA UV VertexIndex, Stage Number, U, V
SET VERTEXDATA NORMALS VertexIndex, NX, NY, NZ
SET VERTEXDATA POSITION VertexIndex, X, Y, Z
SET VERTEXDATA DIFFUSE VertexIndex, RGBValue
n=GET VERTEXDATA VERTEX COUNT()
n=GET VERTEXDATA INDEX COUNT()
n=GET VERTEXDATA POSITION X(VertexIndex)
n=GET VERTEXDATA POSITION Y(VertexIndex)
n=GET VERTEXDATA POSITION Z(VertexIndex)
n=GET VERTEXDATA NORMALS X(VertexIndex)
n=GET VERTEXDATA NORMALS Y(VertexIndex)
n=GET VERTEXDATA NORMALS Z(VertexIndex)
n=GET VERTEXDATA U(VertexIndex)
n=GET VERTEXDATA V(VertexIndex)
n=GET VERTEXDATA U(VertexIndex, Stage Number)
n=GET VERTEXDATA V(VertexIndex, Stage Number)
n=GET VERTEXDATA DIFFUSE(VertexIndex)
UNLOCK VERTEXDATA
rem CSG Commands
PERFORM CSG UNION TargetObject, BrushObject
PERFORM CSG DIFFERENCE TargetObject, BrushObject
PERFORM CSG INTERSECTION TargetObject, BrushObject
PERFORM CSG UNION ON VERTEXDATA BrushMesh
PERFORM CSG DIFFERENCE ON VERTEXDATA BrushMesh
PERFORM CSG INTERSECTION ON VERTEXDATA BrushMesh
rem New Object Commands
SET GLOBAL OBJECT CREATION SharedVBMode
SAVE OBJECT Filename$, ObjectNumber
CLONE OBJECT ObjectNumber, SourceObject, ShareOriginalData
EXCLUDE OBJECT ON ObjectID
EXCLUDE OBJECT OFF ObjectID
rem Texture Stage Management
SET OBJECT TEXTURE ObjectNumber, StageNumber, TexturingMode, MipmapFlag
SET OBJECT FILTER ObjectNumber, StageNumber, Flag
SET BLEND MAPPING ON ObjectNumber, StageIndex, ImageNumber, TexCoordMode, BlendMode
rem Shadow Commands
SET SHADOW SHADING ON ObjectNumber, MeshNumber, ShadowRange, UseShader
SET SHADOW SHADING OFF ObjectNumber
SET SHADOW POSITION Mode, X, Y, Z
rem Extra Collision Support
SET OBJECT FRAME ObjectNumber, Frame, RecalculateBounds
CALCULATE AUTOMATIC COLLISION
Image
-----
* Confirmed that you cannot save successful BMP files in FullScreen mode (DX9.0c bug)
* Texture Flag of 2 in LOAD IMAGE will now allow CUBE maps to be loaded directly
* Updated Image DLL to save out all sizes of bitmaps, including those not to a power of two
* LOAD IMAGE now brings back alpha of images using SET IMAGE COLORKEY during pixel perfect
Camera
------
* MAKE CAMERA now sets the camera ID internally so SET CURRENT CAMERA is not depended upon
* Fixed camera angle readout so it matches the way the object freeflight angles read out
Animation
---------
* Animation - the set animation speed command only applies to mpg and avi, wmv is currently not supported
* Animation - set animation volume command, help is incorrect, full volume is 0 and lowest volume is -10000
Sprite
------
* Sprite - when using animated sprites the image dimensions are retained resulting in no more stretching
* Sprite - alpha testing disabled with sprites, stops problems with sprites not showing when objects are in certain transparent modes
* Sprite - animated sprites updated to use correct transparency
Light
-----
* Lights - fixed a problem with fog colour
Music
-----
* Music - no error shown when volume is above 100, also note that the maximum volume value is 100, anything over this makes no difference
Input
-----
* Input - mouse z value no longer reset when the mouse is positioned manually
Basic2D
-------
* Basic 2D - dot and point commands can now be used on bitmaps that are larger than the screen resolution
* Basic 2D - and modified so the draw commands do not overwrite memory of bitmap zero (screen)
Sound
-----
* Sound & Memblocks - when creating memblocks from sounds and sounds from memblocks the data format is retained so the sounds are played back correctly. this has altered the memblock format
Text
----
* Text no longer corrupts when change the text size and text size texture plate use improved
Multiplayer
-----------
* Multiplayer - fixed problem with net buffer not moving onto the next message in the queue
System
------
* Setting the windows layout to a caption and popup no longer leaves corrupt window borders
Multiformat Support
-------------------
* HL BSP - tested object and bsp collision working together
* Q3 BSP - number of polygons drawn is updated for global statistics
* MD2 - updated animation handling code
* MD3 - updated animation handling code
* MDL - updated animation code
* 3DS - improved loading code
Advanced Terrain Expansion Pack
-------------------------------
* Terrain - multiple cameras now supported
* Terrain - if you want to hide limbs manually then don't call the update terrain command
* Terrain - save terrain command implemented
* Terrain - load terrain command fully implemented
* Terrain - culling now takes into account terrain position
* Terrain - collision data is updated when a terrain has been repositioned
* Terrain - tested shaders with terrain, not come across any problems
* Terrain - fixed a crash when display mode was changed
* Terrain - default values now applied, no longer crashes if all functions are not called
* Terrain - when loading a saved terrain note that you cannot adjust it's properties and rebuild, calling "build terrain" on a loaded terrain will casue an error message
* Terrain - error message shown on "load terrain" command if non standard extension used
Cloth & Particles
-----------------
* The color effector add key command now returns the correct value
Enhancement Pack
----------------
* Speech - the speech commands no longer pause until finished allowing programs to continue with execution
* Ogg Vorbis - volume can now be set correctly
* Ogg Vorbis - get state returns the right value
* File Blocks - if you add a file to a block and the file already exists it will be overwritten, previously the behaviour was to create an additional copy
* File Blocks - new command called "remove file from block ( id, file )"
DBO
---
* DBO - updated DBO documentation
5.9
Upgrade 5.9
===========
Information
-----------
* Released two new and unsupported DLLs called ODE and MultiplayerPlus (FPSC support)
* New commands added to U5.9 but undocumented for this release (FPSC support only)
Information about FPSCExtras (supplimentary release)
----------------------------
* Released the DBPRO DLL source code to the ODE, making it open source to the community
* Released the FPSC game engine source code fully compatible with U5.9 upgrade
* The files in the supplimentary release contains a replacement Enhancements.DLL!
General
-------
* Numerous small fixes and changes within several DLLs due to FPSC development
Basic3D
-------
* New command named "calculate object bounds ID", this can be used to calculate an objects bounds for collision and visibility etc.
* Alpha mapping an instanced object no longer forces loss of transparency
* Fog no longer interferes with shaders
* Radius of objects are now updated when "offset limb" is used, this solves the problem of objects disappearing that have been offset
* Deleted lights are now removed completely
* Fixed an issue with "set object" when wireframe state was ignored
* Point camera will revert to Euler rotation automatically
* Instanced objects can now be cloned
* Fixed a problem where cloned objects did not correctly match position data of source object
* Copy bitmap command now updates size correctly on both axis
* Resolved a potential crash on "make memblock from file"
* The command "create animated sprite" no longer crashes when an invalid image is used
* Animated sprites now use the 1 texture flag by default ( 1 to 1 pixel mapping )
* Error message now displayed on "open to write" if invalid index is used
* When setting an object to another objects orientation the pivot is now retained, you can specify an extra parameter 1 to ignore to ensure the pivot matches the other object
* The command "make mesh from object" no longer crashes after a resolution change
* Instanced objects can now have their own independant alpha settings
* Resolved a crash with certain shader settings
* The size of a sprite is now updated when their image is changed to match the dimensions of the image
* Stopped a possible crash with "sprite collision" not checking for existence of both sprites
* Object looping property correctly updated when animation has stopped
* Alternative "make object plain" command, add extra parameter of 1 to use this
* Instanced objects will use pivot data from source object
* Object size values now take into account any pivot data
* Basic 2D pixel plotter now adds an extra check to ensure not drawing outside of surface bounds
6.0
Upgrade 6.0 (180406)
====================
Information
-----------
* Updated all DLLs to use the new December 2005 runtime version of DirectX
* On average 250% smaller executables on builds that include 3D commands (when exclusions used)
* Open the SETUP.INI in the compiler folder to specify which DLLs to exclude to reduce your executable size (no exclusions by default)
* If you have problems double clicking DBPRO files to indirectly open the editor, simply re-associate the file to the IDE
* If you want to load 'ADPCM' based WAV files, use LOAD MUSIC and PLAY MUSIC/STOP MUSIC (as it is codec based)
* The standard DBPro Windows Mode is 32-bit by default. Use SET DISPLAY MODE to change this default setting
* Some changes have been made to the window creation and display updating code to allow for cleaner operations
* Executables are now compatible with igLoader, so as long as the original initial window size is maintained
* Be aware that if you are using Windows XP, you must have the Service Pack 2 installed for correct functionality
* Due to changes in DirectX shaders, VSH and PSH files are no longer encouraged for use (removed from Basci3D-2 example)
* The 3DS parser and loader now restricts the texture filename to 255 character max to avoid buffer overruns in related systems
* Added new SETUP.INI directive field called 'LocalTempFolder' when when set to 'Yes', causes the executable to create all TEMP files locally
* Recompiled the new MD5.DLL under Win98 to increase compatibility to that platform
* Registry information improved on install, removed associator from install process (DBPRO files can now be fully double clicked)
* Compiler now prevents trial versions from being used if upgraded by U6 onwards
Help System
-----------
* Improved Help System and updated text to U6.0 commands
* Fixed filenames of #constant and #include so they link correctly for HTML viewing. Changes to keywords.ini and keywords105
* KEYWORDS file updated in the Editor folders FRONTEND and KEYWORDS
* Extra V100 commands added to keyword files to cover such highlights as 'AS STRING'
Compiler
--------
* Assignment operators that accidently have a comma delimited R-value will produce the correct error message
* When global var1 as integer = 2 : global var2 as integer = 5 used, the second global declaration was ignored
* To further support legacy behaviour, DIM and GLOBAL DIM inside functions are treated as global (LOCAL DIM is local)
* Can no longer accept $#£ and other strange names as variables, confusing the compiler
* CONSTANT command can now handle ' comments after the declaration of the value
* The NOT condition operator no longer operates on the first bit. It acts in reverse of IF X, so X=0 is true, else false. Conditional operator ONLY!
* Compiler no longer confuses CALL DLL with and without brackets, allowing no possible return value corruption
* Compiler will no longer allow type B to be part of type A declaration if type B declaration is below type A
* Using arrays for subscripts into other arrays no longer gets confused with multi-dimensional subscript arrays
* Icon management overhauled to use 256 colour icons only (32x32 and 16x16) - no icon corruption now
* Conditional X XOR Y operand now parses okay
* Sometimes the compiler would crash from memory-read-failure when making the executable, now fixed
* Error is produced when duplicated CONSTANT name is used
* If ENDTYPE not terminating TYPE declaration, the compiler will report its absense rather than continue compiling
* Comment symbol or REMARK inside speech marks whilst traversing for constant replacements no longer errors
* Using an open bracket inside a speech mark of a condition that comprises of other brackets no longer confuses compiler
* If your program hits a FUNCTION declaration mid-execution, an error will now report to warn you of this illegal activity
* Have updated the activation code use a new MD5.DLL in the compiler folder, and is not longer MFC80 dependent
* Added extra check to ensure FOR NEXT variables are not complex data types, which are not allowed to be used in this way
* Can no longer add #CONSTANTINE without the compiler detecting it and reporting an error
* Added more error trapping around the executable creation area to detail bug reports in this regard
* Removed dependence on any class or window name for the compiler to provide feedback throug the "DBPROEDITORMESSAGE" filemap
* Speech marks in code comments using '`' symbol no longer confuse the compiler declaration section
* Error reporting for duplicate commands in two compiler DLLs improved to show the two DLLs conflicting, and full command description
* Two new error traps added in cast left and right operands throw a low-level error via the 'DoValue::' internal message
* Types are incompatible strings reformatted to mark temp variables using 'TEMP' and removed the confusing @ symbol
* Compiler can handle more aggressive use of REM and REMARK comments, for example inside CASE statements
* Added extra check for numerical first character of function name which is not allowed
* Added support to detect if RESTORE and other label parameter commands, and report the need for a label type
* Fixed bug which caused the executable icon to only copy the first half of the 16x16 version mask, fixed now
* Increased compiler checks to stop UDT arrays from being passed into functions that declare UDT datatypes. Can only pass UDT variables.
* Obscure and deep bug causing some literals of -1 not to be converted to 0xFFFFFFFF (as it used the atoi - possible MSVC8 symptom)
* DWORD conditional operator comparisons re-introduced so that 0xFF < 0x00 returns false
* Compiler now throws error when two ENDCASE statements found in SELECT statement, rather than freezing inside the compiler
* Made sure colon inside speech marks used for the initialization value of a global declaration compiles okay
* Line number error integrity restored when using REMSTART and REMEND in your programs
* TYPE declarations saturated with REM and comment markers no longer fails to construct a valid type when compiling
* Compiler throws a compiler error now if strings are attempted to be subtracted from each other, or other math operations excluding addition
* FOR NEXT loop step value now codes a fast ASM for literal step values and a slower, double-expression ASM for dynamic step values
* Added extra code to protect against icon replacement code not supported in Win98/ME native operating systems (BeginUpdateResource)
* Colons can now seperate constant declarations again
* Array names can no longer be the same as functions, commands or reserved words
* DATA statements now support HEX, OCT and BIN
* Compiler no longer parses a DATA item twice if they match multiple data type formats
General
-------
* New Compiler supporting new licensed plugins
* DBO Format Changed - Variety of small bugfixes may impact on prior program functionality
* Fixed INPUT command to detect BACKSPACE key to restore it to correct functionality
* when DIM twice (redim) the size of the array remains the same if an identical size is passed in
* If try to create a LOCAL DIM, sometimes corrupt stack data can cause a crash, now fixed
* EXECUTE FILE last parameter now continues without waiting for end of process if set to zero
* READ BYTE, READ WORD and READ LONG can now accept byte, word and dword arrays respectively
* Updated the SETUP.INI so that no DLLs are added to the EXCLUSION group
* MOD operator now allows floating point values to be passed in as parameters (internally uses the FMOD function)
* CEIL() and FLOOR() functions added for greater math management
* SET DISPLAY MODE now has an additional property to force VSYNC on or off (cap to 60fps or not)
* DBPro Executables now check whether DirectX has been installed, and reports an error if not present or old version
* Updated KEYWORDS.INI in original editor keywords file (since updated in keywords105.ini) for the NET MESSAGE STRING$()
* Changed DBO writer to correct the size of the DWORDS for tokens 117, 118 and 119 (no functional impact)
* Added SYNC SLEEP Flag command, where a Flag of one will force a Sleep(1) command within the DBP windows message pump
* Added runtime error to prevent multidimensional arrays from being used by stacks and queue based commands
* DBP no longer tries to decrypt local files if mixed with encrypted files attached to an executable
Basic3D
-------
* Fixed Shader Parser to recognise RESOURCENAME and RESOURCETYPE fields adding more compatibility with DXSAS
* MAKE MESH FROM OBJECT no longer crashes randomly (fixed in ResizeRawMeshList)
* OBJECT SIZE (x/y/z) reverts to the original behaviour
* ADD/REMOVE LIMB no longer leakes 8K per transaction - such applications will not slow down due to this
* Commands which modify the UV data of objects does so perminantly - so CLONE OBJECT will reflect the latest UV data
* Officially added SaveAnimation, AppendAnimation and SetAnimationMode to the 'obsolete commands' list
* Fixed collision bug causing loaded offset objects to collide/hit even if rescaled
* Loading X files now supports two additional UV layers through the FVFData token (for lightmap/detail mapping)
* Extended the SCALE AND SCROLL TEXTURE commands to include a stage parameter for access to the UV data at stages 1 and 2
* Added additional parameter to TEXTURE OBJECT called 'Ignore Sorting' - TEXTURE OBJECT Obj,Stage,Tex,NoSort
* CHANGE MESH no longer destroys texture and material information
* Shadows improved for more accurate CPU shadows and added a stencil shadow shader for animated meshes
* CLONE OBJECT now handles multi-material meshes as well as regular single texture per mesh structures
* SET OBJECT DIFFUSE can now be used on INSTANCED OBJECTS, but if ALPHA MAPPING used, carry alpha in diffuse value
* Extra optional added to SET OBJECT DIFFUSE Obj,RGB,Mode, where a mode of 1 will force vertex data diffuse change
* Fixed collision so that POLYGON vs SPHERE works correctly, even if polygon is second and sphere is first object specified
* Repeated SCALE OBJECT commands no longer interfere with object radius max size and culling operations
* LOCK VERTEXDATA FOR LIMB now has an extra mode 2, which will update the internal 'good' copy of the data (for saving DBO)
* LOAD OBJECT has an additional parameter to control whether the textures internally load are a reduced size than original
* EXCLUDE OBJECT can make DELETE OBJECT fail, now deletes the object completely
* Added new error to warn if an object creation attempt resulted an object that was too large (MAKE OBJECT SPHERE 1,1,200,200)
* MAKE OBJECT can now handle raw meshes passed in that exceed the 65535 vertex index limit (by not using an index buffer)
* SCROLL and SCALE OBJECT TEXTURE no longer affects texture stage data that does not exist, causing strange scaling issues
* SET SHADOW ON now handled the Mesh Number and casts a shadow using the passed in mesh as the original casting geometry
* Two optional new parameter additions to GET LIMB TEXTURE and LIMB TEXTURE NAME to specify the texture stage
* Fixed leak in INSTANCE OBJECT which failed to release a memory allocation used for storing mesh visibility
* OBJECT HIT command would get confused and constantly report a HIT if two collision hit checks happened in the same cycle
* SAVE MESH now reports an error if a mesh greater than 65535 vertices are used for a single mesh
* LOAD MESH is almost direct wrap to the DirectX function 'D3DXLoadMeshFromX', and any failures in loading is the fault of DirectX
* PICK OBJECT now has an additional parameter to ignore the current camera view and position (ideal for locked object picking)
* SMOOTHING an OBJECT no longer interferes with the vertex positions of the geometry
* When models are loaded, the animation based keyframed bounds (mostly skipped by earlier speed-up), is not filled with viable data
* When use the MAKE OBJECT COLLISION BOX command on an animated model, the box specified is retained for collision use
* Added new command SYNC MASK which acts as a filter to render or ignore any of the first 32 cameras starting with camera zero
* Fixed several Basic3D Example bugs, including the sticking automatic camera and object collision from the added rotation-bug-fix
* Fixed the creation of the 3D pyramid from automatic effect loading of shaders that pre-date the declaration of the vertex format
* Added error and avoided crash where extremely large object numbers are used (22 million plus)
* APPEND OBJECT now handles Matrix Data as well as position, scale and rotation. Code missing before and including U59
* Shadow for a stencil rendering no longer is affected by a FOG setting, which causes visual artifacts
* LIMB TEXTURE NAME now returns a blank string rather than NULL when nothing found (better print formatting)
* LIMB TEXTURE NAME returns texture name data for each material within the mesh if multi-material texturing used
* Fixed GHOST OBJECT ON command so that ghost mode 1 now works exactly like DB Classic (src=None and Dst=SRCOLOR)
* Fixed cartoon shading command so that if boned model was animating, the model does not corrupt and distort
* Prevented bump mapping command from crashing when specify a bone based model where the bone vertex data was scewed when the mesh was converted
* LOAD IMAGE now places resources in MANAGED memory, rather than the default
* Amended the automatic collision system so that rotate does not try to assume a sliding logic, and prevents the rotate for clean collision
* Added extra runtime error if the user tries to save a DBPro object without the .DBO extension so vital in allowing the object to be reload okay
* When restoring the mesh of a former object under an effect influence, the old orig-data is released to avoid re-effect corruption
* MAKE OBJECT FROM LIMB now handles the correct mesh from the correct source frame, rather than the biggest mesh from the object
* CHANGE MESH now has new runtime error which does not allow limbs to be specified that do not carry their own mesh data
* The LOAD OBJECT command can now handle very old DBO files saved before the introduction of the additional custom data token (caused crashes)
* Added code for object creation which allows an object with bone information to apply those bone modifications initially (bone stretching by default)
* Resources deallocated when object deleted more aggressively performed to detect and release stray mesh references (make object from limb issue)
* All objects now have instance check so only appropriate commands will work with instanced objects - RE-CHECK YOUR INSTANCE OBJECT code
* Unrotated collision box checks now account for scale, so MAKE OBJECT COLLISION BOX will be affected by SCALE OBJECT
* Bounds calculated on animated models that have a scaling inside the frame hierarhcy now report the accurate size on the X, Y and Z
* Models with a large number of multimaterials and texture stages no longer corrupts the internal render states (causing culling problems)
* No restriction in using Excluded Objects with regular commands, it now only affects the actual rendering of the objects.
* Some 3DS files contain material names that are illegal in X files, converted correctly so more 3DS files can be imported
* Layers for ghosts and locked objects are now seperated so that ghosts can be rendered inside a reflection, for shiny floor trick
* When objects casting shadows are culled off-screen, SCALE OBJECT no longer removes the additional radius factor for shadows cast out of view
* OBJECT SIZE now reports its values as positive, irrespective of whether pivot object transforms the dimensions of the object
* The MAKE OBJECT FROM LIMB command now copies all the texture data information from the source object
* INSTANCED OBJECTS can now again be affected by GHOST OBJECT and ZDEPTH commands
* Models that contain bone information that does not completely tally with frame name data, no longer crashes loader
* CLONE OBJECT now clones all collision and visibility data from the original, including any scale adjusted radius for visibility
* SHOW OBJECT BOUNDS can now revert to box only representation after being used to represent the sphere bounds previously
* EXCLUDED objects no longer receive collision, or interfere with the collision system
* Once more instance and clone objects can be part of the collision system
Image
-----
* The LOAD IMAGE now uses the D3D FORMAT specified in the DDS file, rather than converting to A8R8G8B8 (or equvil)
Input
-----
* ENTRY$() command reverts to pre-U58 state where backspaces are treated as regular asc characters
* Added ENTRY$(1) new parameter which switches the entry$() command to automatically delete if backspace pressed
* When using INPUT commands, expect a 32K chunk of memory to be consumed every few seconds while the buffers fill up
* SET CONTROL DEVICE now has an additional parameter to select based on index as well as name (same-name joysticks)
* STR$(x,decimal places) additional parameter to control how many decimal places should be returned in the value string
Advanced Matrix
---------------
* Restored position functions (by removing legacy EX additions to the decorated names in the string table)
Animation
---------
* Restored the SET ANIMATION VOLUME to the original code (0-100) - remember that only a range of 85-100 is audiable
Memblock
--------
* Fixed a bug that caused MAKE MEMBLOCK FROM X not release the last memblock if it existed at the time
Multiplayer
-----------
* Fixed bug caused by checklist that cannot find net sessions crashing whilst attempting to fill a null string
* Passing an unitialised sting to several MP commands no longer crashes the program
Light
-----
* When SET DISPLAY MODE used, the light default settings where different, now fixed to align to the Basic3D light setting
* Added default value of 1.0 to th falloff, which corrects an error in spot lights in the latest DX version
Music
-----
* SET MUSIC VOLUME now works fine with CD Music (by controlling the master mixer volume of the primary device)
Matrix
------
* Fixed SCROLL MATRIX commands to wrap height data perfectly in all four directions, does not skip a line of data now
Particles
---------
* Changed particle size attenuation, now works with distance from camera, may cause size change behaviour in U59 programs
* SET PARTICLE EMISSIONS now works with drift particles such as FIRE and SNOW effects
* An error is now produced if a particle is created with no emission value
Terrain
-------
* Added new command DESTROY TERRAIN (the inverse of BUILD TERRAIN), not to be confused with DELETE TERRAIN
* Added new command called UPDATE TERRAIN 1 (optional parameter which switches off the high-level culling of terrain) for multiple camera use
Setup
-----
* SET WINDOW ON and OFF now only change the entire screen resolution if transitioning from FULL to WINDOW or back to FULL
* Default changed to ON, allowing the SET DISPLAY MODE to be used to switch off the VSYNC mode, window modes are VSYNC OFF by default
* When SET WINDOW ON and SET DISPLAY MODE used to change the window mode to regular, this behaviour is retained even if wasnt in fullscreen mode
* Windows own resolution (non-32bit) is now stored in the screendepth field in case a task switch or set window on forces a re-capture of device
Sprite
------
* SPRITE WIDTH/HEIGHT now report correct size if SIZE SPRITE used, and also if GET IMAGE changes image used by sprite
* SPRITE 'blue' backdrop can now be changed colour using the COLOR BACKDROP command to increase this functionality
Sound
-----
* Added support for ADPCM WAV format (microsoft compressed WAV) using ACM conversion (other formats too)
* Added internal debug markers to the LOAD SOUND command in case the DMEM issue surfaces in the future
System
------
* When using SYSTEM DMEM AVAILABLE(), be aware that it uses the DXDIAG framework, which can be slow to initialise
* Added extra error checks in SYSTEM DMEM AVAILABLE() in case DXDIAG info not availabe
Text
----
* MID, LEFT and RIGHT commands now throw a runtime error if a negative or zero value is provided
Advanced Terrain (free plugin)
----------------
* The AdvancecTerrain Plug-in DLL is included with this Upgrade, as it internally requires new DBO structure to function
* Important change/fix. Texture Map and Height Map where not aligned. In U59, you had to rotate your heightmap 90 degrees anticlockwise!
* When making a lightweight terrain and saving it (minus detail map index), no longer crashes on reloading it
* Additional parameter for BUILD TERRAIN allows the automatica filtering to be switched off (no smoothing) - good for tiling terrains
* GET TERRAIN SIZE X and Z now function normally, and reports the correct width and depth of the terrain
* Make sure that your old AdvancedTerrain DLL in uninstalled and removed from the plugins-user folder, and placed in the licensed folder
Enhancement Pack (add-on plugin upgrade)
----------------
* ENSURE FOR SURE that the installer does not mess up the V1.06 version number in the editor, and that the free FPSC enhancement DLL DO NOT CONFLICT!
* The Speech and EAX commands of the free expansion pack DLL are not supported, and will result in a missing function if used
* When installing the full expansion pack/upgrade, ensure the free expansion pack is removed from the plugins-user folder
* ADD IMAGE TO BLOCK no longer duplicates the file and instead overwrites to form a single copy in the ZIP file
* OPEN FILE BLOCK no longer crashes if given a non-ZIP filename, provides graceful error
* Added GET DATA FILE EXISTS(FileID) command to round off this functionality
* GET CD LETTER$() now returns the correct sequence of CD drive letters
* Fixed linkage of the GETCOMPUTERNAMEEX function so it does not report a missinf export
Cloth & Particle (add-on plugin upgrade)
----------------
* AddKey to size effector returns the correct index of the created keyframe, no longer 0, 0, 1, 2, etc
* Fixed SET RADIAL EMISSIONS command by uncommenting the code that sets the flags - not sure why it was excluded
* Added code to ensure the object world matrix is used in the emitter object, such as the ZROTATE OBJECT intermitent bug
* Code exited to reset position, scale and rotation on the first update physics call, not disabled to retain obj positions
* Added corrections for Make Wrapround Effector and Set Wrapround Effector in keyword file and help CHM
* POSITION OBJECT when used on an emitter could be reset, because a vecPosition field was using a local structure, not the latest DBO structure
GameFX Extraction
-----------------
The following unsupported commands have been extracted from the Basic3D command set and placed in a new freely available GameFX plugin distributed along with U6. There have been no functional changes to these commands:
IDS_STRING101 "SET STATIC UNIVERSE%FFF%?CreateNodeTree@@YAXMMM@Z%X, Y, Z"
IDS_STRING102 "MAKE STATIC OBJECT%LLLLL%?AddNodeTreeObject@@YAXHHHHH@Z%Object Number, Collision, Arbitary Value, Cast Shadow, Portal Blocker"
IDS_STRING103 "MAKE STATIC LIMB%LLLLLL%?AddNodeTreeLimb@@YAXHHHHHH@Z%Object Number, Limb Number, Collision, Arbitary Value, Cast Shadow, Portal Blocker"
IDS_STRING104 "DELETE STATIC OBJECTS%0%?DeleteNodeTree@@YAXXZ"
IDS_STRING105 "DELETE STATIC OBJECT%L%?RemoveNodeTreeObject@@YAXH@Z%Object Number"
IDS_STRING106 "SET STATIC PORTALS ON%0%?SetNodeTreePortalsOn@@YAXXZ%"
IDS_STRING107 "SET STATIC PORTALS OFF%0%?SetNodeTreePortalsOff@@YAXXZ%"
IDS_STRING108 "BUILD STATIC PORTALS%0%?BuildNodeTreePortals@@YAXXZ%"
IDS_STRING109 "SET STATIC OBJECTS WIREFRAME ON%0%?SetNodeTreeWireframeOn@@YAXXZ"
IDS_STRING110 "SET STATIC OBJECTS WIREFRAME OFF%0%?SetNodeTreeWireframeOff@@YAXXZ"
IDS_STRING111 "STATIC LINE OF SIGHT[%LFFFFFFFF%?GetStaticLineOfSight@@YAHMMMMMMMM@Z%X1, Y1, Z1, X2, Y2, Z2, Width, Accuracy"
IDS_STRING112 "GET STATIC COLLISION HIT[%LFFFFFFFFFFFF%?GetStaticHit@@YAHMMMMMMMMMMMM@Z%OX1, OY1, OZ1, OX2, OY2, OZ2, NX1, NY1, NZ1, NX2, NY2, NZ2"
IDS_STRING113 "STATIC RAYCAST[%LFFFFFF%?GetStaticRayCast@@YAHMMMMMM@Z%X1, Y1, Z1, X2, Y2, Z2"
IDS_STRING114 "STATIC VOLUME[%LFFFFFFF%?GetStaticVolumeCast@@YAHMMMMMMM@Z%X1, Y1, Z1, X2, Y2, Z2, Size"
IDS_STRING115 "GET STATIC COLLISION X[%F%?GetStaticX@@YAKXZ"
IDS_STRING116 "GET STATIC COLLISION Y[%F%?GetStaticY@@YAKXZ"
IDS_STRING117 "GET STATIC COLLISION Z[%F%?GetStaticZ@@YAKXZ"
IDS_STRING118 "GET STATIC COLLISION COUNT[%L%?GetStaticColCount@@YAHXZ"
IDS_STRING119 "GET STATIC COLLISION VALUE[%L%?GetStaticColValue@@YAHXZ"
IDS_STRING120 "GET STATIC COLLISION FLOOR[%L%?GetStaticFloor@@YAHXZ"
IDS_STRING121 "ADD STATIC OBJECTS TO LIGHT MAP POOL%0%?AddStaticObjectsToLightMapPool@@YAXXZ%"
IDS_STRING122 "ADD OBJECT TO LIGHT MAP POOL%L%?AddObjectToLightMapPool@@YAXH@Z%Object Number"
IDS_STRING123 "ADD LIGHT MAP LIGHT%FFFFFFFFL%?AddLightMapLight@@YAXMMMMMMMMH@Z%X, Y, Z, Radius, Red, Green, Blue, Brightness, Shadow"
IDS_STRING124 "CREATE LIGHT MAPS%LLS%?CreateLightMaps@@YAXHHK@Z%Texture Size, Texture Quality, LightMapSavePath"
IDS_STRING125 "FLUSH LIGHT MAPS%0%?FlushLightMaps@@YAXXZ%"
IDS_STRING126 "ADD LIMB TO LIGHT MAP POOL%LL%?AddLimbToLightMapPool@@YAXHH@Z%"
IDS_STRING127 "DELETE LIGHT MAP LIGHTS%0%?FlushLightMapLights@@YAXXZ%"
IDS_STRING128 "ADD STATIC SCORCH%FL%?AddNodeTreeScorch@@YAXMH@Z%Scorch Size, Scorch Type"
IDS_STRING129 "LOAD STATIC OBJECTS%SL%?LoadNodeTreeObjects@@YAXKH@Z%Filename, Divide Texture Size"
IDS_STRING130 "SET STATIC SCORCH%LLL%?SetNodeTreeScorchTexture@@YAXHHH@Z%Image Number, Width, Height"
IDS_STRING131 "SET SHADOW LIGHT%LFFFF%?AddNodeTreeLight@@YAXHMMMM@Z%Light Number, X, Y, Z, Range"
IDS_STRING132 "SET GLOBAL SHADOWS OFF%0%?SetGlobalShadowsOff@@YAXXZ"
IDS_STRING133 "SET GLOBAL SHADOWS ON%0%?SetGlobalShadowsOn@@YAXXZ"
IDS_STRING134 "SET GLOBAL SHADOW SHADES%L%?SetShadowShades@@YAXH@Z%Number Of Shades"
IDS_STRING135 "SET GLOBAL SHADOW COLOR%LLLL%?SetShadowColor@@YAXHHHH@Z%Red, Green, Blue, Alpha"
IDS_STRING136 "SET SHADOW POSITION%LFFF%?SetShadowPosition@@YAXHMMM@Z%Mode, X, Y, Z"
IDS_STRING137 "PERFORM CSG UNION%LL%?PeformCSGUnion@@YAXHH@Z%Target Object, Brush Object"
IDS_STRING138 "PERFORM CSG DIFFERENCE%LL%?PeformCSGDifference@@YAXHH@Z%Target Object, Brush Object"
IDS_STRING139 "PERFORM CSG INTERSECTION%LL%?PeformCSGIntersection@@YAXHH@Z%Target Object, Brush Object"
IDS_STRING140 "PERFORM CSG CLIP%LL%?PeformCSGClip@@YAXHH@Z%Target Object, Brush Object"
IDS_STRING141 "PERFORM CSG UNION ON VERTEXDATA%L%?PeformCSGUnionOnVertexData@@YAXH@Z%Brush Mesh"
IDS_STRING142 "PERFORM CSG DIFFERENCE ON VERTEXDATA%L%?PeformCSGDifferenceOnVertexData@@YAXH@Z%Brush Mesh"
IDS_STRING143 "PERFORM CSG INTERSECTION ON VERTEXDATA%L%?PeformCSGIntersectionOnVertexData@@YAXH@Z%Brush Mesh"
IDS_STRING144 "REDUCE MESH%LLLLLL%?ReduceMesh@@YAXHHHHHH@Z%Mesh Number, Block Mode, Near Mode, GX, GY, GZ"
IDS_STRING145 "ATTACH OBJECT TO STATIC%L%?AttachObjectToNodeTree@@YAXH@Z%Object Number"
IDS_STRING146 "OBJECT BLOCKING[%LLFFFFFF%?ObjectBlocking@@YAHHMMMMMM@Z%Object, X1, Y1, Z1, X2, Y2, Z2"
IDS_STRING147 "DETACH OBJECT FROM STATIC%L%?DetachObjectFromNodeTree@@YAXH@Z%Object Number"
IDS_STRING148 "ADD LOD TO OBJECT%LLLF%?AddLODToObject@@YAXHHHM@Z%Object Number, LOD Object, LOD Level, LOD Distance"
IDS_STRING149 "SAVE STATIC OBJECTS%S%?SaveNodeTreeObjects@@YAXK@Z%Filename"
6.1
Upgrade 6.1
===========
Information
-----------
* Primary purpose of this upgrade is to make the compiler compatible with new licensed plugins
Compiler
--------
* Added support for DarkAI and DarkPHYSICS as licensed plugins
Basic3D
-------
* GetObjectPtr (internal call) now accepts INSTANCED OBJECTS as valid objects to use
* ATTACH, DETATCH, OBJECT IN SCREEN, X and Y can now be used with instanced objects again
* OBJECT VISIBLE() now works with instanced objects
6.2
Upgrade 6.2
===========
Information
-----------
* Modifications and corrections to permit FPSC source code to compile fully for U6.X
* Requires DLLs to be updated; Cloth&Particle, DarkAI, DarkPHYSICS (anything using DBO ptr)
* Updated Advanced Terrain and GameFX in the licensed folder
Core
----
* Changed timing precision of TIMER() to just one millisecond, whether vsync active or not
Basic3D
-------
* New DBO structure to provide future-proof fields (reduce minor update incompatibilities)
* Optimized SET SHADOW SHADING ON when employing shader conversion = 8 times faster
* Fixed erro causing a runtime error to prompt when using SHOW LIMB on an instanced object
* Added LIMB COLLISION to be used with instanced objects (CSG now okay in FPSC code)
* FX shader files can now be added as media, and detected as an available internal file
Camera
------
* Added ONE new command for the creation and removal of an optional camera clipping plane
* SET CAMERA CLIP Camera Number, ClipOnOff, X, Y, Z, NX, NY, NZ
Text
----
* unpopular negative-value runtime error removed (allows original FPSC code to compile)
6.3
Upgrade 6.3
===========
Basic3D
-------
* SET FRAME recalc bounds now requires mode 2 to recalculate ALL the frames bounds (slow)
* SET OBJECT RADIUS when given a radius of -1.0 will cause the object not to be visually culled
* Added new param: LOAD EFFECT XXX , DoNotGenerateExtraData (1-dont generate tangents)
Camera
------
* When a new camera is created it is internally sorted by index (rather than instance order)
* Fixed SYNC MASK bug which caused secondary cameras to wipe out cameras masked out
* Removed the power of two limit on the SET CAMERA TO IMAGE command, supporting newer cards
6.4
Upgrade 6.4
===========
General
-------
* Fixed certificate viewer to handle more then 12 icons when the window expands
* Reverted DBPro DLLs to DirectX October 2006 - for better backwards compatibility
Basic3D
-------
* LOAD EFFECT - if 'resourcename' is blank, those textures are treated as dynamic
* Fixed TEXTURE OBJECT so that the stage value is written into the texture stage data itself
Camera
------
* SET CAMERA TO IMAGE - when alpha-surface mode 2 is used, backdrop clear now works
6.5
Upgrade 6.5
===========
Compiler
--------
* Added support for Enhanced Animations plugin
Sync With GDK Fixes (does not affect DBPRO)
-------------------
* SetCameraClip function added to Camera DLL
* Added 'm_dwUseDynamicTextureMask' field to reintroduce U64
* Added to code to support above flag (DBPFormat.cpp)
* Added code to set the stage value when TEXTURE OBJECT used (DBOMesh.cpp)
* New function added caled getKeyStateEX (GDK)
* Function WriteToRegistryS parameter change (GDK)
* GHOST ON function reactivates flag to promote object to the ghost layer
* GLUE TO LIMB added commentry, no functional changes
* INTERSECT OBJECT activates ability for instanced object use
* Exposed full LOAD OBJECT parameters to GDK
* VertexSystemMemory function name corrected to GDK
* SetObjectDisableTransform function name updated to GDK
* Instance Object return flag code added to common.cpp for GDK
* Commented out FOG COLOR render state in built-in particle update function (GDK fix)
* VALR reintroduced to GDK with support of new compiler options in TEXT DLL
* Added an extra parameter to COMPARECASE function of GDK
* Fixed several 3D MATH VECTOR bugs in GDK (also exposed in DBPRO)
* SET CAMERA TO IMAGE - when alpha-surface mode 2 is used, backdrop clear works again
6.6
Upgrade 6.6
===========
Compiler
--------
* Fixed error line reporting bug, caused by comments between CASE statements in SELECT statement (Statement.cpp:1540)
Basic3D
-------
* No longer scans for shared vertex/index resources if object flagged as using unique buffers (speed-up)
* Fixed a memory crash caused by a recent attempt to free up all object resource allocations (one exit)
* Fixed ability of objects to self-cull when off camera, and harmonized with the never-cull mode (radius=0)
* Fixed object culling so that it uses the camera set by SET CURRENT CAMERA instead of the last camera rendered
* Added an epsilon value to the automated object culling for very fine edge contact with spherical objects
Core
----
* Modified PRINT float code so that a regular precision is used (rather than .12g precision)
Math
----
* Added undocumented command to extract data from a MATRIX4 ( f# = GET MATRIX4 ELEMENT ( M, Index ) )
Sync With GDK Fixes (does not affect DBPRO)
-------------------
* NOTE: U6.5 used DLLs from U6.4. U6.6 contains the actual DLLS for the changes below
* SetCameraClip function added to Camera DLL
* Added 'm_dwUseDynamicTextureMask' field to reintroduce U64
* Added to code to support above flag (DBPFormat.cpp)
* Added code to set the stage value when TEXTURE OBJECT used (DBOMesh.cpp)
* New function added caled getKeyStateEX (GDK)
* Function WriteToRegistryS parameter change (GDK)
* GHOST ON function reactivates flag to promote object to the ghost layer
* GLUE TO LIMB added commentry, no functional changes
* INTERSECT OBJECT activates ability for instanced object use
* Exposed full LOAD OBJECT parameters to GDK
* VertexSystemMemory function name corrected to GDK
* SetObjectDisableTransform function name updated to GDK
* Instance Object return flag code added to common.cpp for GDK
* Commented out FOG COLOR render state in built-in particle update function (GDK fix)
* VALR reintroduced to GDK with support of new compiler options in TEXT DLL
* Added an extra parameter to COMPARECASE function of GDK
* Fixed several 3D MATH VECTOR bugs in GDK (also exposed in DBPRO)
* SET CAMERA TO IMAGE - when alpha-surface mode 2 is used, backdrop clear works again
* dbSetShadowShadingOff was listed incorrectly in the header files, this is now correct
* added dbSetShadowPosition into Basic 3D
* dbDeleteEffect caused a crash, this function now checks all objects that may reference this effect and clears the reference
* added float dbObjectSize / dbObjectSizeX / dbObjectSizeY / dbObjectSizeZ ( int iID, int iUseScaling ) into Basic 3D
* dbObjectSize now works with instanced objects
* dbObjectCollisionCenterX, dbObjectCollisionCenterY and dbObjectCollisionCenterZ now work with instanced objects
* corrected function listings for dbLoadDLL, dbDLLCallExist and dbCallDLL
* resolved a problem with fog colour not being reset in the particle manager
* changed to statically linking into the C++ runtime libraries
6.7
Upgrade 6.7
===========
Compiler
--------
* Now dumps out DBM and EXB from the compiling process (as requested at the TGC 2007 CON)
* Above feature added for third party debugger experimentation
* Amended DirectX detection to check for 'D3DX_31.DLL' (October 2006 required)
Core
----
* Moved 'sound, music and animation' processing from internal process messaging to its proper FASTSYNC location
* Above amendment allows tight loops to run faster and allows monitoring of resources to happen once per cycle
* Fixed bug in UNDIM and REDIM so string arrays release all memory to avoid string array memory leak
Bitmap
------
* Added new forth parameter to CREATE BITMAP which when set to 1 will create bitmap in SYSTEM MEMORY (performance)
Basic3D
-------
* Added four undocumented commands below (as requested at the TGC 2007 CON)
* AMBIENT LIGHT() - gets the current level of ambient light level
* EXCLUDE LIMB ON Object Number, Limb Number - exclude per limb code
* EXCLUDE LIMB OFF Object Number, Limb Number - include per limb code
* PERFORM CHECKLIST FOR ONSCREEN OBJECTS Mode - mode zero checklists object number draw order in valuea
* Ensured DLL remains October 2006 DirectX compatible
* Fixed bug that reported object in screen as zero if pass 'through' it
* Fixed bug causing DISABLE OBJECT ZBIAS to fail
* Fixed bug causing MAKE OBJECT command to report 'mesh not loaded' instead of correct 'object already exists'
* Fixed bug causing objects with sphere collision to respond correctly to rotated boxes (sphere uses non-rotating bound box for sliding)
* SET OBJECT TRANSPARENCY can now affect the rendering order of instanced objects the same as cloned and original objects
* Fixed problem of double-radius object in screen reporting object out of view
Sprite
------
* Sprites no longer blank out after 100 sprites are created, and sprite data is retained as sprite bank is resized internally
* Fixed flipped orientation of an animated sprite so that it does not perform a mirror instead of a flip
* Fixed bug that caused the SCALE SPRITE command on animated sprites to overwrite width and height from previously correct values
* Fixed SPRITE FRAME to return the correct frame, even when the animated sprite has its frame set manually
* Fixed SPRITE HIT command so it only reports initial contact, not constant collision value as from SPRITE COLLISION
* Fixed bug causing PLAY SPRITE to have influence over SET SPRITE FRAME, true frame now returned
Camera
------
* CAMERA POSITION and CAMERA ANGLE now respond to the SET CURRENT CAMERA when the camera value is not specified
* CLEAR CAMERA VIEW RGB now responds to the custom colour passed in through red, green and blue
* Further amended CLEAR CAMERA VIEW so the cleared area corresponds to the viewport set with SET CAMERA VIEW
3DMath
------
* View and Projection matrices data are now gathered from the current camera, not camera zero
Setup
-----
* Added CALLBACK code so when DBP app loses device and regains device, '?D3DDeviceLost@@YAXXZ' and '?D3DDeviceNotReset@@YAXXZ' are called
* Added CALLBACK code so when DBP app successfully resets device, then '?D3DDeviceReset@@YAXXZ' is called
* Above addition can be used by TPC DLL authors to instantly detect when the user ALT+TAB out of a full screen exclusive application
* Below code can be added to an existing TPC DLL code to export the 3 decorated functions required for the new callback system:
#define MYDLL __declspec ( dllexport )
MYDLL void D3DDeviceLost ( void );
MYDLL void D3DDeviceNotReset ( void );
MYDLL void D3DDeviceReset ( void );
6.8
Upgrade 6.8
===========
Compiler
--------
* A new field in SETUP.INI called ExternaliseDLLS will exclude ALL DLLs from your executable if set to yes. This allows you to have extremely small executables and place the required DLLs alongside the main executable.
* Using the above, you can find out what DLLs the executable needs by looking at the DLL list stored in the _Temp.dbm text file in your DBPro TEMP folder
* Added support for new DARKINK plug-in to provide advanced printer support
Basic3D
-------
* Object Not Exist error now reports the actual object number for better tracing
6.9
Upgrade 6.9
===========
Compiler
--------
* if compiler detects no TEMP, or write protected TEMP, it will use USER TEMP
Setup
-----
* Changed from COPY to DISCARD mode if VSYNC flag used in SET DISPLAY MODE
* Added new MULTISAMPLING factor to SET DISPLAY MODE W,H,D,VSYNC,MULTISAMPLING,MULTIMON
* Above command can be used to create full scene antialiasing effects
* Above MULTIMON param can be used to create a double-wide device (multimonitor)
Camera
------
* Added new command 'set cameras to stereoscopic cam1, cam2, backimg, frontimg
* Above command converts camera images to stereoscopic images for some S-3D use
* When SET CAMERA VIEW specifies size larger than default, viewport2D adjusts
I can't even post 7.0, 7.1, 7.2, 7.3 , 7.4, 7.5, 7.6, 7.7 as the thread won't allow more characters.