/* * File: invent.cc * Summary: Functions for inventory related commands. * Written by: Linley Henzell * * Change History (most recent first): * * <1> -/--/-- LRH Created */ #ifndef INVENT_H #define INVENT_H #include #include #include "menu.h" #include "enum.h" #define PROMPT_ABORT -1 #define PROMPT_GOT_SPECIAL -2 struct SelItem { int slot; int quantity; const item_def *item; SelItem() : slot(0), quantity(0), item(NULL) { } SelItem( int s, int q, const item_def *it = NULL ) : slot(s), quantity(q), item(it) { } }; int prompt_invent_item( const char *prompt, int type_expect, bool must_exist = true, bool allow_auto_list = true, bool allow_easy_quit = true, const char other_valid_char = '\0', int *const count = NULL, operation_types oper = OPER_ANY ); std::vector select_items( std::vector &items, const char *title, bool noselect = false ); std::vector prompt_invent_items( const char *prompt, int type_expect, std::string (*titlefn)( int menuflags, const std::string &oldt ) = NULL, bool allow_auto_list = true, bool allow_easy_quit = true, const char other_valid_char = '\0', std::vector *filter = NULL, Menu::selitem_tfn fn = NULL ); // last updated 12may2000 {dlb} /* *********************************************************************** * called from: invent - ouch - shopping * *********************************************************************** */ unsigned char invent( int item_class_inv, bool show_price ); unsigned char invent_select(int item_class_inv, int select_flags = MF_NOSELECT, std::string (*titlefn)( int menuflags, const std::string &oldt ) = NULL, std::vector *sels = NULL, std::vector *filter = NULL, Menu::selitem_tfn fn = NULL ); // last updated 24may2000 {dlb} /* *********************************************************************** * called from: acr - command - food - item_use - items - spl-book - spells1 * *********************************************************************** */ unsigned char get_invent(int invent_type); bool in_inventory(const item_def &i); // last updated 12may2000 {dlb} /* *********************************************************************** * called from: acr * *********************************************************************** */ void list_commands(bool wizard); std::string item_class_name(int type, bool terse = false); void populate_item_menu( Menu *menu, const std::vector &items, void (*callback)(MenuEntry *me) ); #endif