--- np2/win9x/np2.cpp 2003/10/21 14:57:41 1.6 +++ np2/win9x/np2.cpp 2003/10/23 13:31:13 1.9 @@ -217,6 +217,14 @@ static int flagsave(const char *ext) { return(ret); } +static void flagdelete(const char *ext) { + + char path[MAX_PATH]; + + getstatfilename(path, ext, sizeof(path)); + file_delete(path); +} + static int flagload(const char *ext, const char *title, BOOL force) { int ret; @@ -810,6 +818,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT if (LOWORD(wParam) != WA_INACTIVE) { np2break &= ~NP2BREAK_MAIN; scrnmng_update(); + keystat_allrelease(); mouse_running(MOUSE_CONT_M); } else { @@ -1367,22 +1376,30 @@ int WINAPI WinMain(HINSTANCE hInstance, } else { // auto skip if (!waitcnt) { + UINT cnt; joy_flash(); mouse_callback(); pccore_exec(framecnt == 0); dclock_callback(); framecnt++; - if (timing_getcount() < framecnt) { + cnt = timing_getcount(); + if (framecnt > cnt) { waitcnt = framecnt; if (framemax > 1) { framemax--; } } else if (framecnt >= framemax) { - waitcnt = framecnt; if (framemax < 12) { framemax++; } + if (cnt >= 12) { + timing_reset(); + } + else { + timing_setcount(cnt - framecnt); + } + framecnt = 0; } } else { @@ -1411,7 +1428,7 @@ int WINAPI WinMain(HINSTANCE hInstance, flagsave(np2resume); } else { -// DeleteFile(file_getcd(np2resume)); + flagdelete(np2resume); } #ifdef USE_ROMEO