From f4253c220a2ae6a75327c41f6c5c4e303acb0d9b Mon Sep 17 00:00:00 2001 From: gfgtdf Date: Sat, 9 Jul 2016 21:40:14 +0200 Subject: [PATCH] fix side specific variables this fixes wesnoth.get_side_variable and wesnoth.set_side_variable --- src/carryover.cpp | 1 + src/scripting/game_lua_kernel.cpp | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/carryover.cpp b/src/carryover.cpp index fa4ad1c683d7..9bdcc65e7480 100644 --- a/src/carryover.cpp +++ b/src/carryover.cpp @@ -114,6 +114,7 @@ void carryover::to_config(config& cfg){ side["add"] = add_; side["current_player"] = current_player_; side["previous_recruits"] = get_recruits(false); + side.add_child("variables", variables_); for(const config & u_cfg : recall_list_) { side.add_child("unit", u_cfg); } diff --git a/src/scripting/game_lua_kernel.cpp b/src/scripting/game_lua_kernel.cpp index 8ca9e012c202..6b8143e41a88 100644 --- a/src/scripting/game_lua_kernel.cpp +++ b/src/scripting/game_lua_kernel.cpp @@ -1117,7 +1117,7 @@ int game_lua_kernel::intf_get_side_variable(lua_State *L) if(side_index >= teams().size()) { return luaL_argerror(L, 1, "invalid side number"); } - char const *m = luaL_checkstring(L, 1); + char const *m = luaL_checkstring(L, 2); variable_access_const v(m, teams()[side_index].variables()); return luaW_pushvariable(L, v) ? 1 : 0; } @@ -1134,10 +1134,10 @@ int game_lua_kernel::intf_set_side_variable(lua_State *L) if(side_index >= teams().size()) { return luaL_argerror(L, 1, "invalid side number"); } - char const *m = luaL_checkstring(L, 1); + char const *m = luaL_checkstring(L, 2); //TODO: maybe support removing values with an empty arg3. variable_access_create v(m, teams()[side_index].variables()); - luaW_checkvariable(L, v, 2); + luaW_checkvariable(L, v, 3); return 0; }