Redo Savestate fix. Made Undo/Redo Savestate hotkey. Win32 - made default Undo/Redo key mapping Ctrl+Z

This commit is contained in:
adelikat 2008-12-24 04:46:56 +00:00
parent bae8c66a66
commit f1256869b6
6 changed files with 18 additions and 5 deletions

View File

@ -1,4 +1,5 @@
---version 2.0.4 yet to be released---
24-dec-2008 - adelikat - added undo/redo savestate hotkey. Win32 - made undo/redo default key mapping Ctrl+Z
24-dec-2008 - adelikat - win32 - added Last ROM used context menu item when no game loaded
24-dec-2008 - shinydoofy - sdl - added option to mute FCEUX for avi capturing, check the docs for more detail
23-dec-2008 - adelikat - Win32 - Undo/redo loadstate and Undo/redo savestate context menu items added

View File

@ -84,6 +84,7 @@ static struct
{ EMUCMD_SCRIPT_RELOAD, SCAN_L | CMD_KEY_SHIFT },
{ EMUCMD_OPENROM, SCAN_O | CMD_KEY_CTRL },
{ EMUCMD_CLOSEROM, SCAN_W | CMD_KEY_CTRL },
{ EMUCMD_MISC_UNDOREDOSAVESTATE, SCAN_Z | CMD_KEY_CTRL },
};
#define NUM_DEFAULT_MAPPINGS (sizeof(DefaultCommandMapping)/sizeof(DefaultCommandMapping[0]))

View File

@ -417,9 +417,9 @@ void UpdateContextMenuItems(HMENU context, int whichContext)
{
string undoLoadstate = "Undo loadstate";
string redoLoadstate = "Redo loadstate";
string redoSavestate = "Redo savestate";
string undoSavestate = "Undo savestate";
string redoSavestate = "Redo savestate";
//Undo Loadstate
if (CheckBackupSaveStateExist() && (undoLS || redoLS))
EnableMenuItem(context,FCEUX_CONTEXT_UNDOLOADSTATE,MF_BYCOMMAND | MF_ENABLED);
@ -1315,7 +1315,8 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
//Undo Savestate
case FCEUX_CONTEXT_UNDOSAVESTATE:
SwapSaveState();
if (undoSS || redoSS)
SwapSaveState();
break;
//Undo Loadstate

View File

@ -594,6 +594,7 @@ static void FA_SkipLag(void);
static void OpenRom(void);
static void CloseRom(void);
static void MovieSubtitleToggle(void);
static void UndoRedoSavestate(void);
struct EMUCMDTABLE FCEUI_CommandTable[]=
{
@ -704,7 +705,8 @@ struct EMUCMDTABLE FCEUI_CommandTable[]=
{ EMUCMD_FRAMEADV_SKIPLAG, EMUCMDTYPE_MISC, FA_SkipLag, 0, 0, "Frame Adv.-Skip Lag", 0},
{ EMUCMD_OPENROM, EMUCMDTYPE_TOOL, OpenRom, 0, 0, "Open ROM", 0},
{ EMUCMD_CLOSEROM, EMUCMDTYPE_TOOL, CloseRom, 0, 0, "Close ROM", 0},
{ EMUCMD_MISC_DISPLAY_MOVIESUBTITLES, EMUCMDTYPE_MISC, MovieSubtitleToggle,0,0,"Toggle Movie Subtitles", 0}
{ EMUCMD_MISC_DISPLAY_MOVIESUBTITLES, EMUCMDTYPE_MISC, MovieSubtitleToggle,0,0,"Toggle Movie Subtitles", 0},
{ EMUCMD_MISC_UNDOREDOSAVESTATE, EMUCMDTYPE_MISC, UndoRedoSavestate, 0,0,"Undo/Redo Savestate", 0}
};
#define NUM_EMU_CMDS (sizeof(FCEUI_CommandTable)/sizeof(FCEUI_CommandTable[0]))
@ -912,4 +914,10 @@ static void MovieSubtitleToggle(void)
movieSubtitles ^= 1;
if (movieSubtitles) FCEU_DispMessage("Movie subtitles on");
else FCEU_DispMessage("Movie subtitles off");
}
static void UndoRedoSavestate(void)
{
if (lastSavestateMade && (undoSS || redoSS))
SwapSaveState();
}

View File

@ -212,6 +212,7 @@ enum EMUCMD
EMUCMD_CLOSEROM,
//-----------------------------
EMUCMD_MISC_DISPLAY_MOVIESUBTITLES,
EMUCMD_MISC_UNDOREDOSAVESTATE,
EMUCMD_MAX
};

View File

@ -447,7 +447,7 @@ void FCEUSS_Save(const char *fname)
{
CreateBackupSaveState(fn); //Make a backup of previous savestate before overwriting it
strcpy(lastSavestateMade,fn); //Remember what the last savestate filename was (for undoing later)
undoSS = true; //Backup was created so redo is possible
undoSS = true; //Backup was created so undo is possible
}
else
undoSS = false; //so backup made so lastSavestateMade does have a backup file, so no undo
@ -474,6 +474,7 @@ void FCEUSS_Save(const char *fname)
SaveStateStatus[CurrentState]=1;
FCEU_DispMessage("State %d saved.",CurrentState);
}
redoSS = false; //we have a new savestate so redo is not possible
}
int FCEUSS_LoadFP_old(std::istream* is, ENUM_SSLOADPARAMS params)