summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend/mame/ui
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2021-10-20 02:03:43 +1100
committer Vas Crabb <vas@vastheman.com>2021-10-20 02:03:43 +1100
commit0a9ea09a9a328884b61ce57c2e3b51705da50467 (patch)
tree98153d6f2244b0053d9c1894b5c71277fb18522d /src/frontend/mame/ui
parent9e7779bdd5c17a847ed4c06a9b7e68a39ec6576b (diff)
Tie up a few loose ends:
debugger: Octal cheats for octal address spaces. frontend: Pass events for automatically generated menu items to the plugin - they will have index zero. frontend: Don't try calling the data plugin from the main menu if the system isn't starting yet - doing so will prevent the data plugin from loading at all.
Diffstat (limited to 'src/frontend/mame/ui')
-rw-r--r--src/frontend/mame/ui/datmenu.cpp16
-rw-r--r--src/frontend/mame/ui/datmenu.h2
-rw-r--r--src/frontend/mame/ui/mainmenu.cpp5
-rw-r--r--src/frontend/mame/ui/pluginopt.cpp60
-rw-r--r--src/frontend/mame/ui/selmenu.cpp2
5 files changed, 43 insertions, 42 deletions
diff --git a/src/frontend/mame/ui/datmenu.cpp b/src/frontend/mame/ui/datmenu.cpp
index 1d3ef0c7cff..10c5e3c9717 100644
--- a/src/frontend/mame/ui/datmenu.cpp
+++ b/src/frontend/mame/ui/datmenu.cpp
@@ -70,20 +70,20 @@ menu_dats_view::menu_dats_view(mame_ui_manager &mui, render_container &container
// ctor
//-------------------------------------------------
-menu_dats_view::menu_dats_view(mame_ui_manager &mui, render_container &container, const ui_software_info *swinfo, const ui_system_info *system)
+menu_dats_view::menu_dats_view(mame_ui_manager &mui, render_container &container, const ui_software_info &swinfo)
: menu(mui, container)
- , m_system(!system ? &system_list::instance().systems()[driver_list::find(mui.machine().system().name)] : system)
- , m_swinfo(swinfo)
+ , m_system(nullptr)
+ , m_swinfo(&swinfo)
, m_issoft(true)
, m_layout()
, m_actual(0)
- , m_list(swinfo->listname)
- , m_short(swinfo->shortname)
- , m_long(swinfo->longname)
- , m_parent(swinfo->parentname)
+ , m_list(swinfo.listname)
+ , m_short(swinfo.shortname)
+ , m_long(swinfo.longname)
+ , m_parent(swinfo.parentname)
{
- if (!swinfo->infotext.empty())
+ if (!swinfo.infotext.empty())
m_items_list.emplace_back(_("Software List Info"), 0, "");
std::vector<std::string> lua_list;
if (mame_machine_manager::instance()->lua()->call_plugin("data_list", std::string(m_short).append(1, ',').append(m_list).c_str(), lua_list))
diff --git a/src/frontend/mame/ui/datmenu.h b/src/frontend/mame/ui/datmenu.h
index ccc8bd8b2a4..9e81d9e2d2e 100644
--- a/src/frontend/mame/ui/datmenu.h
+++ b/src/frontend/mame/ui/datmenu.h
@@ -36,7 +36,7 @@ namespace ui {
class menu_dats_view : public menu
{
public:
- menu_dats_view(mame_ui_manager &mui, render_container &container, const ui_software_info *swinfo, const ui_system_info *system = nullptr);
+ menu_dats_view(mame_ui_manager &mui, render_container &container, const ui_software_info &swinfo);
menu_dats_view(mame_ui_manager &mui, render_container &container, const ui_system_info *system = nullptr);
virtual ~menu_dats_view() override;
diff --git a/src/frontend/mame/ui/mainmenu.cpp b/src/frontend/mame/ui/mainmenu.cpp
index 32240167318..73084728edb 100644
--- a/src/frontend/mame/ui/mainmenu.cpp
+++ b/src/frontend/mame/ui/mainmenu.cpp
@@ -159,8 +159,9 @@ void menu_main::populate(float &customtop, float &custombottom)
if (machine().options().plugins() && !mame_machine_manager::instance()->lua()->get_menu().empty())
item_append(_("Plugin Options"), 0, (void *)PLUGINS);
- if (mame_machine_manager::instance()->lua()->call_plugin_check<const char *>("data_list", "", true))
- item_append(_("External DAT View"), 0, (void *)EXTERNAL_DATS);
+ if (machine().phase() >= machine_phase::RESET)
+ if (mame_machine_manager::instance()->lua()->call_plugin_check<const char *>("data_list", "", true))
+ item_append(_("External DAT View"), 0, (void *)EXTERNAL_DATS);
item_append(menu_item_type::SEPARATOR);
diff --git a/src/frontend/mame/ui/pluginopt.cpp b/src/frontend/mame/ui/pluginopt.cpp
index 83faaa43603..d36503cdcee 100644
--- a/src/frontend/mame/ui/pluginopt.cpp
+++ b/src/frontend/mame/ui/pluginopt.cpp
@@ -72,40 +72,40 @@ void menu_plugin_opt::handle()
{
const event *menu_event = process(0);
- if (menu_event && uintptr_t(menu_event->itemref))
+ if (menu_event)
{
std::string key;
switch (menu_event->iptkey)
{
- case IPT_UI_UP:
- key = "up";
- break;
- case IPT_UI_DOWN:
- key = "down";
- break;
- case IPT_UI_LEFT:
- key = "left";
- break;
- case IPT_UI_RIGHT:
- key = "right";
- break;
- case IPT_UI_SELECT:
- key = "select";
- break;
- case IPT_UI_DISPLAY_COMMENT:
- key = "comment";
- break;
- case IPT_UI_CLEAR:
- key = "clear";
- break;
- case IPT_UI_CANCEL:
- key = "cancel";
- break;
- case IPT_SPECIAL:
- key = std::to_string((u32)menu_event->unichar);
- break;
- default:
- return;
+ case IPT_UI_UP:
+ key = "up";
+ break;
+ case IPT_UI_DOWN:
+ key = "down";
+ break;
+ case IPT_UI_LEFT:
+ key = "left";
+ break;
+ case IPT_UI_RIGHT:
+ key = "right";
+ break;
+ case IPT_UI_SELECT:
+ key = "select";
+ break;
+ case IPT_UI_DISPLAY_COMMENT:
+ key = "comment";
+ break;
+ case IPT_UI_CLEAR:
+ key = "clear";
+ break;
+ case IPT_UI_CANCEL:
+ key = "cancel";
+ break;
+ case IPT_SPECIAL:
+ key = std::to_string((u32)menu_event->unichar);
+ break;
+ default:
+ return;
}
if (mame_machine_manager::instance()->lua()->menu_callback(m_menu, uintptr_t(menu_event->itemref), key))
reset(reset_options::REMEMBER_REF);
diff --git a/src/frontend/mame/ui/selmenu.cpp b/src/frontend/mame/ui/selmenu.cpp
index 303334de17b..c5718bdc564 100644
--- a/src/frontend/mame/ui/selmenu.cpp
+++ b/src/frontend/mame/ui/selmenu.cpp
@@ -856,7 +856,7 @@ void menu_select_launch::inkey_dats()
ui_system_info const *system;
get_selection(software, system);
if (software && !software->startempty)
- menu::stack_push<menu_dats_view>(ui(), container(), software);
+ menu::stack_push<menu_dats_view>(ui(), container(), *software);
else if (system)
menu::stack_push<menu_dats_view>(ui(), container(), system);
}