Einheit besitzt "-1 Sternenstaub"?

lua interface benoetigt Zugriff auf den Regionspool um use_-Funktionen korrekt zu implementieren.
Issue: 1045
This commit is contained in:
Enno Rehling 2006-10-28 07:45:59 +00:00
parent a87cc547e1
commit fb63929d81
2 changed files with 26 additions and 2 deletions

View File

@ -16,6 +16,7 @@
#include <kernel/magic.h>
#include <kernel/movement.h>
#include <kernel/order.h>
#include <kernel/pool.h>
#include <kernel/race.h>
#include <kernel/region.h>
#include <kernel/ship.h>
@ -127,7 +128,27 @@ unit_additem(unit& u, const char * iname, int number)
if (itype!=NULL) {
item * i = i_change(&u.items, itype, number);
return i?i->number:0;
} // if (itype!=NULL)
}
return -1;
}
static int
unit_usepooled(unit& u, const char * iname, int number)
{
const resource_type * rtype = rt_find(iname);
if (rtype!=NULL) {
return use_pooled(&u, rtype, GET_DEFAULT, number);
}
return -1;
}
static int
unit_getpooled(unit& u, const char * iname)
{
const resource_type * rtype = rt_find(iname);
if (rtype!=NULL) {
return get_pooled(&u, rtype, GET_DEFAULT, INT_MAX);
}
return -1;
}
@ -575,6 +596,9 @@ bind_unit(lua_State * L)
.def("add_item", &unit_additem)
.property("items", &unit_items, return_stl_iterator)
.def("get_pooled", &unit_getpooled)
.def("use_pooled", &unit_usepooled)
// skills:
.def("get_skill", &unit_getskill)
.def("eff_skill", &unit_effskill)

View File

@ -11,7 +11,7 @@ function use_stardust(u, amount)
u.region:set_resource("peasant", p)
local msg = usepotion_message(u, "stardust")
msg:send_region(u.region)
u:add_item("stardust", -amount)
u:use_pooled("stardust", amount)
return 0
end