Fix from wjp for redraws and input during delays

svn-id: r17602
This commit is contained in:
Eugene Sandulenko 2005-04-14 21:53:37 +00:00
parent 4b18be1cf7
commit bec1acac06
3 changed files with 16 additions and 3 deletions

View File

@ -931,7 +931,7 @@ void inter_keyFunc(void) {
if (flag != 1) {
if (flag != 2) {
util_delay(flag);
util_longDelay(flag);
return;
}

View File

@ -175,6 +175,15 @@ void util_setMousePos(int16 x, int16 y) {
g_system->warpMouse(x, y);
}
void util_longDelay(uint16 msecs)
{
uint32 time = g_system->getMillis() + msecs;
do {
util_processInput();
util_delay(10);
} while (g_system->getMillis() < time);
}
void util_delay(uint16 msecs) {
g_system->delayMillis(msecs);
}
@ -198,7 +207,9 @@ void util_waitMouseUp(void) {
int16 buttons;
do {
util_processInput();
util_getMouseState(&x, &y, &buttons);
if (buttons != 0) util_delay(10);
} while (buttons != 0);
}
@ -208,7 +219,9 @@ void util_waitMouseDown(void) {
int16 buttons;
do {
util_processInput();
util_getMouseState(&x, &y, &buttons);
if (buttons == 0) util_delay(10);
} while (buttons == 0);
}
@ -246,7 +259,6 @@ void util_waitEndFrame() {
if (timer_enabled) {
do {
time = util_getTimeKey();
} while (time - startFrameTime < frameWaitTime);
} else {
if (frameWaitTime - time > 0)

View File

@ -46,6 +46,7 @@ int16 util_checkKey(void);
int16 util_getRandom(int16 max);
void util_getMouseState(int16 *pX, int16 *pY, int16 *pButtons);
void util_setMousePos(int16 x, int16 y);
void util_longDelay(uint16 msecs);
void util_delay(uint16 msecs);
void util_beep(int16 freq);
uint32 util_getTimeKey(void);
@ -67,7 +68,7 @@ void util_clearPalette(void);
void util_insertStr(const char *str1, char *str2, int16 pos);
void util_cutFromStr(char *str, int16 from, int16 cutlen);
int16 util_strstr(const char *str1, char *str2);
void util_waitEndFrame(void);
void util_waitEndFrame();
void util_setFrameRate(int16 rate);
void util_listInsertBack(Util_List * list, void *data);