diff options
| author | 2015-01-17 23:32:57 +0100 | |
|---|---|---|
| committer | 2015-01-18 20:13:11 +0100 | |
| commit | 37cd9a2d98e4d07f394ec6f8d030bbfda3d1c4ef (patch) | |
| tree | 20a88ff167199c4c7324b4fac9409652b7c545bd /src/emu/luaengine.c | |
| parent | 39788873b0b99c85bb6d8c6b5da9ead619b38411 (diff) | |
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 <lucab@debian.org>
Diffstat (limited to 'src/emu/luaengine.c')
| -rw-r--r-- | src/emu/luaengine.c | 18 |
1 files changed, 14 insertions, 4 deletions
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(); + } } //------------------------------------------------- |
