summaryrefslogtreecommitdiff
path: root/src/map/npc.h
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2020-01-30 07:19:13 +0300
committerAndrei Karas <akaras@inbox.ru>2020-02-09 21:30:38 +0300
commit3daa68bc406ab062190774f55ea21769a73f825b (patch)
tree5e21003fc03c832bd6046369152aabda7501c7ea /src/map/npc.h
parent92bcd85116ff374bca68e77ac1dd68ba29bf61e2 (diff)
downloadhercules-3daa68bc406ab062190774f55ea21769a73f825b.tar.gz
hercules-3daa68bc406ab062190774f55ea21769a73f825b.tar.bz2
hercules-3daa68bc406ab062190774f55ea21769a73f825b.tar.xz
hercules-3daa68bc406ab062190774f55ea21769a73f825b.zip
Add npc functions for expanded barter shops
Diffstat (limited to 'src/map/npc.h')
-rw-r--r--src/map/npc.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/map/npc.h b/src/map/npc.h
index 64c0e37e9..392911046 100644
--- a/src/map/npc.h
+++ b/src/map/npc.h
@@ -61,17 +61,25 @@ struct npc_label_list {
int pos;
};
+struct npc_barter_currency {
+ int nameid;
+ int refine;
+ int amount;
+};
+
struct npc_item_list {
int nameid;
unsigned int value; // price or barter currency item id
- int value2; // barter currency item amount
- unsigned int qty;
+ int value2; // barter currency item amount / expanded barter currency size
+ int qty;
+ struct npc_barter_currency *currency;
};
struct npc_shop_data {
unsigned char type;/* what am i */
struct npc_item_list *item;/* list */
unsigned int items;/* total */
+ int shop_last_index; // only for NST_EXPANDED_BARTER
};
struct npc_parse;
struct npc_data {
@@ -315,6 +323,7 @@ struct npc_interface {
void (*trader_update) (int master);
enum market_buy_result (*market_buylist) (struct map_session_data *sd, struct itemlist *item_list);
int (*barter_buylist) (struct map_session_data *sd, struct barteritemlist *item_list);
+ int (*expanded_barter_buylist) (struct map_session_data *sd, struct barteritemlist *item_list);
bool (*trader_open) (struct map_session_data *sd, struct npc_data *nd);
void (*market_fromsql) (void);
void (*market_tosql) (struct npc_data *nd, int index);
@@ -324,6 +333,10 @@ struct npc_interface {
void (*barter_tosql) (struct npc_data *nd, int index);
void (*barter_delfromsql) (struct npc_data *nd, int index);
void (*barter_delfromsql_sub) (const char *npcname, int itemId, int itemId2, int amount2);
+ void (*expanded_barter_fromsql) (void);
+ void (*expanded_barter_tosql) (struct npc_data *nd, int index);
+ void (*expanded_barter_delfromsql) (struct npc_data *nd, int index);
+ void (*expanded_barter_delfromsql_sub) (const char *npcname, int itemId, int zeny, int currencyCount, struct npc_barter_currency* currency);
bool (*db_checkid) (const int id);
void (*refresh) (struct npc_data* nd);
void (*questinfo_clear) (struct npc_data *nd);