X-Git-Url: https://plomlompom.com/repos/berlin_corona.txt?a=blobdiff_plain;ds=sidebyside;f=src%2Fclient%2Fmisc.c;fp=src%2Fclient%2Fmisc.c;h=4f967dfdcbf764b6e5854f687664fcbe7426e05c;hb=3a5db435e5dc6422e559033fbdf9b64c8d8567c9;hp=a8cf0532e21c3aa767033e99124a3b8a2134b391;hpb=37fb9ef76174a83e27dd27a3250f4be5542e7452;p=plomrogue diff --git a/src/client/misc.c b/src/client/misc.c index a8cf053..4f967df 100644 --- a/src/client/misc.c +++ b/src/client/misc.c @@ -22,6 +22,7 @@ */ #include "world.h" /* global world */ +#include "../common/try_malloc.h" /* try_malloc() */ extern void obey_argv(int argc, char * argv[]) @@ -136,3 +137,18 @@ extern void nav_inventory(char dir) world.player_inventory_select = world.player_inventory_select + (world.player_inventory_select < n_elems); } + + + +extern void array_append(uint32_t old_n, size_t region_size, void * new_region, + void ** ptr_old_array) +{ + char * f_name = "array_append()"; + uint32_t old_size = old_n * region_size; + uint32_t new_size = old_size + region_size; + void * new_array = try_malloc(new_size, f_name); + memcpy(new_array, * ptr_old_array, old_size); + memcpy(new_array + (old_n * region_size), new_region, region_size); + free(* ptr_old_array); + * ptr_old_array = new_array; +}