static void dump_display_objects(struct nh_objlist *objs, const char *title, int how, int placement_hint, void *callbackarg, void (*callback)(const struct nh_objresult *, int, void *)) { int i; if (!dumpfp) { dealloc_objmenulist(objs); callback(NULL, 0, callbackarg); return; } if (!title) title = "Your Inventory:"; fprintf(dumpfp, "%s\n", title); for (i = 0; i < objs->icount; i++) { fprintf(dumpfp, " "); if (objs->items[i].accel) fprintf(dumpfp, "%c - ", objs->items[i].accel); fprintf(dumpfp, "%s\n", objs->items[i].caption); } fprintf(dumpfp, "\n"); dealloc_objmenulist(objs); callback(NULL, 0, callbackarg); }
static void curses_list_items_core(struct nh_objlist *objlist, nh_bool invent, nh_bool draw) { struct nh_objlist *list; if (invent) { list = &inventory; } else { list = &flooritems; } dealloc_objmenulist(list); if (objlist->icount) { list->items = malloc(objlist->icount * sizeof (struct nh_objitem)); list->size = objlist->icount; list->icount = objlist->icount; memcpy(list->items, objlist->items, objlist->icount * sizeof (struct nh_objitem)); } dealloc_objmenulist(objlist); if (draw) draw_sidebar(); }
void cleanup_sidebar(nh_bool dealloc) { if (dealloc) { dealloc_objmenulist(&flooritems); dealloc_objmenulist(&inventory); } delwin(objwin); delwin(invwin); objwin = invwin = NULL; }