예제 #1
0
파일: dump.c 프로젝트: FredrIQ/nhfourk
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);
}
예제 #2
0
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();
}
예제 #3
0
void
cleanup_sidebar(nh_bool dealloc)
{
    if (dealloc) {
        dealloc_objmenulist(&flooritems);
        dealloc_objmenulist(&inventory);
    }
    delwin(objwin);
    delwin(invwin);
    objwin = invwin = NULL;
}