Events and Things

Posted on Jul 27, 2020

I spent last week fixing more Lingo issues, mostly event related:

  • Previously, event processing didn’t take into account the fact that multiple movies could be running at the same time, as it was implemented before MIAWs. Events were handled by whatever movie was currently being stepped, even if the event should’ve gone to another movie. I refactored the event handling code, and that’s been fixed.
  • I made the Lingo interpreter pause every 100 operations to process events, preventing long Lingo scripts from blocking mouse position updates and quit events.
  • I changed menu item callbacks to use the event system, whereas before they just haphazardly created and called global functions.
  • I modified the Lingo interpreter so that handlers whose return values aren’t used don’t leave garbage on the stack.
  • Lots of small bug fixes, and a few Lingo features like the title of window

Nothing I did last week is particularly interesting to look at, so here’s a bug in Chop Suey I fixed today: Mud Pup wearing assorted clothes

Before, you couldn’t put clothes on the dog. Now, you can put clothes on the dog. Problem solved. :)