summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/ui/submenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/ui/submenu.cpp')
-rw-r--r--src/emu/ui/submenu.cpp25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/emu/ui/submenu.cpp b/src/emu/ui/submenu.cpp
index a06d75adb83..ae85db7d7a8 100644
--- a/src/emu/ui/submenu.cpp
+++ b/src/emu/ui/submenu.cpp
@@ -19,17 +19,24 @@
// ctor / dtor
//-------------------------------------------------
-ui_submenu::ui_submenu(running_machine &machine, render_container *container, std::vector<ui_submenu::option> &suboptions)
- : ui_menu(machine, container),
- m_options(suboptions)
+ui_submenu::ui_submenu(running_machine &machine, render_container *container, std::vector<ui_submenu::option> &suboptions, const game_driver *drv, emu_options *options)
+ : ui_menu(machine, container)
+ , m_options(suboptions)
+ , m_driver(drv)
{
+ core_options *opts = nullptr;
+ if (m_driver == nullptr)
+ opts = dynamic_cast<core_options*>(&machine.options());
+ else
+ opts = dynamic_cast<core_options*>(options);
+
for (auto & sm_option : m_options)
{
switch (sm_option.type)
{
case ui_submenu::EMU:
- sm_option.entry = machine.options().get_entry(sm_option.name);
- sm_option.options = dynamic_cast<core_options*>(&machine.options());
+ sm_option.entry = opts->get_entry(sm_option.name);
+ sm_option.options = opts;
if (sm_option.entry->type() == OPTION_STRING)
{
sm_option.value.clear();
@@ -52,8 +59,8 @@ ui_submenu::ui_submenu(running_machine &machine, render_container *container, st
}
break;
case ui_submenu::OSD:
- sm_option.entry = machine.options().get_entry(sm_option.name);
- sm_option.options = dynamic_cast<core_options*>(&machine.options());
+ sm_option.entry = opts->get_entry(sm_option.name);
+ sm_option.options = opts;
if (sm_option.entry->type() == OPTION_STRING)
{
sm_option.value.clear();
@@ -208,7 +215,7 @@ void ui_submenu::populate()
item_append(_(sm_option->description), nullptr, MENU_FLAG_DISABLE | MENU_FLAG_UI_HEADING, nullptr);
break;
case ui_submenu::SEP:
- item_append(MENU_SEPARATOR_ITEM, nullptr, 0, nullptr);
+ item_append(ui_menu_item_type::SEPARATOR);
break;
case ui_submenu::CMD:
item_append(_(sm_option->description), nullptr, 0, static_cast<void*>(&(*sm_option)));
@@ -292,7 +299,7 @@ void ui_submenu::populate()
}
}
- item_append(MENU_SEPARATOR_ITEM, nullptr, 0, nullptr);
+ item_append(ui_menu_item_type::SEPARATOR);
custombottom = customtop = machine().ui().get_line_height() + (3.0f * UI_BOX_TB_BORDER);
}