diff options
author | Vas Crabb <vas@vastheman.com> | 2019-11-17 17:10:07 +1100 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2019-11-17 17:10:07 +1100 |
commit | 90fe1e649a7bc9ea667de249736062d5dea21f7a (patch) | |
tree | 22071ec6c4a2a9ed08a5188314375165aed2fad7 /src/frontend/mame | |
parent | 4765e92ec366a315d4afec5fb8aa23fa596c8af0 (diff) |
Remove internal autofire functionality as there's a plugin for that now (#5802)
Diffstat (limited to 'src/frontend/mame')
-rw-r--r-- | src/frontend/mame/ui/cheatopt.cpp | 180 | ||||
-rw-r--r-- | src/frontend/mame/ui/cheatopt.h | 24 | ||||
-rw-r--r-- | src/frontend/mame/ui/ui.cpp | 15 |
3 files changed, 7 insertions, 212 deletions
diff --git a/src/frontend/mame/ui/cheatopt.cpp b/src/frontend/mame/ui/cheatopt.cpp index 1cf87b7f9f3..b503aba5206 100644 --- a/src/frontend/mame/ui/cheatopt.cpp +++ b/src/frontend/mame/ui/cheatopt.cpp @@ -18,16 +18,11 @@ namespace ui { + // itemrefs for key menu items #define ITEMREF_CHEATS_RESET_ALL ((void *) 0x0001) #define ITEMREF_CHEATS_RELOAD_ALL ((void *) 0x0002) -#define ITEMREF_CHEATS_AUTOFIRE_SETTINGS ((void *) 0x0003) -#define ITEMREF_CHEATS_FIRST_ITEM ((void *) 0x0004) - -// itemrefs for key menu items -#define ITEMREF_AUTOFIRE_STATUS ((void *) 0x0001) -#define ITEMREF_AUTOFIRE_DELAY ((void *) 0x0002) -#define ITEMREF_AUTOFIRE_FIRST_BUTTON ((void *) 0x0003) +#define ITEMREF_CHEATS_FIRST_ITEM ((void *) 0x0003) /*------------------------------------------------- @@ -105,12 +100,6 @@ void menu_cheat::handle() machine().popmessage(_("All cheats reloaded")); } - /* handle autofire menu */ - if (menu_event->itemref == ITEMREF_CHEATS_AUTOFIRE_SETTINGS && menu_event->iptkey == IPT_UI_SELECT) - { - menu::stack_push<menu_autofire>(ui(), container()); - } - /* if things changed, update */ if (changed) reset(reset_options::REMEMBER_REF); @@ -132,9 +121,6 @@ void menu_cheat::populate(float &customtop, float &custombottom) std::string text; std::string subtext; - // add the autofire menu - item_append(_("Autofire Settings"), "", 0, (void *)ITEMREF_CHEATS_AUTOFIRE_SETTINGS); - /* add a separator */ item_append(menu_item_type::SEPARATOR); @@ -165,166 +151,4 @@ menu_cheat::~menu_cheat() { } - - - - -/*------------------------------------------------- - menu_autofire - handle the autofire settings - menu --------------------------------------------------*/ - -menu_autofire::menu_autofire(mame_ui_manager &mui, render_container &container) : menu(mui, container), last_toggle(false) -{ - const screen_device *screen = screen_device_iterator(mui.machine().root_device()).first(); - - if (screen == nullptr) - { - refresh = 60.0; - } - else - { - refresh = ATTOSECONDS_TO_HZ(screen->refresh_attoseconds()); - } -} - -menu_autofire::~menu_autofire() -{ -} - -void menu_autofire::handle() -{ - ioport_field *field; - bool changed = false; - - /* process the menu */ - const event *menu_event = process(0); - - /* handle events */ - if (menu_event != nullptr && menu_event->itemref != nullptr) - { - // menu item is changed using left/right keys only - if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT) - { - if (menu_event->itemref == ITEMREF_AUTOFIRE_STATUS) - { - // toggle autofire status - bool autofire_toggle = machine().ioport().get_autofire_toggle(); // (menu_event->iptkey == IPT_UI_LEFT); - machine().ioport().set_autofire_toggle(!autofire_toggle); - changed = true; - } - else if (menu_event->itemref == ITEMREF_AUTOFIRE_DELAY) - { - // change autofire frequency - int autofire_delay = machine().ioport().get_autofire_delay(); - if (menu_event->iptkey == IPT_UI_LEFT) - { - autofire_delay--; - if (autofire_delay < 1) - autofire_delay = 1; - } - else - { - autofire_delay++; - if (autofire_delay > 30) - autofire_delay = 30; - } - machine().ioport().set_autofire_delay(autofire_delay); - changed = true; - } - else - { - // enable autofire on specific button - field = (ioport_field *)menu_event->itemref; - ioport_field::user_settings settings; - field->get_user_settings(settings); - settings.autofire = (menu_event->iptkey == IPT_UI_RIGHT); - field->set_user_settings(settings); - changed = true; - } - } - } - - // if toggle settings changed, redraw menu to reflect new options - if (!changed) - { - changed = (last_toggle != machine().ioport().get_autofire_toggle()); - } - - /* if something changed, rebuild the menu */ - if (changed) - { - reset(reset_options::REMEMBER_REF); - } -} - - -/*------------------------------------------------- - menu_autofire_populate - populate the autofire - menu --------------------------------------------------*/ - -void menu_autofire::populate(float &customtop, float &custombottom) -{ - char temp_text[64]; - - /* add autofire toggle item */ - bool autofire_toggle = machine().ioport().get_autofire_toggle(); - item_append(_("Autofire Status"), (autofire_toggle ? _("Disabled") : _("Enabled")), - (autofire_toggle ? FLAG_RIGHT_ARROW : FLAG_LEFT_ARROW), (void *)ITEMREF_AUTOFIRE_STATUS); - - /* iterate over the input ports and add autofire toggle items */ - int menu_items = 0; - for (auto &port : machine().ioport().ports()) - { - bool is_first_button = true; - for (ioport_field &field : port.second->fields()) - { - if (field.type() >= IPT_BUTTON1 && field.type() <= IPT_BUTTON16) - { - menu_items++; - ioport_field::user_settings settings; - field.get_user_settings(settings); - - if (is_first_button) - { - /* add a separator for each player */ - item_append(menu_item_type::SEPARATOR); - is_first_button = false; - } - - /* add an autofire item */ - item_append_on_off(field.name(), settings.autofire, (autofire_toggle ? FLAG_DISABLE | FLAG_INVERT : 0), (void *)&field); - } - } - } - - /* add text item if no buttons found */ - if (menu_items==0) - { - item_append(menu_item_type::SEPARATOR); - item_append(_("No buttons found on this machine!"), "", FLAG_DISABLE, nullptr); - } - - /* add a separator */ - item_append(menu_item_type::SEPARATOR); - - /* add autofire delay item */ - int value = machine().ioport().get_autofire_delay(); - snprintf(temp_text, ARRAY_LENGTH(temp_text), "%d = %.2f Hz", value, (float)refresh/value); - if (!autofire_toggle) - { - item_append(_("Autofire Delay"), temp_text, FLAG_LEFT_ARROW | FLAG_RIGHT_ARROW, (void *)ITEMREF_AUTOFIRE_DELAY); - } - else - { - item_append(_("Autofire Delay"), temp_text, FLAG_DISABLE | FLAG_INVERT, nullptr); - } - - /* add a separator */ - item_append(menu_item_type::SEPARATOR); - - last_toggle = autofire_toggle; -} - } // namespace ui diff --git a/src/frontend/mame/ui/cheatopt.h b/src/frontend/mame/ui/cheatopt.h index e95e765cb30..1d925cb2a71 100644 --- a/src/frontend/mame/ui/cheatopt.h +++ b/src/frontend/mame/ui/cheatopt.h @@ -7,15 +7,16 @@ Internal menu for the cheat interface. ***************************************************************************/ - -#pragma once - #ifndef MAME_FRONTEND_UI_CHEATOPT_H #define MAME_FRONTEND_UI_CHEATOPT_H +#pragma once + #include "ui/menu.h" + namespace ui { + class menu_cheat : public menu { public: @@ -27,21 +28,6 @@ private: virtual void handle() override; }; - -class menu_autofire : public menu -{ -public: - menu_autofire(mame_ui_manager &mui, render_container &container); - virtual ~menu_autofire() override; - -private: - virtual void populate(float &customtop, float &custombottom) override; - virtual void handle() override; - - float refresh; - bool last_toggle; -}; - } // namespace ui -#endif /* MAME_FRONTEND_UI_CHEATOPT_H */ +#endif // MAME_FRONTEND_UI_CHEATOPT_H diff --git a/src/frontend/mame/ui/ui.cpp b/src/frontend/mame/ui/ui.cpp index 27987bbc9c9..baca4dd1bc7 100644 --- a/src/frontend/mame/ui/ui.cpp +++ b/src/frontend/mame/ui/ui.cpp @@ -1234,21 +1234,6 @@ uint32_t mame_ui_manager::handler_ingame(render_container &container) if (machine().ui_input().pressed(IPT_UI_THROTTLE)) machine().video().toggle_throttle(); - // toggle autofire - if (machine().ui_input().pressed(IPT_UI_TOGGLE_AUTOFIRE)) - { - if (!machine().options().cheat()) - { - machine().popmessage(_("Autofire can't be enabled")); - } - else - { - bool autofire_toggle = machine().ioport().get_autofire_toggle(); - machine().ioport().set_autofire_toggle(!autofire_toggle); - machine().popmessage("Autofire %s", autofire_toggle ? _("Enabled") : _("Disabled")); - } - } - // check for fast forward if (machine().ioport().type_pressed(IPT_UI_FAST_FORWARD)) { |