Skip to content

Commit 91faf17

Browse files
committed
-dynax/ddenlovr.cpp: Added proper inputs for Royal Selection.
-frontend/mame/luaengine.cpp: Removed some deprecated stuff. -itech/itech32.cpp: BloodStorm doesn't have a space in most uses. -shared/mahjong.cpp: Exposed base mahjong matrix panel class to simplify creating devices that are essentially mahjong panels with weird labels. -ui.ui.cpp, ui/menu.cpp: Started untangling some stuff.
1 parent 1e52634 commit 91faf17

9 files changed

Lines changed: 285 additions & 75 deletions

File tree

src/frontend/mame/luaengine.cpp

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -811,11 +811,6 @@ void lua_engine::initialize()
811811
* emu.keypost(keys) - post keys to natural keyboard
812812
*
813813
* emu.register_prestart(callback) - register callback before reset
814-
* emu.register_start(callback) - register callback after reset
815-
* emu.register_stop(callback) - register callback after stopping
816-
* emu.register_pause(callback) - register callback at pause
817-
* emu.register_resume(callback) - register callback at resume
818-
* emu.register_frame(callback) - register callback at end of frame
819814
* emu.register_frame_done(callback) - register callback after frame is drawn to screen (for overlays)
820815
* emu.register_sound_update(callback) - register callback after sound update has generated new samples
821816
* emu.register_periodic(callback) - register periodic callback while program is running
@@ -933,11 +928,6 @@ void lua_engine::initialize()
933928
machine().resume();
934929
};
935930
emu["register_prestart"] = [this] (sol::function func) { register_function(func, "LUA_ON_PRESTART"); };
936-
emu["register_start"] = [this] (sol::function func) { osd_printf_warning("[LUA] emu.register_start is deprecated - please use emu.add_machine_reset_notifier\n"); register_function(func, "LUA_ON_START"); };
937-
emu["register_stop"] = [this] (sol::function func) { osd_printf_warning("[LUA] emu.register_stop is deprecated - please use emu.add_machine_stop_notifier\n"); register_function(func, "LUA_ON_STOP"); };
938-
emu["register_pause"] = [this] (sol::function func) { osd_printf_warning("[LUA] emu.register_pause is deprecated - please use emu.add_machine_pause_notifier\n"); register_function(func, "LUA_ON_PAUSE"); };
939-
emu["register_resume"] = [this] (sol::function func) { osd_printf_warning("[LUA] emu.register_resume is deprecated - please use emu.add_machine_resume_notifier\n"); register_function(func, "LUA_ON_RESUME"); };
940-
emu["register_frame"] = [this] (sol::function func) { osd_printf_warning("[LUA] emu.register_frame is deprecated - please use emu.add_machine_frame_notifier\n"); register_function(func, "LUA_ON_FRAME"); };
941931
emu["register_frame_done"] = [this] (sol::function func) { register_function(func, "LUA_ON_FRAME_DONE"); };
942932
emu["register_sound_update"] = [this] (sol::function func) { register_function(func, "LUA_ON_SOUND_UPDATE"); };
943933
emu["register_periodic"] = [this] (sol::function func) { register_function(func, "LUA_ON_PERIODIC"); };

src/frontend/mame/ui/menu.cpp

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
#include "ui/menu.h"
1313

1414
#include "ui/ui.h"
15-
#include "ui/mainmenu.h"
16-
#include "ui/miscmenu.h"
1715

1816
#include "cheat.h"
1917
#include "mame.h"
@@ -217,12 +215,8 @@ bool menu::global_state::stack_has_special_main_menu() const
217215
}
218216

219217

