From 1f36590e80c854a3124050be43d08ca541699ebd Mon Sep 17 00:00:00 2001 From: Celtic Minstrel Date: Sat, 16 Nov 2019 14:56:51 -0500 Subject: [PATCH] Add a few more attributes to the [modify_unit] optimized path --- changelog.md | 1 + data/lua/wml/modify_unit.lua | 10 ++++++++++ src/scripting/lua_unit.cpp | 1 + 3 files changed, 12 insertions(+) diff --git a/changelog.md b/changelog.md index 468996ab9f77..99187f01b36d 100644 --- a/changelog.md +++ b/changelog.md @@ -49,6 +49,7 @@ * New wesnoth.units.find gets units on either the map or any side's recall list. * Moved to interface module: wesnoth.scroll, wesnoth.zoom, wesnoth.get_mouseover_tile * wesnoth.interface.get_displayed_unit aliased to wesnoth.unit.get_hovered + * unit portrait is now writable ### WML engine * Support upkeep in StandardUnitFilter * [effect]apply_to=variation now supports heal_full diff --git a/data/lua/wml/modify_unit.lua b/data/lua/wml/modify_unit.lua index 924a3b19cca7..31d03e42b0a6 100644 --- a/data/lua/wml/modify_unit.lua +++ b/data/lua/wml/modify_unit.lua @@ -53,6 +53,10 @@ local known_attributes = make_set { "description", "hidden", "unrenamable", + "profile", + "zoc", + "usage", + "upkeep", } local known_tags = make_set { @@ -105,6 +109,9 @@ local function simple_modify_unit(cfg) "max_experience", "resting", "canrecruit", + "zoc", + "usage", + "upkeep", } local function handle_unit(u) @@ -121,6 +128,9 @@ local function simple_modify_unit(cfg) if cfg.ai_special == "guardian" then u.status.guardian = true end + if cfg.profile ~= nil then + u.portrait = profile + end if cfg.unrenamable ~= nil then u.renamable = not cfg.unrenamable end diff --git a/src/scripting/lua_unit.cpp b/src/scripting/lua_unit.cpp index 4d01b9661865..574ae591d9ed 100644 --- a/src/scripting/lua_unit.cpp +++ b/src/scripting/lua_unit.cpp @@ -440,6 +440,7 @@ static int impl_unit_set(lua_State *L) modify_bool_attrib("resting", u.set_resting(value)); modify_tstring_attrib("name", u.set_name(value)); modify_tstring_attrib("description", u.set_unit_description(value)); + modify_string_attrib("portrait", u.set_big_profile(value)); modify_string_attrib("role", u.set_role(value)); modify_string_attrib("facing", u.set_facing(map_location::parse_direction(value))); modify_string_attrib("usage", u.set_usage(value));