From d9fca4dcb3c3b03822e3059ff35d71446874742b Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Mon, 8 May 2017 22:44:18 +0200 Subject: [PATCH] refactor stray fptr variable into callbacks module. --- src/helpers.c | 7 +++---- src/kernel/callbacks.h | 6 ++++++ src/kernel/resources.c | 2 -- src/kernel/resources.h | 2 -- src/laws.c | 3 ++- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/helpers.c b/src/helpers.c index e4397bd46..25079c549 100644 --- a/src/helpers.c +++ b/src/helpers.c @@ -310,11 +310,10 @@ void register_tolua_helpers(void) at_register(&at_building_action); callbacks.cast_spell = lua_callspell; - - register_function((pf_generic)lua_changeresource, "lua_changeresource"); - - item_use_fun = use_item_lua; + callbacks.use_item = use_item_lua; res_produce_fun = produce_resource_lua; res_limit_fun = limit_resource_lua; + + register_function((pf_generic)lua_changeresource, "lua_changeresource"); register_item_give(lua_giveitem, "lua_giveitem"); } diff --git a/src/kernel/callbacks.h b/src/kernel/callbacks.h index f42d25d3f..0aa71daca 100644 --- a/src/kernel/callbacks.h +++ b/src/kernel/callbacks.h @@ -24,9 +24,15 @@ extern "C" { #endif struct castorder; + struct order; + struct unit; + struct item_type; struct callback_struct { int (*cast_spell)(struct castorder *co, const char *fname); + int (*use_item)(struct unit *u, const struct item_type *itype, + int amount, struct order *ord); + }; extern struct callback_struct callbacks; diff --git a/src/kernel/resources.c b/src/kernel/resources.c index 8d6e1c2ac..fe18ae640 100644 --- a/src/kernel/resources.c +++ b/src/kernel/resources.c @@ -213,8 +213,6 @@ struct rawmaterial_type *rmt_create(struct resource_type *rtype) return rmtype; } -int(*item_use_fun)(struct unit *u, const struct item_type *itype, int amount, - struct order *ord); int(*res_limit_fun)(const struct region *, const struct resource_type *); void(*res_produce_fun)(struct region *, const struct resource_type *, int); diff --git a/src/kernel/resources.h b/src/kernel/resources.h index 1868dffc0..e7a232d27 100644 --- a/src/kernel/resources.h +++ b/src/kernel/resources.h @@ -73,8 +73,6 @@ extern "C" { extern int(*res_limit_fun)(const struct region *, const struct resource_type *); extern void(*res_produce_fun)(struct region *, const struct resource_type *, int); - extern int (*item_use_fun)(struct unit *, const struct item_type *, int amount, - struct order *ord); int limit_resource(const struct region *r, const struct resource_type *rtype); void produce_resource(struct region *r, const struct resource_type *rtype, int amount); diff --git a/src/laws.c b/src/laws.c index 250738f76..5bb87f4fb 100644 --- a/src/laws.c +++ b/src/laws.c @@ -45,6 +45,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. /* kernel includes */ #include #include +#include #include #include #include @@ -3218,7 +3219,7 @@ static int use_item(unit * u, const item_type * itype, int amount, struct order } if (itype->flags & ITF_CANUSE) { - int result = item_use_fun(u, itype, amount, ord); + int result = callbacks.use_item(u, itype, amount, ord); if (result > 0) { use_pooled(u, itype->rtype, GET_DEFAULT, result); }