1.0.79: LTS2026 tweaks and assorted fixes


General

  • The extension is now built for LTS2026.
    You can still use it in LTS2022 if you downgrade it using the Project Tool.
  • The documentation has been updated to cover a few more stumbling points.
  • The extension’s internals have seen some rewriting over the past year, but hopefully nothing that breaks anything for you as the end user.

Novelties

  • Added a code_is_live macro that indicates that the script is currently running a live-reloaded version, used like if (code_is_live) { ... }.
  • Added live_constant_add_multi(const_struct) for convenience.
  • Added notes on self/other flags in live_function_add.

Tweaks

  • Added LTS2026 function definitions and macros.
  • Particle System assets can now be referenced in “live” code.
  • The extension will now inform you if async_load is missing instead of crashing, but this usually means that have other code destroying things that it shouldn’t be.
  • Argument count mismatch errors are now reported more properly.
  • gmlive-server is now aware of LTS/LTS2026 folders when using shader reloading.

Fixes

  • Fixed struct.method(func()) compiling incorrectly.
  • [$ has been matched to current GML and no longer shows warnings about ambiguity.
  • Fixed live_method(_, undefined) not using the current self
  • Fixed macros defined in “live” code sometimes not working
  • Fixed incorrect bbox mode being applied to live-reloaded sprites

Constructors in particular

  • Values are now allowed in inherited constructor calls (function ctr() : parent(true) constructor {})
  • Having ctr = function() : parent() constructor {} is now allowed

Note that both constructor inheritance notations are supported for live-coding constructors and their methods, like so

function CoolThing() : Parent() constructor {
	static fun = function() {
		live_name = "CoolThing.fun";
		live_auto_call
		// ...
	}
	// ...
}

but will not work for stranger things like this:

function FactoryOfFactories() {
	live_auto_call;
	return function() : parent() constructor {
		// ...
	}
}

Which, however, have rather limited use in current GML as we don’t have closures.

1.0.79a

A few more things that I almost forgot about

  • Built-in enums (e.g. AudioEffectType.Delay) are now auto-exposed to live code
  • There are now functions (live_enum_add, live_enum_add_constant) to add other enums/constants if you need that
  • { new X(); } is now a valid statement
  • Added a note to documentation on having to re-enable instance_change for room reloading.

Files

GMLive (for GM2026+).yymps 967 kB
Version 1.0.79a 19 days ago
GMLive (for GM2026+).yymps 967 kB
Version 1.0.79 22 days ago

Get GMLive.gml for GameMaker

Buy Now$29.95 USD or more

Comments

Log in with itch.io to leave a comment.

First update in over a year   8O    whoo hoo. 

Most of the issues as of late have been fairly minor and/or had simple workarounds, so I can afford to take some time and do most of things I wanted before rolling out a larger update like this one