diff --git a/clibs b/clibs index bce9b6568..339ac5680 160000 --- a/clibs +++ b/clibs @@ -1 +1 @@ -Subproject commit bce9b6568d4e9ace26c95a7740140cd71029b21f +Subproject commit 339ac5680ec9027c88c4516c72b9da8233b6f3e3 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ea76d4dbb..06af86c8b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -88,6 +88,7 @@ set (ERESSEA_SRC move.c piracy.c spells.c + quicklist.c battle.c alchemy.c academy.c diff --git a/src/donations.c b/src/donations.c index 8f820df2b..c6e4308ac 100644 --- a/src/donations.c +++ b/src/donations.c @@ -54,8 +54,8 @@ void add_donation(faction * f1, faction * f2, int amount, region * r) } void free_donations(void) { - ql_foreach(transfers, free); - ql_free(transfers); + selist_foreach(transfers, free); + selist_free(transfers); transfers = 0; } diff --git a/src/quicklist.c b/src/quicklist.c new file mode 100644 index 000000000..75d7b8641 --- /dev/null +++ b/src/quicklist.c @@ -0,0 +1,4 @@ +#include "quicklist.h" + +bool ql_set_insert_ex(struct quicklist **qlp, void *data, int (*cmp_cb)(const void *lhs, const void *rhs)); +bool ql_set_find_ex(struct quicklist **qlp, int *qip, const void *data, int (*cmp_cb)(const void *lhs, const void *rhs)); diff --git a/src/quicklist.h b/src/quicklist.h new file mode 100644 index 000000000..fe2f26991 --- /dev/null +++ b/src/quicklist.h @@ -0,0 +1,14 @@ +#pragma once + +#define selist quicklist +#define selist_free ql_free +#define selist_get ql_get +#define selist_push ql_push +#define selist_empty ql_empty +#define selist_advance ql_advance +#include +#include + +typedef void(*ql_cb)(void *); +bool ql_set_insert_ex(struct quicklist **qlp, void *data, int (*cmp_cb)(const void *lhs, const void *rhs)); +bool ql_set_find_ex(struct quicklist **qlp, int *qip, const void *data, int (*cmp_cb)(const void *lhs, const void *rhs));