mirror of https://github.com/OpenRCT2/OpenRCT2.git
Close #13622: Refactor SORT into strong enum
This commit is contained in:
parent
eeacb85310
commit
f7c6e04658
|
@ -477,13 +477,13 @@ static void window_loadsave_mouseup(rct_window* w, rct_widgetindex widgetIndex)
|
|||
break;
|
||||
|
||||
case WIDX_SORT_NAME:
|
||||
if (gConfigGeneral.load_save_sort == SORT_NAME_ASCENDING)
|
||||
if (gConfigGeneral.load_save_sort == Sort::NameAscending)
|
||||
{
|
||||
gConfigGeneral.load_save_sort = SORT_NAME_DESCENDING;
|
||||
gConfigGeneral.load_save_sort = Sort::NameDescending;
|
||||
}
|
||||
else
|
||||
{
|
||||
gConfigGeneral.load_save_sort = SORT_NAME_ASCENDING;
|
||||
gConfigGeneral.load_save_sort = Sort::NameAscending;
|
||||
}
|
||||
config_save_default();
|
||||
window_loadsave_sort_list();
|
||||
|
@ -491,13 +491,13 @@ static void window_loadsave_mouseup(rct_window* w, rct_widgetindex widgetIndex)
|
|||
break;
|
||||
|
||||
case WIDX_SORT_DATE:
|
||||
if (gConfigGeneral.load_save_sort == SORT_DATE_DESCENDING)
|
||||
if (gConfigGeneral.load_save_sort == Sort::DateDescending)
|
||||
{
|
||||
gConfigGeneral.load_save_sort = SORT_DATE_ASCENDING;
|
||||
gConfigGeneral.load_save_sort = Sort::DateAscending;
|
||||
}
|
||||
else
|
||||
{
|
||||
gConfigGeneral.load_save_sort = SORT_DATE_DESCENDING;
|
||||
gConfigGeneral.load_save_sort = Sort::DateDescending;
|
||||
}
|
||||
config_save_default();
|
||||
window_loadsave_sort_list();
|
||||
|
@ -710,9 +710,9 @@ static void window_loadsave_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
|
||||
// Name button text
|
||||
rct_string_id id = STR_NONE;
|
||||
if (gConfigGeneral.load_save_sort == SORT_NAME_ASCENDING)
|
||||
if (gConfigGeneral.load_save_sort == Sort::NameAscending)
|
||||
id = STR_UP;
|
||||
else if (gConfigGeneral.load_save_sort == SORT_NAME_DESCENDING)
|
||||
else if (gConfigGeneral.load_save_sort == Sort::NameDescending)
|
||||
id = STR_DOWN;
|
||||
|
||||
// Draw name button indicator.
|
||||
|
@ -721,9 +721,9 @@ static void window_loadsave_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
dpi, STR_NAME, &id, COLOUR_GREY, w->windowPos + ScreenCoordsXY{ sort_name_widget.left + 11, sort_name_widget.top + 1 });
|
||||
|
||||
// Date button text
|
||||
if (gConfigGeneral.load_save_sort == SORT_DATE_ASCENDING)
|
||||
if (gConfigGeneral.load_save_sort == Sort::DateAscending)
|
||||
id = STR_UP;
|
||||
else if (gConfigGeneral.load_save_sort == SORT_DATE_DESCENDING)
|
||||
else if (gConfigGeneral.load_save_sort == Sort::DateDescending)
|
||||
id = STR_DOWN;
|
||||
else
|
||||
id = STR_NONE;
|
||||
|
@ -797,13 +797,13 @@ static bool list_item_sort(LoadSaveListItem& a, LoadSaveListItem& b)
|
|||
|
||||
switch (gConfigGeneral.load_save_sort)
|
||||
{
|
||||
case SORT_NAME_ASCENDING:
|
||||
case Sort::NameAscending:
|
||||
return strlogicalcmp(a.name.c_str(), b.name.c_str()) < 0;
|
||||
case SORT_NAME_DESCENDING:
|
||||
case Sort::NameDescending:
|
||||
return -strlogicalcmp(a.name.c_str(), b.name.c_str()) < 0;
|
||||
case SORT_DATE_DESCENDING:
|
||||
case Sort::DateDescending:
|
||||
return -difftime(a.date_modified, b.date_modified) < 0;
|
||||
case SORT_DATE_ASCENDING:
|
||||
case Sort::DateAscending:
|
||||
return difftime(a.date_modified, b.date_modified) < 0;
|
||||
default:
|
||||
return strlogicalcmp(a.name.c_str(), b.name.c_str()) < 0;
|
||||
|
|
|
@ -101,6 +101,13 @@ namespace Config
|
|||
ConfigEnumEntry<ScaleQuality>("SMOOTH_NEAREST_NEIGHBOUR", ScaleQuality::SmoothNearestNeighbour),
|
||||
});
|
||||
|
||||
static const auto Enum_Sort = ConfigEnum<Sort>({
|
||||
ConfigEnumEntry<Sort>("NAME_ASCENDING", Sort::NameAscending),
|
||||
ConfigEnumEntry<Sort>("NAME_DESCENDING", Sort::NameDescending),
|
||||
ConfigEnumEntry<Sort>("DATE_ASCENDING", Sort::DateAscending),
|
||||
ConfigEnumEntry<Sort>("DATE_DESCENDING", Sort::DateDescending),
|
||||
});
|
||||
|
||||
static const auto Enum_VirtualFloorStyle = ConfigEnum<VirtualFloorStyles>({
|
||||
ConfigEnumEntry<VirtualFloorStyles>("OFF", VirtualFloorStyles::Off),
|
||||
ConfigEnumEntry<VirtualFloorStyles>("CLEAR", VirtualFloorStyles::Clear),
|
||||
|
@ -183,7 +190,7 @@ namespace Config
|
|||
model->default_inspection_interval = reader->GetInt32("default_inspection_interval", 2);
|
||||
model->last_run_version = reader->GetCString("last_run_version", nullptr);
|
||||
model->invert_viewport_drag = reader->GetBoolean("invert_viewport_drag", false);
|
||||
model->load_save_sort = reader->GetInt32("load_save_sort", SORT_NAME_ASCENDING);
|
||||
model->load_save_sort = reader->GetEnum<Sort>("load_save_sort", Sort::NameAscending, Enum_Sort);
|
||||
model->minimize_fullscreen_focus_loss = reader->GetBoolean("minimize_fullscreen_focus_loss", true);
|
||||
model->disable_screensaver = reader->GetBoolean("disable_screensaver", true);
|
||||
|
||||
|
@ -263,7 +270,7 @@ namespace Config
|
|||
writer->WriteInt32("default_inspection_interval", model->default_inspection_interval);
|
||||
writer->WriteString("last_run_version", model->last_run_version);
|
||||
writer->WriteBoolean("invert_viewport_drag", model->invert_viewport_drag);
|
||||
writer->WriteInt32("load_save_sort", model->load_save_sort);
|
||||
writer->WriteEnum<Sort>("load_save_sort", model->load_save_sort, Enum_Sort);
|
||||
writer->WriteBoolean("minimize_fullscreen_focus_loss", model->minimize_fullscreen_focus_loss);
|
||||
writer->WriteBoolean("disable_screensaver", model->disable_screensaver);
|
||||
writer->WriteBoolean("day_night_cycle", model->day_night_cycle);
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
enum class MeasurementFormat : int32_t;
|
||||
enum class TemperatureUnit : int32_t;
|
||||
enum class ScaleQuality : int32_t;
|
||||
enum class Sort : int32_t;
|
||||
enum class VirtualFloorStyles : int32_t;
|
||||
enum class DrawingEngine : int32_t;
|
||||
|
||||
|
@ -98,7 +99,7 @@ struct GeneralConfiguration
|
|||
|
||||
// Loading and saving
|
||||
bool confirmation_prompt;
|
||||
int32_t load_save_sort;
|
||||
Sort load_save_sort;
|
||||
utf8* last_save_game_directory;
|
||||
utf8* last_save_landscape_directory;
|
||||
utf8* last_save_scenario_directory;
|
||||
|
@ -207,12 +208,12 @@ struct PluginConfiguration
|
|||
std::string allowed_hosts;
|
||||
};
|
||||
|
||||
enum SORT
|
||||
enum class Sort : int32_t
|
||||
{
|
||||
SORT_NAME_ASCENDING,
|
||||
SORT_NAME_DESCENDING,
|
||||
SORT_DATE_ASCENDING,
|
||||
SORT_DATE_DESCENDING,
|
||||
NameAscending,
|
||||
NameDescending,
|
||||
DateAscending,
|
||||
DateDescending,
|
||||
};
|
||||
|
||||
enum class TemperatureUnit : int32_t
|
||||
|
|
Loading…
Reference in New Issue