gpfce patch part2
[fceu.git] / drivers / win / cheat.c
diff --git a/drivers/win/cheat.c b/drivers/win/cheat.c
deleted file mode 100644 (file)
index 3b53c2f..0000000
+++ /dev/null
@@ -1,471 +0,0 @@
-/* FCE Ultra - NES/Famicom Emulator\r
- *\r
- * Copyright notice for this file:\r
- *  Copyright (C) 2002 Ben Parnell\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
- */\r
-\r
-#include "common.h"\r
-\r
-#include "cheat.h"\r
-\r
-static int selcheat;\r
-static int scheatmethod=0;\r
-static uint8 cheatval1=0;\r
-static uint8 cheatval2=0;\r
-\r
-static void ConfigAddCheat(HWND wnd);\r
-\r
-\r
-static uint16 StrToU16(char *s)\r
-{\r
- unsigned int ret=0;\r
- sscanf(s,"%4x",&ret);\r
- return ret;\r
-}\r
-\r
-static uint8 StrToU8(char *s)\r
-{\r
- unsigned int ret=0;\r
- sscanf(s,"%d",&ret);\r
- return ret;\r
-}\r
-\r
-\r
-/* Need to be careful where these functions are used. */\r
-static char *U16ToStr(uint16 a)\r
-{\r
- static char TempArray[16];\r
- sprintf(TempArray,"%04X",a);\r
- return TempArray;\r
-}\r
-\r
-static char *U8ToStr(uint8 a)\r
-{\r
- static char TempArray[16];\r
- sprintf(TempArray,"%03d",a);\r
- return TempArray;\r
-}\r
-\r
-\r
-static HWND RedoCheatsWND;\r
-static int RedoCheatsCallB(char *name, uint32 a, uint8 v, int s)\r
-{\r
- SendDlgItemMessage(RedoCheatsWND,101,LB_ADDSTRING,0,(LPARAM)(LPSTR)name);\r
- return(1);\r
-}\r
-\r
-static void RedoCheatsLB(HWND hwndDlg)\r
-{\r
- SendDlgItemMessage(hwndDlg,101,LB_RESETCONTENT,0,0);\r
- RedoCheatsWND=hwndDlg;\r
- FCEUI_ListCheats(RedoCheatsCallB);\r
-}\r
-\r
-\r
-BOOL CALLBACK CheatsConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)\r
-{\r
-  switch(uMsg)\r
-  {\r
-   case WM_INITDIALOG:                  \r
-                RedoCheatsLB(hwndDlg);\r
-                break;\r
-   case WM_CLOSE:\r
-   case WM_QUIT: goto gornk;\r
-   case WM_COMMAND:\r
-                switch(HIWORD(wParam))\r
-                {\r
-                 case BN_CLICKED:\r
-                        if(selcheat>=0)\r
-                        {\r
-                         if(LOWORD(wParam)==107)\r
-                          FCEUI_SetCheat(selcheat,0,-1,-1,1);\r
-                         else if(LOWORD(wParam)==108)\r
-                          FCEUI_SetCheat(selcheat,0,-1,-1,0);\r
-                        }\r
-                        break;\r
-                 case EN_KILLFOCUS:\r
-                        if(selcheat>=0)\r
-                        {\r
-                         char TempArray[256];\r
-                         int32 t;\r
-\r
-                         GetDlgItemText(hwndDlg,LOWORD(wParam),TempArray,256);\r
-                         switch(LOWORD(wParam))\r
-                         {\r
-                          case 102:FCEUI_SetCheat(selcheat,TempArray,-1,-1,-1);\r
-                                   SendDlgItemMessage(hwndDlg,101,LB_INSERTSTRING,selcheat,(LPARAM)(LPCTSTR)TempArray);\r
-                                   SendDlgItemMessage(hwndDlg,101,LB_DELETESTRING,selcheat+1,0);\r
-                                   SendDlgItemMessage(hwndDlg,101,LB_SETCURSEL,selcheat,0);\r
-                                   break;\r
-                          case 103:t=StrToU16(TempArray);\r
-                                   FCEUI_SetCheat(selcheat,0,t,-1,-1);\r
-                                   break;\r
-                          case 104:t=StrToU8(TempArray);\r
-                                   FCEUI_SetCheat(selcheat,0,-1,t,-1);\r
-                                   break;\r
-                         }\r
-                        }\r
-                        break;\r
-                }\r
-\r
-                switch(LOWORD(wParam))\r
-                {\r
-                 case 101:\r
-                        if(HIWORD(wParam)==LBN_SELCHANGE)\r
-                        {\r
-                         char *s;\r
-                         uint32 a;\r
-                         uint8 b;\r
-                        int status;\r
-\r
-                         selcheat=SendDlgItemMessage(hwndDlg,101,LB_GETCURSEL,0,(LPARAM)(LPSTR)0);\r
-                         if(selcheat<0) break;\r
-\r
-                         FCEUI_GetCheat(selcheat,&s,&a,&b,&status);\r
-                         SetDlgItemText(hwndDlg,102,(LPTSTR)s);\r
-                         SetDlgItemText(hwndDlg,103,(LPTSTR)U16ToStr(a));\r
-                         SetDlgItemText(hwndDlg,104,(LPTSTR)U8ToStr(b));\r
-\r
-                         CheckRadioButton(hwndDlg,107,108,status?107:108);\r
-                        }\r
-                        break;\r
-                }\r
-\r
-                if(!(wParam>>16))\r
-                switch(wParam&0xFFFF)\r
-                {\r
-                 case 106:\r
-                          if(selcheat>=0)\r
-                          {\r
-                           FCEUI_DelCheat(selcheat);\r
-                           SendDlgItemMessage(hwndDlg,101,LB_DELETESTRING,selcheat,0);\r
-                           selcheat=-1;\r
-                           SetDlgItemText(hwndDlg,102,(LPTSTR)"");\r
-                           SetDlgItemText(hwndDlg,103,(LPTSTR)"");\r
-                           SetDlgItemText(hwndDlg,104,(LPTSTR)"");\r
-                           CheckRadioButton(hwndDlg,107,108,0); // Is this correct?\r
-                          }\r
-                          break;\r
-                 case 105:\r
-                          ConfigAddCheat(hwndDlg);\r
-                          RedoCheatsLB(hwndDlg);\r
-                          break;\r
-                 case 1:\r
-                        gornk:\r
-                        EndDialog(hwndDlg,0);\r
-                        break;\r
-                }\r
-              }\r
-  return 0;\r
-}\r
-\r
-\r
-void ConfigCheats(HWND hParent)\r
-{\r
- if(!GI)\r
- {\r
-  FCEUD_PrintError("You must have a game loaded before you can manipulate cheats.");\r
-  return;\r
- }\r
-\r
- if(GI->type==GIT_NSF)\r
- {\r
-  FCEUD_PrintError("Sorry, you can't cheat with NSFs.");\r
-  return;\r
- }\r
-\r
- selcheat=-1;\r
- DialogBox(fceu_hInstance,"CHEATS",hParent,CheatsConCallB);\r
-}\r
-\r
-\r
-\r
-\r
-\r
-\r
-HWND cfcallbw;\r
-\r
-int cfcallb(uint32 a, uint8 last, uint8 current)\r
-{\r
- char temp[16];\r
-\r
- sprintf(temp,"%04X:%03d:%03d",(unsigned int)a,last,current);\r
- SendDlgItemMessage(cfcallbw,108,LB_ADDSTRING,0,(LPARAM)(LPSTR)temp);\r
- return(1);\r
-}\r
-\r
-static int scrollindex;\r
-static int scrollnum;\r
-static int scrollmax;\r
-\r
-int cfcallbinsert(uint32 a, uint8 last, uint8 current)\r
-{\r
- char temp[16];\r
-\r
- sprintf(temp,"%04X:%03d:%03d",(unsigned int)a,last,current);\r
- SendDlgItemMessage(cfcallbw,108,LB_INSERTSTRING,13,(LPARAM)(LPSTR)temp);\r
- return(1);\r
-}\r
-\r
-int cfcallbinsertt(uint32 a, uint8 last, uint8 current)\r
-{\r
- char temp[16];\r
-\r
- sprintf(temp,"%04X:%03d:%03d",(unsigned int)a,last,current);\r
- SendDlgItemMessage(cfcallbw,108,LB_INSERTSTRING,0,(LPARAM)(LPSTR)temp);\r
- return(1);\r
-}\r
-\r
-\r
-void AddTheThing(HWND hwndDlg, char *s, int a, int v)\r
-{\r
- if(FCEUI_AddCheat(s,a,v))\r
-  MessageBox(hwndDlg,"Cheat Added","Cheat Added",MB_OK);\r
-}\r
-\r
-\r
-static void DoGet(void)\r
-{\r
- int n=FCEUI_CheatSearchGetCount();\r
- int t;\r
- scrollnum=n;\r
- scrollindex=-32768;\r
-\r
- SendDlgItemMessage(cfcallbw,108,LB_RESETCONTENT,0,0);\r
- FCEUI_CheatSearchGetRange(0,13,cfcallb);\r
-\r
- t=-32768+n-1-13;\r
- if(t<-32768)\r
-  t=-32768;\r
- scrollmax=t;\r
- SendDlgItemMessage(cfcallbw,120,SBM_SETRANGE,-32768,t);\r
- SendDlgItemMessage(cfcallbw,120,SBM_SETPOS,-32768,1);\r
-}\r
-\r
-\r
-BOOL CALLBACK AddCheatCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)\r
-{\r
-  static int lbfocus;\r
-  static HWND hwndLB;\r
-  cfcallbw=hwndDlg;\r
-\r
-\r
-  switch(uMsg)\r
-  {                                                                               \r
-   case WM_VSCROLL:\r
-                if(scrollnum>13)\r
-                {\r
-                 switch((int)LOWORD(wParam))\r
-                 {\r
-                  case SB_TOP:\r
-                        scrollindex=-32768;\r
-                        SendDlgItemMessage(hwndDlg,120,SBM_SETPOS,scrollindex,1);\r
-                        SendDlgItemMessage(hwndDlg,108,LB_RESETCONTENT,13,0);\r
-                        FCEUI_CheatSearchGetRange(scrollindex+32768,scrollindex+32768+13,cfcallb);\r
-                        break;\r
-                  case SB_BOTTOM:\r
-                        scrollindex=scrollmax;\r
-                        SendDlgItemMessage(hwndDlg,120,SBM_SETPOS,scrollindex,1);\r
-                        SendDlgItemMessage(hwndDlg,108,LB_RESETCONTENT,13,0);\r
-                        FCEUI_CheatSearchGetRange(scrollindex+32768,scrollindex+32768+13,cfcallb);\r
-                        break;\r
-                  case SB_LINEUP:\r
-                        if(scrollindex>-32768)\r
-                        {\r
-                         scrollindex--;\r
-                         SendDlgItemMessage(hwndDlg,120,SBM_SETPOS,scrollindex,1);\r
-                         SendDlgItemMessage(hwndDlg,108,LB_DELETESTRING,13,0);\r
-                         FCEUI_CheatSearchGetRange(scrollindex+32768,scrollindex+32768,cfcallbinsertt);\r
-                        }\r
-                        break;\r
-\r
-                  case SB_PAGEUP:\r
-                        scrollindex-=14;\r
-                        if(scrollindex<-32768) scrollindex=-32768;\r
-                        SendDlgItemMessage(hwndDlg,120,SBM_SETPOS,scrollindex,1);\r
-                        SendDlgItemMessage(hwndDlg,108,LB_RESETCONTENT,13,0);\r
-                        FCEUI_CheatSearchGetRange(scrollindex+32768,scrollindex+32768+13,cfcallb);\r
-                        break;\r
-\r
-                  case SB_LINEDOWN:\r
-                        if(scrollindex<scrollmax)\r
-                        {\r
-                         scrollindex++;\r
-                         SendDlgItemMessage(hwndDlg,120,SBM_SETPOS,scrollindex,1);\r
-                         SendDlgItemMessage(hwndDlg,108,LB_DELETESTRING,0,0);\r
-                         FCEUI_CheatSearchGetRange(scrollindex+32768+13,scrollindex+32768+13,cfcallbinsert);\r
-                        }\r
-                        break;\r
-\r
-                  case SB_PAGEDOWN:\r
-                        scrollindex+=14;\r
-                        if(scrollindex>scrollmax)\r
-                         scrollindex=scrollmax;\r
-                        SendDlgItemMessage(hwndDlg,120,SBM_SETPOS,scrollindex,1);\r
-                        SendDlgItemMessage(hwndDlg,108,LB_RESETCONTENT,0,0);\r
-                        FCEUI_CheatSearchGetRange(scrollindex+32768,scrollindex+32768+13,cfcallb);\r
-                        break;\r
-\r
-                  case SB_THUMBPOSITION:\r
-                  case SB_THUMBTRACK:\r
-                        scrollindex=(short int)HIWORD(wParam);\r
-                        SendDlgItemMessage(hwndDlg,120,SBM_SETPOS,scrollindex,1);\r
-                        SendDlgItemMessage(hwndDlg,108,LB_RESETCONTENT,0,0);\r
-                        FCEUI_CheatSearchGetRange(32768+scrollindex,32768+scrollindex+13,cfcallb);\r
-                        break;\r
-                 }\r
-\r
-                }                \r
-                break;\r
-\r
-   case WM_INITDIALOG:\r
-                SetDlgItemText(hwndDlg,110,(LPTSTR)U8ToStr(cheatval1));\r
-                SetDlgItemText(hwndDlg,111,(LPTSTR)U8ToStr(cheatval2));\r
-                DoGet();\r
-                CheckRadioButton(hwndDlg,115,118,scheatmethod+115);\r
-                lbfocus=0;\r
-                hwndLB=0;\r
-                break;\r
-\r
-   case WM_VKEYTOITEM:\r
-                if(lbfocus)\r
-                {\r
-                 int real;\r
-\r
-                 real=SendDlgItemMessage(hwndDlg,108,LB_GETCURSEL,0,(LPARAM)(LPSTR)0);\r
-                 switch((int)LOWORD(wParam))\r
-                 {\r
-                  case VK_UP: \r
-                              /* mmmm....recursive goodness */\r
-                              if(!real)\r
-                               SendMessage(hwndDlg,WM_VSCROLL,SB_LINEUP,0);\r
-                              return(-1);\r
-                              break;\r
-                  case VK_DOWN:\r
-                              if(real==13)\r
-                               SendMessage(hwndDlg,WM_VSCROLL,SB_LINEDOWN,0);\r
-                              return(-1);\r
-                              break;\r
-                  case VK_PRIOR:\r
-                              SendMessage(hwndDlg,WM_VSCROLL,SB_PAGEUP,0);\r
-                              break;\r
-                  case VK_NEXT:\r
-                              SendMessage(hwndDlg,WM_VSCROLL,SB_PAGEDOWN,0);\r
-                              break;\r
-                  case VK_HOME:\r
-                              SendMessage(hwndDlg,WM_VSCROLL,SB_TOP,0);\r
-                              break;\r
-                  case VK_END:\r
-                              SendMessage(hwndDlg,WM_VSCROLL,SB_BOTTOM,0);\r
-                              break;\r
-                 }\r
-                 return(-2);\r
-                }\r
-                break;\r
-\r
-   case WM_CLOSE:\r
-   case WM_QUIT: goto gornk;\r
-   case WM_COMMAND:\r
-                switch(LOWORD(wParam))\r
-                {\r
-                 case 108:\r
-                        switch(HIWORD(wParam))\r
-                        {\r
-                         case LBN_SELCHANGE:\r
-                                 {\r
-                                  char TempArray[32];\r
-                                  SendDlgItemMessage(hwndDlg,108,LB_GETTEXT,SendDlgItemMessage(hwndDlg,108,LB_GETCURSEL,0,(LPARAM)(LPSTR)0),(LPARAM)(LPCTSTR)TempArray);\r
-                                  TempArray[4]=0;\r
-                                  SetDlgItemText(hwndDlg,201,(LPTSTR)TempArray);                                 \r
-                                 }\r
-                                 break;\r
-                         case LBN_SETFOCUS:\r
-                                 lbfocus=1;\r
-                                 break;\r
-                         case LBN_KILLFOCUS:\r
-                                 lbfocus=0;\r
-                                 break;\r
-                        }\r
-                        break;\r
-                }\r
-\r
-                switch(HIWORD(wParam))\r
-                {\r
-                 case BN_CLICKED:\r
-                        if(LOWORD(wParam)>=115 && LOWORD(wParam)<=118)\r
-                         scheatmethod=LOWORD(wParam)-115;\r
-                        break;\r
-                 case EN_CHANGE:\r
-                        {\r
-                         char TempArray[256];\r
-                         GetDlgItemText(hwndDlg,LOWORD(wParam),TempArray,256);\r
-                         switch(LOWORD(wParam))\r
-                         {\r
-                          case 110:cheatval1=StrToU8(TempArray);break;\r
-                          case 111:cheatval2=StrToU8(TempArray);break;\r
-                         }\r
-                        }\r
-                        break;\r
-                }\r
-\r
-\r
-                if(!(wParam>>16))\r
-                switch(wParam&0xFFFF)\r
-                {\r
-                 case 112:\r
-                          FCEUI_CheatSearchBegin();\r
-                          DoGet();\r
-                          break;\r
-                 case 113:\r
-                          FCEUI_CheatSearchEnd(scheatmethod,cheatval1,cheatval2);\r
-                          DoGet();\r
-                          break;\r
-                 case 114:\r
-                          FCEUI_CheatSearchSetCurrentAsOriginal();\r
-                          DoGet();\r
-                          break;\r
-                 case 107:\r
-                          FCEUI_CheatSearchShowExcluded();\r
-                          DoGet();\r
-                          break;\r
-                 case 105:\r
-                          {\r
-                           int a,v;\r
-                           char temp[256];\r
-\r
-                           GetDlgItemText(hwndDlg,201,temp,4+1);\r
-                           a=StrToU16(temp);\r
-                           GetDlgItemText(hwndDlg,202,temp,3+1);\r
-                           v=StrToU8(temp);\r
-\r
-                           GetDlgItemText(hwndDlg,200,temp,256);\r
-                           AddTheThing(hwndDlg,temp,a,v);\r
-                          }\r
-                          break;\r
-                 case 106:\r
-                        gornk:\r
-                        EndDialog(hwndDlg,0);\r
-                        break;\r
-                }\r
-              }\r
-  return 0;\r
-}\r
-\r
-static void ConfigAddCheat(HWND wnd)\r
-{\r
- DialogBox(fceu_hInstance,"ADDCHEAT",wnd,AddCheatCallB);\r
-}\r