Thank you for the excellent explanation. That clears up a lot.
I made a new copy of wme_demo and changed the following code in screen_init.script:
...to this:
OldGuy.
SetCursor("sprites\system\cur_wait.sprite");
It works, of course, but for reason it wasn't working in my other project. Even stranger, it seems to have now gone away in both project folders. I'll never know what I was doing wrong.
global OldGuy;
OldGuy.
SetCursor("sprites\system\cur_wait.sprite");
This lets me change it in other scripts. Maybe not having the global variable declaration in my script was the problem. Regardless, I have a better understanding of how WME works now and for that I am grateful.
Multiple objects can share the same script. For example, if your scene contains 10 doors, you can use the same script for all of them, and the 'this' value in each of them will reference one particular door.
That is absolutely brilliant and not something I'd considered. Every door in the game can be rigged by creating a new door object and attaching a script to it. Each door could be assigned its own open/close sprites and you'd just have to insert an OpenClose event to change its state when the player tries to open or close it. Does that sound right?
Thanks again.
Edit: Fixed formatting.