Diff for /np2/win9x/np2.cpp between versions 1.19 and 1.27

version 1.19, 2003/10/30 18:09:06 version 1.27, 2003/11/09 21:57:04
Line 60  static char  szClassName[] = "NP2-MainWi Line 60  static char  szClassName[] = "NP2-MainWi
                 HINSTANCE       hInst;                  HINSTANCE       hInst;
                 HINSTANCE       hPrev;                  HINSTANCE       hPrev;
                 int                     mmxflag;                  int                     mmxflag;
                   BYTE            np2break = 0;                                                                   // ver0.30
                   BOOL            winui_en;
   
                 NP2OSCFG        np2oscfg = {                  NP2OSCFG        np2oscfg = {
                                                 "Neko Project II", "NP2",                                                  "Neko Project II", "NP2",
Line 71  static char  szClassName[] = "NP2-MainWi Line 73  static char  szClassName[] = "NP2-MainWi
                                                 {0, 0, 0x3e, 19200, "", "", "", ""},            // ver0.34                                                  {0, 0, 0x3e, 19200, "", "", "", ""},            // ver0.34
                                                 {0, 0, 0x3e, 19200, "", "", "", ""},            // ver0.34                                                  {0, 0, 0x3e, 19200, "", "", "", ""},            // ver0.34
                                                 0xffffff, 0xffbf6a, 0, 0,                                                  0xffffff, 0xffbf6a, 0, 0,
                                                 0, 1, 0, 9801, 0, 0, 0, 0, 0, 0};                       // ver0.38                                                  0, 1, 0, 9801, 0, 0, 0, 0, 0, 0, 0, 0};         // ver0.38
   
                 char    fddfolder[MAX_PATH];                  char            fddfolder[MAX_PATH];
                 char    hddfolder[MAX_PATH];                  char            hddfolder[MAX_PATH];
                 char    bmpfilefolder[MAX_PATH];                  char            bmpfilefolder[MAX_PATH];
                 char    modulefile[MAX_PATH];                  char            modulefile[MAX_PATH];
   
 static  UINT    framecnt = 0;  static  UINT            framecnt = 0;
 static  UINT    waitcnt = 0;  static  UINT            waitcnt = 0;
 static  UINT    framemax = 1;  static  UINT            framemax = 1;
                 BYTE    np2break = 0;                                                                   // ver0.30  static  BYTE            np2stopemulate = 0;
 static  BYTE    np2stopemulate = 0;  static  int                     np2opening = 1;
 static  int             np2opening = 1;  static  int                     np2quitmsg = 0;
 static  int             np2quitmsg = 0;  static  HMENU           hStat = NULL;
                 HMENU   hStat = NULL;  static  BYTE            scrnmode;
   static  WINLOCEX        smwlex;
   
   static const char np2help[] = "np2.chm";
   static const char np2flagext[] = "S%02d";
   static const char np2resumeext[] = "sav";
   
 static const char np2help[] = "np2.hlp";  
 static const char np2resume[] = "sav";  
   
   
 static  BYTE    scrnmode;  
   
   
 static void winuienter(void) {  static void winuienter(void) {
   
           winui_en = TRUE;
         soundmng_disable(SNDPROC_MAIN);          soundmng_disable(SNDPROC_MAIN);
         scrnmng_topwinui();          scrnmng_topwinui();
 }  }
Line 104  static void winuileave(void) { Line 107  static void winuileave(void) {
   
         scrnmng_clearwinui();          scrnmng_clearwinui();
         soundmng_enable(SNDPROC_MAIN);          soundmng_enable(SNDPROC_MAIN);
           winui_en = FALSE;
   }
   
   WINLOCEX np2_winlocexallwin(HWND base) {
   
           HWND    list[3];
           UINT    i;
   
           list[0] = hWndMain;
           list[1] = toolwin_gethwnd();
           list[2] = keydisp_gethwnd();
           for (i=0; i<3; i++) {
                   if (list[i] == base) {
                           list[i] = NULL;
                   }
           }
           if (base != hWndMain) {         // hWndMainのみ全体移動
                   base = NULL;
           }
           return(winlocex_create(base, list, 3));
 }  }
   
 static void changescreen(BYTE newmode) {  static void changescreen(BYTE newmode) {
   
         BYTE    change;          BYTE            change;
         BYTE    renewal;          BYTE            renewal;
           WINLOCEX        wlex;
   
         change = scrnmode ^ newmode;          change = scrnmode ^ newmode;
         renewal = (change & SCRNMODE_FULLSCREEN);          renewal = (change & SCRNMODE_FULLSCREEN);
           wlex = NULL;
         if (newmode & SCRNMODE_FULLSCREEN) {          if (newmode & SCRNMODE_FULLSCREEN) {
                 renewal |= (change & SCRNMODE_HIGHCOLOR);                  renewal |= (change & SCRNMODE_HIGHCOLOR);
         }          }
Line 121  static void changescreen(BYTE newmode) { Line 146  static void changescreen(BYTE newmode) {
         }          }
         if (renewal) {          if (renewal) {
                 if (renewal & SCRNMODE_FULLSCREEN) {                  if (renewal & SCRNMODE_FULLSCREEN) {
                         toolwin_close();                          toolwin_destroy();
                           keydisp_destroy();
                 }                  }
                 else if (renewal & SCRNMODE_ROTATEMASK) {                  else if (renewal & SCRNMODE_ROTATEMASK) {
                         toolwin_movingstart();                          wlex = np2_winlocexallwin(hWndMain);
                           winlocex_setholdwnd(wlex, hWndMain);
                 }                  }
                 soundmng_stop();                  soundmng_stop();
                 mouse_running(MOUSE_STOP);                  mousemng_disable(MOUSEPROC_WINUI);
                 keydisp_destroy();  
                 scrnmng_destroy();                  scrnmng_destroy();
                 if (scrnmng_create(newmode) == SUCCESS) {                  if (scrnmng_create(newmode) == SUCCESS) {
                         scrnmode = newmode;                          scrnmode = newmode;
Line 140  static void changescreen(BYTE newmode) { Line 166  static void changescreen(BYTE newmode) {
                         }                          }
                 }                  }
                 scrndraw_redraw();                  scrndraw_redraw();
                 if ((renewal & SCRNMODE_FULLSCREEN) &&                  if (renewal & SCRNMODE_FULLSCREEN) {
                         (!scrnmng_isfullscreen()) && (np2oscfg.toolwin)) {                          if (!scrnmng_isfullscreen()) {
                         toolwin_open();                                  if (np2oscfg.toolwin) {
                                           toolwin_create();
                                   }
                                   if (np2oscfg.keydisp) {
                                           keydisp_create();
                                   }
                           }
                 }                  }
                 else if (renewal & SCRNMODE_ROTATEMASK) {                  else if (renewal & SCRNMODE_ROTATEMASK) {
                         toolwin_movingend();                          winlocex_move(wlex);
                           winlocex_destroy(wlex);
                 }                  }
                 mouse_running(MOUSE_CONT);                  mousemng_enable(MOUSEPROC_WINUI);
                 soundmng_play();                  soundmng_play();
         }          }
         else {          else {
Line 268  static int flagload(const char *ext, con Line 301  static int flagload(const char *ext, con
   
 // ---- proc  // ---- proc
   
   static void np2popup(HWND hWnd, LPARAM lp) {
   
           HMENU   mainmenu;
           HMENU   hMenu;
           POINT   pt;
   
           mainmenu = (HMENU)GetWindowLong(hWnd, NP2GWL_HMENU);
           if (mainmenu == NULL) {
                   return;
           }
           hMenu = CreatePopupMenu();
           menu_addmenubar(hMenu, mainmenu);
           pt.x = LOWORD(lp);
           pt.y = HIWORD(lp);
           ClientToScreen(hWnd, &pt);
           TrackPopupMenu(hMenu, TPM_LEFTALIGN, pt.x, pt.y, 0, hWnd, NULL);
           DestroyMenu(hMenu);
   }
   
 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {  LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
   
         PAINTSTRUCT     ps;          PAINTSTRUCT     ps;
Line 275  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 327  LRESULT CALLBACK WndProc(HWND hWnd, UINT
         HDC                     hdc;          HDC                     hdc;
         BOOL            b;          BOOL            b;
         UINT            update;          UINT            update;
           HWND            subwin;
           WINLOCEX        wlex;
   
         switch (msg) {          switch (msg) {
                 case WM_CREATE:                  case WM_CREATE:
                           np2class_wmcreate(hWnd);
                           np2class_windowtype(hWnd, np2oscfg.wintype);
                         sstp_construct(hWnd);                          sstp_construct(hWnd);
 #ifndef __GNUC__  #ifndef __GNUC__
                         WINNLSEnableIME(hWnd, FALSE);                          WINNLSEnableIME(hWnd, FALSE);
Line 288  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 344  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                         update = 0;                          update = 0;
                         switch(wParam) {                          switch(wParam) {
                                 case IDM_TOOLWIN:                                  case IDM_TOOLWIN:
                                         xmenu_settoolwin(np2oscfg.toolwin ^ 1);                                          sysmenu_settoolwin(np2oscfg.toolwin ^ 1);
                                         if (np2oscfg.toolwin) {                                          if (np2oscfg.toolwin) {
                                                 toolwin_open();                                                  toolwin_create();
                                         }                                          }
                                         else {                                          else {
                                                 toolwin_close();                                                  toolwin_destroy();
                                         }                                          }
                                         update |= SYS_UPDATEOSCFG;                                          update |= SYS_UPDATEOSCFG;
                                         break;                                          break;
   
                                   case IDM_KEYDISP:
                                           sysmenu_setkeydisp(np2oscfg.keydisp ^ 1);
                                           if (np2oscfg.keydisp) {
                                                   keydisp_create();
                                           }
                                           else {
                                                   keydisp_destroy();
                                           }
                                           break;
   
                                 case IDM_SCREENCENTER:                                  case IDM_SCREENCENTER:
                                         if ((!scrnmng_isfullscreen()) &&                                          if ((!scrnmng_isfullscreen()) &&
                                                 (!(GetWindowLong(hWnd, GWL_STYLE) &                                                  (!(GetWindowLong(hWnd, GWL_STYLE) &
                                                                                         (WS_MAXIMIZE | WS_MINIMIZE)))) {                                                                                          (WS_MAXIMIZE | WS_MINIMIZE)))) {
                                                 toolwin_movingstart();                                                  wlex = np2_winlocexallwin(hWnd);
                                                 wincentering(hWnd);                                                  wincentering(hWnd);
                                                 toolwin_movingend();                                                  winlocex_move(wlex);
                                                   winlocex_destroy(wlex);
                                         }                                          }
                                         break;                                          break;
   
                                 case IDM_SNAPENABLE:                                  case IDM_SNAPENABLE:
                                         xmenu_setwinsnap(np2oscfg.WINSNAP ^ 1);                                          sysmenu_setwinsnap(np2oscfg.WINSNAP ^ 1);
                                         update |= SYS_UPDATEOSCFG;                                          update |= SYS_UPDATEOSCFG;
                                         break;                                          break;
   
                                 case IDM_BACKGROUND:                                  case IDM_BACKGROUND:
                                         xmenu_setbackground(np2oscfg.background ^ 1);                                          sysmenu_setbackground(np2oscfg.background ^ 1);
                                         update |= SYS_UPDATEOSCFG;                                          update |= SYS_UPDATEOSCFG;
                                         break;                                          break;
   
                                 case IDM_BGSOUND:                                  case IDM_BGSOUND:
                                         xmenu_setbgsound(np2oscfg.background ^ 2);                                          sysmenu_setbgsound(np2oscfg.background ^ 2);
                                         update |= SYS_UPDATEOSCFG;                                          update |= SYS_UPDATEOSCFG;
                                         break;                                          break;
   
                                 case IDM_KEYDISP:  
                                         keydisp_create();  
                                         break;  
   
                                 case IDM_MEMORYDUMP:                                  case IDM_MEMORYDUMP:
                                         debugsub_memorydump();                                          debugsub_memorydump();
                                         break;                                          break;
Line 343  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 406  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                 case IDM_SCRNMUL16:                                  case IDM_SCRNMUL16:
                                         if ((!scrnmng_isfullscreen()) &&                                          if ((!scrnmng_isfullscreen()) &&
                                                 !(GetWindowLong(hWndMain, GWL_STYLE) & WS_MINIMIZE)) {                                                  !(GetWindowLong(hWndMain, GWL_STYLE) & WS_MINIMIZE)) {
                                                 xmenu_setscrnmul(wParam - IDM_SCRNMUL);                                                  sysmenu_setscrnmul(wParam - IDM_SCRNMUL);
                                                 scrnmng_setmultiple(wParam - IDM_SCRNMUL);                                                  scrnmng_setmultiple(wParam - IDM_SCRNMUL);
                                         }                                          }
                                         break;                                          break;
   
                                   case SC_MINIMIZE:
                                           wlex = np2_winlocexallwin(hWnd);
                                           winlocex_close(wlex);
                                           winlocex_destroy(wlex);
                                           return(DefWindowProc(hWnd, msg, wParam, lParam));
   
                                   case SC_RESTORE:
                                           subwin = toolwin_gethwnd();
                                           if (subwin) {
                                                   ShowWindow(subwin, SW_SHOWNOACTIVATE);
                                           }
                                           subwin = keydisp_gethwnd();
                                           if (subwin) {
                                                   ShowWindow(subwin, SW_SHOWNOACTIVATE);
                                           }
                                           return(DefWindowProc(hWnd, msg, wParam, lParam));
   
                                 default:                                  default:
                                         return(DefWindowProc(hWnd, msg, wParam, lParam));                                          return(DefWindowProc(hWnd, msg, wParam, lParam));
                         }                          }
Line 714  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 794  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                         break;                                          break;
   
                                 case IDM_MOUSE:                                  case IDM_MOUSE:
                                         mouse_running(MOUSE_XOR);                                          mousemng_toggle(MOUSEPROC_SYSTEM);
                                         xmenu_setmouse(np2oscfg.MOUSE_SW ^ 1);                                          xmenu_setmouse(np2oscfg.MOUSE_SW ^ 1);
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATECFG;
                                         break;                                          break;
Line 820  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 900  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                         if ((LOWORD(wParam) >= IDM_FLAGSAVE) &&                                          if ((LOWORD(wParam) >= IDM_FLAGSAVE) &&
                                                 (LOWORD(wParam) < IDM_FLAGSAVE + STATSAVEMAX)) {                                                  (LOWORD(wParam) < IDM_FLAGSAVE + STATSAVEMAX)) {
                                                 char ext[4];                                                  char ext[4];
                                                 wsprintf(ext, "S%02d",                                                  wsprintf(ext, np2flagext,
                                                                         (LOWORD(wParam) - IDM_FLAGSAVE) % 100);                                                                          (LOWORD(wParam) - IDM_FLAGSAVE) % 100);
                                                 flagsave(ext);                                                  flagsave(ext);
                                         }                                          }
                                         if ((LOWORD(wParam) >= IDM_FLAGLOAD) &&                                          if ((LOWORD(wParam) >= IDM_FLAGLOAD) &&
                                                 (LOWORD(wParam) < IDM_FLAGLOAD + STATSAVEMAX)) {                                                  (LOWORD(wParam) < IDM_FLAGLOAD + STATSAVEMAX)) {
                                                 char ext[4];                                                  char ext[4];
                                                 wsprintf(ext, "S%02d",                                                  wsprintf(ext, np2flagext,
                                                                         (LOWORD(wParam) - IDM_FLAGLOAD) % 100);                                                                          (LOWORD(wParam) - IDM_FLAGLOAD) % 100);
                                                 flagload(ext, "Status Load", TRUE);                                                  flagload(ext, "Status Load", TRUE);
                                         }                                          }
Line 841  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 921  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                 np2break &= ~NP2BREAK_MAIN;                                  np2break &= ~NP2BREAK_MAIN;
                                 scrnmng_update();                                  scrnmng_update();
                                 keystat_allrelease();                                  keystat_allrelease();
                                 mouse_running(MOUSE_CONT_M);                                  mousemng_enable(MOUSEPROC_BG);
                         }                          }
                         else {                          else {
                                 np2break |= NP2BREAK_MAIN;                                  np2break |= NP2BREAK_MAIN;
                                 mouse_running(MOUSE_STOP_M);                                  mousemng_disable(MOUSEPROC_BG);
                         }                          }
                         np2active_renewal();                          np2active_renewal();
                         break;                          break;
Line 899  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 979  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                                         np2oscfg.winy = rc.top;                                          np2oscfg.winy = rc.top;
                                         sysmng_update(SYS_UPDATEOSCFG);                                          sysmng_update(SYS_UPDATEOSCFG);
                                 }                                  }
                                 if (GetWindowLong(hWnd, GWL_STYLE) & WS_MINIMIZE) {  
                                         toolwin_close();  
                                 }  
                                 else if (np2oscfg.toolwin) {  
                                         toolwin_open();  
                                 }  
                         }                          }
                         break;                          break;
   
Line 921  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 995  LRESULT CALLBACK WndProc(HWND hWnd, UINT
   
                 case WM_ENTERSIZEMOVE:                  case WM_ENTERSIZEMOVE:
                         soundmng_disable(SNDPROC_MAIN);                          soundmng_disable(SNDPROC_MAIN);
                         mouse_running(MOUSE_STOP);                          mousemng_disable(MOUSEPROC_WINUI);
                         winloc_movingstart();                          winlocex_destroy(smwlex);
                         toolwin_movingstart();                          smwlex = np2_winlocexallwin(hWnd);
                         break;                          scrnmng_entersizing();
   
                 case WM_EXITSIZEMOVE:  
                         toolwin_movingend();  
                         mouse_running(MOUSE_CONT);  
                         soundmng_enable(SNDPROC_MAIN);  
                         break;                          break;
   
                 case WM_MOVING:                  case WM_MOVING:
                         if (np2oscfg.WINSNAP) {                          if (np2oscfg.WINSNAP) {
                                 winloc_movingproc((RECT *)lParam);                                  winlocex_moving(smwlex, (RECT *)lParam);
                         }                          }
                         break;                          break;
   
                   case WM_SIZING:
                           scrnmng_sizing((UINT)wParam, (RECT *)lParam);
                           break;
   
                   case WM_EXITSIZEMOVE:
                           scrnmng_exitsizing();
                           winlocex_move(smwlex);
                           winlocex_destroy(smwlex);
                           smwlex = NULL;
                           mousemng_enable(MOUSEPROC_WINUI);
                           soundmng_enable(SNDPROC_MAIN);
                           break;
   
                 case WM_KEYDOWN:                  case WM_KEYDOWN:
                         if (wParam == VK_F11) {                          if (wParam == VK_F11) {
                                 scrnmng_enablemenubar();                                  np2class_enablemenu(hWndMain, TRUE);
                                 return(DefWindowProc(hWnd, WM_SYSKEYDOWN, VK_F10, lParam));                                  return(DefWindowProc(hWnd, WM_SYSKEYDOWN, VK_F10, lParam));
                         }                          }
                         if ((wParam == VK_F12) && (!np2oscfg.F12COPY)) {                          if ((wParam == VK_F12) && (!np2oscfg.F12COPY)) {
                                 mouse_running(MOUSE_XOR);                                  mousemng_toggle(MOUSEPROC_SYSTEM);
                                 xmenu_setmouse(np2oscfg.MOUSE_SW ^ 1);                                  xmenu_setmouse(np2oscfg.MOUSE_SW ^ 1);
                                 sysmng_update(SYS_UPDATECFG);                                  sysmng_update(SYS_UPDATECFG);
                         }                          }
Line 990  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 1072  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                         break;                          break;
   
                 case WM_LBUTTONDOWN:                  case WM_LBUTTONDOWN:
                         if (!mouse_btn(MOUSE_LEFTDOWN)) {                          if (!mousemng_buttonevent(MOUSEMNG_LEFTDOWN)) {
                                 if (scrnmng_isfullscreen()) {                                  if (!scrnmng_isfullscreen()) {
                                           if (np2oscfg.wintype == 2) {
                                                   return(SendMessage(hWnd, WM_NCLBUTTONDOWN,
                                                                                                                           HTCAPTION, 0L));
                                           }
                                   }
                                   else {
                                         POINT p;                                          POINT p;
                                         if ((GetCursorPos(&p)) && (p.y >= 466)) {                                          if ((GetCursorPos(&p)) && (p.y >= 466)) {
                                                 np2oscfg.clk_x++;                                                  np2oscfg.clk_x++;
Line 1004  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 1092  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                         break;                          break;
   
                 case WM_LBUTTONUP:                  case WM_LBUTTONUP:
                         if (!mouse_btn(MOUSE_LEFTUP)) {                          if (!mousemng_buttonevent(MOUSEMNG_LEFTUP)) {
                                 return(DefWindowProc(hWnd, msg, wParam, lParam));                                  return(DefWindowProc(hWnd, msg, wParam, lParam));
                         }                          }
                         break;                          break;
   
                 case WM_MBUTTONDOWN:                                                                    // ver0.26                  case WM_MBUTTONDOWN:                                                                    // ver0.26
                         mouse_running(MOUSE_XOR);                          mousemng_toggle(MOUSEPROC_SYSTEM);
                         xmenu_setmouse(np2oscfg.MOUSE_SW ^ 1);                          xmenu_setmouse(np2oscfg.MOUSE_SW ^ 1);
                         sysmng_update(SYS_UPDATECFG);                          sysmng_update(SYS_UPDATECFG);
                         break;                          break;
   
                 case WM_RBUTTONDOWN:                  case WM_RBUTTONDOWN:
                         if (!mouse_btn(MOUSE_RIGHTDOWN)) {                          if (!mousemng_buttonevent(MOUSEMNG_RIGHTDOWN)) {
                                 if (scrnmng_isfullscreen()) {                                  if (!scrnmng_isfullscreen()) {
                                         POINT   p;                                          np2popup(hWnd, lParam);
                                   }
                                   else {
                                           POINT p;
                                         if ((GetCursorPos(&p)) && (p.y >= 466) &&                                          if ((GetCursorPos(&p)) && (p.y >= 466) &&
                                                                                                 (np2oscfg.clk_x)) {                                                                                                  (np2oscfg.clk_x)) {
                                                 np2oscfg.clk_fnt++;                                                  np2oscfg.clk_fnt++;
Line 1031  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 1122  LRESULT CALLBACK WndProc(HWND hWnd, UINT
                         break;                          break;
   
                 case WM_RBUTTONUP:                  case WM_RBUTTONUP:
                         if (!mouse_btn(MOUSE_RIGHTUP)) {                          if (!mousemng_buttonevent(MOUSEMNG_RIGHTUP)) {
                                 return(DefWindowProc(hWnd, msg, wParam, lParam));                                  return(DefWindowProc(hWnd, msg, wParam, lParam));
                         }                          }
                         break;                          break;
   
                   case WM_LBUTTONDBLCLK:
                           if (!scrnmng_isfullscreen()) {
                                   np2oscfg.wintype++;
                                   if (np2oscfg.wintype >= 3) {
                                           np2oscfg.wintype = 0;
                                   }
                                   wlex = np2_winlocexallwin(hWnd);
                                   winlocex_setholdwnd(wlex, hWnd);
                                   np2class_windowtype(hWnd, np2oscfg.wintype);
                                   winlocex_move(wlex);
                                   winlocex_destroy(wlex);
                                   sysmng_update(SYS_UPDATEOSCFG);
                           }
                           break;
   
                 case WM_CLOSE:                  case WM_CLOSE:
                         b = FALSE;                          b = FALSE;
                         if (!np2oscfg.comfirm) {                          if (!np2oscfg.comfirm) {
Line 1058  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 1164  LRESULT CALLBACK WndProc(HWND hWnd, UINT
   
                 case WM_DESTROY:                  case WM_DESTROY:
                         DestroyMenu(hStat);                          DestroyMenu(hStat);
                           np2class_wmdestroy(hWnd);
                         PostQuitMessage(0);                          PostQuitMessage(0);
                         break;                          break;
   
Line 1120  LRESULT CALLBACK WndProc(HWND hWnd, UINT Line 1227  LRESULT CALLBACK WndProc(HWND hWnd, UINT
 }  }
   
   
   static void framereset(UINT cnt) {
   
           framecnt = 0;
           scrnmng_dispclock();
           keydisp_draw((BYTE)cnt);
           toolwin_draw((BYTE)cnt);
           viewer_allreload(FALSE);
           if (np2oscfg.DISPCLK & 3) {
                   if (sysmng_workclockrenewal()) {
                           sysmng_updatecaption(3);
                   }
           }
   }
   
 static void processwait(UINT cnt) {  static void processwait(UINT cnt) {
   
         if (timing_getcount() >= cnt) {          if (timing_getcount() >= cnt) {
                 timing_setcount(0);                  timing_setcount(0);
                 framecnt = 0;                  framereset(cnt);
                 scrnmng_dispclock();  
                 keydisp_draw((BYTE)cnt);  
                 toolwin_draw((BYTE)cnt);  
                 viewer_allreload(FALSE);  
                 if (np2oscfg.DISPCLK & 3) {  
                         if (sysmng_workclockrenewal()) {  
                                 sysmng_updatecaption(3);  
                         }  
                 }  
         }          }
         else {          else {
                 Sleep(1);                  Sleep(1);
Line 1143  static void processwait(UINT cnt) { Line 1255  static void processwait(UINT cnt) {
   
 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst,  int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst,
                                                                                 LPSTR lpszCmdLine, int nCmdShow) {                                                                                  LPSTR lpszCmdLine, int nCmdShow) {
         WNDCLASS        np2;          WNDCLASS        wc;
         MSG                     msg;          MSG                     msg;
         HMENU           hMenu;          HMENU           hMenu;
         HWND            hwndorg;          HWND            hwndorg;
Line 1158  int WINAPI WinMain(HINSTANCE hInstance,  Line 1270  int WINAPI WinMain(HINSTANCE hInstance, 
         np2arg_analize(lpszCmdLine);          np2arg_analize(lpszCmdLine);
         initload();          initload();
         toolwin_readini();          toolwin_readini();
           keydisp_readini();
   
         rand_setseed((unsigned)time(NULL));          rand_setseed((unsigned)time(NULL));
   
Line 1193  int WINAPI WinMain(HINSTANCE hInstance,  Line 1306  int WINAPI WinMain(HINSTANCE hInstance, 
   
         np2class_initialize(hInstance);          np2class_initialize(hInstance);
         if (!hPreInst) {          if (!hPreInst) {
                 np2.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW;                  wc.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
                 np2.lpfnWndProc = WndProc;                  wc.lpfnWndProc = WndProc;
                 np2.cbClsExtra = 0;                  wc.cbClsExtra = 0;
                 np2.cbWndExtra = 0;                  wc.cbWndExtra = NP2GWL_SIZE;
                 np2.hInstance = hInstance;                  wc.hInstance = hInstance;
                 np2.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));                  wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
                 np2.hCursor = LoadCursor(NULL, IDC_ARROW);                  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
                 np2.hbrBackground = (HBRUSH)GetStockObject(NULL_BRUSH);                  wc.hbrBackground = (HBRUSH)GetStockObject(NULL_BRUSH);
                 np2.lpszMenuName = MAKEINTRESOURCE(IDM_MAIN);                  wc.lpszMenuName = MAKEINTRESOURCE(IDR_MAIN);
                 np2.lpszClassName = szClassName;                  wc.lpszClassName = szClassName;
                 if (!RegisterClass(&np2)) {                  if (!RegisterClass(&wc)) {
                         return(FALSE);                          return(FALSE);
                 }                  }
         }          }
Line 1213  int WINAPI WinMain(HINSTANCE hInstance,  Line 1326  int WINAPI WinMain(HINSTANCE hInstance, 
   
         hWndMain = CreateWindow(szClassName, np2oscfg.titles,          hWndMain = CreateWindow(szClassName, np2oscfg.titles,
                                                 WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |                                                  WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |
                                                 WS_MINIMIZEBOX,                                                  WS_THICKFRAME | WS_MINIMIZEBOX,
                                                 np2oscfg.winx, np2oscfg.winy, 640, 400,                                                  np2oscfg.winx, np2oscfg.winy, 640, 400,
                                                 NULL, NULL, hInstance, NULL);                                                  NULL, NULL, hInstance, NULL);
         scrnmng_initialize();          scrnmng_initialize();
Line 1262  int WINAPI WinMain(HINSTANCE hInstance,  Line 1375  int WINAPI WinMain(HINSTANCE hInstance, 
                 }                  }
                 InsertMenu(hMenu, 1, MF_BYPOSITION | MF_POPUP, (UINT)hStat, "S&tat");                  InsertMenu(hMenu, 1, MF_BYPOSITION | MF_POPUP, (UINT)hStat, "S&tat");
         }          }
         sysmenu_init();          sysmenu_initialize();
         DrawMenuBar(hWndMain);          DrawMenuBar(hWndMain);
   
         // ver0.30          // ver0.30
Line 1270  int WINAPI WinMain(HINSTANCE hInstance,  Line 1383  int WINAPI WinMain(HINSTANCE hInstance, 
                 EnableMenuItem(GetMenu(hWndMain), IDM_HELP, MF_GRAYED);                  EnableMenuItem(GetMenu(hWndMain), IDM_HELP, MF_GRAYED);
         }          }
   
         xmenu_settoolwin(np2oscfg.toolwin);          sysmenu_settoolwin(np2oscfg.toolwin);
         xmenu_setwinsnap(np2oscfg.WINSNAP);          sysmenu_setkeydisp(np2oscfg.keydisp);
         xmenu_setbackground(np2oscfg.background);          sysmenu_setwinsnap(np2oscfg.WINSNAP);
         xmenu_setbgsound(np2oscfg.background);          sysmenu_setbackground(np2oscfg.background);
         xmenu_setscrnmul(8);                                                                            // ver0.26          sysmenu_setbgsound(np2oscfg.background);
           sysmenu_setscrnmul(8);                                                                          // ver0.26
         if (np2oscfg.toolwin) {  
                 toolwin_open();  
         }  
   
         scrnmode = 0;          scrnmode = 0;
         if (np2arg.fullscreen) {          if (np2arg.fullscreen) {
Line 1310  int WINAPI WinMain(HINSTANCE hInstance,  Line 1420  int WINAPI WinMain(HINSTANCE hInstance, 
         juliet_prepare();          juliet_prepare();
 #endif  #endif
   
           mousemng_initialize();
         if (np2oscfg.MOUSE_SW) {                                                                                // ver0.30          if (np2oscfg.MOUSE_SW) {                                                                                // ver0.30
                 mouse_running(MOUSE_ON);                  mousemng_enable(MOUSEPROC_SYSTEM);
         }          }
   //      mousemng_enable(MOUSEPROC_WINUI);
   //      mousemng_enable(MOUSEPROC_BG);
   
         commng_initialize();          commng_initialize();
         sysmng_initialize();          sysmng_initialize();
Line 1321  int WINAPI WinMain(HINSTANCE hInstance,  Line 1434  int WINAPI WinMain(HINSTANCE hInstance, 
         pccore_init();          pccore_init();
         S98_init();          S98_init();
   
   
         sstpmsg_welcome();          sstpmsg_welcome();
   
 #ifdef OPENING_WAIT  #ifdef OPENING_WAIT
Line 1332  int WINAPI WinMain(HINSTANCE hInstance,  Line 1444  int WINAPI WinMain(HINSTANCE hInstance, 
   
         pccore_reset();          pccore_reset();
   
           if (!(scrnmode & SCRNMODE_FULLSCREEN)) {
                   if (np2oscfg.toolwin) {
                           toolwin_create();
                   }
                   if (np2oscfg.keydisp) {
                           keydisp_create();
                   }
           }
   
         np2opening = 0;          np2opening = 0;
   
         // れじうむ          // れじうむ
         if (np2oscfg.resume) {          if (np2oscfg.resume) {
                 int             id;                  int             id;
   
                 id = flagload(np2resume, "Resume", FALSE);                  id = flagload(np2resumeext, "Resume", FALSE);
                 if (id == IDYES) {                  if (id == IDYES) {
                         for (i=0; i<4; i++) np2arg.disk[i] = NULL;                          for (i=0; i<4; i++) np2arg.disk[i] = NULL;
                 }                  }
                 else if (id == IDCANCEL) {                  else if (id == IDCANCEL) {
                         DestroyWindow(hWndMain);                          DestroyWindow(hWndMain);
                         mouse_running(MOUSE_OFF);                          mousemng_disable(MOUSEPROC_WINUI);
                         S98_trash();                          S98_trash();
                         pccore_term();                          pccore_term();
                         sstp_destruct();                          sstp_destruct();
Line 1371  int WINAPI WinMain(HINSTANCE hInstance,  Line 1492  int WINAPI WinMain(HINSTANCE hInstance, 
                                 if (!GetMessage(&msg, NULL, 0, 0)) {                                  if (!GetMessage(&msg, NULL, 0, 0)) {
                                         break;                                          break;
                                 }                                  }
                                 if ((msg.message != WM_SYSKEYDOWN) &&                                  if ((msg.hwnd != hWndMain) ||
                                         (msg.message != WM_SYSKEYUP)) {                                          ((msg.message != WM_SYSKEYDOWN) &&
                                           (msg.message != WM_SYSKEYUP))) {
                                         TranslateMessage(&msg);                                          TranslateMessage(&msg);
                                 }                                  }
                                 DispatchMessage(&msg);                                  DispatchMessage(&msg);
Line 1380  int WINAPI WinMain(HINSTANCE hInstance,  Line 1502  int WINAPI WinMain(HINSTANCE hInstance, 
                         else {                          else {
                                 if (np2oscfg.NOWAIT) {                                  if (np2oscfg.NOWAIT) {
                                         joy_flash();                                          joy_flash();
                                         mouse_callback();                                          mousemng_callback();
                                         pccore_exec(framecnt == 0);                                          pccore_exec(framecnt == 0);
                                         dclock_callback();                                          dclock_callback();
                                         if (np2oscfg.DRAW_SKIP) {               // nowait frame skip                                          if (np2oscfg.DRAW_SKIP) {               // nowait frame skip
Line 1399  int WINAPI WinMain(HINSTANCE hInstance,  Line 1521  int WINAPI WinMain(HINSTANCE hInstance, 
                                 else if (np2oscfg.DRAW_SKIP) {          // frame skip                                  else if (np2oscfg.DRAW_SKIP) {          // frame skip
                                         if (framecnt < np2oscfg.DRAW_SKIP) {                                          if (framecnt < np2oscfg.DRAW_SKIP) {
                                                 joy_flash();                                                  joy_flash();
                                                 mouse_callback();                                                  mousemng_callback();
                                                 pccore_exec(framecnt == 0);                                                  pccore_exec(framecnt == 0);
                                                 dclock_callback();                                                  dclock_callback();
                                                 framecnt++;                                                  framecnt++;
Line 1412  int WINAPI WinMain(HINSTANCE hInstance,  Line 1534  int WINAPI WinMain(HINSTANCE hInstance, 
                                         if (!waitcnt) {                                          if (!waitcnt) {
                                                 UINT cnt;                                                  UINT cnt;
                                                 joy_flash();                                                  joy_flash();
                                                 mouse_callback();                                                  mousemng_callback();
                                                 pccore_exec(framecnt == 0);                                                  pccore_exec(framecnt == 0);
                                                 dclock_callback();                                                  dclock_callback();
                                                 framecnt++;                                                  framecnt++;
Line 1433  int WINAPI WinMain(HINSTANCE hInstance,  Line 1555  int WINAPI WinMain(HINSTANCE hInstance, 
                                                         else {                                                          else {
                                                                 timing_setcount(cnt - framecnt);                                                                  timing_setcount(cnt - framecnt);
                                                         }                                                          }
                                                         processwait(0);                                                          framereset(0);
                                                 }                                                  }
                                         }                                          }
                                         else {                                          else {
Line 1452  int WINAPI WinMain(HINSTANCE hInstance,  Line 1574  int WINAPI WinMain(HINSTANCE hInstance, 
                         DispatchMessage(&msg);                          DispatchMessage(&msg);
                 }                  }
         }          }
         toolwin_close();          toolwin_destroy();
   
         pccore_cfgupdate();          pccore_cfgupdate();
   
         mouse_running(MOUSE_OFF);          mousemng_disable(MOUSEPROC_WINUI);
         S98_trash();          S98_trash();
   
         if (np2oscfg.resume) {          if (np2oscfg.resume) {
                 flagsave(np2resume);                  flagsave(np2resumeext);
         }          }
         else {          else {
                 flagdelete(np2resume);                  flagdelete(np2resumeext);
         }          }
   
 #ifdef USE_ROMEO  #ifdef USE_ROMEO
Line 1483  int WINAPI WinMain(HINSTANCE hInstance,  Line 1605  int WINAPI WinMain(HINSTANCE hInstance, 
         if (sys_updates & (SYS_UPDATECFG | SYS_UPDATEOSCFG)) {          if (sys_updates & (SYS_UPDATECFG | SYS_UPDATEOSCFG)) {
                 initsave();                  initsave();
                 toolwin_writeini();                  toolwin_writeini();
                   keydisp_writeini();
         }          }
   
         TRACETERM();          TRACETERM();

Removed from v.1.19  
changed lines
  Added in v.1.27


RetroPC.NET-CVS <cvs@retropc.net>