It's enough to do it after thigns have had a chance to change. Not every
iteration of waitForTimer(). This means we no longer have as precise
resolution for our animation timers, but I don't think that's any reason
not to cut down on the (admittedly small) amount of extra work the GUI
has to do.
This is still just a mock-up, and a bad one at that. It will all be for
nought unless I can figure out how to wire up these buttons to the SCUMM
verbs.
Albeit not 100% necessary for rewriting the HE sound engine,
I decided to make this change in order to:
- Give proper meaning to magic numbers and variables
which were given temporary names 20 years ago;
- Avoid going insane when making comparison with HE code
and ours, when rewriting the sound code.
This was caused by the fact that the pre and post save screen scripts
were not being called, and this messed up the cursor state with savegames
created as quicksaves.
Also, renamed the variables containing said scripts numbers, so that
they are a little bit more meaningful now.
The line we're amending was applied a while ago when there had
been issues with COMI losing mouse inputs during a keyboard press;
apparently this has been resolved in a different way, and keeping it
(on the contrary) loses keyboard inputs.
This has been tested by the speedrun community.
When clearBanner() is called for versions lower than 7, it can cause some pixels
from the previous dialog text to remain on screen and not be cleared when the
text speed banner is displayed and cleared out.
We allow ENTER to be used to confirm the dialog choice, swap the left and right
arrow keys, and correctly map the numpad keys (so that joypad now actually work!)
This commit implements saving and loading in the same way the original interpreters
for MANIAC v0-1-2, ZAK v1-2-3, LOOM v3 and INDY v3 do. This makes it possible to
use the original save menus without glitches or crashes.
Saves done from GMM can also be loaded from the original menu.
There are so many workarounds where we either want to make sure it's not
the "Ultimate Talkie" version or that it is, that it's much nicer to
have a feature flag than having to strcmp() the variant.
This thing went unnoticed for a while. It was brought to my attention by members of
the speedrunning community, since it caused dropped inputs during runs.