summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend/mame/luaengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/mame/luaengine.cpp')
-rw-r--r--src/frontend/mame/luaengine.cpp9
1 files changed, 9 insertions, 0 deletions
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<ioport_field>("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);