Hi all!

After several months, I feel it is high time for a new BGT release. So here it comes, packed with changes and improvements that I hope you will all find useful. In fact, there are so many changes so that I figured I should call it version 1.3.

Please note that due to the introduction of release and debug builds, you need to completely uninstall any old version of BGT from your system before installing this one. Otherwise you will get an old icon lingering in your program group.

As usual, the change log follows below:

Version 1.3 (revision 1):
* Updated the script interpreter to the latest version which fixes some more bugs found by users, and adds the following features: 1. The infamous "unexpected end of file" compilation error now shows a lot more information. 2. It is now possible to declare several class properties of the same type on a single line, separated by comma. 3. It is also possible to initialize class properties in their declaration, rather than having to do it in the constructor. Note: This means that some obscure scripts, where a child class calls a method in the parent class that in turn tries to access its members before its constructor has been called by the child class, will now result in a null pointer access script runtime error. This happens very rarely, but should be taken into account if you are upgrading and have scripts that may potentially reproduce the above scenario. 4. Large scripts will now compile significantly faster, and loading of precompiled byte code is faster as well. 5. The script compiler no longer implements a default constructor for classes that define a constructor with arguments. If you want both a default constructor and a constructor that takes arguments, you must define both of them explicitly (see the language tutorial for more information).
* Added DLL call support.
* Added the ability to compile scripts either as debug or release builds, and added documentation to explain the differences (see appendix h). * Added some basic serialization functions that make it easier to save and load data from files or from memory. * Made it possible to serialize and restore the exact state of the random number generator at any point in time. * Added an object called combination which contains algorithms to calculate different types of combinations from an arbitrarily large set of items (sponsored by Marc Andersen). * Added a pan property to the tone synth object which affects all subsequently generated notes. * Added reverberation to the tone synth object, which is controlled by various properties. * Added a new function called is_admin which checks if the program is being run with administrator priviliges (thanks Liam).
* Added some new functions to force/simulate keystrokes (thanks Nikola).
* Added two new functions (string_base64_encode and string_base64_decode) which makes it possible to convert binary data to and from a printable, Ascii compatible representation. * The keyhook is now automatically uninstalled when the user leaves the game window, and installed again when the window is reactivated. This is to prevent lag in certain screen readers when the user is working with an application other than the game. * Upgraded to the Visual Studio 2010 compiler, which gives a performance boost. * Changed it so that initial text that is placed in an input box is selected automatically when the window appears (thanks Nikola). * Added a new folder constant (DIRECTORY_MY_DOCUMENTS), see appendix e for more details (thanks Liam). * Significantly optimized the way audio files are read, resulting in a great performance improvement when loading sounds (thanks Aaron).
* Optimized the string_contains function.
* Significantly optimized the internals of the sound_pool include class so that it now runs much faster. * Made the script compilation result dialog show the amount of time that the compilation took.
* Added a speak_to_file method to the tts_voice object (thanks Marc).
* Added a function to hide the game window (thanks Nikola).
* Added the concept of named items to the dynamic_menu include class, making it easier to figure out what the chosen item is regardless of in what order the items were added. * Added a new method to the audio_form class that allows a listbox cursor to be changed (Thanks Damien). * Allowed the home and end keys to navigate to the top and bottom of a listbox in an audio form. * Fixed a serious bug in the audio subsystem which would cause random crashes. * Fixed a crash which would occur when converting large floating point numbers to strings (thanks Corey). * Fixed a bug which would cause the string_split function to enter an infinite loop if the NULL terminator was used in the delimiter (thanks Damien). * Fixed a crash which would sometimes occur after a runtime error (thanks Corey). * Improved support for the Window Eyes screen reader (thanks Aaron and Jason). * Fixed a problem where erronious warning messages could be triggered if the initialization of the global variables failed (thanks Damien). * Fixed a bug in the sound_pool include class which made it try to reload a sound that came back within earshot, from the currently used storage rather than the storage that was active when the sound was initially loaded (thanks Liam). * Fixed a bug in the dynamic_menu include class which would cause the intro message not to be heard if the auto_speak_first parameter was true and the first item used an output different from the intro message (thanks Aaron). * Fixed a bug in the audio_form include class in the get_list_count method where the maximum index was being returned rather than the number of items as described in the documentation (Thanks Damien). * Fixed several multiline input field bugs in the audio_form include class (Thanks Damien). * Updated the language tutorial with information about the new behavior of automatic default constructors, and about how to assign values to class properties directly in their declaration.
* Added a serialization tutorial.
* Documented the string object.
* Added four missing overloaded operators to the list in the language tutorial (opPreInc, opPreDec, opPostInc and opPostDec). * Added a note to the number_to_hex_string documentation regarding the fact that it produces lowercase results (thanks Jordan). * Added a list of command line options available in the BGT engine (see appendix g). * Updated the documentation for the profiler to explain the differences when profiling debug versus release builds. * Failed to document the new array methods mentioned in the change log for version 1.2 revision 1 (thanks Marc). * Failed to document the new get_size method mentioned in the change log for version 1.2 revision 1 (thanks Damien). * Failed to document the sound_is_playing method in the sound_pool include class(Thanks Lukás). * Failed to document several methods of the dynamic_menu class (Thanks Lukás). * Fixed an error in one of the examples in the language tutorial to do with integer calculations.
* Fixed a few typos in the html code in the documentation (thanks Nikola).

Thanks to all of those who use the engine on a regular basis and help me improve it by your constant stream of feedback, constructive critisism and suggestions.

Kind regards,

Philip Bennefall

---
Gamers mailing list __ Gamers@audyssey.org
If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org.
You can make changes or update your subscription via the web, at
http://audyssey.org/mailman/listinfo/gamers_audyssey.org.
All messages are archived and can be searched and read at
http://www.mail-archive.com/gamers@audyssey.org.
If you have any questions or concerns regarding the management of the list,
please send E-mail to gamers-ow...@audyssey.org.

Reply via email to