Shrink browser::select_dir, browser::new_path to uint8_t

These are flag values.  There is no need to store an int.
This commit is contained in:
Kp 2020-12-27 22:03:09 +00:00
parent 0c77bee1d9
commit fcb3607ac4

View file

@ -253,7 +253,7 @@ std::pair<std::chrono::seconds, bool> parse_human_readable_time(const char *cons
#if DXX_USE_SDLMIXER
__attribute_nonnull()
static int select_file_recursive(const menu_title title, const std::array<char, PATH_MAX> &orig_path, const partial_range_t<const file_extension_t *> &ext_list, int select_dir, ntstring<PATH_MAX - 1> &userdata);
static int select_file_recursive(const menu_title title, const std::array<char, PATH_MAX> &orig_path, const partial_range_t<const file_extension_t *> &ext_list, uint8_t select_dir, ntstring<PATH_MAX - 1> &userdata);
static window_event_result get_absolute_path(ntstring<PATH_MAX - 1> &full_path, const char *rel_path)
{
@ -1970,8 +1970,8 @@ namespace {
struct browser
{
browser(menu_title title, ntstring<PATH_MAX - 1> &userdata, const partial_range_t<const file_extension_t *> &r) :
title(title), userdata(userdata), ext_range(r)
browser(menu_title title, ntstring<PATH_MAX - 1> &userdata, const partial_range_t<const file_extension_t *> &r, const uint8_t select_dir, const uint8_t new_path) :
title(title), userdata(userdata), ext_range(r), select_dir(select_dir), new_path(new_path)
{
}
const menu_title title; // The title - needed for making another listbox when changing directory
@ -1979,8 +1979,8 @@ struct browser
string_array_t list;
// List of file extensions we're looking for (if looking for a music file many types are possible)
const partial_range_t<const file_extension_t *> ext_range;
int select_dir; // Allow selecting the current directory (e.g. for Jukebox level song directory)
int new_path; // Whether the view_path is a new searchpath, if so, remove it when finished
const uint8_t select_dir; // Allow selecting the current directory (e.g. for Jukebox level song directory)
uint8_t new_path; // Whether the view_path is a new searchpath, if so, remove it when finished
std::array<char, PATH_MAX> view_path; // The absolute path we're currently looking at
};
@ -2003,14 +2003,15 @@ static int list_directory(browser *b)
{
b->list.clear();
b->list.add(".."); // go to parent directory
std::size_t tidy_offset = 1;
if (b->select_dir)
{
++tidy_offset;
b->list.add("<this directory>"); // choose the directory being viewed
}
PHYSFS_enumerateFilesCallback("", list_dir_el, b);
b->list.tidy(1 + (b->select_dir ? 1 : 0));
b->list.tidy(tidy_offset);
return 1;
}
@ -2116,16 +2117,14 @@ static window_event_result select_file_handler(listbox *menu,const d_event &even
return window_event_result::ignored;
}
static int select_file_recursive(const menu_title title, const std::array<char, PATH_MAX> &orig_path_storage, const partial_range_t<const file_extension_t *> &ext_range, int select_dir, ntstring<PATH_MAX - 1> &userdata)
static int select_file_recursive(const menu_title title, const std::array<char, PATH_MAX> &orig_path_storage, const partial_range_t<const file_extension_t *> &ext_range, const uint8_t select_dir, ntstring<PATH_MAX - 1> &userdata)
{
auto orig_path = orig_path_storage.data();
const char *sep = PHYSFS_getDirSeparator();
std::array<char, PATH_MAX> new_path;
auto b = std::make_unique<browser>(title, userdata, ext_range);
b->select_dir = select_dir;
auto b = std::make_unique<browser>(title, userdata, ext_range, select_dir, 1);
b->view_path[0] = '\0';
b->new_path = 1;
// Check for a PhysicsFS path first, saves complication!
if (strncmp(orig_path, sep, strlen(sep)) && PHYSFSX_exists(orig_path,0))