From f80cc1c2d7759bd8d5ffbd52ae3bb03ef29f1601 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 11 Jul 2004 12:05:38 +0000 Subject: [PATCH] LUA-Updates: - building.region (read/write) - unit.faction (read/write) --- src/eressea/lua/building.cpp | 16 +++++++++++++++- src/eressea/lua/unit.cpp | 14 +++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/eressea/lua/building.cpp b/src/eressea/lua/building.cpp index 2eef239ee..6d9d123e7 100644 --- a/src/eressea/lua/building.cpp +++ b/src/eressea/lua/building.cpp @@ -78,6 +78,20 @@ building_setname(building& b, const char * name) set_string(&b.name, name); } +static region * +building_getregion(const building& b) +{ + return b.region; +} + +static void +building_setregion(building& b, region& r) +{ + choplist(&b.region->buildings, &b); + addlist(&r.buildings, &b); + b.region = &r; +} + static std::ostream& operator<<(std::ostream& stream, building& b) { @@ -130,7 +144,7 @@ bind_building(lua_State * L) .property("name", &building_getname, &building_setname) .property("info", &building_getinfo, &building_setinfo) .property("units", &building_units, return_stl_iterator) - .def_readonly("region", &building::region) + .property("region", &building_getregion, &building_setregion) .def_readonly("id", &building::no) .def_readwrite("size", &building::size) .def("add_action", &building_addaction) diff --git a/src/eressea/lua/unit.cpp b/src/eressea/lua/unit.cpp index 19e43311f..0cc6b6e9c 100644 --- a/src/eressea/lua/unit.cpp +++ b/src/eressea/lua/unit.cpp @@ -331,6 +331,18 @@ unit_setaura(unit& u, int points) return set_spellpoints(&u, points); } +static faction * +unit_getfaction(const unit& u) +{ + return u.faction; +} + +static void +unit_setfaction(unit& u, faction& f) +{ + u_setfaction(&u, &f); +} + static const char * unit_getmagic(const unit& u) { @@ -387,7 +399,7 @@ bind_unit(lua_State * L) .property("name", &unit_getname, &unit_setname) .property("info", &unit_getinfo, &unit_setinfo) .property("id", &unit_getid, &unit_setid) - .def_readonly("faction", &unit::faction) + .property("faction", &unit_getfaction, &unit_setfaction) .def_readwrite("hp", &unit::hp) .def_readwrite("status", &unit::status)