[Add] Possibility to delete save games.

This commit is contained in:
Allanis 2013-06-16 02:25:04 +01:00
parent 2120f5da90
commit 5800461f1d

View File

@ -1,3 +1,7 @@
#ifdef _POSIX_SOURCE
#include <unistd.h> // Unlink.
#endif
#include "lephisto.h"
#include "log.h"
#include "xml.h"
@ -29,6 +33,7 @@ extern void menu_main_close(void);
static int save_data(xmlTextWriterPtr writer);
static void load_menu_close(char* str);
static void load_menu_load(char* str);
static void load_menu_delete(char* str);
static int load_game(char* file);
// Save all the game data.
@ -131,6 +136,9 @@ void load_game_menu(void) {
window_addButton(wid, -20, 30 + BUTTON_HEIGHT, BUTTON_WIDTH, BUTTON_HEIGHT,
"btnLoad", "Load", load_menu_load);
window_addButton(wid, -20, 20+2*(10+BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT,
"btnDelete", "Del", load_menu_delete);
// Default action.
window_setFptr(wid, load_menu_load);
}
@ -159,6 +167,29 @@ static void load_menu_load(char* str) {
menu_main_close();
}
static void load_menu_delete(char* str) {
(void)str;
char* save, path[PATH_MAX];
int wid;
wid = window_get("Load Game");
save = toolkit_getList(wid, "lstSaves");
if(strcmp(save, "None") == 0)
return;
if(dialogue_YesNo("Permanently Delete?",
"Are you sure you want to permanently delete '%s'?", save) == 0)
return;
snprintf(path, PATH_MAX, "%ssaves/%s.ls", lfile_basePath(), save);
unlink(path);
// Need to reload the menu.
load_menu_close(NULL);
load_game_menu();
}
// Load a new game.
static int load_game(char* file) {
xmlNodePtr node;