diff options
author | Erik Schilling <ablu.erikschilling@googlemail.com> | 2013-02-20 22:46:55 +0100 |
---|---|---|
committer | Erik Schilling <ablu.erikschilling@googlemail.com> | 2013-02-21 07:29:13 +0100 |
commit | 4559ca444daacfd02ebb05f1657148a2b4cf3d8b (patch) | |
tree | 8410fe19f397e70d43a8542c6ba7339d61d9bc0e /src/scripting/lua.cpp | |
parent | ad1d58b795681cad74642c0f4818b66a3f869794 (diff) | |
download | manaserv-4559ca444daacfd02ebb05f1657148a2b4cf3d8b.tar.gz manaserv-4559ca444daacfd02ebb05f1657148a2b4cf3d8b.tar.bz2 manaserv-4559ca444daacfd02ebb05f1657148a2b4cf3d8b.tar.xz manaserv-4559ca444daacfd02ebb05f1657148a2b4cf3d8b.zip |
Introduced Script::Context
This should allow to finally call functions to lua without having to care
about working around situations where a lua call causes a c++ call which
needs to call to lua again.
Tested against the source of tales repository data.
Diffstat (limited to 'src/scripting/lua.cpp')
-rw-r--r-- | src/scripting/lua.cpp | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/src/scripting/lua.cpp b/src/scripting/lua.cpp index 4e2cd283..e305fcd7 100644 --- a/src/scripting/lua.cpp +++ b/src/scripting/lua.cpp @@ -1438,17 +1438,11 @@ static int chr_request_quest(lua_State *s) Script::Ref callback; script->assignCallback(callback); - // Backup the map since execute will reset it - MapComposite *map = script->getMap(); - script->prepare(callback); script->push(ch); script->push(name); script->push(value); - script->execute(); - - // Restore map - script->setMap(map); + script->execute(ch->getMap()); return 0; } @@ -2132,7 +2126,7 @@ static int get_map_id(lua_State *s) { Script *script = getScript(s); - if (MapComposite *mapComposite = script->getMap()) + if (MapComposite *mapComposite = script->getContext()->map) lua_pushinteger(s, mapComposite->getID()); else lua_pushnil(s); |