From d5e5340c3926d1cf97f6cba151ffaecb20bfb35f Mon Sep 17 00:00:00 2001 From: dshaligram Date: Wed, 2 Aug 2006 12:54:15 +0000 Subject: Integrated travel patch as of 20060727 git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7 c06c8d41-db1a-0410-9941-cceddc491573 --- trunk/source/invent.h | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) (limited to 'trunk/source/invent.h') diff --git a/trunk/source/invent.h b/trunk/source/invent.h index 2de7636200..624e603fc1 100644 --- a/trunk/source/invent.h +++ b/trunk/source/invent.h @@ -13,10 +13,26 @@ #define INVENT_H #include +#include +#include "menu.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, @@ -24,12 +40,36 @@ int prompt_invent_item( const char *prompt, int type_expect, const char other_valid_char = '\0', int *const count = NULL ); +std::vector select_items( std::vector &items, + const char *title ); + +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( 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} /* *********************************************************************** @@ -37,6 +77,7 @@ unsigned char invent(int item_class_inv, bool show_price); * *********************************************************************** */ unsigned char get_invent(int invent_type); +bool in_inventory(const item_def &i); // last updated 12may2000 {dlb} /* *********************************************************************** @@ -44,5 +85,9 @@ unsigned char get_invent(int invent_type); * *********************************************************************** */ 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 -- cgit v1.2.3-54-g00ecf