Browse Source

- Added separated packets for get and set attachment on mail system.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11693 54d463be-8e91-2dee-dedb-b68131a5f0ec
zephyrus 17 years ago
parent
commit
3575f9ad9a
4 changed files with 23 additions and 4 deletions
  1. 1 0
      Changelog-Trunk.txt
  2. 18 4
      src/map/clif.c
  3. 1 0
      src/map/clif.h
  4. 3 0
      src/map/intif.c

+ 1 - 0
Changelog-Trunk.txt

@@ -6,6 +6,7 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 2007/11/07
 	* Some updates on the mail system packets [Zephyrus]
 	- Corrected the mail database structure on main.sql
+	- Added separated packets for get and set attachment on mail system.
 2007/11/06
 	* Fixed a crash caused by a mistake in the previous change
 2007/11/05

+ 18 - 4
src/map/clif.c

@@ -11298,11 +11298,11 @@ void clif_parse_AutoRevive(int fd, struct map_session_data *sd)
  *==========================================*/
 
 /*------------------------------------------
- * Reply to an Attachment operation
+ * Reply to Set Attachment operation
  * 0 : Successfully attached item to mail
  * 1 : Fail to set the attachment
  *------------------------------------------*/
-static void clif_Mail_attachment(int fd, int index, uint8 flag)
+static void clif_Mail_setattachment(int fd, int index, uint8 flag)
 {
 	WFIFOHEAD(fd,packet_len(0x255));
 	WFIFOW(fd,0) = 0x255;
@@ -11311,6 +11311,20 @@ static void clif_Mail_attachment(int fd, int index, uint8 flag)
 	WFIFOSET(fd,packet_len(0x255));
 }
 
+/*------------------------------------------
+ * Reply to Get Attachment operation
+ * 0 : Successfully added attachment to Inventory
+ * 1 : Fail to set the item to inventory
+ * 2 : Weight problems
+ *------------------------------------------*/
+void clif_Mail_getattachment(int fd, uint8 flag)
+{
+	WFIFOHEAD(fd,packet_len(0x245));
+	WFIFOW(fd,0) = 0x245;
+	WFIFOB(fd,2) = flag;
+	WFIFOSET(fd,packet_len(0x245));
+}
+
 /*------------------------------------------
  * Send Mail ack
  * 0 : Message Send Ok
@@ -11519,7 +11533,7 @@ void clif_parse_Mail_getattach(int fd, struct map_session_data *sd)
 		weight = data->weight * sd->mail.inbox.msg[i].item.amount;
 		if (weight > sd->max_weight - sd->weight)
 		{
-			// clif_Mail_attachment(fd, 2);
+			clif_Mail_getattachment(fd, 2);
 			return;
 		}
 	}
@@ -11582,7 +11596,7 @@ void clif_parse_Mail_setattach(int fd, struct map_session_data *sd)
 	flag = mail_setitem(sd, idx, amount);
 
 	if (idx > 0)
-		clif_Mail_attachment(fd,idx,flag);
+		clif_Mail_setattachment(fd,idx,flag);
 }
 
 /*------------------------------------------

+ 1 - 0
src/map/clif.h

@@ -391,6 +391,7 @@ void clif_Mail_return(int fd, int mail_id, short fail);
 void clif_Mail_send(int fd, bool fail);
 void clif_Mail_new(int fd, int mail_id, const char *sender, const char *title);
 void clif_Mail_refreshinbox(struct map_session_data *sd);
+void clif_Mail_getattachment(int fd, uint8 flag);
 #endif
 
 #endif /* _CLIF_H_ */

+ 3 - 0
src/map/intif.c

@@ -1568,7 +1568,10 @@ int intif_parse_Mail_getattach(int fd)
 
 	memcpy(&item, RFIFOP(fd,12), sizeof(struct item));
 	if (item.nameid > 0 && item.amount > 0)
+	{
 		pc_additem(sd, &item, item.amount);
+		clif_Mail_getattachment(sd->fd, 0);
+	}
 
 	return 0;
 }