diff --git a/src/frontend/mame/luaengine.cpp b/src/frontend/mame/luaengine.cpp index 46617e18f18..3dcdd82bf88 100644 --- a/src/frontend/mame/luaengine.cpp +++ b/src/frontend/mame/luaengine.cpp @@ -2071,6 +2071,8 @@ void lua_engine::initialize() * field.crosshair_scale * field.crosshair_offset * field.user_value + * + * field.settings[] - ioport_setting table (k=value, v=name) */ auto ioport_field_type = sol().registry().create_simple_usertype("new", sol::no_constructor); @@ -2152,6 +2154,13 @@ void lua_engine::initialize() settings.value = val; f.set_user_settings(settings); })); + ioport_field_type.set("settings", sol::property([this](ioport_field &f) { + sol::table result = sol().create_table(); + for (ioport_setting &setting : f.settings()) + if (setting.enabled()) + result[setting.value()] = setting.name(); + return result; + })); sol().registry().set_usertype("ioport_field", ioport_field_type);