From 37cd9a2d98e4d07f394ec6f8d030bbfda3d1c4ef Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Sat, 17 Jan 2015 23:32:57 +0100 Subject: luaengine: rework state getter/setter for saves Improve state_get_value and state_set_value by using the parent device_state_interface and triggering callbacks for updates. While at it, also remove the hackish friend relationship. Signed-off-by: Luca Bruno --- src/emu/luaengine.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/emu/luaengine.c') diff --git a/src/emu/luaengine.c b/src/emu/luaengine.c index f38a7386442..1f1e9b9db91 100644 --- a/src/emu/luaengine.c +++ b/src/emu/luaengine.c @@ -456,23 +456,33 @@ luabridge::LuaRef lua_engine::l_dev_get_states(const device_t *d) } //------------------------------------------------- -// state_get_value - return value of a devices state +// state_get_value - return value of a device state entry // -> manager:machine().devices[":maincpu"].state["PC"].value //------------------------------------------------- UINT64 lua_engine::l_state_get_value(const device_state_entry *d) { - return d->value(); + device_state_interface *state = d->parent_state(); + if(state) { + luaThis->machine().save().dispatch_presave(); + return state->state_int(d->index()); + } else { + return 0; + } } //------------------------------------------------- -// state_set_value - set value of a devices state +// state_set_value - set value of a device state entry // -> manager:machine().devices[":maincpu"].state["D0"].value = 0x0c00 //------------------------------------------------- void lua_engine::l_state_set_value(device_state_entry *d, UINT64 val) { - d->set_value(val); + device_state_interface *state = d->parent_state(); + if(state) { + state->set_state_int(d->index(), val); + luaThis->machine().save().dispatch_presave(); + } } //------------------------------------------------- -- cgit v1.2.3