diff --git a/src/windows/loadsave.c b/src/windows/loadsave.c index 1a1eabd180..4f61604546 100644 --- a/src/windows/loadsave.c +++ b/src/windows/loadsave.c @@ -182,18 +182,19 @@ rct_window *window_loadsave_open(int type, char *defaultName) bool isSave = (type & 0x01) == LOADSAVETYPE_SAVE; bool success = false; char path[MAX_PATH]; + switch (type & 0x0E) { case LOADSAVETYPE_GAME: w->widgets[WIDX_TITLE].text = isSave ? STR_FILE_DIALOG_TITLE_SAVE_GAME : STR_FILE_DIALOG_TITLE_LOAD_GAME; if (window_loadsave_get_dir(gConfigGeneral.last_save_game_directory, path, "save", sizeof(path))) { - window_loadsave_populate_list(w, isSave, path, ".sv6;.sc6;.sv4;.sc4"); + window_loadsave_populate_list(w, isSave, path, isSave ? ".sv6" : ".sv6;.sc6;.sv4;.sc4"); success = true; } break; case LOADSAVETYPE_LANDSCAPE: w->widgets[WIDX_TITLE].text = isSave ? STR_FILE_DIALOG_TITLE_SAVE_LANDSCAPE : STR_FILE_DIALOG_TITLE_LOAD_LANDSCAPE; if (window_loadsave_get_dir(gConfigGeneral.last_save_landscape_directory, path, "landscape", sizeof(path))) { - window_loadsave_populate_list(w, isSave, path, ".sc6;.sv6;.sc4;.sv4"); + window_loadsave_populate_list(w, isSave, path, isSave ? ".sc6" : ".sc6;.sv6;.sc4;.sv4"); success = true; } break; @@ -207,7 +208,7 @@ rct_window *window_loadsave_open(int type, char *defaultName) case LOADSAVETYPE_TRACK: w->widgets[WIDX_TITLE].text = isSave ? STR_FILE_DIALOG_TITLE_SAVE_TRACK : STR_FILE_DIALOG_TITLE_INSTALL_NEW_TRACK_DESIGN; if (window_loadsave_get_dir(gConfigGeneral.last_save_track_directory, path, "track", sizeof(path))) { - window_loadsave_populate_list(w, isSave, path, ".td6;.td4"); + window_loadsave_populate_list(w, isSave, path, isSave ? ".td6" : ".td6;.td4"); success = true; } break;