mirror of
https://github.com/Oibaf66/fbzx-wii.git
synced 2024-11-28 02:54:15 +01:00
Last selected file remebered
This commit is contained in:
parent
f496d9f1b7
commit
447444479e
@ -207,7 +207,7 @@ struct computer {
|
||||
|
||||
unsigned char tape_write; // 0 can't write; 1 can write
|
||||
|
||||
//Recording Variable
|
||||
//RZX variables
|
||||
unsigned char recording_rzx;
|
||||
unsigned char playing_rzx;
|
||||
unsigned short int maxicount;
|
||||
|
@ -56,6 +56,16 @@ extern FILE *fdebug;
|
||||
#define MAX_POKE 20
|
||||
#define MAX_TRAINER 50
|
||||
|
||||
int last_sel_tap=0;
|
||||
int last_sel_snap=0;
|
||||
int last_sel_rzx=0;
|
||||
int last_sel_paste=0;
|
||||
int last_sel_del=0;
|
||||
int last_sel_poke=0;
|
||||
int last_sel_mdr=0;
|
||||
int last_sel_conf=0;
|
||||
int last_sel_scr=0;
|
||||
extern int last_sel_menu;
|
||||
extern int countdown_buffer;
|
||||
extern unsigned int beeper;
|
||||
|
||||
@ -338,10 +348,12 @@ static void insert_tape()
|
||||
unsigned char char_id[11];
|
||||
int retorno, retval;
|
||||
|
||||
const char *filename = menu_select_file(load_path_taps, ordenador.current_tap, 1);
|
||||
const char *filename = menu_select_file(load_path_taps, ordenador.current_tap, 1, last_sel_tap);
|
||||
|
||||
last_sel_tap=last_sel_menu;
|
||||
|
||||
if (filename==NULL) // Aborted
|
||||
return;
|
||||
return;
|
||||
|
||||
if (strstr(filename, "None") != NULL)
|
||||
{
|
||||
@ -405,7 +417,7 @@ static void insert_tape()
|
||||
|
||||
static void delete_tape()
|
||||
{
|
||||
const char *filename = menu_select_file(load_path_taps, NULL, 1);
|
||||
const char *filename = menu_select_file(load_path_taps, NULL, 1, 0);
|
||||
|
||||
if (filename==NULL) // Aborted
|
||||
return;
|
||||
@ -944,8 +956,10 @@ static int select_mdr()
|
||||
|
||||
retorno2=0; //stay in menu as default
|
||||
|
||||
const char *filename = menu_select_file(path_mdrs, ordenador.mdr_current_mdr, 0);
|
||||
const char *filename = menu_select_file(path_mdrs, ordenador.mdr_current_mdr, 0, last_sel_mdr);
|
||||
|
||||
last_sel_mdr=last_sel_menu;
|
||||
|
||||
if (filename==NULL) // Aborted
|
||||
return 0;
|
||||
|
||||
@ -988,7 +1002,7 @@ static int select_mdr()
|
||||
|
||||
static void delete_mdr()
|
||||
{
|
||||
const char *filename = menu_select_file(path_mdrs, NULL, 0);
|
||||
const char *filename = menu_select_file(path_mdrs, NULL, 0, 0);
|
||||
|
||||
if (filename==NULL) // Aborted
|
||||
return;
|
||||
@ -1234,7 +1248,7 @@ static int microdrive()
|
||||
|
||||
static void delete_scr()
|
||||
{
|
||||
const char *filename = menu_select_file(load_path_scr1, NULL, 0); //Delete in the load dir
|
||||
const char *filename = menu_select_file(load_path_scr1, NULL, 0, 0); //Delete in the load dir
|
||||
|
||||
if (filename==NULL) // Aborted
|
||||
return;
|
||||
@ -1254,8 +1268,10 @@ static int load_scr()
|
||||
retorno2=0; //stay in the menu as default
|
||||
|
||||
|
||||
const char *filename = menu_select_file(load_path_scr1, NULL, 1); // Load from SCR1
|
||||
const char *filename = menu_select_file(load_path_scr1, NULL, 1, last_sel_scr); // Load from SCR1
|
||||
|
||||
last_sel_scr=last_sel_menu;
|
||||
|
||||
if (filename==NULL) // Aborted
|
||||
return 0;
|
||||
|
||||
@ -1710,8 +1726,10 @@ static int load_poke_file()
|
||||
ritorno=0;
|
||||
retorno2=0; //Stay in menu as default
|
||||
|
||||
const char *filename = menu_select_file(dir, NULL,0);
|
||||
|
||||
const char *filename = menu_select_file(dir, NULL,0, last_sel_poke);
|
||||
|
||||
last_sel_poke=last_sel_menu;
|
||||
|
||||
if (!filename) return 0;
|
||||
|
||||
if (ext_matches(filename, ".pok")|ext_matches(filename, ".POK"))
|
||||
@ -1777,8 +1795,10 @@ switch (which)
|
||||
|
||||
static void delete_file()
|
||||
{
|
||||
const char *filename = menu_select_file(path_delete, NULL, 0);
|
||||
const char *filename = menu_select_file(path_delete, NULL, 0, last_sel_del);
|
||||
|
||||
last_sel_del=last_sel_menu;
|
||||
|
||||
if (filename==NULL) // Aborted
|
||||
return;
|
||||
|
||||
@ -1789,7 +1809,9 @@ static void delete_file()
|
||||
|
||||
static void paste_file()
|
||||
{
|
||||
const char *filename = menu_select_file(path_paste, NULL, 0);
|
||||
const char *filename = menu_select_file(path_paste, NULL, 0, last_sel_paste);
|
||||
|
||||
last_sel_paste=last_sel_menu;
|
||||
|
||||
if (filename==NULL) // Aborted
|
||||
return;
|
||||
@ -1814,8 +1836,8 @@ static void copy_file()
|
||||
|
||||
msgInfo("Select \"None\" in the dir", 2000,NULL) ;
|
||||
|
||||
const char *filename = menu_select_file(path_copy, pasted_file, 0);
|
||||
|
||||
const char *filename = menu_select_file(path_copy, pasted_file, 0, 0);
|
||||
|
||||
if (filename==NULL) // Aborted
|
||||
return;
|
||||
|
||||
@ -1882,7 +1904,9 @@ static int load_rzx(int edit)
|
||||
{
|
||||
int retorno;
|
||||
|
||||
const char *filename = menu_select_file(load_path_rzx, NULL, 1); // Load from rzx dir
|
||||
const char *filename = menu_select_file(load_path_rzx, NULL, 1, last_sel_rzx); // Load from rzx dir
|
||||
|
||||
last_sel_rzx=last_sel_menu;
|
||||
|
||||
if (filename==NULL) // Aborted
|
||||
return -1;
|
||||
@ -2174,11 +2198,13 @@ static int save_load_snapshot(int which)
|
||||
case 2:
|
||||
case 0: // Load or delete file
|
||||
{
|
||||
const char *filename = menu_select_file(dir_load, NULL,1);
|
||||
const char *filename = menu_select_file(dir_load, NULL,1, last_sel_snap);
|
||||
|
||||
last_sel_snap=last_sel_menu;
|
||||
|
||||
if (!filename)
|
||||
return 0;
|
||||
|
||||
|
||||
//Load ROM Cartridge
|
||||
if ((ext_matches(filename, ".rom")|ext_matches(filename, ".ROM"))&(which == 0))
|
||||
{
|
||||
@ -2262,8 +2288,10 @@ static int save_load_game_configurations(int which)
|
||||
case 2:
|
||||
case 0: // Load or delete file
|
||||
{
|
||||
const char *filename = menu_select_file(dir, NULL,0);
|
||||
const char *filename = menu_select_file(dir, NULL,0, last_sel_conf);
|
||||
|
||||
last_sel_conf=last_sel_menu;
|
||||
|
||||
if (!filename)
|
||||
return 0;
|
||||
|
||||
|
@ -102,7 +102,7 @@ static SDL_Surface *real_screen;
|
||||
static int is_inited = 0;
|
||||
static TTF_Font *menu_font_alt_large, *menu_font_large, *menu_font_alt_small, *menu_font_small;
|
||||
|
||||
int fh, fw;
|
||||
int fh, fw, last_sel_menu;
|
||||
|
||||
static int *click_buffer_pointer[3];
|
||||
static int len_click_buffer[3];
|
||||
@ -987,6 +987,8 @@ static void menu_draw(SDL_Surface *screen, menu_t *p_menu, int sel, int font_typ
|
||||
}
|
||||
}
|
||||
|
||||
last_sel_menu = p_menu->cur_sel;
|
||||
|
||||
if ((draw_scr)&&(RATIO==1)&&ordenador.show_preview) //Only in 640 mode
|
||||
{
|
||||
r.x = 367;
|
||||
@ -1601,7 +1603,7 @@ const char **get_file_list_select_block()
|
||||
}
|
||||
|
||||
static const char *menu_select_file_internal(char *dir_path,
|
||||
int x, int y, int x2, int y2, const char *selected_file, int draw_scr, unsigned int tape_pos)
|
||||
int x, int y, int x2, int y2, const char *selected_file, int draw_scr, unsigned int tape_pos, int sel_pos)
|
||||
{
|
||||
const char **file_list;
|
||||
char *sel;
|
||||
@ -1633,9 +1635,9 @@ static const char *menu_select_file_internal(char *dir_path,
|
||||
if (ptr_selected_file) ptr_selected_file++;
|
||||
else ptr_selected_file = selected_file;
|
||||
snprintf(buf,80,"Selected file:%s",ptr_selected_file);
|
||||
opt = menu_select_sized(buf, file_list, NULL, 0, x, y, x2, y2, NULL, NULL, FONT_ALT, draw_scr);
|
||||
opt = menu_select_sized(buf, file_list, NULL, sel_pos, x, y, x2, y2, NULL, NULL, FONT_ALT, draw_scr);
|
||||
}
|
||||
else opt = menu_select_sized("Select file", file_list, NULL, 0, x, y, x2, y2, NULL, NULL ,FONT_ALT, draw_scr);
|
||||
else opt = menu_select_sized("Select file", file_list, NULL, sel_pos, x, y, x2, y2, NULL, NULL ,FONT_ALT, draw_scr);
|
||||
|
||||
sel = NULL;
|
||||
|
||||
@ -1664,7 +1666,7 @@ static const char *menu_select_file_internal(char *dir_path,
|
||||
if (strrchr(dir_path,'/')==NULL) {*updir='/'; *(updir+1)=0;} //check if it was root
|
||||
}
|
||||
|
||||
return menu_select_file(dir_path, selected_file, draw_scr);
|
||||
return menu_select_file(dir_path, selected_file, draw_scr, 0);
|
||||
}
|
||||
/* If this is a folder, enter it recursively */
|
||||
if (sel[0] == '[')
|
||||
@ -1687,7 +1689,7 @@ static const char *menu_select_file_internal(char *dir_path,
|
||||
/* We don't need this anymore */
|
||||
free((void*)sel);
|
||||
|
||||
return menu_select_file(dir_path, selected_file, draw_scr);
|
||||
return menu_select_file(dir_path, selected_file, draw_scr, 0);
|
||||
}
|
||||
|
||||
|
||||
@ -1704,38 +1706,38 @@ static const char *menu_select_file_internal(char *dir_path,
|
||||
if(!strcmp(out_zip,"[..]"))
|
||||
{
|
||||
free(out_zip);
|
||||
return menu_select_file_internal (dir_path, x, y, x2, y2, selected_file, draw_scr, 0);
|
||||
return menu_select_file_internal (dir_path, x, y, x2, y2, selected_file, draw_scr, 0, 0);
|
||||
}
|
||||
else return out_zip;
|
||||
}
|
||||
else return out;
|
||||
}
|
||||
|
||||
const char *menu_select_file(char *dir_path,const char *selected_file, int draw_scr)
|
||||
const char *menu_select_file(char *dir_path,const char *selected_file, int draw_scr, int sel_pos)
|
||||
{
|
||||
if (dir_path == NULL)
|
||||
dir_path = "";
|
||||
return menu_select_file_internal(dir_path,
|
||||
0, 18/RATIO, FULL_DISPLAY_X, FULL_DISPLAY_Y - 18/RATIO, selected_file, draw_scr, 0);
|
||||
0, 18/RATIO, FULL_DISPLAY_X, FULL_DISPLAY_Y - 18/RATIO, selected_file, draw_scr, 0, sel_pos);
|
||||
}
|
||||
|
||||
const char *menu_select_browser(unsigned int tape_pos)
|
||||
{
|
||||
return menu_select_file_internal("browser",
|
||||
0, 18/RATIO, FULL_DISPLAY_X, FULL_DISPLAY_Y - 18/RATIO, NULL, 0, tape_pos);
|
||||
0, 18/RATIO, FULL_DISPLAY_X, FULL_DISPLAY_Y - 18/RATIO, NULL, 0, tape_pos, 0);
|
||||
}
|
||||
|
||||
const char *menu_select_browser_rzx()
|
||||
{
|
||||
return menu_select_file_internal("browser_rzx",
|
||||
0, 18/RATIO, FULL_DISPLAY_X, FULL_DISPLAY_Y - 18/RATIO, NULL, 1, 0);
|
||||
0, 18/RATIO, FULL_DISPLAY_X, FULL_DISPLAY_Y - 18/RATIO, NULL, 1, 0, 0);
|
||||
}
|
||||
|
||||
const char *menu_select_tape_block()
|
||||
{
|
||||
SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 0, 0, 0));
|
||||
return menu_select_file_internal("select_block",
|
||||
0, 18/RATIO, FULL_DISPLAY_X, FULL_DISPLAY_Y - 18/RATIO, NULL, 0, 0);
|
||||
0, 18/RATIO, FULL_DISPLAY_X, FULL_DISPLAY_Y - 18/RATIO, NULL, 0, 0, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -54,7 +54,7 @@ void print_font(SDL_Surface *screen, int r, int g, int b, int x, int y, const ch
|
||||
/* Various option selects */
|
||||
int menu_select_title(const char *title, const char **pp_msgs, int *p_submenus);
|
||||
int menu_select(const char **pp_msgs, int *p_submenus);
|
||||
const char *menu_select_file(char *dir_path,const char *selected_file, int draw_scr);
|
||||
const char *menu_select_file(char *dir_path,const char *selected_file, int draw_scr, int sel_pos);
|
||||
const char *menu_select_browser(unsigned int tape_pos);
|
||||
const char *menu_select_browser_rzx();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user