Recent checkin broke a number of things:
1. In timeout(), PostMessage of emap[SOUND_COMMAND_DO_SOUND] does not
work. I reverted this to just SOUND_COMMAND_DO_SOUND, which does.
2. A sleep() can not be safely inserted in the polling of the high
resolution timer since the timeSetEvent is so close to the target time.
I have removed it.
3. In sound_win32e_init(), the timeSetEvent was reverted back to being
periodic. We don't do this anymore, see the previous email and checkin
comments. I have reverted this as well.
The problem seems to be a lack of testing before checking in changes, so
here is a quick testplan that I would like people to run through Before
checking in changes to the soundservers:
1. Verify you can start a game and hear sound (SQ3 is good for this).
2. Verify the HQ1 character selection screen is immediately responsive.
3. In HQ1, Restore a game from the introduction screen ("Continue Quest").
Verify sound still works properly and no warning messages are displayed.
4. Start a new game and restart.
Verify sound still works properly and no warning messages are displayed.
5. Restore a game and restart.
Verify sound still works properly and no warning messages are displayed.
6. "quick start" a savegame from the commandline.
Verify sound still works properly and no warning messages are displayed.
7. "quick start" a savegame from the commandline and restart.
Verify sound still works properly and no warning messages are displayed.
8. "quick start" a savegame from the commandline and restore a game once
the interpreter has started. Verify sound still works properly and no
warning messages are displayed.
I would only expect this to be run through when we are in release-mode
like we are now. Breakage at the last minute like this should be avoided
if at all possible in the future.
--
http://www.clock.org/~matt