From 465ad101d1bb9d8f70065a7828fd59ed2da2a4e0 Mon Sep 17 00:00:00 2001 From: punkrockguy318 Date: Tue, 11 Nov 2008 18:51:06 +0000 Subject: [PATCH] savestates mappable in sdl --- changelog.txt | 1 + src/drivers/sdl/config.cpp | 11 +++++++- src/drivers/sdl/input.cpp | 55 +++++++++++++++++++++++++++++++++++--- 3 files changed, 63 insertions(+), 4 deletions(-) diff --git a/changelog.txt b/changelog.txt index 2064b5d4..ac918cc0 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,5 @@ ---version 2.0.4 yet to be released--- +11-nov-2008 - punkrockguy - sdl - savestate slots now mappable [2175167] 10-nov-2008 - adelikat - win32 - removed accel keys from main window 10-nov-2008 - adelikat - Win32 - added Open & Close ROM mappable hotkeys, removed accel functions 10-nov-2008 - punkrockguy - improved the sdl sound code; drasticaly improves quality of sound. diff --git a/src/drivers/sdl/config.cpp b/src/drivers/sdl/config.cpp index 91b7572e..d08d23d9 100644 --- a/src/drivers/sdl/config.cpp +++ b/src/drivers/sdl/config.cpp @@ -289,7 +289,16 @@ InitConfig() config->addOption(prefix + "BindState", SDLK_F2); config->addOption(prefix + "FrameAdvanceLagSkip", SDLK_F6); config->addOption(prefix + "LagCounterDisplay", SDLK_F8); - + config->addOption(prefix + "SelectState0", SDLK_0); + config->addOption(prefix + "SelectState1", SDLK_1); + config->addOption(prefix + "SelectState2", SDLK_2); + config->addOption(prefix + "SelectState3", SDLK_3); + config->addOption(prefix + "SelectState4", SDLK_4); + config->addOption(prefix + "SelectState5", SDLK_5); + config->addOption(prefix + "SelectState6", SDLK_6); + config->addOption(prefix + "SelectState7", SDLK_7); + config->addOption(prefix + "SelectState8", SDLK_8); + config->addOption(prefix + "SelectState9", SDLK_9); // All mouse devices diff --git a/src/drivers/sdl/input.cpp b/src/drivers/sdl/input.cpp index 8a6db7de..d1d73eeb 100644 --- a/src/drivers/sdl/input.cpp +++ b/src/drivers/sdl/input.cpp @@ -19,6 +19,7 @@ */ #include +#include #include "main.h" #include "dface.h" @@ -376,7 +377,57 @@ KeyboardCommands() FCEU_LoadLuaCode(fname.c_str()); } #endif - + + std::string opt = "SDL.Hotkeys.SelectState0"; + g_config->getOption(opt, &key); + if(_keyonly(key)) + FCEUI_SelectState(0,1); + + opt = "SDL.Hotkeys.SelectState1"; + g_config->getOption(opt, &key); + if(_keyonly(key)) + FCEUI_SelectState(1,1); + + opt = "SDL.Hotkeys.SelectState2"; + g_config->getOption(opt, &key); + if(_keyonly(key)) + FCEUI_SelectState(2,1); + + opt = "SDL.Hotkeys.SelectState3"; + g_config->getOption(opt, &key); + if(_keyonly(key)) + FCEUI_SelectState(3,1); + + opt = "SDL.Hotkeys.SelectState4"; + g_config->getOption(opt, &key); + if(_keyonly(key)) + FCEUI_SelectState(4,1); + + opt = "SDL.Hotkeys.SelectState5"; + g_config->getOption(opt, &key); + if(_keyonly(key)) + FCEUI_SelectState(5,1); + + opt = "SDL.Hotkeys.SelectState6"; + g_config->getOption(opt, &key); + if(_keyonly(key)) + FCEUI_SelectState(6,1); + + opt = "SDL.Hotkeys.SelectState7"; + g_config->getOption(opt, &key); + if(_keyonly(key)) + FCEUI_SelectState(7,1); + + opt = "SDL.Hotkeys.SelectState8"; + g_config->getOption(opt, &key); + if(_keyonly(key)) + FCEUI_SelectState(8,1); + + opt = "SDL.Hotkeys.SelectState9"; + g_config->getOption(opt, &key); + if(_keyonly(key)) + FCEUI_SelectState(9,1); + g_config->getOption("SDL.Hotkeys.BindState", &key); if(_keyonly(key)) { bindSavestate ^= 1; @@ -455,8 +506,6 @@ do { \ bbuf[bbuft] = 0; \ } \ FCEUI_DispMessage("Barcode: %s", bbuf); \ - } else { \ - FCEUI_SelectState(x,1); \ } \ } while(0)