I wrote a script that displays a countdown timer down to hundredths of seconds. In RC1, I've noticed that apparently, whatever the script draws to the screen, using Screen->DrawInteger(), isn't getting cleared every frame while link is holding up an item (which is when my script starts). The numbers are getting jumbled up on top of each other.
Did something change in RC1 or is this a bug?
If it was different before, then I would go ahead and report it as a bug. If it is not a bug, the developers will respond accordingly.
EDIT: I'm going to go ahead and format this into a bug post.
OK, It appears that anything drawn by a global script will not be cleared from the screen while Link is holding up an item (but more things can still be drawn). This doesn't apply to FFCs because they freeze when this happens.
Also, thanks for moving this thread, bigjoe.
Could you post a demo? That doesn't sound like the same behavior I'm seeing.
Here you go.
The global script draws the number of frames elapsed and a moving circle. A FFC script draws a box (to test FFCs in this regard). Just pick up the sword.
D'oh, I see why I didn't see it. That's what I get for using an actual quest for a test, I suppose... 😛
I'm not quite sure how this ought to work... FFCs should stop when Link's holding an item, since everything else does, but it doesn't look good if they're drawing stuff and it suddenly disappears. Maybe the global script should freeze, too?
The issue I see with freezing the global script is that scripts can check if Link is holding up an item, but if frozen, this suddenly becomes pointless. What if you want to do something while holding up an item? Freezing the script will break that function.
This is certainly a tricky situation, though. But I wonder why this wasn't happening in Beta 18 and earlier.
Not clearing the drawing commands was part of making FFCs freeze. Stuff would just disappear, otherwise.
It wouldn't be difficult to add an FFC flag that controls whether it's updated when Link's holding something. I'm not sure that's an ideal solution, but it's the most versatile I can see.
OK that makes sense about why this didn't happen before. As for fixing this, well, I can't say I have any better ideas than the one you posted.