[Add] Possibility to delete save games.
This commit is contained in:
parent
2120f5da90
commit
5800461f1d
31
src/save.c
31
src/save.c
@ -1,3 +1,7 @@
|
|||||||
|
#ifdef _POSIX_SOURCE
|
||||||
|
#include <unistd.h> // Unlink.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "lephisto.h"
|
#include "lephisto.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "xml.h"
|
#include "xml.h"
|
||||||
@ -29,6 +33,7 @@ extern void menu_main_close(void);
|
|||||||
static int save_data(xmlTextWriterPtr writer);
|
static int save_data(xmlTextWriterPtr writer);
|
||||||
static void load_menu_close(char* str);
|
static void load_menu_close(char* str);
|
||||||
static void load_menu_load(char* str);
|
static void load_menu_load(char* str);
|
||||||
|
static void load_menu_delete(char* str);
|
||||||
static int load_game(char* file);
|
static int load_game(char* file);
|
||||||
|
|
||||||
// Save all the game data.
|
// 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,
|
window_addButton(wid, -20, 30 + BUTTON_HEIGHT, BUTTON_WIDTH, BUTTON_HEIGHT,
|
||||||
"btnLoad", "Load", load_menu_load);
|
"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.
|
// Default action.
|
||||||
window_setFptr(wid, load_menu_load);
|
window_setFptr(wid, load_menu_load);
|
||||||
}
|
}
|
||||||
@ -159,6 +167,29 @@ static void load_menu_load(char* str) {
|
|||||||
menu_main_close();
|
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.
|
// Load a new game.
|
||||||
static int load_game(char* file) {
|
static int load_game(char* file) {
|
||||||
xmlNodePtr node;
|
xmlNodePtr node;
|
||||||
|
Loading…
Reference in New Issue
Block a user