Skip to content

Releases: JujuAdams/Coroutines

1.4.0

31 Jul 17:41
Compare
Choose a tag to compare
  • Adds the ability to catch GameMaker sprite/sequence broadcast events with AWAIT_ASYNC_BROADCAST
  • Adds COROUTINES_GAMEMAKER_BROADCASTS_TRIGGER_NATIVE to funnel GameMaker broadcast events to Coroutines' native broadcast system. This allows sequence/sprite broadcast events to trigger AWAIT_BROADCAST instructions

1.3.0

07 Jan 10:26
Compare
Choose a tag to compare
  • Adds AWAIT_BROADCAST and CoroutineBroadcast()
  • Fixes a handful of bugs where CO_LOCAL wasn't being set properly
  • Fixes RESTART command not working in certain contexts
  • Fixes coroutines not being able to be used as self-contained expressions

1.2.0

15 Dec 10:46
Compare
Choose a tag to compare
  • Adds CO_LOCAL macro to allow access to the root struct even if CO_SCOPE has overridden the default coroutine code block scope
  • Adds RESTART command to allow for easier coroutine looping
  • .Cancel() / .Pause() / .Restart() can no longer be called for a coroutine that is currently processing (and this was bugged in prior versions anyway). Instead call RETURN / PAUSE ... THEN / RESTART as coroutine commands

1.1.0

10 Dec 15:54
Compare
Choose a tag to compare
  • Fixes AWAIT_ASYNC commands not immediately executing subsequent code, leading to situations where multiple async events surfaced in the same frame might not be picked up by handlers
  • Adds CO_SCOPE to force coroutine code execution to occur in a particular scope. This feature should be used with great care as it is very easy to create race conditions where two coroutines fight to set the same value

1.0.0

05 Dec 18:54
Compare
Choose a tag to compare
  • Adds COROUTINES_DELAY_REALTIME to swap between realtime and frame-based timings
  • Renames TIMEOUT, RACE, and SYNC to ASYNC_TIMEOUT, AWAIT_FIRST, and AWAIT_ALL respectively

0.5.0

04 Dec 16:45
Compare
Choose a tag to compare
  • Adds RACE and SYNC commands to help manage nested coroutines
  • Fixes crash when calling a .Cancel() coroutine method inside a coroutine.

0.4.0

04 Dec 07:23
Compare
Choose a tag to compare
  • Adds CONTINUE command
  • FOREACH can now iterate over objects/instances in a similar fashion to WITH (albeit the scope of code inside the loop does not change)

0.3.0

08 Nov 18:11
Compare
Choose a tag to compare
  • Added a config script to customize behaviour
  • Runtime syntax errors are now cleaner
  • coroutineCreator has been removed in preference for a .GetCreator() method
  • Added coroutine auto-cancellation when a coroutine's creator is destroyed or garbage collected. Please see the methods page and the configuration page

0.2.1

03 Nov 22:24
Compare
Choose a tag to compare
  • Fixes crash if the line before CO_BEGIN did not terminate with a semicolon (upstream bug)

0.2.0

03 Nov 21:40
Compare
Choose a tag to compare
  • Fixes compatibility with GMS2.3.6. Please note that older versions of GameMaker will now throw compile errors regarding async event constants. Check in GM's documentation for the constant names that are correct for your version
  • Adds IsCoroutines() to check if a value is indeed a coroutine
  • Adds a syntax checker to help you track down mistakes. If the syntax error is throwing false negatives, you can set __COROUTINES_CHECK_SYNTAX to false to turn it off