summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2018-12-13 21:04:58 +0300
committerAndrei Karas <akaras@inbox.ru>2018-12-14 01:23:00 +0300
commit52fab52108281d215c61d7fbdb82438c043a10f5 (patch)
tree10fc45222925cf4876a6839a5d466416408711f1 /src
parentaee153a9a56ab05464779082a711adc95fb28663 (diff)
downloadhercules-52fab52108281d215c61d7fbdb82438c043a10f5.tar.gz
hercules-52fab52108281d215c61d7fbdb82438c043a10f5.tar.bz2
hercules-52fab52108281d215c61d7fbdb82438c043a10f5.tar.xz
hercules-52fab52108281d215c61d7fbdb82438c043a10f5.zip
Add packet ZC_ACK_INVENTORY_EXPAND_RESULT
Diffstat (limited to 'src')
-rw-r--r--src/map/clif.c15
-rw-r--r--src/map/clif.h9
-rw-r--r--src/map/packets_struct.h8
3 files changed, 32 insertions, 0 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index 34bdb4a2a..863321422 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -3093,6 +3093,20 @@ static void clif_inventoryExpandAck(struct map_session_data *sd, enum expand_inv
#endif
}
+static void clif_inventoryExpandResult(struct map_session_data *sd, enum expand_inventory_result result)
+{
+#if PACKETVER_ZERO_NUM >= 20181212
+ nullpo_retv(sd);
+
+ const int fd = sd->fd;
+ WFIFOHEAD(fd, sizeof(struct PACKET_ZC_ACK_INVENTORY_EXPAND_RESULT));
+ struct PACKET_ZC_ACK_INVENTORY_EXPAND_RESULT *p = WFIFOP(fd, 0);
+ p->packetType = HEADER_ZC_ACK_INVENTORY_EXPAND_RESULT;
+ p->result = result;
+ WFIFOSET(fd, sizeof(struct PACKET_ZC_ACK_INVENTORY_EXPAND_RESULT));
+#endif
+}
+
/// Removes cart (ZC_CARTOFF).
/// 012b
/// Client behavior:
@@ -22560,6 +22574,7 @@ void clif_defaults(void)
clif->cartItems = clif_cartItems;
clif->inventoryExpansionInfo = clif_inventoryExpansionInfo;
clif->inventoryExpandAck = clif_inventoryExpandAck;
+ clif->inventoryExpandResult = clif_inventoryExpandResult;
clif->favorite_item = clif_favorite_item;
clif->clearcart = clif_clearcart;
clif->item_identify_list = clif_item_identify_list;
diff --git a/src/map/clif.h b/src/map/clif.h
index 2c3e7499b..c4be2c7ee 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -685,6 +685,14 @@ enum expand_inventory {
EXPAND_INVENTORY_MAX_SIZE = 4
};
+enum expand_inventory_result {
+ EXPAND_INVENTORY_RESULT_SUCCESS = 0,
+ EXPAND_INVENTORY_RESULT_FAILED = 1,
+ EXPAND_INVENTORY_RESULT_OTHER_WORK = 2,
+ EXPAND_INVENTORY_RESULT_MISSING_ITEM = 3,
+ EXPAND_INVENTORY_RESULT_MAX_SIZE = 4
+};
+
/**
* Clif.c Interface
**/
@@ -861,6 +869,7 @@ struct clif_interface {
void (*cartItems) (struct map_session_data *sd, enum inventory_type type);
void (*inventoryExpansionInfo) (struct map_session_data *sd);
void (*inventoryExpandAck) (struct map_session_data *sd, enum expand_inventory result, int itemId);
+ void (*inventoryExpandResult) (struct map_session_data *sd, enum expand_inventory_result result);
void (*favorite_item) (struct map_session_data* sd, unsigned short index);
void (*clearcart) (int fd);
void (*item_identify_list) (struct map_session_data *sd);
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index 663e6cbbf..e7fbdb7bd 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -2998,6 +2998,14 @@ struct PACKET_ZC_ACK_INVENTORY_EXPAND {
DEFINE_PACKET_HEADER(ZC_ACK_INVENTORY_EXPAND, 0x0b15);
#endif
+#if PACKETVER_ZERO_NUM >= 20181212
+struct PACKET_ZC_ACK_INVENTORY_EXPAND_RESULT {
+ int16 packetType;
+ uint8 result;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACK_INVENTORY_EXPAND_RESULT, 0x0b17);
+#endif
+
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
#pragma pack(pop)
#endif // not NetBSD < 6 / Solaris