itch.io is community of indie game creators and players

Devlogs

Apr 05, 2019

It came to my attention that I haven't uploaded builds to itch.io for a while, so here you go.

Most importantly this gets the library to be compatible with Haxe 4 RC2 to benefit from new syntax additions and various other improvements.

Otherwise,

Externs:

  • Added fromBase64, toBase64, readInt64, writeInt64 to gml.io.Buffer externs.
  • Added normal(...), defValue to gml.gpu.VertexBuffer
  • Added gml.gpu.VertexFormat.end()
  • Renamed VertexBuffer.createExt to VertexBuffer.alloc for consistency with haxe.io.Bytes
  • Added some more GMS2 layer function externs.
  • Added gml.NativeType for all those is_X functions.
  • Added gml.input.Window.x/y
  • Fixed a few weird bits with gml.net.* classes

Improvements:

  • You can now have a .gmx.base/.yy.base next to target extension and that will be used if the extension file is missing.
  • This makes it easier to gitignore Haxe-generated extensions without having to manually set them up after pulling for the first time.
  • obj.field = function(...) {...} will now name the auto-generated script as per field name.
  • @:snakeCase can now apply to ds_map typedefs.
  • You can now selectively override whether to use ternary operators/array_create(...)/array literals
  • GML repeat-loops are now utilized in more cases (so long as the iterator variable is irrelevant, basically)
  • Added -D sfgml-hint-var-types, which will include GMEdit-compliant hints of what types local variables are
  • \r\n linebreak are now used for GMS2 extension generation, but GMS2 will probably still re-edit your extension later.

Fixes:

  • Fixed array helper functions not obeying std-prefix.
  • Fixed gml.ds.Queue missing a package.
  • Fixed a compiler crash if a class field is initialized to a bitwise operation.
  • Fixed a compatibility issue with new versions of GMS2 due to initializer in for-loops no longer being allowed to be anything but a variable declaration/assignment
  • Fixed @:doc from class not automatically applying to static fields.
  • Fixed function-typed (but non-method) class fields being called with a "this" argument even though you didn't ask for that.
  • Auto-generated local functions no longer show up when @:doc-ing the containing class.
  • It is now allowed to do function some(req:Int, ?rest:SfRest<String>) (so that you don't have to give it a fake array from Haxe calls)
  • Fixed some setups of enum value index retrieval on a fake enum compiling as "v[0]" instead of "v"
  • Fixed GmlGenAssets failing to use auto-completion cache if one of your resources has a >256-character long name
  • Code generator now prefers `++i;` over `i++;` because this was a thing for a while.

Files

  • sfgml.zip 393 kB
    Version Apr 5, 2019
Read comments (7)