[Project64] Split cheat class between UI and code
This commit is contained in:
parent
45a8598290
commit
9f87dbf30d
File diff suppressed because it is too large
Load Diff
|
@ -13,79 +13,36 @@
|
||||||
class CCheats
|
class CCheats
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CCheats ( const CN64Rom * Rom = NULL );
|
CCheats();
|
||||||
~CCheats(void);
|
~CCheats(void);
|
||||||
|
|
||||||
bool IsCheatMessage ( MSG * msg );
|
enum
|
||||||
|
{
|
||||||
|
MaxCheats = 50000,
|
||||||
|
MaxGSEntries = 100,
|
||||||
|
};
|
||||||
|
|
||||||
void ApplyCheats(CMipsMemory * MMU);
|
void ApplyCheats(CMipsMemory * MMU);
|
||||||
void ApplyGSButton(CMipsMemory * MMU);
|
void ApplyGSButton(CMipsMemory * MMU);
|
||||||
void LoadCheats(bool DisableSelected, CPlugins * Plugins);
|
void LoadCheats(bool DisableSelected, CPlugins * Plugins);
|
||||||
void SelectCheats ( HWND hParent, bool BlockExecution );
|
|
||||||
inline bool CheatsSlectionChanged ( void ) const { return m_CheatSelectionChanged; }
|
static bool IsValid16BitCode(const char * CheatString);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct GAMESHARK_CODE {
|
struct GAMESHARK_CODE
|
||||||
DWORD Command;
|
{
|
||||||
WORD Value;
|
uint32_t Command;
|
||||||
|
uint16_t Value;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef std::vector<GAMESHARK_CODE> CODES;
|
typedef std::vector<GAMESHARK_CODE> CODES;
|
||||||
typedef std::vector<CODES> CODES_ARRAY;
|
typedef std::vector<CODES> CODES_ARRAY;
|
||||||
|
|
||||||
enum { MaxCheats = 50000 };
|
|
||||||
void LoadPermCheats(CPlugins * Plugins);
|
void LoadPermCheats(CPlugins * Plugins);
|
||||||
|
|
||||||
static int CALLBACK CheatAddProc ( HWND hDlg,DWORD uMsg,DWORD wParam, DWORD lParam );
|
|
||||||
static int CALLBACK CheatListProc ( HWND hDlg,DWORD uMsg,DWORD wParam, DWORD lParam );
|
|
||||||
static int CALLBACK ManageCheatsProc ( HWND hDlg,DWORD uMsg,DWORD wParam, DWORD lParam );
|
|
||||||
static int CALLBACK CheatsCodeExProc ( HWND hDlg, DWORD uMsg, DWORD wParam, DWORD lParam);
|
|
||||||
static int CALLBACK CheatsCodeQuantProc ( HWND hDlg, DWORD uMsg, DWORD wParam, DWORD lParam);
|
|
||||||
|
|
||||||
//information about the gui for selecting cheats
|
|
||||||
HWND m_Window, m_hSelectCheat, m_AddCheat, m_hCheatTree, m_hSelectedItem;
|
|
||||||
const CN64Rom * m_Rom;
|
const CN64Rom * m_Rom;
|
||||||
void * const m_rcList, * const m_rcAdd;
|
|
||||||
int m_MinSizeDlg, m_MaxSizeDlg;
|
|
||||||
int m_EditCheat;
|
|
||||||
bool m_DeleteingEntries;
|
|
||||||
CODES_ARRAY m_Codes;
|
CODES_ARRAY m_Codes;
|
||||||
bool m_CheatSelectionChanged;
|
|
||||||
|
|
||||||
//Information about the current cheat we are editing
|
bool LoadCode(int32_t CheatNo, const char * CheatString);
|
||||||
stdstr m_EditName;
|
int32_t ApplyCheatEntry(CMipsMemory * MMU, const CODES & CodeEntry, int32_t CurrentEntry, bool Execute);
|
||||||
stdstr m_EditCode;
|
|
||||||
stdstr m_EditOptions;
|
|
||||||
stdstr m_EditNotes;
|
|
||||||
|
|
||||||
enum Dialog_State { CONTRACTED, EXPANDED } m_DialogState;
|
|
||||||
enum TV_CHECK_STATE { TV_STATE_UNKNOWN, TV_STATE_CLEAR, TV_STATE_CHECKED, TV_STATE_INDETERMINATE };
|
|
||||||
enum { MaxGSEntries = 100, IDC_MYTREE = 0x500 };
|
|
||||||
|
|
||||||
bool LoadCode ( int CheatNo, LPCSTR CheatString );
|
|
||||||
void AddCodeLayers ( int CheatNumber, const stdstr &CheatName, HWND hParent, bool CheatActive );
|
|
||||||
//Reload the cheats from the ini file to the select gui
|
|
||||||
void RefreshCheatManager ();
|
|
||||||
void ChangeChildrenStatus ( HWND hParent, bool Checked );
|
|
||||||
void CheckParentStatus ( HWND hParent );
|
|
||||||
static stdstr ReadCodeString ( HWND hDlg, bool &validcodes, bool &validoption, bool &nooptions, int &codeformat );
|
|
||||||
static stdstr ReadOptionsString( HWND hDlg, bool &validcodes, bool &validoptions, bool &nooptions, int &codeformat );
|
|
||||||
int ApplyCheatEntry (CMipsMemory * MMU,const CODES & CodeEntry, int CurrentEntry, bool Execute );
|
|
||||||
void RecordCheatValues ( HWND hDlg );
|
|
||||||
bool CheatChanged ( HWND hDlg );
|
|
||||||
bool IsValid16BitCode ( LPCSTR CheatString ) const;
|
|
||||||
void DeleteCheat(int Index);
|
|
||||||
|
|
||||||
//Get Information about the Cheat
|
|
||||||
stdstr GetCheatName ( int CheatNo, bool AddExtension ) const;
|
|
||||||
static bool CheatUsesCodeExtensions ( const stdstr &LineEntry );
|
|
||||||
|
|
||||||
//Working with treeview
|
|
||||||
static bool TV_SetCheckState(HWND hwndTreeView, HWND hItem, TV_CHECK_STATE state);
|
|
||||||
static int TV_GetCheckState(HWND hwndTreeView, HWND hItem);
|
|
||||||
static DWORD AsciiToHex ( const char * HexValue );
|
|
||||||
static void MenuSetText ( HMENU hMenu, int MenuPos, const wchar_t * Title, const wchar_t * ShortCut );
|
|
||||||
|
|
||||||
|
|
||||||
//UI Functions
|
|
||||||
static stdstr GetDlgItemStr (HWND hDlg, int nIDDlgItem);
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -125,8 +125,9 @@ void CSystemEvents::ExecuteEvents()
|
||||||
Notify().ChangeFullScreen();
|
Notify().ChangeFullScreen();
|
||||||
break;
|
break;
|
||||||
case SysEvent_GSButtonPressed:
|
case SysEvent_GSButtonPressed:
|
||||||
if (m_System->m_Cheats.CheatsSlectionChanged())
|
if (m_System->HasCheatsSlectionChanged())
|
||||||
{
|
{
|
||||||
|
m_System->SetCheatsSlectionChanged(false);
|
||||||
m_System->m_Cheats.LoadCheats(false, m_Plugins);
|
m_System->m_Cheats.LoadCheats(false, m_Plugins);
|
||||||
}
|
}
|
||||||
m_System->m_Cheats.ApplyGSButton(g_MMU);
|
m_System->m_Cheats.ApplyGSButton(g_MMU);
|
||||||
|
@ -195,6 +196,14 @@ void CSystemEvents::ExecuteEvents()
|
||||||
bPause = true;
|
bPause = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SysEvent_PauseCPU_Cheats:
|
||||||
|
if (!g_Settings->LoadBool(GameRunning_CPU_Paused))
|
||||||
|
{
|
||||||
|
g_Settings->SaveBool(GameRunning_CPU_Paused, true);
|
||||||
|
g_Settings->SaveDword(GameRunning_CPU_PausedType, PauseType_Cheats);
|
||||||
|
bPause = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
g_Notify->BreakPoint(__FILEW__, __LINE__);
|
g_Notify->BreakPoint(__FILEW__, __LINE__);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -27,6 +27,7 @@ enum SystemEvent
|
||||||
SysEvent_PauseCPU_DumpMemory,
|
SysEvent_PauseCPU_DumpMemory,
|
||||||
SysEvent_PauseCPU_SearchMemory,
|
SysEvent_PauseCPU_SearchMemory,
|
||||||
SysEvent_PauseCPU_Settings,
|
SysEvent_PauseCPU_Settings,
|
||||||
|
SysEvent_PauseCPU_Cheats,
|
||||||
SysEvent_ResumeCPU_FromMenu,
|
SysEvent_ResumeCPU_FromMenu,
|
||||||
SysEvent_ResumeCPU_AppGainedActive,
|
SysEvent_ResumeCPU_AppGainedActive,
|
||||||
SysEvent_ResumeCPU_AppGainedFocus,
|
SysEvent_ResumeCPU_AppGainedFocus,
|
||||||
|
@ -35,6 +36,7 @@ enum SystemEvent
|
||||||
SysEvent_ResumeCPU_DumpMemory,
|
SysEvent_ResumeCPU_DumpMemory,
|
||||||
SysEvent_ResumeCPU_SearchMemory,
|
SysEvent_ResumeCPU_SearchMemory,
|
||||||
SysEvent_ResumeCPU_Settings,
|
SysEvent_ResumeCPU_Settings,
|
||||||
|
SysEvent_ResumeCPU_Cheats,
|
||||||
SysEvent_ChangingFullScreen,
|
SysEvent_ChangingFullScreen,
|
||||||
SysEvent_ChangePlugins,
|
SysEvent_ChangePlugins,
|
||||||
SysEvent_SaveMachineState,
|
SysEvent_SaveMachineState,
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
|
|
||||||
CN64System::CN64System(CPlugins * Plugins, bool SavesReadOnly) :
|
CN64System::CN64System(CPlugins * Plugins, bool SavesReadOnly) :
|
||||||
CSystemEvents(this, Plugins),
|
CSystemEvents(this, Plugins),
|
||||||
m_Cheats(NULL),
|
|
||||||
m_EndEmulation(false),
|
m_EndEmulation(false),
|
||||||
m_SaveUsing((SAVE_CHIP_TYPE)g_Settings->LoadDword(Game_SaveChip)),
|
m_SaveUsing((SAVE_CHIP_TYPE)g_Settings->LoadDword(Game_SaveChip)),
|
||||||
m_Plugins(Plugins),
|
m_Plugins(Plugins),
|
||||||
|
@ -42,7 +41,8 @@ CN64System::CN64System ( CPlugins * Plugins, bool SavesReadOnly ) :
|
||||||
m_TLBStoreAddress(0),
|
m_TLBStoreAddress(0),
|
||||||
m_SyncCount(0),
|
m_SyncCount(0),
|
||||||
m_CPU_Handle(NULL),
|
m_CPU_Handle(NULL),
|
||||||
m_CPU_ThreadID(0)
|
m_CPU_ThreadID(0),
|
||||||
|
m_CheatsSlectionChanged(false)
|
||||||
{
|
{
|
||||||
DWORD gameHertz = g_Settings->LoadDword(Game_ScreenHertz);
|
DWORD gameHertz = g_Settings->LoadDword(Game_ScreenHertz);
|
||||||
if (gameHertz == 0)
|
if (gameHertz == 0)
|
||||||
|
@ -115,6 +115,7 @@ void CN64System::ExternalEvent ( SystemEvent action )
|
||||||
case SysEvent_PauseCPU_DumpMemory:
|
case SysEvent_PauseCPU_DumpMemory:
|
||||||
case SysEvent_PauseCPU_SearchMemory:
|
case SysEvent_PauseCPU_SearchMemory:
|
||||||
case SysEvent_PauseCPU_Settings:
|
case SysEvent_PauseCPU_Settings:
|
||||||
|
case SysEvent_PauseCPU_Cheats:
|
||||||
if (!g_Settings->LoadBool(GameRunning_CPU_Paused))
|
if (!g_Settings->LoadBool(GameRunning_CPU_Paused))
|
||||||
{
|
{
|
||||||
QueueEvent(action);
|
QueueEvent(action);
|
||||||
|
@ -166,6 +167,12 @@ void CN64System::ExternalEvent ( SystemEvent action )
|
||||||
SetEvent(m_hPauseEvent);
|
SetEvent(m_hPauseEvent);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SysEvent_ResumeCPU_Cheats:
|
||||||
|
if (g_Settings->LoadDword(GameRunning_CPU_PausedType) == PauseType_Cheats)
|
||||||
|
{
|
||||||
|
SetEvent(m_hPauseEvent);
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
WriteTraceF(TraceError, __FUNCTION__ ": Unknown event %d", action);
|
WriteTraceF(TraceError, __FUNCTION__ ": Unknown event %d", action);
|
||||||
g_Notify->BreakPoint(__FILEW__, __LINE__);
|
g_Notify->BreakPoint(__FILEW__, __LINE__);
|
||||||
|
@ -453,11 +460,6 @@ void CN64System::CloseCpu()
|
||||||
CpuStopped();
|
CpuStopped();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CN64System::SelectCheats ( HWND hParent )
|
|
||||||
{
|
|
||||||
m_Cheats.SelectCheats(hParent,false);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CN64System::DisplayRomInfo ( HWND hParent )
|
void CN64System::DisplayRomInfo ( HWND hParent )
|
||||||
{
|
{
|
||||||
if (!g_Rom) { return; }
|
if (!g_Rom) { return; }
|
||||||
|
@ -508,15 +510,6 @@ stdstr CN64System::ChooseFileToOpen ( HWND hParent )
|
||||||
return stdstr("");
|
return stdstr("");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CN64System::IsDialogMsg( MSG * msg )
|
|
||||||
{
|
|
||||||
if (m_Cheats.IsCheatMessage(msg))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CN64System::GameReset()
|
void CN64System::GameReset()
|
||||||
{
|
{
|
||||||
m_SystemTimer.SetTimer(CSystemTimer::SoftResetTimer,0x3000000,false);
|
m_SystemTimer.SetTimer(CSystemTimer::SoftResetTimer,0x3000000,false);
|
||||||
|
@ -2053,15 +2046,16 @@ void CN64System::RefreshScreen()
|
||||||
}
|
}
|
||||||
if ((m_Reg.STATUS_REGISTER & STATUS_IE) != 0)
|
if ((m_Reg.STATUS_REGISTER & STATUS_IE) != 0)
|
||||||
{
|
{
|
||||||
if (g_BaseSystem == NULL)
|
if (HasCheatsSlectionChanged())
|
||||||
{
|
{
|
||||||
return;
|
if (this == g_BaseSystem && g_SyncSystem != NULL)
|
||||||
}
|
|
||||||
if (g_BaseSystem->m_Cheats.CheatsSlectionChanged())
|
|
||||||
{
|
{
|
||||||
g_BaseSystem->m_Cheats.LoadCheats(false, g_BaseSystem->m_Plugins);
|
g_SyncSystem->SetCheatsSlectionChanged(true);
|
||||||
}
|
}
|
||||||
g_BaseSystem->m_Cheats.ApplyCheats(g_MMU);
|
SetCheatsSlectionChanged(false);
|
||||||
|
m_Cheats.LoadCheats(false, g_BaseSystem->m_Plugins);
|
||||||
|
}
|
||||||
|
m_Cheats.ApplyCheats(g_MMU);
|
||||||
}
|
}
|
||||||
// if (bProfiling) { m_Profile.StartTimer(ProfilingAddr != Timer_None ? ProfilingAddr : Timer_R4300); }
|
// if (bProfiling) { m_Profile.StartTimer(ProfilingAddr != Timer_None ? ProfilingAddr : Timer_R4300); }
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,10 +50,8 @@ public:
|
||||||
void ExternalEvent ( SystemEvent action ); //covers gui interacting and timers etc..
|
void ExternalEvent ( SystemEvent action ); //covers gui interacting and timers etc..
|
||||||
stdstr ChooseFileToOpen ( HWND hParent );
|
stdstr ChooseFileToOpen ( HWND hParent );
|
||||||
void DisplayRomInfo ( HWND hParent );
|
void DisplayRomInfo ( HWND hParent );
|
||||||
void SelectCheats ( HWND hParent );
|
|
||||||
void StartEmulation ( bool NewThread );
|
void StartEmulation ( bool NewThread );
|
||||||
void SyncToAudio ();
|
void SyncToAudio ();
|
||||||
bool IsDialogMsg ( MSG * msg );
|
|
||||||
void IncreaseSpeed () { m_Limitor.IncreaseSpeed(); }
|
void IncreaseSpeed () { m_Limitor.IncreaseSpeed(); }
|
||||||
void DecreaseSpeed () { m_Limitor.DecreaseSpeed(); }
|
void DecreaseSpeed () { m_Limitor.DecreaseSpeed(); }
|
||||||
void Reset ( bool bInitReg, bool ClearMenory );
|
void Reset ( bool bInitReg, bool ClearMenory );
|
||||||
|
@ -68,6 +66,8 @@ public:
|
||||||
|
|
||||||
bool DmaUsed() const { return m_DMAUsed; }
|
bool DmaUsed() const { return m_DMAUsed; }
|
||||||
void SetDmaUsed(bool DMAUsed) { m_DMAUsed = DMAUsed; }
|
void SetDmaUsed(bool DMAUsed) { m_DMAUsed = DMAUsed; }
|
||||||
|
void SetCheatsSlectionChanged(bool changed) { m_CheatsSlectionChanged = changed; }
|
||||||
|
bool HasCheatsSlectionChanged(void) const { return m_CheatsSlectionChanged; }
|
||||||
DWORD GetButtons(int Control) const { return m_Buttons[Control]; }
|
DWORD GetButtons(int Control) const { return m_Buttons[Control]; }
|
||||||
|
|
||||||
//Variable used to track that the SP is being handled and stays the same as the real SP in sync core
|
//Variable used to track that the SP is being handled and stays the same as the real SP in sync core
|
||||||
|
@ -144,6 +144,7 @@ private:
|
||||||
DWORD m_TLBLoadAddress;
|
DWORD m_TLBLoadAddress;
|
||||||
DWORD m_TLBStoreAddress;
|
DWORD m_TLBStoreAddress;
|
||||||
DWORD m_SyncCount;
|
DWORD m_SyncCount;
|
||||||
|
bool m_CheatsSlectionChanged;
|
||||||
|
|
||||||
//When Syncing cores this is the PC where it last Sync'ed correctly
|
//When Syncing cores this is the PC where it last Sync'ed correctly
|
||||||
DWORD m_LastSuccessSyncPC[10];
|
DWORD m_LastSuccessSyncPC[10];
|
||||||
|
|
|
@ -26,17 +26,21 @@ enum PauseType
|
||||||
PauseType_DumpMemory,
|
PauseType_DumpMemory,
|
||||||
PauseType_SearchMemory,
|
PauseType_SearchMemory,
|
||||||
PauseType_Settings,
|
PauseType_Settings,
|
||||||
|
PauseType_Cheats,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum CPU_TYPE {
|
enum CPU_TYPE
|
||||||
|
{
|
||||||
CPU_Default = -1, CPU_Interpreter = 1, CPU_Recompiler = 2, CPU_SyncCores = 3
|
CPU_Default = -1, CPU_Interpreter = 1, CPU_Recompiler = 2, CPU_SyncCores = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FRAMERATE_TYPE {
|
enum FRAMERATE_TYPE
|
||||||
|
{
|
||||||
FR_VIs = 0, FR_DLs = 1, FR_PERCENT = 2,
|
FR_VIs = 0, FR_DLs = 1, FR_PERCENT = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SAVE_CHIP_TYPE {
|
enum SAVE_CHIP_TYPE
|
||||||
|
{
|
||||||
SaveChip_Auto = -1, SaveChip_Eeprom_4K, SaveChip_Eeprom_16K, SaveChip_Sram, SaveChip_FlashRam
|
SaveChip_Auto = -1, SaveChip_Eeprom_4K, SaveChip_Eeprom_16K, SaveChip_Sram, SaveChip_FlashRam
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -45,23 +49,27 @@ enum FUNC_LOOKUP_METHOD
|
||||||
FuncFind_Default = -1, FuncFind_PhysicalLookup = 1, FuncFind_VirtualLookup = 2, FuncFind_ChangeMemory = 3,
|
FuncFind_Default = -1, FuncFind_PhysicalLookup = 1, FuncFind_VirtualLookup = 2, FuncFind_ChangeMemory = 3,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SYSTEM_TYPE {
|
enum SYSTEM_TYPE
|
||||||
|
{
|
||||||
SYSTEM_NTSC = 0, SYSTEM_PAL = 1, SYSTEM_MPAL = 2
|
SYSTEM_NTSC = 0, SYSTEM_PAL = 1, SYSTEM_MPAL = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
enum CICChip {
|
enum CICChip
|
||||||
|
{
|
||||||
CIC_UNKNOWN = -1, CIC_NUS_6101 = 1, CIC_NUS_6102 = 2, CIC_NUS_6103 = 3,
|
CIC_UNKNOWN = -1, CIC_NUS_6101 = 1, CIC_NUS_6102 = 2, CIC_NUS_6103 = 3,
|
||||||
CIC_NUS_6104 = 4, CIC_NUS_6105 = 5, CIC_NUS_6106 = 6, CIC_NUS_5167 = 7,
|
CIC_NUS_6104 = 4, CIC_NUS_6105 = 5, CIC_NUS_6106 = 6, CIC_NUS_5167 = 7,
|
||||||
CIC_NUS_8303 = 8
|
CIC_NUS_8303 = 8
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Country {
|
enum Country
|
||||||
|
{
|
||||||
NTSC_BETA = 0x37, X_NTSC = 0x41, Germany = 0x44, USA = 0x45, french = 0x46, Italian = 0x49,
|
NTSC_BETA = 0x37, X_NTSC = 0x41, Germany = 0x44, USA = 0x45, french = 0x46, Italian = 0x49,
|
||||||
Japan = 0x4A, Europe = 0x50, Spanish = 0x53, Australia = 0x55, X_PAL = 0x58, Y_PAL = 0x59,
|
Japan = 0x4A, Europe = 0x50, Spanish = 0x53, Australia = 0x55, X_PAL = 0x58, Y_PAL = 0x59,
|
||||||
UnknownCountry = 0
|
UnknownCountry = 0
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SPECIAL_TIMERS {
|
enum SPECIAL_TIMERS
|
||||||
|
{
|
||||||
Timer_None = 0, Timer_R4300 = -1, Timer_RSP_Dlist = -2,
|
Timer_None = 0, Timer_R4300 = -1, Timer_RSP_Dlist = -2,
|
||||||
Timer_RSP_Alist = -3, Timer_RSP_Unknown = -5, Timer_RefreshScreen = -6,
|
Timer_RSP_Alist = -3, Timer_RSP_Unknown = -5, Timer_RefreshScreen = -6,
|
||||||
Timer_UpdateScreen = -7, Timer_UpdateFPS = -9, Timer_Idel = -10,
|
Timer_UpdateScreen = -7, Timer_UpdateFPS = -9, Timer_Idel = -10,
|
||||||
|
@ -70,7 +78,8 @@ enum SPECIAL_TIMERS {
|
||||||
Timer_InheritParentInfo = -19, Timer_AddX86Code = -20,
|
Timer_InheritParentInfo = -19, Timer_AddX86Code = -20,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum STEP_TYPE {
|
enum STEP_TYPE
|
||||||
|
{
|
||||||
NORMAL = 0,
|
NORMAL = 0,
|
||||||
DO_DELAY_SLOT = 1,
|
DO_DELAY_SLOT = 1,
|
||||||
DO_END_DELAY_SLOT = 2,
|
DO_END_DELAY_SLOT = 2,
|
||||||
|
@ -84,3 +93,4 @@ enum STEP_TYPE {
|
||||||
PERMLOOP_DO_DELAY = 10,
|
PERMLOOP_DO_DELAY = 10,
|
||||||
PERMLOOP_DELAY_DONE = 11,
|
PERMLOOP_DELAY_DONE = 11,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -284,6 +284,10 @@
|
||||||
<Filter
|
<Filter
|
||||||
Name="User Interface Source"
|
Name="User Interface Source"
|
||||||
>
|
>
|
||||||
|
<File
|
||||||
|
RelativePath=".\User Interface\Cheat Class UI.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="User Interface\Frame Per Second Class.cpp"
|
RelativePath="User Interface\Frame Per Second Class.cpp"
|
||||||
>
|
>
|
||||||
|
@ -936,6 +940,10 @@
|
||||||
<Filter
|
<Filter
|
||||||
Name="User Interface Headers"
|
Name="User Interface Headers"
|
||||||
>
|
>
|
||||||
|
<File
|
||||||
|
RelativePath=".\User Interface\Cheat Class UI.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="User Interface\Frame Per Second Class.h"
|
RelativePath="User Interface\Frame Per Second Class.h"
|
||||||
>
|
>
|
||||||
|
|
|
@ -74,6 +74,7 @@
|
||||||
<ClCompile Include="Settings\SettingType\SettingsType-TempBool.cpp" />
|
<ClCompile Include="Settings\SettingType\SettingsType-TempBool.cpp" />
|
||||||
<ClCompile Include="Settings\SettingType\SettingsType-TempNumber.cpp" />
|
<ClCompile Include="Settings\SettingType\SettingsType-TempNumber.cpp" />
|
||||||
<ClCompile Include="Settings\SettingType\SettingsType-TempString.cpp" />
|
<ClCompile Include="Settings\SettingType\SettingsType-TempString.cpp" />
|
||||||
|
<ClCompile Include="User Interface\Cheat Class UI.cpp" />
|
||||||
<ClCompile Include="User Interface\Frame Per Second Class.cpp" />
|
<ClCompile Include="User Interface\Frame Per Second Class.cpp" />
|
||||||
<ClCompile Include="User Interface\Gui Class.cpp" />
|
<ClCompile Include="User Interface\Gui Class.cpp" />
|
||||||
<ClCompile Include="User Interface\Main Menu Class.cpp" />
|
<ClCompile Include="User Interface\Main Menu Class.cpp" />
|
||||||
|
@ -186,6 +187,7 @@
|
||||||
<ClInclude Include="Settings.h" />
|
<ClInclude Include="Settings.h" />
|
||||||
<ClInclude Include="stdafx.h" />
|
<ClInclude Include="stdafx.h" />
|
||||||
<ClInclude Include="User Interface.h" />
|
<ClInclude Include="User Interface.h" />
|
||||||
|
<ClInclude Include="User Interface\Cheat Class UI.h" />
|
||||||
<ClInclude Include="Version.h" />
|
<ClInclude Include="Version.h" />
|
||||||
<ClInclude Include="WTL App.h" />
|
<ClInclude Include="WTL App.h" />
|
||||||
<ClInclude Include="Settings\Debug Settings.h" />
|
<ClInclude Include="Settings\Debug Settings.h" />
|
||||||
|
|
|
@ -417,6 +417,9 @@
|
||||||
<ClCompile Include="Multilanguage\LanguageSelector.cpp">
|
<ClCompile Include="Multilanguage\LanguageSelector.cpp">
|
||||||
<Filter>Source Files\Multilanguage Source</Filter>
|
<Filter>Source Files\Multilanguage Source</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="User Interface\Cheat Class UI.cpp">
|
||||||
|
<Filter>Source Files\User Interface Source</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Image Include="User Interface\Bitmaps\AboutScreenBottom.bmp">
|
<Image Include="User Interface\Bitmaps\AboutScreenBottom.bmp">
|
||||||
|
@ -842,5 +845,8 @@
|
||||||
<ClInclude Include="Multilanguage\LanguageSelector.h">
|
<ClInclude Include="Multilanguage\LanguageSelector.h">
|
||||||
<Filter>Header Files\Multilanguage Headers</Filter>
|
<Filter>Header Files\Multilanguage Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="User Interface\Cheat Class UI.h">
|
||||||
|
<Filter>Header Files\User Interface Headers</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -61,3 +61,4 @@ class CN64System;
|
||||||
#include ".\\User Interface\\Frame Per Second Class.h"
|
#include ".\\User Interface\\Frame Per Second Class.h"
|
||||||
#include ".\\User Interface\\resource.h"
|
#include ".\\User Interface\\resource.h"
|
||||||
#include ".\\User Interface\\Settings Config.h"
|
#include ".\\User Interface\\Settings Config.h"
|
||||||
|
#include ".\\User Interface\\Cheat Class UI.h"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,71 @@
|
||||||
|
/****************************************************************************
|
||||||
|
* *
|
||||||
|
* Project 64 - A Nintendo 64 emulator. *
|
||||||
|
* http://www.pj64-emu.com/ *
|
||||||
|
* Copyright (C) 2012 Project64. All rights reserved. *
|
||||||
|
* *
|
||||||
|
* License: *
|
||||||
|
* GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html *
|
||||||
|
* *
|
||||||
|
****************************************************************************/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
class CCheatsUI
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CCheatsUI(void);
|
||||||
|
~CCheatsUI(void);
|
||||||
|
|
||||||
|
bool IsCheatMessage(MSG * msg);
|
||||||
|
void SelectCheats(HWND hParent, bool BlockExecution);
|
||||||
|
|
||||||
|
private:
|
||||||
|
static int CALLBACK CheatAddProc(HWND hDlg, uint32_t uMsg, uint32_t wParam, uint32_t lParam);
|
||||||
|
static int CALLBACK CheatListProc(HWND hDlg, uint32_t uMsg, uint32_t wParam, uint32_t lParam);
|
||||||
|
static int CALLBACK ManageCheatsProc(HWND hDlg, uint32_t uMsg, uint32_t wParam, uint32_t lParam);
|
||||||
|
static int CALLBACK CheatsCodeExProc(HWND hDlg, uint32_t uMsg, uint32_t wParam, uint32_t lParam);
|
||||||
|
static int CALLBACK CheatsCodeQuantProc(HWND hDlg, uint32_t uMsg, uint32_t wParam, uint32_t lParam);
|
||||||
|
|
||||||
|
//information about the gui for selecting cheats
|
||||||
|
HWND m_Window, m_hSelectCheat, m_AddCheat, m_hCheatTree, m_hSelectedItem;
|
||||||
|
void * const m_rcList, *const m_rcAdd;
|
||||||
|
int m_MinSizeDlg, m_MaxSizeDlg;
|
||||||
|
int m_EditCheat;
|
||||||
|
bool m_DeleteingEntries;
|
||||||
|
|
||||||
|
//Information about the current cheat we are editing
|
||||||
|
stdstr m_EditName;
|
||||||
|
stdstr m_EditCode;
|
||||||
|
stdstr m_EditOptions;
|
||||||
|
stdstr m_EditNotes;
|
||||||
|
|
||||||
|
enum Dialog_State { CONTRACTED, EXPANDED } m_DialogState;
|
||||||
|
enum TV_CHECK_STATE { TV_STATE_UNKNOWN, TV_STATE_CLEAR, TV_STATE_CHECKED, TV_STATE_INDETERMINATE };
|
||||||
|
enum { IDC_MYTREE = 0x500 };
|
||||||
|
|
||||||
|
void AddCodeLayers(int CheatNumber, const stdstr &CheatName, HWND hParent, bool CheatActive);
|
||||||
|
//Reload the cheats from the ini file to the select gui
|
||||||
|
void RefreshCheatManager();
|
||||||
|
void ChangeChildrenStatus(HWND hParent, bool Checked);
|
||||||
|
void CheckParentStatus(HWND hParent);
|
||||||
|
static stdstr ReadCodeString(HWND hDlg, bool &validcodes, bool &validoption, bool &nooptions, int &codeformat);
|
||||||
|
static stdstr ReadOptionsString(HWND hDlg, bool &validcodes, bool &validoptions, bool &nooptions, int &codeformat);
|
||||||
|
|
||||||
|
void RecordCheatValues(HWND hDlg);
|
||||||
|
bool CheatChanged(HWND hDlg);
|
||||||
|
void DeleteCheat(int Index);
|
||||||
|
|
||||||
|
//Get Information about the Cheat
|
||||||
|
stdstr GetCheatName(int CheatNo, bool AddExtension) const;
|
||||||
|
static bool CheatUsesCodeExtensions(const stdstr &LineEntry);
|
||||||
|
//Working with treeview
|
||||||
|
static bool TV_SetCheckState(HWND hwndTreeView, HWND hItem, TV_CHECK_STATE state);
|
||||||
|
static int TV_GetCheckState(HWND hwndTreeView, HWND hItem);
|
||||||
|
|
||||||
|
static void MenuSetText(HMENU hMenu, int MenuPos, const wchar_t * Title, const wchar_t * ShortCut);
|
||||||
|
|
||||||
|
//UI Functions
|
||||||
|
static stdstr GetDlgItemStr(HWND hDlg, int nIDDlgItem);
|
||||||
|
};
|
||||||
|
|
||||||
|
extern CCheatsUI * g_cheatUI;
|
|
@ -10,7 +10,6 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
#ifdef WINDOWS_UI
|
|
||||||
#include <commctrl.h>
|
#include <commctrl.h>
|
||||||
#include "Settings/SettingType/SettingsType-Application.h"
|
#include "Settings/SettingType/SettingsType-Application.h"
|
||||||
|
|
||||||
|
@ -24,12 +23,7 @@ void EnterLogOptions(HWND hwndOwner);
|
||||||
DWORD CALLBACK AboutBoxProc(HWND WndHandle, DWORD uMsg, DWORD wParam, DWORD lParam);
|
DWORD CALLBACK AboutBoxProc(HWND WndHandle, DWORD uMsg, DWORD wParam, DWORD lParam);
|
||||||
LRESULT CALLBACK MainGui_Proc(HWND WndHandle, DWORD uMsg, DWORD wParam, DWORD lParam);
|
LRESULT CALLBACK MainGui_Proc(HWND WndHandle, DWORD uMsg, DWORD wParam, DWORD lParam);
|
||||||
|
|
||||||
extern BOOL set_about_field(
|
extern BOOL set_about_field(HWND hDlg, int nIDDlgItem, const wchar_t * config_string, const wchar_t * language_string);
|
||||||
HWND hDlg,
|
|
||||||
int nIDDlgItem,
|
|
||||||
const wchar_t * config_string,
|
|
||||||
const wchar_t * language_string
|
|
||||||
);
|
|
||||||
|
|
||||||
CMainGui::CMainGui(bool bMainWindow, const char * WindowTitle) :
|
CMainGui::CMainGui(bool bMainWindow, const char * WindowTitle) :
|
||||||
CRomBrowser(m_hMainWindow, m_hStatusWnd),
|
CRomBrowser(m_hMainWindow, m_hStatusWnd),
|
||||||
|
@ -63,7 +57,6 @@ CMainGui::CMainGui (bool bMainWindow, const char * WindowTitle ) :
|
||||||
//if this fails then it has already been created
|
//if this fails then it has already been created
|
||||||
RegisterWinClass();
|
RegisterWinClass();
|
||||||
Create(WindowTitle);
|
Create(WindowTitle);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CMainGui::~CMainGui(void)
|
CMainGui::~CMainGui(void)
|
||||||
|
@ -112,7 +105,9 @@ void RomBowserEnabledChanged (CMainGui * Gui)
|
||||||
{
|
{
|
||||||
Gui->ShowRomList();
|
Gui->ShowRomList();
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
if (Gui->RomBrowserVisible())
|
if (Gui->RomBrowserVisible())
|
||||||
{
|
{
|
||||||
Gui->HideRomList();
|
Gui->HideRomList();
|
||||||
|
@ -150,12 +145,9 @@ void CMainGui::ChangeWinSize (long width, long height)
|
||||||
SetRect(&rc1, 0, 0, width, height);
|
SetRect(&rc1, 0, 0, width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AdjustWindowRectEx(&rc1, GetWindowLong(m_hMainWindow, GWL_STYLE), GetMenu(m_hMainWindow) != NULL, GetWindowLong(m_hMainWindow, GWL_EXSTYLE));
|
||||||
|
|
||||||
AdjustWindowRectEx( &rc1,GetWindowLong( m_hMainWindow, GWL_STYLE ),
|
MoveWindow(m_hMainWindow, wndpl.rcNormalPosition.left, wndpl.rcNormalPosition.top, rc1.right - rc1.left, rc1.bottom - rc1.top, TRUE);
|
||||||
GetMenu( m_hMainWindow ) != NULL, GetWindowLong( m_hMainWindow, GWL_EXSTYLE ) );
|
|
||||||
|
|
||||||
MoveWindow( m_hMainWindow, wndpl.rcNormalPosition.left, wndpl.rcNormalPosition.top,
|
|
||||||
rc1.right - rc1.left, rc1.bottom - rc1.top, TRUE );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMainGui::AboutBox(void)
|
void CMainGui::AboutBox(void)
|
||||||
|
@ -195,7 +187,6 @@ DWORD CALLBACK AboutIniBoxProc (HWND hDlg, DWORD uMsg, DWORD wParam, DWORD /*lPa
|
||||||
EnableWindow(GetDlgItem(hDlg, IDC_LAN_VERSION), FALSE);
|
EnableWindow(GetDlgItem(hDlg, IDC_LAN_VERSION), FALSE);
|
||||||
EnableWindow(GetDlgItem(hDlg, IDC_LAN_DATE), FALSE);
|
EnableWindow(GetDlgItem(hDlg, IDC_LAN_DATE), FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
//RDB
|
//RDB
|
||||||
CIniFile RdbIniFile(g_Settings->LoadStringVal(SupportFile_RomDatabase).c_str());
|
CIniFile RdbIniFile(g_Settings->LoadStringVal(SupportFile_RomDatabase).c_str());
|
||||||
wcsncpy(String, RdbIniFile.GetString("Meta", "Author", "").ToUTF16().c_str(), sizeof(String) / sizeof(String[0]));
|
wcsncpy(String, RdbIniFile.GetString("Meta", "Author", "").ToUTF16().c_str(), sizeof(String) / sizeof(String[0]));
|
||||||
|
@ -357,10 +348,11 @@ WPARAM CMainGui::ProcessAllMessages (void)
|
||||||
|
|
||||||
while (GetMessage(&msg, NULL, 0, 0))
|
while (GetMessage(&msg, NULL, 0, 0))
|
||||||
{
|
{
|
||||||
if (g_BaseSystem && g_BaseSystem->IsDialogMsg(&msg))
|
if (g_cheatUI != NULL && g_cheatUI->IsCheatMessage(&msg))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_ResetPlugins)
|
if (m_ResetPlugins)
|
||||||
{
|
{
|
||||||
m_ResetPlugins = false;
|
m_ResetPlugins = false;
|
||||||
|
@ -368,7 +360,7 @@ WPARAM CMainGui::ProcessAllMessages (void)
|
||||||
SetEvent(m_ResetInfo->hEvent);
|
SetEvent(m_ResetInfo->hEvent);
|
||||||
m_ResetInfo = NULL;
|
m_ResetInfo = NULL;
|
||||||
}
|
}
|
||||||
//if (IsDialogMessage( hManageWindow,&msg)) { continue; }
|
if (g_cheatUI && g_cheatUI->IsCheatMessage(&msg)) { continue; }
|
||||||
if (m_Menu->ProcessAccelerator(m_hMainWindow, &msg)) { continue; }
|
if (m_Menu->ProcessAccelerator(m_hMainWindow, &msg)) { continue; }
|
||||||
TranslateMessage(&msg);
|
TranslateMessage(&msg);
|
||||||
DispatchMessage(&msg);
|
DispatchMessage(&msg);
|
||||||
|
@ -376,7 +368,8 @@ WPARAM CMainGui::ProcessAllMessages (void)
|
||||||
return msg.wParam;
|
return msg.wParam;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CMainGui::ProcessGuiMessages (void) {
|
bool CMainGui::ProcessGuiMessages(void)
|
||||||
|
{
|
||||||
MSG msg;
|
MSG msg;
|
||||||
|
|
||||||
while (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
|
while (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
|
||||||
|
@ -385,7 +378,8 @@ bool CMainGui::ProcessGuiMessages (void) {
|
||||||
{
|
{
|
||||||
m_ResetPlugins = false;
|
m_ResetPlugins = false;
|
||||||
}
|
}
|
||||||
if (msg.message == WM_QUIT) {
|
if (msg.message == WM_QUIT)
|
||||||
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
PeekMessage(&msg, NULL, 0, 0, PM_REMOVE);
|
PeekMessage(&msg, NULL, 0, 0, PM_REMOVE);
|
||||||
|
@ -396,7 +390,8 @@ bool CMainGui::ProcessGuiMessages (void) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMainGui::Resize (DWORD /*fwSizeType*/, WORD nWidth, WORD nHeight) {
|
void CMainGui::Resize(DWORD /*fwSizeType*/, WORD nWidth, WORD nHeight)
|
||||||
|
{
|
||||||
RECT clrect, swrect;
|
RECT clrect, swrect;
|
||||||
GetClientRect(m_hMainWindow, &clrect);
|
GetClientRect(m_hMainWindow, &clrect);
|
||||||
GetClientRect((HWND)m_hStatusWnd, &swrect);
|
GetClientRect((HWND)m_hStatusWnd, &swrect);
|
||||||
|
@ -431,7 +426,8 @@ void CMainGui::EnterLogOptions (void)
|
||||||
::EnterLogOptions(m_hMainWindow);
|
::EnterLogOptions(m_hMainWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CMainGui::Height (void) {
|
int CMainGui::Height(void)
|
||||||
|
{
|
||||||
if (!m_hMainWindow) { return 0; }
|
if (!m_hMainWindow) { return 0; }
|
||||||
|
|
||||||
RECT rect;
|
RECT rect;
|
||||||
|
@ -483,7 +479,7 @@ void CMainGui::SetStatusText (int Panel,const wchar_t * Text)
|
||||||
static wchar_t Message[2][500];
|
static wchar_t Message[2][500];
|
||||||
if (Panel >= 2)
|
if (Panel >= 2)
|
||||||
{
|
{
|
||||||
Notify().BreakPoint(__FILEW__,__LINE__);
|
g_Notify->BreakPoint(__FILEW__, __LINE__);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
wchar_t * Msg = Message[Panel];
|
wchar_t * Msg = Message[Panel];
|
||||||
|
@ -494,7 +490,8 @@ void CMainGui::SetStatusText (int Panel,const wchar_t * Text)
|
||||||
if (GetCurrentThreadId() == m_ThreadId)
|
if (GetCurrentThreadId() == m_ThreadId)
|
||||||
{
|
{
|
||||||
SendMessageW((HWND)m_hStatusWnd, SB_SETTEXTW, Panel, (LPARAM)Msg);
|
SendMessageW((HWND)m_hStatusWnd, SB_SETTEXTW, Panel, (LPARAM)Msg);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
PostMessageW((HWND)m_hStatusWnd, SB_SETTEXTW, Panel, (LPARAM)Msg);
|
PostMessageW((HWND)m_hStatusWnd, SB_SETTEXTW, Panel, (LPARAM)Msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -553,7 +550,6 @@ LRESULT CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DW
|
||||||
_this->SetPos(X, Y);
|
_this->SetPos(X, Y);
|
||||||
|
|
||||||
_this->ChangeWinSize(640, 480);
|
_this->ChangeWinSize(640, 480);
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WM_SYSCOMMAND:
|
case WM_SYSCOMMAND:
|
||||||
|
@ -574,8 +570,10 @@ LRESULT CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DW
|
||||||
case SC_MAXIMIZE:
|
case SC_MAXIMIZE:
|
||||||
{
|
{
|
||||||
CMainGui * _this = (CMainGui *)GetProp((HWND)hWnd, "Class");
|
CMainGui * _this = (CMainGui *)GetProp((HWND)hWnd, "Class");
|
||||||
if (_this) {
|
if (_this)
|
||||||
if (_this->RomBrowserVisible()) {
|
{
|
||||||
|
if (_this->RomBrowserVisible())
|
||||||
|
{
|
||||||
_this->RomBrowserMaximize(true);
|
_this->RomBrowserMaximize(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -617,7 +615,9 @@ LRESULT CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DW
|
||||||
_this->m_SaveRomBrowserPos = true;
|
_this->m_SaveRomBrowserPos = true;
|
||||||
_this->m_SaveRomBrowserTop = WinRect.top;
|
_this->m_SaveRomBrowserTop = WinRect.top;
|
||||||
_this->m_SaveRomBrowserLeft = WinRect.left;
|
_this->m_SaveRomBrowserLeft = WinRect.left;
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
_this->m_SaveMainWindowPos = true;
|
_this->m_SaveMainWindowPos = true;
|
||||||
_this->m_SaveMainWindowTop = WinRect.top;
|
_this->m_SaveMainWindowTop = WinRect.top;
|
||||||
_this->m_SaveMainWindowLeft = WinRect.left;
|
_this->m_SaveMainWindowLeft = WinRect.left;
|
||||||
|
@ -652,14 +652,17 @@ LRESULT CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DW
|
||||||
{
|
{
|
||||||
if (wParam == SIZE_MAXIMIZED)
|
if (wParam == SIZE_MAXIMIZED)
|
||||||
{
|
{
|
||||||
if (_this->RomBrowserVisible()) {
|
if (_this->RomBrowserVisible())
|
||||||
|
{
|
||||||
_this->RomBrowserMaximize(true);
|
_this->RomBrowserMaximize(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_this->ResizeRomList(LOWORD(lParam), HIWORD(lParam));
|
_this->ResizeRomList(LOWORD(lParam), HIWORD(lParam));
|
||||||
}
|
}
|
||||||
if (_this) {
|
if (_this)
|
||||||
if (wParam == SIZE_RESTORED && _this->RomBrowserVisible()) {
|
{
|
||||||
|
if (wParam == SIZE_RESTORED && _this->RomBrowserVisible())
|
||||||
|
{
|
||||||
_this->RomBrowserMaximize(false);
|
_this->RomBrowserMaximize(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -668,8 +671,10 @@ LRESULT CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DW
|
||||||
case WM_NOTIFY:
|
case WM_NOTIFY:
|
||||||
{
|
{
|
||||||
CMainGui * _this = (CMainGui *)GetProp((HWND)hWnd, "Class");
|
CMainGui * _this = (CMainGui *)GetProp((HWND)hWnd, "Class");
|
||||||
if (_this) {
|
if (_this)
|
||||||
if (_this->RomBrowserVisible() && !_this->RomListNotify(wParam,lParam)) {
|
{
|
||||||
|
if (_this->RomBrowserVisible() && !_this->RomListNotify(wParam, lParam))
|
||||||
|
{
|
||||||
return DefWindowProc((HWND)hWnd, uMsg, wParam, lParam);
|
return DefWindowProc((HWND)hWnd, uMsg, wParam, lParam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -678,8 +683,10 @@ LRESULT CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DW
|
||||||
case WM_DRAWITEM:
|
case WM_DRAWITEM:
|
||||||
{
|
{
|
||||||
CMainGui * _this = (CMainGui *)GetProp((HWND)hWnd, "Class");
|
CMainGui * _this = (CMainGui *)GetProp((HWND)hWnd, "Class");
|
||||||
if (_this) {
|
if (_this)
|
||||||
if (!_this->RomListDrawItem(wParam,lParam)) {
|
{
|
||||||
|
if (!_this->RomListDrawItem(wParam, lParam))
|
||||||
|
{
|
||||||
return DefWindowProc((HWND)hWnd, uMsg, wParam, lParam);
|
return DefWindowProc((HWND)hWnd, uMsg, wParam, lParam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -770,7 +777,8 @@ LRESULT CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DW
|
||||||
CMainGui * _this = (CMainGui *)GetProp((HWND)hWnd, "Class");
|
CMainGui * _this = (CMainGui *)GetProp((HWND)hWnd, "Class");
|
||||||
DWORD fActive = (BOOL)wParam;
|
DWORD fActive = (BOOL)wParam;
|
||||||
|
|
||||||
if (fActive && _this->RomBrowserVisible()) {
|
if (fActive && _this->RomBrowserVisible())
|
||||||
|
{
|
||||||
PostMessage((HWND)hWnd, WM_BORWSER_TOP, 0, 0);
|
PostMessage((HWND)hWnd, WM_BORWSER_TOP, 0, 0);
|
||||||
}
|
}
|
||||||
if (_this->m_bMainWindow && bCPURunning())
|
if (_this->m_bMainWindow && bCPURunning())
|
||||||
|
@ -792,13 +800,15 @@ LRESULT CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DW
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WM_HIDE_CUROSR:
|
case WM_HIDE_CUROSR:
|
||||||
if (!wParam) {
|
if (!wParam)
|
||||||
|
{
|
||||||
while (ShowCursor(FALSE) >= 0) { Sleep(0); }
|
while (ShowCursor(FALSE) >= 0) { Sleep(0); }
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
while (ShowCursor(TRUE) < 0) { Sleep(0); }
|
while (ShowCursor(TRUE) < 0) { Sleep(0); }
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -819,7 +829,7 @@ LRESULT CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DW
|
||||||
CMainGui * _this = (CMainGui *)GetProp((HWND)hWnd, "Class");
|
CMainGui * _this = (CMainGui *)GetProp((HWND)hWnd, "Class");
|
||||||
if (_this->m_ResetInfo != NULL)
|
if (_this->m_ResetInfo != NULL)
|
||||||
{
|
{
|
||||||
Notify().BreakPoint(__FILEW__, __LINE__);
|
g_Notify->BreakPoint(__FILEW__, __LINE__);
|
||||||
}
|
}
|
||||||
_this->m_ResetInfo = (RESET_PLUGIN *)lParam;
|
_this->m_ResetInfo = (RESET_PLUGIN *)lParam;
|
||||||
_this->m_ResetPlugins = true;
|
_this->m_ResetPlugins = true;
|
||||||
|
@ -846,11 +856,6 @@ LRESULT CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DW
|
||||||
CN64Rom Rom;
|
CN64Rom Rom;
|
||||||
Rom.LoadN64Image(_this->CurrentedSelectedRom(), true);
|
Rom.LoadN64Image(_this->CurrentedSelectedRom(), true);
|
||||||
Rom.SaveRomSettingID(true);
|
Rom.SaveRomSettingID(true);
|
||||||
/*if (g_Settings->LoadStringVal(ROM_MD5).length() == 0) {
|
|
||||||
Rom.LoadN64Image(_this->CurrentedSelectedRom(),false);
|
|
||||||
g_Settings->SaveString(ROM_MD5,Rom.GetRomMD5().c_str());
|
|
||||||
g_Settings->SaveString(ROM_InternalName,Rom.GetRomName().c_str());
|
|
||||||
}*/
|
|
||||||
|
|
||||||
if (LOWORD(wParam) == ID_POPUPMENU_EDITSETTINGS)
|
if (LOWORD(wParam) == ID_POPUPMENU_EDITSETTINGS)
|
||||||
{
|
{
|
||||||
|
@ -858,33 +863,48 @@ LRESULT CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DW
|
||||||
SettingConfig.Display(hWnd);
|
SettingConfig.Display(hWnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LOWORD(wParam) == ID_POPUPMENU_EDITCHEATS) {
|
if (LOWORD(wParam) == ID_POPUPMENU_EDITCHEATS)
|
||||||
CCheats RomCheats(&Rom);
|
{
|
||||||
RomCheats.SelectCheats(hWnd,true);
|
CCheatsUI * cheatUI = new CCheatsUI;
|
||||||
|
g_cheatUI = cheatUI;
|
||||||
|
cheatUI->SelectCheats(hWnd, true);
|
||||||
|
if (g_cheatUI == cheatUI)
|
||||||
|
{
|
||||||
|
g_cheatUI = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_Rom) {
|
if (g_Rom)
|
||||||
|
{
|
||||||
g_Rom->SaveRomSettingID(false);
|
g_Rom->SaveRomSettingID(false);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
Rom.ClearRomSettingID();
|
Rom.ClearRomSettingID();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (_this->m_Menu) {
|
if (_this->m_Menu)
|
||||||
if (LOWORD(wParam) > 5000 && LOWORD(wParam) <= 5100 ) {
|
{
|
||||||
|
if (LOWORD(wParam) > 5000 && LOWORD(wParam) <= 5100)
|
||||||
|
{
|
||||||
if (g_Plugins->RSP())
|
if (g_Plugins->RSP())
|
||||||
{
|
{
|
||||||
g_Plugins->RSP()->ProcessMenuItem(LOWORD(wParam));
|
g_Plugins->RSP()->ProcessMenuItem(LOWORD(wParam));
|
||||||
}
|
}
|
||||||
} else if (LOWORD(wParam) > 5100 && LOWORD(wParam) <= 5200 ) {
|
}
|
||||||
|
else if (LOWORD(wParam) > 5100 && LOWORD(wParam) <= 5200)
|
||||||
|
{
|
||||||
if (g_Plugins->Gfx())
|
if (g_Plugins->Gfx())
|
||||||
{
|
{
|
||||||
WriteTrace(TraceGfxPlugin, __FUNCTION__ ": Starting");
|
WriteTrace(TraceGfxPlugin, __FUNCTION__ ": Starting");
|
||||||
g_Plugins->Gfx()->ProcessMenuItem(LOWORD(wParam));
|
g_Plugins->Gfx()->ProcessMenuItem(LOWORD(wParam));
|
||||||
WriteTrace(TraceGfxPlugin, __FUNCTION__ ": Done");
|
WriteTrace(TraceGfxPlugin, __FUNCTION__ ": Done");
|
||||||
}
|
}
|
||||||
} else if (LOWORD(wParam) > 5200 && LOWORD(wParam) <= 5300 ) {
|
}
|
||||||
|
else if (LOWORD(wParam) > 5200 && LOWORD(wParam) <= 5300)
|
||||||
|
{
|
||||||
if (g_Plugins->Gfx() && g_Plugins->Gfx()->OnRomBrowserMenuItem != NULL)
|
if (g_Plugins->Gfx() && g_Plugins->Gfx()->OnRomBrowserMenuItem != NULL)
|
||||||
{
|
{
|
||||||
CN64Rom Rom;
|
CN64Rom Rom;
|
||||||
|
@ -898,13 +918,18 @@ LRESULT CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DW
|
||||||
WriteTrace(TraceGfxPlugin, __FUNCTION__ ": OnRomBrowserMenuItem - Starting");
|
WriteTrace(TraceGfxPlugin, __FUNCTION__ ": OnRomBrowserMenuItem - Starting");
|
||||||
g_Plugins->Gfx()->OnRomBrowserMenuItem(LOWORD(wParam), hWnd, RomHeader);
|
g_Plugins->Gfx()->OnRomBrowserMenuItem(LOWORD(wParam), hWnd, RomHeader);
|
||||||
WriteTrace(TraceGfxPlugin, __FUNCTION__ ": OnRomBrowserMenuItem - Done");
|
WriteTrace(TraceGfxPlugin, __FUNCTION__ ": OnRomBrowserMenuItem - Done");
|
||||||
if (g_Rom) {
|
if (g_Rom)
|
||||||
|
{
|
||||||
g_Rom->SaveRomSettingID(false);
|
g_Rom->SaveRomSettingID(false);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
g_Settings->SaveString(Game_IniKey, "");
|
g_Settings->SaveString(Game_IniKey, "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (_this->m_Menu->ProcessMessage(hWnd,HIWORD(wParam), LOWORD(wParam))) {
|
}
|
||||||
|
else if (_this->m_Menu->ProcessMessage(hWnd, HIWORD(wParam), LOWORD(wParam)))
|
||||||
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1015,7 +1040,6 @@ DWORD CALLBACK AboutBoxProc (HWND hWnd, DWORD uMsg, DWORD wParam, DWORD lParam)
|
||||||
pfnWndAboutBoxCancelProc = (WNDPROC)::GetWindowLongPtr(GetDlgItem(hWnd, IDCANCEL), GWLP_WNDPROC);
|
pfnWndAboutBoxCancelProc = (WNDPROC)::GetWindowLongPtr(GetDlgItem(hWnd, IDCANCEL), GWLP_WNDPROC);
|
||||||
::SetWindowLongPtr(GetDlgItem(hWnd, IDCANCEL), GWLP_WNDPROC, (LONG_PTR)AboutBoxCancelProc);
|
::SetWindowLongPtr(GetDlgItem(hWnd, IDCANCEL), GWLP_WNDPROC, (LONG_PTR)AboutBoxCancelProc);
|
||||||
|
|
||||||
|
|
||||||
if (hbmpBackgroundTop)
|
if (hbmpBackgroundTop)
|
||||||
{
|
{
|
||||||
// int iHeight = bmTL.bmHeight;
|
// int iHeight = bmTL.bmHeight;
|
||||||
|
@ -1027,17 +1051,7 @@ DWORD CALLBACK AboutBoxProc (HWND hWnd, DWORD uMsg, DWORD wParam, DWORD lParam)
|
||||||
rect.bottom -= rect.top;
|
rect.bottom -= rect.top;
|
||||||
rect.top -= rect.top;
|
rect.top -= rect.top;
|
||||||
|
|
||||||
// Tweaked
|
HRGN hWindowRegion = CreateRoundRectRgn(rect.left, rect.top, rect.left + iWidth + GetSystemMetrics(SM_CXEDGE) - 1, rect.bottom + GetSystemMetrics(SM_CYEDGE) - 1, ROUND_EDGE, ROUND_EDGE);
|
||||||
HRGN hWindowRegion= CreateRoundRectRgn
|
|
||||||
(
|
|
||||||
rect.left,
|
|
||||||
rect.top,
|
|
||||||
rect.left+iWidth+GetSystemMetrics(SM_CXEDGE)-1,
|
|
||||||
rect.bottom+GetSystemMetrics(SM_CYEDGE)-1,
|
|
||||||
ROUND_EDGE,
|
|
||||||
ROUND_EDGE
|
|
||||||
);
|
|
||||||
|
|
||||||
if (hWindowRegion)
|
if (hWindowRegion)
|
||||||
{
|
{
|
||||||
SetWindowRgn(hWnd, hWindowRegion, TRUE);
|
SetWindowRgn(hWnd, hWindowRegion, TRUE);
|
||||||
|
@ -1045,59 +1059,10 @@ DWORD CALLBACK AboutBoxProc (HWND hWnd, DWORD uMsg, DWORD wParam, DWORD lParam)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
hTextFont = ::CreateFont
|
hTextFont = ::CreateFont(18, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial");
|
||||||
(
|
hAuthorFont = ::CreateFont(18, 0, 0, 0, FW_BOLD, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial");
|
||||||
18,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
FW_NORMAL,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
DEFAULT_CHARSET,
|
|
||||||
OUT_DEFAULT_PRECIS,
|
|
||||||
CLIP_DEFAULT_PRECIS,
|
|
||||||
PROOF_QUALITY,
|
|
||||||
DEFAULT_PITCH|FF_DONTCARE,
|
|
||||||
"Arial"
|
|
||||||
);
|
|
||||||
|
|
||||||
hAuthorFont = ::CreateFont
|
hPageHeadingFont = ::CreateFont(24, 0, 0, 0, FW_BOLD, 0, FALSE, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial Bold");
|
||||||
(
|
|
||||||
18,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
FW_BOLD,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
DEFAULT_CHARSET,
|
|
||||||
OUT_DEFAULT_PRECIS,
|
|
||||||
CLIP_DEFAULT_PRECIS,
|
|
||||||
PROOF_QUALITY,
|
|
||||||
DEFAULT_PITCH|FF_DONTCARE,
|
|
||||||
"Arial"
|
|
||||||
);
|
|
||||||
|
|
||||||
hPageHeadingFont = ::CreateFont
|
|
||||||
(
|
|
||||||
24,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
FW_BOLD,
|
|
||||||
0,
|
|
||||||
FALSE, //Show underlined?
|
|
||||||
0,
|
|
||||||
DEFAULT_CHARSET,
|
|
||||||
OUT_DEFAULT_PRECIS,
|
|
||||||
CLIP_DEFAULT_PRECIS,
|
|
||||||
PROOF_QUALITY,
|
|
||||||
DEFAULT_PITCH|FF_DONTCARE,
|
|
||||||
"Arial Bold"
|
|
||||||
);
|
|
||||||
|
|
||||||
SendDlgItemMessage(hWnd, IDC_VERSION, WM_SETFONT, (WPARAM)hTextFont, TRUE);
|
SendDlgItemMessage(hWnd, IDC_VERSION, WM_SETFONT, (WPARAM)hTextFont, TRUE);
|
||||||
SendDlgItemMessage(hWnd, IDC_TEAM, WM_SETFONT, (WPARAM)hPageHeadingFont, TRUE);
|
SendDlgItemMessage(hWnd, IDC_TEAM, WM_SETFONT, (WPARAM)hPageHeadingFont, TRUE);
|
||||||
|
@ -1115,7 +1080,6 @@ DWORD CALLBACK AboutBoxProc (HWND hWnd, DWORD uMsg, DWORD wParam, DWORD lParam)
|
||||||
|
|
||||||
SendDlgItemMessage(hWnd, IDC_THANK_LIST, WM_SETFONT, (WPARAM)hTextFont, TRUE);
|
SendDlgItemMessage(hWnd, IDC_THANK_LIST, WM_SETFONT, (WPARAM)hTextFont, TRUE);
|
||||||
|
|
||||||
//SetCapture(hWnd);
|
|
||||||
stdstr_f VersionDisplay("Version: %s", VER_FILE_VERSION_STR);
|
stdstr_f VersionDisplay("Version: %s", VER_FILE_VERSION_STR);
|
||||||
SetWindowText(GetDlgItem(hWnd, IDC_VERSION), VersionDisplay.c_str());
|
SetWindowText(GetDlgItem(hWnd, IDC_VERSION), VersionDisplay.c_str());
|
||||||
}
|
}
|
||||||
|
@ -1131,7 +1095,6 @@ DWORD CALLBACK AboutBoxProc (HWND hWnd, DWORD uMsg, DWORD wParam, DWORD lParam)
|
||||||
client.right += client.left;
|
client.right += client.left;
|
||||||
client.bottom += client.top;
|
client.bottom += client.top;
|
||||||
|
|
||||||
|
|
||||||
int nCaption = GetSystemMetrics(SM_CYCAPTION) * 4;
|
int nCaption = GetSystemMetrics(SM_CYCAPTION) * 4;
|
||||||
|
|
||||||
LRESULT lResult = HTCLIENT;
|
LRESULT lResult = HTCLIENT;
|
||||||
|
@ -1174,12 +1137,10 @@ DWORD CALLBACK AboutBoxProc (HWND hWnd, DWORD uMsg, DWORD wParam, DWORD lParam)
|
||||||
SelectObject(memdc, save);
|
SelectObject(memdc, save);
|
||||||
DeleteDC(memdc);
|
DeleteDC(memdc);
|
||||||
|
|
||||||
|
|
||||||
memdc = CreateCompatibleDC(ps.hdc);
|
memdc = CreateCompatibleDC(ps.hdc);
|
||||||
save = SelectObject(memdc, hbmpBackgroundMiddle);
|
save = SelectObject(memdc, hbmpBackgroundMiddle);
|
||||||
for (int x = bmTL_top.bmHeight; x < rcClient.bottom; x += bmTL_Middle.bmHeight)
|
for (int x = bmTL_top.bmHeight; x < rcClient.bottom; x += bmTL_Middle.bmHeight)
|
||||||
{
|
{
|
||||||
//BitBlt(ps.hdc, 0, bmTL_top.bmHeight, bmTL_Middle.bmWidth, rcClient.bottom - (bmTL_bottom.bmHeight + bmTL_top.bmHeight), memdc, 0, 0, SRCCOPY);
|
|
||||||
BitBlt(ps.hdc, 0, x, bmTL_Middle.bmWidth, bmTL_Middle.bmHeight, memdc, 0, 0, SRCCOPY);
|
BitBlt(ps.hdc, 0, x, bmTL_Middle.bmWidth, bmTL_Middle.bmHeight, memdc, 0, 0, SRCCOPY);
|
||||||
}
|
}
|
||||||
SelectObject(memdc, save);
|
SelectObject(memdc, save);
|
||||||
|
@ -1199,7 +1160,8 @@ DWORD CALLBACK AboutBoxProc (HWND hWnd, DWORD uMsg, DWORD wParam, DWORD lParam)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
switch (LOWORD(wParam)) {
|
switch (LOWORD(wParam))
|
||||||
|
{
|
||||||
case IDOK:
|
case IDOK:
|
||||||
case IDCANCEL:
|
case IDCANCEL:
|
||||||
if (hbmpBackgroundTop)
|
if (hbmpBackgroundTop)
|
||||||
|
@ -1215,13 +1177,17 @@ DWORD CALLBACK AboutBoxProc (HWND hWnd, DWORD uMsg, DWORD wParam, DWORD lParam)
|
||||||
DeleteObject(hbmpBackgroundMiddle);
|
DeleteObject(hbmpBackgroundMiddle);
|
||||||
}
|
}
|
||||||
if (hTextFont)
|
if (hTextFont)
|
||||||
|
{
|
||||||
::DeleteObject(hTextFont);
|
::DeleteObject(hTextFont);
|
||||||
|
}
|
||||||
if (hPageHeadingFont)
|
if (hPageHeadingFont)
|
||||||
|
{
|
||||||
::DeleteObject(hPageHeadingFont);
|
::DeleteObject(hPageHeadingFont);
|
||||||
|
}
|
||||||
if (hAuthorFont)
|
if (hAuthorFont)
|
||||||
|
{
|
||||||
::DeleteObject(hAuthorFont);
|
::DeleteObject(hAuthorFont);
|
||||||
|
}
|
||||||
|
|
||||||
//ReleaseCapture();
|
//ReleaseCapture();
|
||||||
EndDialog(hWnd, 0);
|
EndDialog(hWnd, 0);
|
||||||
break;
|
break;
|
||||||
|
@ -1232,26 +1198,10 @@ DWORD CALLBACK AboutBoxProc (HWND hWnd, DWORD uMsg, DWORD wParam, DWORD lParam)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL set_about_field(
|
BOOL set_about_field(HWND hDlg, int nIDDlgItem, const wchar_t * config_string, const wchar_t * language_string)
|
||||||
HWND hDlg,
|
|
||||||
int nIDDlgItem,
|
|
||||||
const wchar_t * config_string,
|
|
||||||
const wchar_t * language_string
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
wchar_t temp_string[200];
|
wchar_t temp_string[200];
|
||||||
|
|
||||||
swprintf(
|
swprintf(temp_string, sizeof(temp_string) / sizeof(temp_string[0]), L"%s: %s", config_string, language_string);
|
||||||
temp_string,
|
return SetDlgItemTextW(hDlg, nIDDlgItem, temp_string);
|
||||||
sizeof(temp_string) / sizeof(temp_string[0]),
|
|
||||||
L"%s: %s",
|
|
||||||
config_string,
|
|
||||||
language_string
|
|
||||||
);
|
|
||||||
return SetDlgItemTextW(
|
|
||||||
hDlg,
|
|
||||||
nIDDlgItem,
|
|
||||||
temp_string
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
|
@ -129,5 +129,4 @@ private:
|
||||||
bool m_SaveRomBrowserPos;
|
bool m_SaveRomBrowserPos;
|
||||||
LONG m_SaveRomBrowserTop;
|
LONG m_SaveRomBrowserTop;
|
||||||
LONG m_SaveRomBrowserLeft;
|
LONG m_SaveRomBrowserLeft;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -215,7 +215,9 @@ bool CMainMenu::ProcessMessage(HWND hWnd, DWORD /*FromAccelerator*/, DWORD MenuI
|
||||||
break;
|
break;
|
||||||
case ID_SYSTEM_CHEAT:
|
case ID_SYSTEM_CHEAT:
|
||||||
{
|
{
|
||||||
g_BaseSystem->SelectCheats(hWnd);
|
CCheatsUI * cheatUI = new CCheatsUI;
|
||||||
|
g_cheatUI = cheatUI;
|
||||||
|
cheatUI->SelectCheats(hWnd, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ID_SYSTEM_GSBUTTON:
|
case ID_SYSTEM_GSBUTTON:
|
||||||
|
|
Loading…
Reference in New Issue