win: upgraded hotkey code (ported from snes9x-rr)

This commit is contained in:
gocha 2009-09-28 04:15:07 +00:00
parent 676c90a0f0
commit 9e8a66a006
3 changed files with 140 additions and 146 deletions

View File

@ -83,8 +83,8 @@ void CopyCustomKeys (SCustomKeys *dst, const SCustomKeys *src)
//====================================================================================== //======================================================================================
//=====================================HANDLERS========================================= //=====================================HANDLERS=========================================
//====================================================================================== //======================================================================================
void HK_OpenROM(int) {OpenFile();} void HK_OpenROM(int, bool justPressed) {OpenFile();}
void HK_PrintScreen(int param) void HK_PrintScreen(int param, bool justPressed)
{ {
char outFilename[MAX_PATH]; char outFilename[MAX_PATH];
@ -130,9 +130,9 @@ void HK_PrintScreen(int param)
NDS_WriteBMP(filename.c_str()); NDS_WriteBMP(filename.c_str());
} }
void HK_StateSaveSlot(int num) void HK_StateSaveSlot(int num, bool justPressed)
{ {
if (romloaded) if (romloaded && justPressed)
{ {
if (!paused) if (!paused)
{ {
@ -147,9 +147,9 @@ void HK_StateSaveSlot(int num)
} }
} }
void HK_StateLoadSlot(int num) void HK_StateLoadSlot(int num, bool justPressed)
{ {
if (romloaded) if (romloaded && justPressed)
{ {
BOOL wasPaused = paused; BOOL wasPaused = paused;
NDS_Pause(); NDS_Pause();
@ -166,7 +166,7 @@ void HK_StateLoadSlot(int num)
} }
} }
void HK_StateSetSlot(int num) void HK_StateSetSlot(int num, bool justPressed)
{ {
if (romloaded) if (romloaded)
{ {
@ -175,23 +175,23 @@ void HK_StateSetSlot(int num)
} }
} }
void HK_StateQuickSaveSlot(int) void HK_StateQuickSaveSlot(int, bool justPressed)
{ {
HK_StateSaveSlot(lastSaveState); HK_StateSaveSlot(lastSaveState, justPressed);
} }
void HK_StateQuickLoadSlot(int) void HK_StateQuickLoadSlot(int, bool justPressed)
{ {
HK_StateLoadSlot(lastSaveState); HK_StateLoadSlot(lastSaveState, justPressed);
} }
void HK_MicrophoneKeyDown(int) { NDS_setMic(1); } void HK_MicrophoneKeyDown(int, bool justPressed) { NDS_setMic(1); }
void HK_MicrophoneKeyUp(int) { NDS_setMic(0); } void HK_MicrophoneKeyUp(int) { NDS_setMic(0); }
void HK_AutoHoldKeyDown(int) {AutoHoldPressed = true;} void HK_AutoHoldKeyDown(int, bool justPressed) {AutoHoldPressed = true;}
void HK_AutoHoldKeyUp(int) {AutoHoldPressed = false;} void HK_AutoHoldKeyUp(int) {AutoHoldPressed = false;}
void HK_StylusAutoHoldKeyDown(int) { void HK_StylusAutoHoldKeyDown(int, bool justPressed) {
StylusAutoHoldPressed = !StylusAutoHoldPressed; StylusAutoHoldPressed = !StylusAutoHoldPressed;
if (StylusAutoHoldPressed) if (StylusAutoHoldPressed)
NDS_setTouchPos(winLastTouch.x, winLastTouch.y); NDS_setTouchPos(winLastTouch.x, winLastTouch.y);
@ -199,29 +199,29 @@ void HK_StylusAutoHoldKeyDown(int) {
NDS_releaseTouch(); NDS_releaseTouch();
} }
void HK_AutoHoldClearKeyDown(int) { void HK_AutoHoldClearKeyDown(int, bool justPressed) {
ClearAutoHold(); ClearAutoHold();
StylusAutoHoldPressed = false; StylusAutoHoldPressed = false;
if (!userTouchesScreen) if (!userTouchesScreen)
NDS_releaseTouch(); NDS_releaseTouch();
} }
void HK_Reset(int) {ResetGame();} void HK_Reset(int, bool justPressed) {ResetGame();}
void HK_RecordAVI(int) { if (AVI_IsRecording()) AviEnd(); else AviRecordTo(); } void HK_RecordAVI(int, bool justPressed) { if (AVI_IsRecording()) AviEnd(); else AviRecordTo(); }
void HK_RecordWAV(int) { if (WAV_IsRecording()) WavEnd(); else WavRecordTo(); } void HK_RecordWAV(int, bool justPressed) { if (WAV_IsRecording()) WavEnd(); else WavRecordTo(); }
void HK_ToggleFrame(int) {CommonSettings.hud.FrameCounterDisplay ^= true;} void HK_ToggleFrame(int, bool justPressed) {CommonSettings.hud.FrameCounterDisplay ^= true;}
void HK_ToggleFPS(int) {CommonSettings.hud.FpsDisplay ^= true;} void HK_ToggleFPS(int, bool justPressed) {CommonSettings.hud.FpsDisplay ^= true;}
void HK_ToggleInput(int) {CommonSettings.hud.ShowInputDisplay ^= true;} void HK_ToggleInput(int, bool justPressed) {CommonSettings.hud.ShowInputDisplay ^= true;}
void HK_ToggleLag(int) {CommonSettings.hud.ShowLagFrameCounter ^= true;} void HK_ToggleLag(int, bool justPressed) {CommonSettings.hud.ShowLagFrameCounter ^= true;}
void HK_ResetLagCounter(int) { void HK_ResetLagCounter(int, bool justPressed) {
lagframecounter=0; lagframecounter=0;
LagFrameFlag=0; LagFrameFlag=0;
lastLag=0; lastLag=0;
TotalLagFrames=0; TotalLagFrames=0;
} }
void HK_ToggleReadOnly(int) { void HK_ToggleReadOnly(int, bool justPressed) {
movie_readonly ^= true; movie_readonly ^= true;
if(movie_readonly) if(movie_readonly)
osd->addLine("Read Only"); osd->addLine("Read Only");
@ -229,7 +229,7 @@ void HK_ToggleReadOnly(int) {
osd->addLine("Read+Write"); osd->addLine("Read+Write");
} }
void HK_PlayMovie(int) void HK_PlayMovie(int, bool justPressed)
{ {
if (romloaded) if (romloaded)
{ {
@ -241,11 +241,11 @@ void HK_PlayMovie(int)
bool rewinding = false; bool rewinding = false;
void HK_RewindKeyDown(int) {rewinding = true;} void HK_RewindKeyDown(int, bool justPressed) {rewinding = true;}
void HK_RewindKeyUp(int){rewinding = false;} void HK_RewindKeyUp(int){rewinding = false;}
void HK_RecordMovie(int) void HK_RecordMovie(int, bool justPressed)
{ {
if (romloaded) if (romloaded)
{ {
@ -255,68 +255,68 @@ void HK_RecordMovie(int)
} }
} }
void HK_StopMovie(int) void HK_StopMovie(int, bool justPressed)
{ {
FCEUI_StopMovie(); FCEUI_StopMovie();
} }
void HK_NewLuaScriptDown(int) void HK_NewLuaScriptDown(int, bool justPressed)
{ {
SendMessage(MainWindow->getHWnd(), WM_COMMAND, IDC_NEW_LUA_SCRIPT, 0); SendMessage(MainWindow->getHWnd(), WM_COMMAND, IDC_NEW_LUA_SCRIPT, 0);
} }
void HK_CloseLuaScriptsDown(int) void HK_CloseLuaScriptsDown(int, bool justPressed)
{ {
SendMessage(MainWindow->getHWnd(), WM_COMMAND, IDC_CLOSE_LUA_SCRIPTS, 0); SendMessage(MainWindow->getHWnd(), WM_COMMAND, IDC_CLOSE_LUA_SCRIPTS, 0);
} }
void HK_MostRecentLuaScriptDown(int) void HK_MostRecentLuaScriptDown(int, bool justPressed)
{ {
SendMessage(MainWindow->getHWnd(), WM_COMMAND, IDD_LUARECENT_RESERVE_START, 0); SendMessage(MainWindow->getHWnd(), WM_COMMAND, IDD_LUARECENT_RESERVE_START, 0);
} }
void HK_TurboRightKeyDown(int) { Turbo.R = true; } void HK_TurboRightKeyDown(int, bool justPressed) { Turbo.R = true; }
void HK_TurboRightKeyUp(int) { Turbo.R = false; } void HK_TurboRightKeyUp(int) { Turbo.R = false; }
void HK_TurboLeftKeyDown(int) { Turbo.L = true; } void HK_TurboLeftKeyDown(int, bool justPressed) { Turbo.L = true; }
void HK_TurboLeftKeyUp(int) { Turbo.L = false; } void HK_TurboLeftKeyUp(int) { Turbo.L = false; }
void HK_TurboRKeyDown(int) { Turbo.E = true; } void HK_TurboRKeyDown(int, bool justPressed) { Turbo.E = true; }
void HK_TurboRKeyUp(int) { Turbo.E = false; } void HK_TurboRKeyUp(int) { Turbo.E = false; }
void HK_TurboLKeyDown(int) { Turbo.W = true; } void HK_TurboLKeyDown(int, bool justPressed) { Turbo.W = true; }
void HK_TurboLKeyUp(int) { Turbo.W = false; } void HK_TurboLKeyUp(int) { Turbo.W = false; }
void HK_TurboDownKeyDown(int) { Turbo.D = true; } void HK_TurboDownKeyDown(int, bool justPressed) { Turbo.D = true; }
void HK_TurboDownKeyUp(int) { Turbo.D = false; } void HK_TurboDownKeyUp(int) { Turbo.D = false; }
void HK_TurboUpKeyDown(int) { Turbo.U = true; } void HK_TurboUpKeyDown(int, bool justPressed) { Turbo.U = true; }
void HK_TurboUpKeyUp(int) { Turbo.U = false; } void HK_TurboUpKeyUp(int) { Turbo.U = false; }
void HK_TurboBKeyDown(int) { Turbo.B = true; } void HK_TurboBKeyDown(int, bool justPressed) { Turbo.B = true; }
void HK_TurboBKeyUp(int) { Turbo.B = false; } void HK_TurboBKeyUp(int) { Turbo.B = false; }
void HK_TurboAKeyDown(int) { Turbo.A = true; } void HK_TurboAKeyDown(int, bool justPressed) { Turbo.A = true; }
void HK_TurboAKeyUp(int) { Turbo.A = false; } void HK_TurboAKeyUp(int) { Turbo.A = false; }
void HK_TurboXKeyDown(int) { Turbo.X = true; } void HK_TurboXKeyDown(int, bool justPressed) { Turbo.X = true; }
void HK_TurboXKeyUp(int) { Turbo.X = false; } void HK_TurboXKeyUp(int) { Turbo.X = false; }
void HK_TurboYKeyDown(int) { Turbo.Y = true; } void HK_TurboYKeyDown(int, bool justPressed) { Turbo.Y = true; }
void HK_TurboYKeyUp(int) { Turbo.Y = false; } void HK_TurboYKeyUp(int) { Turbo.Y = false; }
void HK_TurboStartKeyDown(int) { Turbo.S = true; } void HK_TurboStartKeyDown(int, bool justPressed) { Turbo.S = true; }
void HK_TurboStartKeyUp(int) { Turbo.S = false; } void HK_TurboStartKeyUp(int) { Turbo.S = false; }
void HK_TurboSelectKeyDown(int) { Turbo.T = true; } void HK_TurboSelectKeyDown(int, bool justPressed) { Turbo.T = true; }
void HK_TurboSelectKeyUp(int) { Turbo.T = false; } void HK_TurboSelectKeyUp(int) { Turbo.T = false; }
void HK_NextSaveSlot(int) { void HK_NextSaveSlot(int, bool justPressed) {
lastSaveState++; lastSaveState++;
if(lastSaveState>9) if(lastSaveState>9)
lastSaveState=0; lastSaveState=0;
osd->addLine("State %i selected", lastSaveState); osd->addLine("State %i selected", lastSaveState);
} }
void HK_PreviousSaveSlot(int) { void HK_PreviousSaveSlot(int, bool justPressed) {
if(lastSaveState==0) if(lastSaveState==0)
lastSaveState=9; lastSaveState=9;
@ -325,16 +325,16 @@ void HK_PreviousSaveSlot(int) {
osd->addLine("State %i selected", lastSaveState); osd->addLine("State %i selected", lastSaveState);
} }
void HK_Pause(int) { Pause(); } void HK_Pause(int, bool justPressed) { Pause(); }
void HK_FastForwardToggle(int) { FastForward ^=1; } void HK_FastForwardToggle(int, bool justPressed) { FastForward ^=1; }
void HK_FastForwardKeyDown(int) { FastForward = 1; } void HK_FastForwardKeyDown(int, bool justPressed) { FastForward = 1; }
void HK_FastForwardKeyUp(int) { FastForward = 0; } void HK_FastForwardKeyUp(int) { FastForward = 0; }
void HK_IncreaseSpeed(int) { IncreaseSpeed(); } void HK_IncreaseSpeed(int, bool justPressed) { IncreaseSpeed(); }
void HK_DecreaseSpeed(int) { DecreaseSpeed(); } void HK_DecreaseSpeed(int, bool justPressed) { DecreaseSpeed(); }
void HK_FrameAdvanceKeyDown(int) { FrameAdvance(true); } void HK_FrameAdvanceKeyDown(int, bool justPressed) { FrameAdvance(true); }
void HK_FrameAdvanceKeyUp(int) { FrameAdvance(false); } void HK_FrameAdvanceKeyUp(int) { FrameAdvance(false); }
void HK_ToggleRasterizer(int) { void HK_ToggleRasterizer(int, bool justPressed) {
if(cur3DCore == GPU3D_OPENGL) if(cur3DCore == GPU3D_OPENGL)
cur3DCore = GPU3D_SWRAST; cur3DCore = GPU3D_SWRAST;
else cur3DCore = GPU3D_OPENGL; else cur3DCore = GPU3D_OPENGL;

View File

@ -48,11 +48,12 @@ static LPCTSTR hotkeyPageTitle[] = {
struct SCustomKey struct SCustomKey
{ {
typedef void (*THandler) (int param); typedef void (*THandlerDown) (int param, bool justPressed);
typedef void (*THandlerUp) (int param);
WORD key; WORD key;
WORD modifiers; WORD modifiers;
THandler handleKeyDown; THandlerDown handleKeyDown;
THandler handleKeyUp; THandlerUp handleKeyUp;
HotkeyPage page; HotkeyPage page;
std::wstring name; std::wstring name;
const char* code; const char* code;
@ -106,12 +107,12 @@ void InitCustomKeys (SCustomKeys *keys);
int GetModifiers(int key); int GetModifiers(int key);
//HOTKEY HANDLERS //HOTKEY HANDLERS
void HK_PrintScreen(int); void HK_PrintScreen(int, bool);
void HK_StateSaveSlot(int); void HK_StateSaveSlot(int, bool);
void HK_StateLoadSlot(int); void HK_StateLoadSlot(int, bool);
void HK_StateSetSlot(int); void HK_StateSetSlot(int, bool);
void HK_Pause(int); void HK_Pause(int, bool);
void HK_FastForward(int); void HK_FastForward(int, bool);
extern bool AutoHoldPressed; extern bool AutoHoldPressed;

View File

@ -324,87 +324,54 @@ LRESULT CALLBACK WifiSettingsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM
// const char *cflash_disk_image_file; // const char *cflash_disk_image_file;
//}; //};
int KeyInDelayInCount=30; static int KeyInDelayMSec = 0;
static int KeyInRepeatMSec = 16;
static int lastTime = timeGetTime();
int repeattime;
VOID CALLBACK KeyInputTimer( UINT idEvent, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2) VOID CALLBACK KeyInputTimer( UINT idEvent, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2)
{ {
//
// if(timeGetTime() - lastTime > 5)
// {
bool S9xGetState (WORD KeyIdent); bool S9xGetState (WORD KeyIdent);
/* if(GUI.JoystickHotkeys) static DWORD lastTime = timeGetTime();
{ DWORD currentTime = timeGetTime();
static uint32 joyState [256];
for(int i = 0 ; i < 255 ; i++) static struct JoyState {
{ bool wasPressed;
bool active = !S9xGetState(0x8000|i); DWORD firstPressedTime;
DWORD lastPressedTime;
if(active) WORD repeatCount;
{ } joyState [256];
if(joyState[i] < ULONG_MAX) // 0xffffffffUL
joyState[i]++;
if(joyState[i] == 1 || joyState[i] >= (unsigned) KeyInDelayInCount)
PostMessage(GUI.hWnd, WM_CUSTKEYDOWN, (WPARAM)(0x8000|i),(LPARAM)(NULL));
}
else
{
if(joyState[i])
{
joyState[i] = 0;
PostMessage(GUI.hWnd, WM_CUSTKEYUP, (WPARAM)(0x8000|i),(LPARAM)(NULL));
}
}
}
}*/
// if((!GUI.InactivePause || !Settings.ForcedPause)
// || (GUI.BackgroundInput || !(Settings.ForcedPause & (PAUSE_INACTIVE_WINDOW | PAUSE_WINDOW_ICONISED))))
// {
static u32 joyState [256];
static bool initialized = false; static bool initialized = false;
if(!initialized) { if(!initialized) {
memset(joyState,0,sizeof(joyState)); for(int i = 0; i < 256; i++) {
joyState[i].wasPressed = false;
joyState[i].repeatCount = 1;
}
initialized = true; initialized = true;
} }
for(int i = 0 ; i < 256 ; i++)
{ for (int i = 0; i < 256; i++) {
bool active = !S9xGetState(i); bool active = !S9xGetState(i);
if(active)
{
if(joyState[i] < ULONG_MAX) // 0xffffffffUL
joyState[i]++;
if(joyState[i] == 1 || joyState[i] == (unsigned) KeyInDelayInCount) {
if (active) {
//HEY HEY HEY! this only repeats once. this is what it needs to be like for frame advance. bool keyRepeat = (currentTime - joyState[i].firstPressedTime) >= (DWORD)KeyInDelayMSec;
//if anyone wants a different kind of repeat, then the whole setup will need to be redone if (!joyState[i].wasPressed || keyRepeat) {
if (!joyState[i].wasPressed)
//sort of fix the auto repeating joyState[i].firstPressedTime = currentTime;
//TODO find something better joyState[i].lastPressedTime = currentTime;
// repeattime++; if (keyRepeat && joyState[i].repeatCount < 0xffff)
// if(repeattime % 10 == 0) { joyState[i].repeatCount++;
//printf("trigger %d\n",i); PostMessage(MainWindow->getHWnd(), WM_CUSTKEYDOWN, (WPARAM)(i),(LPARAM)(joyState[i].repeatCount | (joyState[i].wasPressed ? 0x40000000 : 0)));
PostMessage(MainWindow->getHWnd(), WM_CUSTKEYDOWN, (WPARAM)(i),(LPARAM)(NULL));
repeattime=0;
// }
} }
} }
else else {
{ joyState[i].repeatCount = 1;
if(joyState[i]) if (joyState[i].wasPressed)
{ PostMessage(MainWindow->getHWnd(), WM_CUSTKEYUP, (WPARAM)(i),(LPARAM)(joyState[i].repeatCount | (joyState[i].wasPressed ? 0x40000000 : 0)));
joyState[i] = 0;
PostMessage(MainWindow->getHWnd(), WM_CUSTKEYUP, (WPARAM)(i),(LPARAM)(NULL));
} }
joyState[i].wasPressed = active;
} }
} lastTime = currentTime;
// }
// lastTime = timeGetTime();
// }
} }
void ScaleScreen(float factor) void ScaleScreen(float factor)
@ -2139,7 +2106,33 @@ int _main()
MainWindow->checkMenu(frameskiprate + IDC_FRAMESKIP0, true); MainWindow->checkMenu(frameskiprate + IDC_FRAMESKIP0, true);
} }
int KeyInRepeatMSec=20; DWORD wmTimerRes;
TIMECAPS tc;
if (timeGetDevCaps(&tc, sizeof(TIMECAPS))== TIMERR_NOERROR)
{
wmTimerRes = std::min(std::max(tc.wPeriodMin, (UINT)1), tc.wPeriodMax);
timeBeginPeriod (wmTimerRes);
}
else
{
wmTimerRes = 5;
timeBeginPeriod (wmTimerRes);
}
if (KeyInDelayMSec == 0) {
DWORD dwKeyboardDelay;
SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, &dwKeyboardDelay, 0);
KeyInDelayMSec = 250 * (dwKeyboardDelay + 1);
}
if (KeyInRepeatMSec == 0) {
DWORD dwKeyboardSpeed;
SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, &dwKeyboardSpeed, 0);
KeyInRepeatMSec = (int)(1000.0/(((30.0-2.5)/31.0)*dwKeyboardSpeed+2.5));
}
if (KeyInRepeatMSec < (int)wmTimerRes)
KeyInRepeatMSec = (int)wmTimerRes;
if (KeyInDelayMSec < KeyInRepeatMSec)
KeyInDelayMSec = KeyInRepeatMSec;
hKeyInputTimer = timeSetEvent (KeyInRepeatMSec, 0, KeyInputTimer, 0, TIME_PERIODIC); hKeyInputTimer = timeSetEvent (KeyInRepeatMSec, 0, KeyInputTimer, 0, TIME_PERIODIC);
@ -2232,7 +2225,7 @@ int _main()
if(cmdline.load_slot != 0) if(cmdline.load_slot != 0)
{ {
HK_StateLoadSlot(cmdline.load_slot); HK_StateLoadSlot(cmdline.load_slot, true);
} }
MainWindow->Show(SW_NORMAL); MainWindow->Show(SW_NORMAL);
@ -2841,7 +2834,7 @@ int HandleKeyMessage(WPARAM wParam, LPARAM lParam, int modifiers)
SCustomKey *key = &CustomKeys.key(0); SCustomKey *key = &CustomKeys.key(0);
while (!IsLastCustomKey(key)) { while (!IsLastCustomKey(key)) {
if (wParam == key->key && modifiers == key->modifiers && key->handleKeyDown) { if (wParam == key->key && modifiers == key->modifiers && key->handleKeyDown) {
key->handleKeyDown(key->param); key->handleKeyDown(key->param, lParam & 0x40000000 ? false : true);
hitHotKey = true; hitHotKey = true;
} }
key++; key++;
@ -3547,7 +3540,7 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
case IDM_CLOSEROM: case IDM_CLOSEROM:
return CloseRom(),0; return CloseRom(),0;
case IDM_PRINTSCREEN: case IDM_PRINTSCREEN:
HK_PrintScreen(0); HK_PrintScreen(0, true);
return 0; return 0;
case IDM_QUICK_PRINTSCREEN: case IDM_QUICK_PRINTSCREEN:
{ {
@ -3743,38 +3736,38 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
case IDM_STATE_SAVE_F8: case IDM_STATE_SAVE_F8:
case IDM_STATE_SAVE_F9: case IDM_STATE_SAVE_F9:
case IDM_STATE_SAVE_F10: case IDM_STATE_SAVE_F10:
HK_StateSaveSlot( abs(IDM_STATE_SAVE_F1 - LOWORD(wParam)) +1); HK_StateSaveSlot( abs(IDM_STATE_SAVE_F1 - LOWORD(wParam)) +1, true);
return 0; return 0;
case IDM_STATE_LOAD_F1: case IDM_STATE_LOAD_F1:
HK_StateLoadSlot(1); HK_StateLoadSlot(1, true);
return 0; return 0;
case IDM_STATE_LOAD_F2: case IDM_STATE_LOAD_F2:
HK_StateLoadSlot(2); HK_StateLoadSlot(2, true);
return 0; return 0;
case IDM_STATE_LOAD_F3: case IDM_STATE_LOAD_F3:
HK_StateLoadSlot(3); HK_StateLoadSlot(3, true);
return 0; return 0;
case IDM_STATE_LOAD_F4: case IDM_STATE_LOAD_F4:
HK_StateLoadSlot(4); HK_StateLoadSlot(4, true);
return 0; return 0;
case IDM_STATE_LOAD_F5: case IDM_STATE_LOAD_F5:
HK_StateLoadSlot(5); HK_StateLoadSlot(5, true);
return 0; return 0;
case IDM_STATE_LOAD_F6: case IDM_STATE_LOAD_F6:
HK_StateLoadSlot(6); HK_StateLoadSlot(6, true);
return 0; return 0;
case IDM_STATE_LOAD_F7: case IDM_STATE_LOAD_F7:
HK_StateLoadSlot(7); HK_StateLoadSlot(7, true);
return 0; return 0;
case IDM_STATE_LOAD_F8: case IDM_STATE_LOAD_F8:
HK_StateLoadSlot(8); HK_StateLoadSlot(8, true);
return 0; return 0;
case IDM_STATE_LOAD_F9: case IDM_STATE_LOAD_F9:
HK_StateLoadSlot(9); HK_StateLoadSlot(9, true);
return 0; return 0;
case IDM_STATE_LOAD_F10: case IDM_STATE_LOAD_F10:
HK_StateLoadSlot(10); HK_StateLoadSlot(10, true);
return 0; return 0;
case IDM_IMPORTBACKUPMEMORY: case IDM_IMPORTBACKUPMEMORY:
{ {