--- np2/win9xc/np2.cpp 2003/10/16 17:59:18 1.1.1.1 +++ np2/win9xc/np2.cpp 2003/12/08 02:09:17 1.11 @@ -1,8 +1,11 @@ #include "compiler.h" #include +#ifndef __GNUC__ #include -#include "resource.h" +#endif #include "strres.h" +#include "parts.h" +#include "resource.h" #include "np2.h" #include "np2arg.h" #include "dosio.h" @@ -44,14 +47,14 @@ #define STATSAVEMAX 10 static char np2help[] = "np2.hlp"; -static char np2resume[] = "sav"; +// static char np2resume[] = "sav"; static const char szAppCaption[] = "Neko Project II - C version"; static const char szClassName[] = "NP2-MainWindow"; NP2OSCFG np2oscfg = { - CW_USEDEFAULT, CW_USEDEFAULT, 1, 1, 0, 2, + CW_USEDEFAULT, CW_USEDEFAULT, 0, 2, KEY_UNKNOWN, 0, 0, 0, 0, {1, 2, 2, 1}, 0}; @@ -132,8 +135,9 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT switch (msg) { case WM_CREATE: +#ifndef __GNUC__ WINNLSEnableIME(hWnd, FALSE); -// DragAcceptFiles(hWnd, TRUE); +#endif break; case WM_SYSCOMMAND: @@ -299,47 +303,53 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT case IDM_KEY: xmenu_setkey(0); + update |= SYS_UPDATECFG; break; case IDM_JOY1: xmenu_setkey(1); + update |= SYS_UPDATECFG; break; case IDM_JOY2: xmenu_setkey(2); + update |= SYS_UPDATECFG; break; case IDM_XSHIFT: xmenu_setxshift(np2cfg.XSHIFT ^ 1); keystat_forcerelease(0x70); + update |= SYS_UPDATECFG; break; case IDM_XCTRL: xmenu_setxshift(np2cfg.XSHIFT ^ 2); keystat_forcerelease(0x74); + update |= SYS_UPDATECFG; break; case IDM_XGRPH: xmenu_setxshift(np2cfg.XSHIFT ^ 4); keystat_forcerelease(0x73); + update |= SYS_UPDATECFG; break; case IDM_F12MOUSE: xmenu_setf12copy(0); keystat_resetcopyhelp(); - update |= SYS_UPDATECFG; + update |= SYS_UPDATEOSCFG; break; case IDM_F12COPY: xmenu_setf12copy(1); keystat_resetcopyhelp(); - update |= SYS_UPDATECFG; + update |= SYS_UPDATEOSCFG; break; case IDM_F12STOP: xmenu_setf12copy(2); keystat_resetcopyhelp(); - update |= SYS_UPDATECFG; + update |= SYS_UPDATEOSCFG; break; case IDM_BEEPOFF: @@ -565,8 +575,8 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT HBITMAP hbmp; BITMAP bmp; HINSTANCE hinst; - int sx = 640 + np2oscfg.paddingx; - int sy = 400 + np2oscfg.paddingy; + int sx = 640; + int sy = 400; hinst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE); #if 1 @@ -724,12 +734,17 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT return(0L); } +static void framereset(void) { + + framecnt = 0; + sysmng_updatecaption(); +} static void processwait(UINT waitcnt) { if (timing_getcount() >= waitcnt) { timing_setcount(0); - framecnt = 0; + framereset(); } else { Sleep(1); @@ -754,9 +769,7 @@ int WINAPI WinMain(HINSTANCE hInstance, np2arg_analize(lpszCmdLine); // タイミング修正 // ver0.29 initload(); - srand((unsigned)time(NULL)); - -// np2arg_analize(lpszCmdLine); + rand_setseed((unsigned)time(NULL)); if ((hwndorg = FindWindow(szClassName, NULL)) != NULL) { ShowWindow(hwndorg, SW_RESTORE); @@ -792,7 +805,7 @@ int WINAPI WinMain(HINSTANCE hInstance, np2.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)); np2.hCursor = LoadCursor(NULL, IDC_ARROW); np2.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); - np2.lpszMenuName = MAKEINTRESOURCE(IDM_MAIN); + np2.lpszMenuName = MAKEINTRESOURCE(IDR_MAIN); np2.lpszClassName = szClassName; if (!RegisterClass(&np2)) { return(FALSE); @@ -930,21 +943,29 @@ int WINAPI WinMain(HINSTANCE hInstance, } else { // auto skip if (!waitcnt) { + UINT cnt; joy_flash(); mouse_callback(); pccore_exec(framecnt == 0); 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); + } + framereset(); } } else {