220-
uint32_t menu::global_state::ui_handler(render_container &container)
218+
uint32_t menu::global_state::ui_handler()
221219
{
222-
// if we have no menus stacked up, start with the main menu
223-
if (!m_stack)
224-
stack_push(std::make_unique<menu_main>(m_ui, container));
225-
226220
while (true)
227221
{
228222
// ensure topmost menu is active - need a loop because it could push another menu
@@ -2097,10 +2091,10 @@ bool menu::do_handle()
20972091
// and calls the menu handler
20982092
//-------------------------------------------------
20992093

2100-
delegate<uint32_t (render_container &)> menu::get_ui_handler(mame_ui_manager &mui)
2094+
delegate<uint32_t ()> menu::get_ui_handler(mame_ui_manager &mui)
21012095
{
21022096
global_state &state(get_global_state(mui));
2103-
return delegate<uint32_t (render_container &)>(&global_state::ui_handler, &state);
2097+
return delegate<uint32_t ()>(&global_state::ui_handler, &state);
21042098
}
21052099

21062100
/***************************************************************************

src/frontend/mame/ui/menu.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,14 @@ class menu
106106
// pop a menu from the stack
107107
static void stack_pop(mame_ui_manager &ui) { get_global_state(ui).stack_pop(); }
108108

109+
// test whether there are any menus in the stack
110+
static bool stack_empty(mame_ui_manager &ui) { return !get_global_state(ui).topmost_menu<menu>(); }
111+
109112
// test if one of the menus in the stack requires hide disable
110113
static bool stack_has_special_main_menu(mame_ui_manager &ui) { return get_global_state(ui).stack_has_special_main_menu(); }
111114

112115
// master handler
113-
static delegate<uint32_t (render_container &)> get_ui_handler(mame_ui_manager &mui);
116+
static delegate<uint32_t ()> get_ui_handler(mame_ui_manager &mui);
114117

115118
// Used by sliders
116119
void validate_selection(int scandir);
@@ -440,7 +443,7 @@ class menu
440443

441444
void hide_menu() { m_hide = true; }
442445

443-
uint32_t ui_handler(render_container &container);
446+
uint32_t ui_handler();
444447

445448
bool have_pointer() const noexcept
446449
{

src/frontend/mame/ui/ui.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ void mame_ui_manager::init()
302302
set_handler(
303303
ui_callback_type::NOINPUT,
304304
handler_callback_func(
305-
[this] (render_container &container) -> uint32_t
305+
[this, &container = machine().render().ui_container()] () -> uint32_t
306306
{
307307
draw_text_box(container, messagebox_text, ui::text_layout::text_justify::LEFT, 0.5f, 0.5f, colors().background_color());
308308
return 0;
@@ -652,7 +652,7 @@ void mame_ui_manager::display_startup_screens(bool first_time)
652652
rgb_t warning_color;
653653
bool config_menu = false;
654654
auto handler_messagebox_anykey =
655-
[this, &poller, &warning_text, &warning_color, &config_menu] (render_container &container) -> uint32_t
655+
[this, &poller, &warning_text, &warning_color, &config_menu, &container = machine().render().ui_container()] () -> uint32_t
656656
{
657657
// draw a standard message window
658658
draw_text_box(container, warning_text, ui::text_layout::text_justify::LEFT, 0.5f, 0.5f, warning_color);
@@ -862,6 +862,7 @@ void mame_ui_manager::display_startup_screens(bool first_time)
862862
}
863863
else if (config_menu)
864864
{
865+
ui::menu::stack_push<ui::menu_main>(*this, machine().render().ui_container());
865866
show_menu();
866867

867868
// loop while we have a handler
@@ -929,7 +930,7 @@ bool mame_ui_manager::update_and_render(render_container &container)
929930

930931
// call the current UI handler
931932
machine().ui_input().check_ui_inputs();
932-
uint32_t const handler_result = m_handler_callback(container);
933+
uint32_t const handler_result = m_handler_callback();
933934

934935
// display any popup messages
935936
if (osd_ticks() < m_popup_text_end)
@@ -1538,7 +1539,7 @@ void mame_ui_manager::image_handler_ingame()
15381539
// of the standard keypresses
15391540
//-------------------------------------------------
15401541

1541-
uint32_t mame_ui_manager::handler_ingame(render_container &container)
1542+
uint32_t mame_ui_manager::handler_ingame()
15421543
{
15431544
// let the OSD do its thing first
15441545
machine().osd().check_osd_inputs();
@@ -1547,7 +1548,7 @@ uint32_t mame_ui_manager::handler_ingame(render_container &container)
15471548

15481549
// draw the profiler if visible
15491550
if (show_profiler())
1550-
draw_profiler(container);
1551+
draw_profiler(machine().render().ui_container());
15511552

15521553
// if we're single-stepping, pause now
15531554
if (single_step())
@@ -1625,6 +1626,8 @@ uint32_t mame_ui_manager::handler_ingame(render_container &container)
16251626
// turn on menus if requested
16261627
if (machine().ui_input().pressed(IPT_UI_MENU))
16271628
{
1629+
if (ui::menu::stack_empty(*this))
1630+
ui::menu::stack_push<ui::menu_main>(*this, machine().render().ui_container());
16281631
show_menu();
16291632
return 0;
16301633
}
@@ -1658,7 +1661,7 @@ uint32_t mame_ui_manager::handler_ingame(render_container &container)
16581661
set_handler(
16591662
ui_callback_type::MENU,
16601663
handler_callback_func(
1661-
[this, is_paused] (render_container &container) -> uint32_t
1664+
[this, is_paused, &container = machine().render().ui_container()] () -> uint32_t
16621665
{
16631666
return ui_gfx_ui_handler(container, *this, is_paused);
16641667
}));
@@ -2704,7 +2707,7 @@ bool mame_ui_manager::set_ui_event_handler(std::function<bool ()> &&handler)
27042707
set_handler(
27052708
ui_callback_type::CUSTOM,
27062709
handler_callback_func(
2707-
[cb = std::move(handler)] (render_container &container) -> uint32_t
2710+
[cb = std::move(handler)] () -> uint32_t
27082711
{
27092712
return !cb() ? HANDLER_CANCEL : 0;
27102713
}));

src/frontend/mame/ui/ui.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ class mame_ui_manager : public ui_manager
284284
struct active_pointer;
285285
class pointer_options;
286286

287-
using handler_callback_func = delegate<uint32_t (render_container &)>;
287+
using handler_callback_func = delegate<uint32_t ()>;
288288
using device_feature_set = std::set<std::pair<std::string, std::string> >;
289289
using session_data_map = std::unordered_map<std::type_index, std::any>;
290290
using active_pointer_vector = std::vector<active_pointer>;
@@ -332,7 +332,7 @@ class mame_ui_manager : public ui_manager
332332
static std::vector<ui::menu_item> slider_list;
333333

334334
// UI handlers
335-
uint32_t handler_ingame(render_container &container);
335+
uint32_t handler_ingame();
336336

337337
// private methods
338338
void set_handler(ui_callback_type callback_type, handler_callback_func &&callback);

0 commit comments

Comments
 (0)