mirror of https://github.com/PCSX2/pcsx2.git
pcsx2: Remove unused cheats and browser source files.
Unimplemented since pcsx2 moved to wxWidgets (0.9.x era).
This commit is contained in:
parent
4ad60d5de5
commit
19f153adf1
File diff suppressed because it is too large
Load Diff
|
@ -1,600 +0,0 @@
|
|||
/* PCSX2 - PS2 Emulator for PCs
|
||||
* Copyright (C) 2002-2010 PCSX2 Dev Team
|
||||
*
|
||||
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU Lesser General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with PCSX2.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#include "../Win32.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "PS2Edefs.h"
|
||||
#include "Memory.h"
|
||||
#include "IopMem.h"
|
||||
|
||||
#include "cheats.h"
|
||||
#include "../../patch.h"
|
||||
|
||||
class result
|
||||
{
|
||||
public:
|
||||
u32 address;
|
||||
result(u32 addr):
|
||||
address(addr)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
char *sizenames[4]={"char","short","word","double"};
|
||||
|
||||
char mtext[100];
|
||||
|
||||
HINSTANCE pInstance;
|
||||
|
||||
int TSelect;
|
||||
|
||||
bool Unsigned;
|
||||
int Source;
|
||||
int Compare;
|
||||
int Size;
|
||||
int CompareTo;
|
||||
|
||||
u64 CompareValue;
|
||||
|
||||
std::vector<result> results;
|
||||
|
||||
//int mresults;
|
||||
|
||||
bool FirstSearch;
|
||||
|
||||
bool FirstShow;
|
||||
|
||||
char olds[Ps2MemSize::MainRam];
|
||||
|
||||
char tn[100];
|
||||
char to[100];
|
||||
char tv[100];
|
||||
|
||||
u8 *mptr[2];
|
||||
|
||||
int msize[2]={0x02000000,0x00200000};
|
||||
|
||||
int lticks;
|
||||
|
||||
HWND hWndFinder;
|
||||
|
||||
LVCOLUMN cols[3]={
|
||||
{LVCF_TEXT|LVCF_WIDTH,0,60,"Address",0,0,0},
|
||||
{LVCF_TEXT|LVCF_WIDTH|LVCF_SUBITEM,0,60,"Old V",1,0,0},
|
||||
{LVCF_TEXT|LVCF_WIDTH|LVCF_SUBITEM,0,60,"New V",2,0,0}
|
||||
};
|
||||
|
||||
LVITEM item[3]={
|
||||
{LVIF_TEXT|LVIF_STATE,0,0,0,0,tn,0,0,0,0},
|
||||
{LVIF_TEXT|LVIF_STATE,0,1,0,0,to,0,0,0,0},
|
||||
{LVIF_TEXT|LVIF_STATE,0,2,0,0,tv,0,0,0,0}
|
||||
};
|
||||
|
||||
void DoEvents()
|
||||
{
|
||||
MSG msg;
|
||||
while(PeekMessage(&msg,0,0,0,PM_REMOVE)!=0)
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
|
||||
void UpdateStatus()
|
||||
{
|
||||
int nticks=GetTickCount();
|
||||
if((nticks-lticks)>250)
|
||||
{
|
||||
int nshown=ListView_GetItemCount(GetDlgItem(hWndFinder,IDC_RESULTS));
|
||||
sprintf(mtext,"%d matches found (%d shown).",results.size(),nshown);
|
||||
SetWindowText(GetDlgItem(hWndFinder,IDC_MATCHES),mtext);
|
||||
lticks=nticks;
|
||||
DoEvents();
|
||||
}
|
||||
}
|
||||
|
||||
void SearchReset()
|
||||
{
|
||||
memcpy(olds,mptr[Source],msize[Source]);
|
||||
FirstSearch=true;
|
||||
|
||||
results.clear();
|
||||
|
||||
}
|
||||
|
||||
int AddResult(u32 addr)
|
||||
{
|
||||
result nr=result(addr);
|
||||
results.push_back(nr);
|
||||
return 1;
|
||||
}
|
||||
|
||||
bool CompareAny(u64 val,u64 cto)
|
||||
{
|
||||
|
||||
if(Unsigned)
|
||||
{
|
||||
switch(Size)
|
||||
{
|
||||
case 0:
|
||||
val=(u8)val;
|
||||
cto=(u8)cto;
|
||||
break;
|
||||
case 1:
|
||||
val=(u16)val;
|
||||
cto=(u16)cto;
|
||||
break;
|
||||
case 2:
|
||||
val=(u32)val;
|
||||
cto=(u32)cto;
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
default:return false;
|
||||
}
|
||||
switch(Compare)
|
||||
{
|
||||
case 0: /* EQ */
|
||||
return val==cto;
|
||||
case 1: /* GT */
|
||||
return val> cto;
|
||||
case 2: /* LT */
|
||||
return val< cto;
|
||||
case 3: /* GE */
|
||||
return val>=cto;
|
||||
case 4: /* LE */
|
||||
return val<=cto;
|
||||
default:/* NE */
|
||||
return val!=cto;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(Size)
|
||||
{
|
||||
case 0:
|
||||
val=(s8)val;
|
||||
cto=(s8)cto;
|
||||
break;
|
||||
case 1:
|
||||
val=(s16)val;
|
||||
cto=(s16)cto;
|
||||
break;
|
||||
case 2:
|
||||
val=(s32)val;
|
||||
cto=(s32)cto;
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
default:return false;
|
||||
}
|
||||
switch(Compare)
|
||||
{
|
||||
case 0: /* EQ */
|
||||
return (s64)val==(s64)cto;
|
||||
case 1: /* GT */
|
||||
return (s64)val> (s64)cto;
|
||||
case 2: /* LT */
|
||||
return (s64)val< (s64)cto;
|
||||
case 3: /* GE */
|
||||
return (s64)val>=(s64)cto;
|
||||
case 4: /* LE */
|
||||
return (s64)val<=(s64)cto;
|
||||
default:/* NE */
|
||||
return (s64)val!=(s64)cto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SearchFirst()
|
||||
{
|
||||
int MSize=1<<Size;
|
||||
u64*cur=(u64*)mptr[Source];
|
||||
u64 cto=CompareValue;
|
||||
u64 val;
|
||||
u64 old;
|
||||
int addr;
|
||||
|
||||
addr=0;
|
||||
while((addr+MSize)<msize[Source])
|
||||
{
|
||||
(u64)val=0;
|
||||
memcpy(&val,cur,MSize); //update the buffer
|
||||
memcpy(&old,olds+addr,MSize); //
|
||||
if(CompareTo==0)
|
||||
{
|
||||
cto=old;
|
||||
}
|
||||
|
||||
if(CompareAny(val,cto)) {
|
||||
AddResult(addr);
|
||||
cur=(u64*)(((char*)cur)+MSize);
|
||||
addr+=MSize;
|
||||
UpdateStatus();
|
||||
}
|
||||
else {
|
||||
cur=(u64*)(((char*)cur)+1);
|
||||
addr+=1;
|
||||
}
|
||||
}
|
||||
FirstSearch=false;
|
||||
}
|
||||
|
||||
void SearchMore()
|
||||
{
|
||||
u32 i;
|
||||
int MSize=1<<Size;
|
||||
u64 cto=CompareValue;
|
||||
u64 val;
|
||||
u64 old;
|
||||
int addr;
|
||||
|
||||
std::vector<result> oldr=std::vector<result>(results);
|
||||
|
||||
results.clear();
|
||||
|
||||
for(i=0;i<oldr.size();i++)
|
||||
{
|
||||
val =0;
|
||||
addr=oldr[i].address;
|
||||
memcpy(&val,mptr[Source]+addr,MSize);
|
||||
memcpy(&old,olds+addr,MSize);
|
||||
if(CompareTo==0)
|
||||
{
|
||||
cto=old;
|
||||
}
|
||||
|
||||
if(CompareAny(val,cto)) {
|
||||
AddResult(addr);
|
||||
UpdateStatus();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#define INIT_CHECK(idc,value) SendMessage(GetDlgItem(hWnd,idc),BM_SETCHECK,value?BST_UNCHECKED:BST_CHECKED,0)
|
||||
#define HANDLE_CHECK(idc,hvar) case idc: hvar=hvar?0:1; SendMessage(GetDlgItem(hWnd,idc),BM_SETCHECK,(hvar==1)?BST_CHECKED:BST_UNCHECKED,0); break
|
||||
#define HANDLE_CHECKNB(idc,hvar)case idc: hvar=hvar?0:1; SendMessage(GetDlgItem(hWnd,idc),BM_SETCHECK,(hvar==1)?BST_CHECKED:BST_UNCHECKED,0)
|
||||
#define ENABLE_CONTROL(idc,value) EnableWindow(GetDlgItem(hWnd,idc),value)
|
||||
|
||||
#define HANDLE_GROUP_ITEM(idc) case idc:
|
||||
#define BEGIN_GROUP_HANDLER(first,hvar) TSelect=wmId;hvar=TSelect-first
|
||||
#define GROUP_SELECT(idc) SendMessage(GetDlgItem(hWnd,idc),BM_SETCHECK,(TSelect==idc)?BST_CHECKED:BST_UNCHECKED,0)
|
||||
#define GROUP_INIT(first,hvar) TSelect=first+hvar
|
||||
|
||||
BOOL CALLBACK AddCheatProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
|
||||
{
|
||||
int wmId,wmEvent,i,mresults;
|
||||
static HWND hParent;
|
||||
UINT state;
|
||||
u64 value;
|
||||
static int Selected;
|
||||
|
||||
switch(uMsg)
|
||||
{
|
||||
|
||||
case WM_PAINT:
|
||||
INIT_CHECK(IDC_UNSIGNED,Unsigned);
|
||||
return FALSE;
|
||||
case WM_INITDIALOG:
|
||||
hParent=(HWND)lParam;
|
||||
|
||||
mresults=ListView_GetItemCount(GetDlgItem(hParent,IDC_RESULTS));
|
||||
for(i=0;i<mresults;i++)
|
||||
{
|
||||
state=ListView_GetItemState(GetDlgItem(hParent,IDC_RESULTS),i,LVIS_SELECTED);
|
||||
if(state==LVIS_SELECTED)
|
||||
{
|
||||
Selected=i;
|
||||
ListView_GetItemText(GetDlgItem(hParent,IDC_RESULTS),i,0,tn,100);
|
||||
ListView_GetItemText(GetDlgItem(hParent,IDC_RESULTS),i,0,tv,100);
|
||||
|
||||
sprintf(to,"patch=0,%s,%s,%s,<value>",
|
||||
Source?"IOP":"EE",
|
||||
tn,
|
||||
sizenames[Size]);
|
||||
|
||||
SetWindowText(GetDlgItem(hWnd,IDC_ADDR),tn);
|
||||
SetWindowText(GetDlgItem(hWnd,IDC_VALUE),tv);
|
||||
SetWindowText(GetDlgItem(hWnd,IDC_NAME),to);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
wmId = LOWORD(wParam);
|
||||
wmEvent = HIWORD(wParam);
|
||||
// Parse the menu selections:
|
||||
switch (wmId)
|
||||
{
|
||||
case IDCANCEL:
|
||||
EndDialog(hWnd,1);
|
||||
break;
|
||||
|
||||
case IDOK:
|
||||
GetWindowText(GetDlgItem(hWnd,IDC_VALUE),tv,100);
|
||||
value=_atoi64(tv);
|
||||
AddPatch(1,Source+1,results[Selected].address,Size+1,value);
|
||||
|
||||
EndDialog(hWnd,1);
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void AddCheat(HINSTANCE hInstance, HWND hParent)
|
||||
{
|
||||
INT_PTR retret=DialogBoxParam(hInstance,MAKEINTRESOURCE(IDD_ADD),hParent,(DLGPROC)AddCheatProc,(LPARAM)hParent);
|
||||
}
|
||||
|
||||
void AddResults(HWND hWnd)
|
||||
{
|
||||
int i,mresults;
|
||||
u64 sizemask=(1<<(1<<Size))-1;
|
||||
|
||||
mresults=results.size();
|
||||
if(mresults>32768) {
|
||||
mresults=32768;
|
||||
}
|
||||
|
||||
ListView_DeleteAllItems(GetDlgItem(hWnd,IDC_RESULTS));
|
||||
|
||||
for(i=0;i<mresults;i++)
|
||||
{
|
||||
u64 o=0;
|
||||
memcpy(&o,olds+results[i].address,(1<<Size));
|
||||
|
||||
u64 v=*(u64*)(mptr[Source]+results[i].address);
|
||||
|
||||
sprintf(tn,"%08x",results[i].address);
|
||||
|
||||
if(Unsigned)
|
||||
{
|
||||
sprintf(to,"%I64u",(u64)o&sizemask);
|
||||
sprintf(tv,"%I64u",(u64)v&sizemask);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(Size)
|
||||
{
|
||||
case 0:
|
||||
o=(s64)(s8)o;
|
||||
v=(s64)(s8)v;
|
||||
break;
|
||||
case 1:
|
||||
o=(s64)(s16)o;
|
||||
v=(s64)(s16)v;
|
||||
break;
|
||||
case 2:
|
||||
o=(s64)(s32)o;
|
||||
v=(s64)(s32)v;
|
||||
break;
|
||||
}
|
||||
sprintf(to,"%I64d",(s64)o);
|
||||
sprintf(tv,"%I64d",(s64)v);
|
||||
}
|
||||
|
||||
item[0].iItem=i;
|
||||
item[1].iItem=i;
|
||||
item[2].iItem=i;
|
||||
|
||||
//Listview Sample Data
|
||||
ListView_InsertItem(GetDlgItem(hWnd,IDC_RESULTS),&item[0]);
|
||||
ListView_SetItem(GetDlgItem(hWnd,IDC_RESULTS),&item[1]);
|
||||
ListView_SetItem(GetDlgItem(hWnd,IDC_RESULTS),&item[2]);
|
||||
UpdateStatus();
|
||||
}
|
||||
|
||||
if(results.size()>32768) {
|
||||
sprintf(mtext,"%d matches found (32768 shown).",results.size());
|
||||
SetWindowText(GetDlgItem(hWnd,IDC_MATCHES),mtext);
|
||||
}
|
||||
else {
|
||||
sprintf(mtext,"%d matches found.",results.size());
|
||||
SetWindowText(GetDlgItem(hWnd,IDC_MATCHES),mtext);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
BOOL CALLBACK FinderProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
|
||||
{
|
||||
int wmId,wmEvent;
|
||||
LRESULT lStyle;
|
||||
|
||||
switch(uMsg)
|
||||
{
|
||||
|
||||
case WM_PAINT:
|
||||
INIT_CHECK(IDC_UNSIGNED,Unsigned);
|
||||
return FALSE;
|
||||
|
||||
case WM_INITDIALOG:
|
||||
mptr[0]=eeMem->Main;
|
||||
mptr[1]=iopMem->Main;
|
||||
|
||||
hWndFinder=hWnd;
|
||||
|
||||
ENABLE_CONTROL(IDC_VALUE,false);
|
||||
|
||||
GROUP_INIT(IDC_EE,Source);
|
||||
GROUP_SELECT(IDC_EE);
|
||||
GROUP_SELECT(IDC_IOP);
|
||||
|
||||
GROUP_INIT(IDC_OLD,CompareTo);
|
||||
GROUP_SELECT(IDC_OLD);
|
||||
GROUP_SELECT(IDC_SET);
|
||||
ENABLE_CONTROL(IDC_VALUE,(CompareTo!=0));
|
||||
|
||||
GROUP_INIT(IDC_EQ,Compare);
|
||||
GROUP_SELECT(IDC_EQ);
|
||||
GROUP_SELECT(IDC_GT);
|
||||
GROUP_SELECT(IDC_LT);
|
||||
GROUP_SELECT(IDC_GE);
|
||||
GROUP_SELECT(IDC_LE);
|
||||
GROUP_SELECT(IDC_NE);
|
||||
|
||||
GROUP_INIT(IDC_8B,Size);
|
||||
GROUP_SELECT(IDC_8B);
|
||||
GROUP_SELECT(IDC_16B);
|
||||
GROUP_SELECT(IDC_32B);
|
||||
GROUP_SELECT(IDC_64B);
|
||||
|
||||
INIT_CHECK(IDC_UNSIGNED,Unsigned);
|
||||
|
||||
//Listview Init
|
||||
lStyle = SendMessage(GetDlgItem(hWnd,IDC_RESULTS), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
|
||||
SendMessage(GetDlgItem(hWnd,IDC_RESULTS), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, lStyle | LVS_EX_FULLROWSELECT);
|
||||
|
||||
ListView_InsertColumn(GetDlgItem(hWnd,IDC_RESULTS),0,&cols[0]);
|
||||
ListView_InsertColumn(GetDlgItem(hWnd,IDC_RESULTS),1,&cols[1]);
|
||||
ListView_InsertColumn(GetDlgItem(hWnd,IDC_RESULTS),2,&cols[2]);
|
||||
|
||||
if(FirstShow)
|
||||
{
|
||||
SearchReset();
|
||||
SetWindowText(GetDlgItem(hWnd,IDC_MATCHES),"ready to search.");
|
||||
FirstShow=false;
|
||||
}
|
||||
else {
|
||||
AddResults(hWnd);
|
||||
}
|
||||
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
wmId = LOWORD(wParam);
|
||||
wmEvent = HIWORD(wParam);
|
||||
// Parse the menu selections:
|
||||
switch (wmId)
|
||||
{
|
||||
case IDCANCEL:
|
||||
EndDialog(hWnd,1);
|
||||
break;
|
||||
|
||||
case IDC_ADD:
|
||||
AddCheat(pInstance,hWnd);
|
||||
break;
|
||||
|
||||
case IDC_RESET:
|
||||
ENABLE_CONTROL(IDC_EE, true);
|
||||
ENABLE_CONTROL(IDC_IOP, true);
|
||||
ENABLE_CONTROL(IDC_STATUS, true);
|
||||
ENABLE_CONTROL(IDC_UNSIGNED,true);
|
||||
ENABLE_CONTROL(IDC_8B, true);
|
||||
ENABLE_CONTROL(IDC_16B, true);
|
||||
ENABLE_CONTROL(IDC_32B, true);
|
||||
ENABLE_CONTROL(IDC_64B, true);
|
||||
SetWindowText(GetDlgItem(hWnd,IDC_MATCHES),"ready to search.");
|
||||
SearchReset();
|
||||
ListView_DeleteAllItems(GetDlgItem(hWnd,IDC_RESULTS));
|
||||
break;
|
||||
|
||||
case IDC_SEARCH:
|
||||
GetWindowText(GetDlgItem(hWnd,IDC_VALUE),mtext,100);
|
||||
CompareValue=atoi(mtext);
|
||||
ENABLE_CONTROL(IDC_SEARCH, false);
|
||||
ENABLE_CONTROL(IDC_RESET, false);
|
||||
ENABLE_CONTROL(IDC_ADD, false);
|
||||
ENABLE_CONTROL(IDCANCEL, false);
|
||||
if(FirstSearch) {
|
||||
ENABLE_CONTROL(IDC_EE, false);
|
||||
ENABLE_CONTROL(IDC_IOP, false);
|
||||
ENABLE_CONTROL(IDC_STATUS, false);
|
||||
ENABLE_CONTROL(IDC_UNSIGNED,false);
|
||||
ENABLE_CONTROL(IDC_8B, false);
|
||||
ENABLE_CONTROL(IDC_16B, false);
|
||||
ENABLE_CONTROL(IDC_32B, false);
|
||||
ENABLE_CONTROL(IDC_64B, false);
|
||||
SearchFirst();
|
||||
}
|
||||
else SearchMore();
|
||||
|
||||
AddResults(hWnd);
|
||||
|
||||
memcpy(olds,mptr[Source],msize[Source]);
|
||||
|
||||
ENABLE_CONTROL(IDC_SEARCH, true);
|
||||
ENABLE_CONTROL(IDC_RESET, true);
|
||||
ENABLE_CONTROL(IDC_ADD, true);
|
||||
ENABLE_CONTROL(IDCANCEL, true);
|
||||
|
||||
break;
|
||||
|
||||
HANDLE_CHECK(IDC_UNSIGNED,Unsigned);
|
||||
|
||||
HANDLE_GROUP_ITEM(IDC_EE);
|
||||
HANDLE_GROUP_ITEM(IDC_IOP);
|
||||
BEGIN_GROUP_HANDLER(IDC_EE,Source);
|
||||
GROUP_SELECT(IDC_EE);
|
||||
GROUP_SELECT(IDC_IOP);
|
||||
break;
|
||||
|
||||
HANDLE_GROUP_ITEM(IDC_OLD);
|
||||
HANDLE_GROUP_ITEM(IDC_SET);
|
||||
BEGIN_GROUP_HANDLER(IDC_OLD,CompareTo);
|
||||
GROUP_SELECT(IDC_OLD);
|
||||
GROUP_SELECT(IDC_SET);
|
||||
ENABLE_CONTROL(IDC_VALUE,(CompareTo!=0));
|
||||
break;
|
||||
|
||||
HANDLE_GROUP_ITEM(IDC_EQ);
|
||||
HANDLE_GROUP_ITEM(IDC_GT);
|
||||
HANDLE_GROUP_ITEM(IDC_LT);
|
||||
HANDLE_GROUP_ITEM(IDC_GE);
|
||||
HANDLE_GROUP_ITEM(IDC_LE);
|
||||
HANDLE_GROUP_ITEM(IDC_NE);
|
||||
BEGIN_GROUP_HANDLER(IDC_EQ,Compare);
|
||||
GROUP_SELECT(IDC_EQ);
|
||||
GROUP_SELECT(IDC_GT);
|
||||
GROUP_SELECT(IDC_LT);
|
||||
GROUP_SELECT(IDC_GE);
|
||||
GROUP_SELECT(IDC_LE);
|
||||
GROUP_SELECT(IDC_NE);
|
||||
break;
|
||||
|
||||
HANDLE_GROUP_ITEM(IDC_8B);
|
||||
HANDLE_GROUP_ITEM(IDC_16B);
|
||||
HANDLE_GROUP_ITEM(IDC_32B);
|
||||
HANDLE_GROUP_ITEM(IDC_64B);
|
||||
BEGIN_GROUP_HANDLER(IDC_8B,Size);
|
||||
GROUP_SELECT(IDC_8B);
|
||||
GROUP_SELECT(IDC_16B);
|
||||
GROUP_SELECT(IDC_32B);
|
||||
GROUP_SELECT(IDC_64B);
|
||||
break;
|
||||
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void ShowFinder(HINSTANCE hInstance, HWND hParent)
|
||||
{
|
||||
INT_PTR ret=DialogBoxParam(hInstance,MAKEINTRESOURCE(IDD_FINDER),hParent,(DLGPROC)FinderProc,1);
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
/* PCSX2 - PS2 Emulator for PCs
|
||||
* Copyright (C) 2002-2010 PCSX2 Dev Team
|
||||
*
|
||||
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU Lesser General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with PCSX2.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef CHEATS_H_INCLUDED
|
||||
#define CHEATS_H_INCLUDED
|
||||
|
||||
extern HINSTANCE pInstance;
|
||||
extern bool FirstShow;
|
||||
|
||||
extern void AddCheat(HINSTANCE hInstance, HWND hParent);
|
||||
extern void ShowFinder(HINSTANCE hInstance, HWND hParent);
|
||||
extern void ShowCheats(HINSTANCE hInstance, HWND hParent);
|
||||
|
||||
#endif//CHEATS_H_INCLUDED
|
Loading…
Reference in New Issue