summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt5
-rw-r--r--src/map/clif.c45
-rw-r--r--src/map/clif.h2
3 files changed, 46 insertions, 6 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index bd0d16f0b..fc2cdfeb2 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -3,6 +3,11 @@ Date Added
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
+2008/05/09
+ * Added correct extended info packets for items that are being moved
+ into storage or cart. This caused items to visually lose their
+ properties once they have been moved from inventory (bugreport:250).
+ The modification is mostly copypaste but it works nicely [ultramage]
2008/05/07
* Corrected default guild positions not being saved during guild creation.
* Did some cleanup of the splash code, the NPC_WIDE* skills now send the
diff --git a/src/map/clif.c b/src/map/clif.c
index cfd87b748..2c2f5c10e 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -3201,8 +3201,9 @@ int clif_storageitemadded(struct map_session_data *sd,struct storage *stor,int i
nullpo_retr(0, sd);
nullpo_retr(0, stor);
-
fd=sd->fd;
+
+#if PACKETVER < 5
WFIFOHEAD(fd,packet_len(0xf4));
WFIFOW(fd,0) =0xf4; // Storage item added
WFIFOW(fd,2) =index+1; // index
@@ -3216,6 +3217,22 @@ int clif_storageitemadded(struct map_session_data *sd,struct storage *stor,int i
WFIFOB(fd,12)=stor->storage_[index].refine; //refine
clif_addcards(WFIFOP(fd,13), &stor->storage_[index]);
WFIFOSET(fd,packet_len(0xf4));
+#else
+ WFIFOHEAD(fd,packet_len(0x1c4));
+ WFIFOW(fd,0) =0x1c4; // Storage item added
+ WFIFOW(fd,2) =index+1; // index
+ WFIFOL(fd,4) =amount; // amount
+ if((view = itemdb_viewid(stor->storage_[index].nameid)) > 0)
+ WFIFOW(fd,8) =view;
+ else
+ WFIFOW(fd,8) =stor->storage_[index].nameid; // id
+ WFIFOB(fd,10)=itemdb_type(stor->storage_[index].nameid); //type
+ WFIFOB(fd,11)=stor->storage_[index].identify; //identify flag
+ WFIFOB(fd,12)=stor->storage_[index].attribute; // attribute
+ WFIFOB(fd,13)=stor->storage_[index].refine; //refine
+ clif_addcards(WFIFOP(fd,14), &stor->storage_[index]);
+ WFIFOSET(fd,packet_len(0x1c4));
+#endif
return 0;
}
@@ -4348,8 +4365,7 @@ int clif_skill_estimation(struct map_session_data *sd,struct block_list *dst)
// The following caps negative attributes to 0 since the client displays them as 255-fix. [Skotlex]
// WBUFB(buf,20+i)= (unsigned char)((fix=battle_attr_ratio(i+1,status->def_ele, status->ele_lv))<0?0:fix);
- clif_send(buf,packet_len(0x18c),&sd->bl,
- sd->status.party_id>0?PARTY_SAMEMAP:SELF);
+ clif_send(buf,packet_len(0x18c),&sd->bl,sd->status.party_id>0?PARTY_SAMEMAP:SELF);
return 0;
}
/*==========================================
@@ -5002,11 +5018,12 @@ int clif_cart_additem(struct map_session_data *sd,int n,int amount,int fail)
nullpo_retr(0, sd);
fd=sd->fd;
- WFIFOHEAD(fd,packet_len(0x124));
- buf=WFIFOP(fd,0);
if(n<0 || n>=MAX_CART || sd->status.cart[n].nameid<=0)
return 1;
+#if PACKETVER < 5
+ WFIFOHEAD(fd,packet_len(0x124));
+ buf=WFIFOP(fd,0);
WBUFW(buf,0)=0x124;
WBUFW(buf,2)=n+2;
WBUFL(buf,4)=amount;
@@ -5019,6 +5036,24 @@ int clif_cart_additem(struct map_session_data *sd,int n,int amount,int fail)
WBUFB(buf,12)=sd->status.cart[n].refine;
clif_addcards(WBUFP(buf,13), &sd->status.cart[n]);
WFIFOSET(fd,packet_len(0x124));
+#else
+ WFIFOHEAD(fd,packet_len(0x1c5));
+ buf=WFIFOP(fd,0);
+ WBUFW(buf,0)=0x1c5;
+ WBUFW(buf,2)=n+2;
+ WBUFL(buf,4)=amount;
+ if((view = itemdb_viewid(sd->status.cart[n].nameid)) > 0)
+ WBUFW(buf,8)=view;
+ else
+ WBUFW(buf,8)=sd->status.cart[n].nameid;
+ WBUFB(buf,10)=itemdb_type(sd->status.cart[n].nameid);
+ WBUFB(buf,11)=sd->status.cart[n].identify;
+ WBUFB(buf,12)=sd->status.cart[n].attribute;
+ WBUFB(buf,13)=sd->status.cart[n].refine;
+ clif_addcards(WBUFP(buf,14), &sd->status.cart[n]);
+ WFIFOSET(fd,packet_len(0x1c5));
+#endif
+
return 0;
}
diff --git a/src/map/clif.h b/src/map/clif.h
index d9672d624..4ce69e4da 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -32,7 +32,7 @@ struct quest;
// 2 - ? - 0x78, 0x79
// 3 - ? - 0x1c8, 0x1c9, 0x1de
// 4 - ? - 0x1d7, 0x1d8, 0x1d9, 0x1da
-// 5 - 2003-12-18aSakexe+ - 0x1ee, 0x1ef, 0x1f0
+// 5 - 2003-12-18aSakexe+ - 0x1ee, 0x1ef, 0x1f0, ?0x1c4, 0x1c5?
// 6 - 2004-03-02aSakexe+ - 0x1f4, 0x1f5
// 7 - 2005-04-11aSakexe+ - 0x229, 0x22a, 0x22b, 0x22c
// 20070521 - 2007-05-21aSakexe+ - 0x283