summaryrefslogtreecommitdiff
path: root/src/map/searchstore.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/searchstore.h')
-rw-r--r--src/map/searchstore.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/map/searchstore.h b/src/map/searchstore.h
index 42d47c7c0..d7a327181 100644
--- a/src/map/searchstore.h
+++ b/src/map/searchstore.h
@@ -5,8 +5,36 @@
#ifndef _SEARCHSTORE_H_
#define _SEARCHSTORE_H_
+/**
+ * Defines
+ **/
#define SEARCHSTORE_RESULTS_PER_PAGE 10
+/**
+ * Enumerations
+ **/
+enum e_searchstore_searchtype {
+ SEARCHTYPE_VENDING = 0,
+ SEARCHTYPE_BUYING_STORE = 1,
+};
+
+enum e_searchstore_effecttype {
+ EFFECTTYPE_NORMAL = 0,
+ EFFECTTYPE_CASH = 1,
+ EFFECTTYPE_MAX
+};
+/// failure constants for clif functions
+enum e_searchstore_failure {
+ SSI_FAILED_NOTHING_SEARCH_ITEM = 0, // "No matching stores were found."
+ SSI_FAILED_OVER_MAXCOUNT = 1, // "There are too many results. Please enter more detailed search term."
+ SSI_FAILED_SEARCH_CNT = 2, // "You cannot search anymore."
+ SSI_FAILED_LIMIT_SEARCH_TIME = 3, // "You cannot search yet."
+ SSI_FAILED_SSILIST_CLICK_TO_OPEN_STORE = 4, // "No sale (purchase) information available."
+};
+
+/**
+ * Structures
+ **/
/// information about the search being performed
struct s_search_store_search {
struct map_session_data* search_sd; // sd of the searching player
@@ -41,6 +69,13 @@ struct s_search_store_info {
bool open;
};
+/// type for shop search function
+typedef bool (*searchstore_search_t)(struct map_session_data* sd, unsigned short nameid);
+typedef bool (*searchstore_searchall_t)(struct map_session_data* sd, const struct s_search_store_search* s);
+
+/**
+ * Interface
+ **/
struct searchstore_interface {
bool (*open) (struct map_session_data* sd, unsigned int uses, unsigned short effect);
void (*query) (struct map_session_data* sd, unsigned char type, unsigned int min_price, unsigned int max_price, const unsigned short* itemlist, unsigned int item_count, const unsigned short* cardlist, unsigned int card_count);