Flatten newmenu_do* hierarchy

There is now a single caller for newmenu_do3.  Inline do3 into do2, so
that do2 calls do4.  Mark do4 as static.
This commit is contained in:
Kp 2020-12-26 21:17:29 +00:00
parent d1ff6becb4
commit f01c29c779
2 changed files with 7 additions and 15 deletions

View file

@ -358,20 +358,6 @@ enum class mission_filter_mode
}
namespace dsx {
newmenu *newmenu_do4(menu_title title, menu_subtitle subtitle, partial_range_t<newmenu_item *> items, newmenu_subfunction subfunction, void *userdata, int citem, menu_filename filename, tiny_mode_flag TinyMode = tiny_mode_flag::normal, tab_processing_flag TabsFlag = tab_processing_flag::ignore);
// Same as above, but returns menu instead of citem
template <typename T>
static newmenu *newmenu_do3(const menu_title title, const menu_subtitle subtitle, partial_range_t<newmenu_item *> items, const newmenu_subfunction_t<T> subfunction, T *const userdata, const int citem, const menu_filename filename)
{
return newmenu_do4(title, subtitle, std::move(items), reinterpret_cast<newmenu_subfunction>(subfunction), static_cast<void *>(userdata), citem, filename);
}
template <typename T>
static newmenu *newmenu_do3(const menu_title title, const menu_subtitle subtitle, partial_range_t<newmenu_item *> items, const newmenu_subfunction_t<const T> subfunction, const T *const userdata, const int citem, const menu_filename filename)
{
return newmenu_do4(title, subtitle, std::move(items), reinterpret_cast<newmenu_subfunction>(subfunction), static_cast<void *>(const_cast<T *>(userdata)), citem, filename);
}
//Handles creating and selecting from the mission list.
//Returns 1 if a mission was loaded.

View file

@ -195,6 +195,8 @@ namespace dsx {
namespace {
newmenu *newmenu_do4(menu_title title, menu_subtitle subtitle, partial_range_t<newmenu_item *> items, newmenu_subfunction subfunction, void *userdata, int citem, menu_filename filename, tiny_mode_flag TinyMode = tiny_mode_flag::normal, tab_processing_flag TabsFlag = tab_processing_flag::ignore);
#if defined(DXX_BUILD_DESCENT_I)
static const char *UP_ARROW_MARKER(const grs_font &, const grs_font &)
{
@ -543,7 +545,7 @@ int newmenu_do2(const menu_title title, const menu_subtitle subtitle, const part
bool exists = true;
int rval = -1;
menu = newmenu_do3(title, subtitle, items, subfunction, userdata, citem, filename);
menu = newmenu_do4(title, subtitle, items, subfunction, userdata, citem, filename);
if (!menu)
return -1;
@ -1623,6 +1625,8 @@ window_event_result newmenu::event_handler(const d_event &event)
namespace dsx {
namespace {
newmenu *newmenu_do4(const menu_title title, const menu_subtitle subtitle, const partial_range_t<newmenu_item *> items, const newmenu_subfunction subfunction, void *const userdata, const int citem, const menu_filename filename, const tiny_mode_flag TinyMode, const tab_processing_flag TabsFlag)
{
if (items.size() < 1)
@ -1636,6 +1640,8 @@ newmenu *newmenu_do4(const menu_title title, const menu_subtitle subtitle, const
// Create the basic window
return menu;
}
}
}
int (vnm_messagebox_aN)(const menu_title title, const nm_messagebox_tie &tie, const char *format, ...)