🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

AngelScript 1.7.1 beta 3a released

Started by
2 comments, last by WitchLord 20 years, 1 month ago
I've released the first beta of version 1.7.1. The change log for this version is:
  • bstr has become an internally registered type
  • bstr.length() is now a method instead of a property
  • Removed the byte code STRMKE
  • RegisterObjectType() now accepts the flags asCALL_RETURNBYVAL and asCALL_RETURNBYREF
  • bug fix: Prepare() should no longer crash when receiving invalid function id (thanks Xavier "meink")
  • The unexpected token message now shows what token was found
  • It is now possible to use function overloads for scripted functions as well
  • GetFunctionIDByName() returns asMULTIPLE_FUNCTIONS if more than one function with the same name exists
  • GetFunctionIDByDecl() is now supported
  • bug fix: The -> operator now works with direct pointers as well as pointer references (thanks Andrew "Desdemona" Wright)
There is one thing that has to be changed to successfully upgrade the library: All the scripts that use the length property on the bstr type must be changed to use the length() method instead. Just add the parenthesis. This was an unfortunate necessity, because the length property was actual improperly designed and required special code in the compiler. Now the bstr type is treated by the compiler just like any other registered object type. The engine registers the type internally. There are also a couple of recommended changes to take advantage of the new improvements: 1) RegisterObjectType() now supports the flags asCALL_RETURNBYREF and asCALL_RETURNBYVAL. If you are already using these flags when registering functions, you can now move them to the RegisterObjectType() call instead making your code easier to manage. 2) It is recommended to use GetFunctionIDByDecl() instead of GetFunctionIDByName() as it will automatically verify that the function declaration is correct. This will also allow you to use function overloading for the script functions. The next release will include support for ExecuteStep(asEXEC_STEP_OVER). This should also be the last new feature for this version. Regards, Andreas Jönsson Author of AngelScript __________________________________________________________ www.AngelCode.com - game development and more... AngelScript - free scripting library - Tower - free puzzle game [edited by - WitchLord on May 18, 2004 9:17:53 PM] [edited by - WitchLord on May 22, 2004 1:00:26 PM] [edited by - WitchLord on May 25, 2004 9:39:28 PM]

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

Advertisement
The second beta is now available. It only brings a few bug fixes.

  • bug fix: multiple variables per global declaration statement now works again (thanks Lennart Denninger)
  • bug fix: scripts with errors in global variables could crash the application if no output stream was specified (thanks Fredrik Ehnbom)
  • bug fix: calling ExecuteString() without first building a script didn''t work (thanks Fredrik Ehnbom)



__________________________________________________________
www.AngelCode.com - game development and more...
AngelScript - free scripting library - Tower - free puzzle game

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

The third and probably last beta version is complete. Changes for this version is the following:

  • ExecuteStep(asEXEC_STEP_OVER) is now supported
  • Added support for the indexing operator
  • The asBEHAVE_INDEX flag is used to register the overloaded indexing operator
  • bstr[int] returns a reference to the indexed byte
  • The library is now working on the Dreamcast (thanks Fredrik Ehnbom)


The Dreamcast port required some changes to the code since the target processor is different. One of the changes is that all data words must be aligned, a 2 byte word on a 2 byte alignment, a 4 byte word on a 4 byte alignment. This required us (Fredrik and me) to develop some way of assuring that all byte codes followed this requirement and I''m happy to say that we succeeded in making a beatiful solution that works for both x86 and SH4. This might also make it easier to port the library to other systems.

Another difference is that the Dreamcast passes many of the function parameters in special registers instead of on the stack. To make it worse, integer values should be passed in integer registers and floating point values in float registers. Fredrik came up with the solution for it, although the way it is implemented at the moment limits the number of parameters that can be passed to 32 (on the Dreamcast). This limit can probably be removed at the cost of some speed.

The support for the indexing operator allows you to write special array objects. AngelScript still doesn''t support generic arrays, declared in the script but at least now it is possible to work with arrays where that is wanted.

Version 1.7.1 is now feature complete. The final version will be released together with a restructuring of the AngelScript site. Hopefully in a few days.

After that I''ll start working on version 1.8.0 that will bring support for modular scripts.

Regards,
Andreas Jönsson
Author of AngelScript

__________________________________________________________
www.AngelCode.com - game development and more...
AngelScript - free scripting library - Tower - free puzzle game

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

Fixed a serious bug related to function overloading. The compiler didn''t check if a function had more parameters than was used by the script thus the compiler at times thought it had found a matching function where it really hadn''t.

Thanks to Lennart Denninger and Desdemona for reporting this bug.

__________________________________________________________
www.AngelCode.com - game development and more...
AngelScript - free scripting library - Tower - free puzzle game

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

This topic is closed to new replies.

Advertisement