diff --git a/changelog b/changelog index c76964f4052e..6c4cd1d0c9ec 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,6 @@ Version 1.13.11+dev: + * Lua API: + * Add side_name to unit proxy * User Interface: * Improved outro screen. * Fixed a few cases of data not displaying in the MP Join Game screen. @@ -7,6 +9,7 @@ Version 1.13.11+dev: * WML engine: * Fixed units shown with [move_units_fake] disappearing between steps (bug #1516). + * [modify_side] now supports side_name * Miscellaneous and bug fixes: * Fixed standing animation toggle not taking immediate effect (bug #1653). diff --git a/data/lua/wml/modify_side.lua b/data/lua/wml/modify_side.lua index b9c562468818..49f0b928acc2 100644 --- a/data/lua/wml/modify_side.lua +++ b/data/lua/wml/modify_side.lua @@ -17,6 +17,9 @@ function wesnoth.wml_actions.modify_side(cfg) if cfg.user_team_name then side.user_team_name = cfg.user_team_name end + if cfg.side_name then + side.side_name = cfg.side_name + end if cfg.controller then side.controller = cfg.controller end diff --git a/src/scripting/lua_team.cpp b/src/scripting/lua_team.cpp index d733c0eed81e..5ea26db6b47c 100644 --- a/src/scripting/lua_team.cpp +++ b/src/scripting/lua_team.cpp @@ -87,6 +87,7 @@ static int impl_side_get(lua_State *L) return_bool_attrib("share_maps", t.share_maps()); return_bool_attrib("share_view", t.share_view()); return_bool_attrib("chose_random", t.chose_random()); + return_tstring_attrib("side_name", t.side_name_tstr()); if (strcmp(m, "recruit") == 0) { const std::set& recruits = t.recruits(); @@ -151,6 +152,7 @@ static int impl_side_set(lua_State *L) modify_bool_attrib("shroud", t.set_shroud(value)); modify_bool_attrib("fog", t.set_fog(value)); modify_string_attrib("flag_icon", t.set_flag_icon(value)); + modify_tstring_attrib("side_name", t.set_side_name(value)); modify_string_attrib("share_vision", { team::SHARE_VISION v; if(v.parse(value)) { diff --git a/src/team.hpp b/src/team.hpp index 2764278a2b07..01e0f254d1c8 100644 --- a/src/team.hpp +++ b/src/team.hpp @@ -302,6 +302,8 @@ class team void set_flag_icon(const std::string& flag_icon) { info_.flag_icon = flag_icon; } const std::string& side_name() const { return info_.side_name.empty() ? info_.current_player : info_.side_name.str(); } + t_string side_name_tstr() const { return info_.side_name.empty() ? info_.current_player : info_.side_name; } + void set_side_name(const t_string& new_name) {info_.side_name = new_name;} const std::string& faction() const { return info_.faction; } const t_string& faction_name() const { return info_.faction_name; } //Returns true if the hex is shrouded/fogged for this side, or