Browse Source

Converted CZ_AUCTION_ITEM_SEARCH to struct (#8823)

Lemongrass3110 6 months ago
parent
commit
9376ce6b2e
3 changed files with 21 additions and 11 deletions
  1. 11 10
      src/map/clif.cpp
  2. 1 1
      src/map/clif_packetdb.hpp
  3. 9 0
      src/map/packets.hpp

+ 11 - 10
src/map/clif.cpp

@@ -17010,8 +17010,8 @@ void clif_parse_Auction_bid(int32 fd, map_session_data *sd){
 }
 
 
-/// Auction Search (CZ_AUCTION_ITEM_SEARCH).
-/// 0251 <search type>.W <auction id>.L <search text>.24B <page number>.W
+/// Auction Search.
+/// 0251 <search type>.W <auction id>.L <search text>.24B <page number>.W (CZ_AUCTION_ITEM_SEARCH)
 /// search type:
 ///     0 = armor
 ///     1 = weapon
@@ -17020,19 +17020,20 @@ void clif_parse_Auction_bid(int32 fd, map_session_data *sd){
 ///     4 = name search
 ///     5 = auction id search
 void clif_parse_Auction_search(int32 fd, map_session_data* sd){
-	char search_text[NAME_LENGTH];
-	struct s_packet_db* info = &packet_db[RFIFOW(fd,0)];
-	short type = RFIFOW(fd,info->pos[0]);
-	int32 price = RFIFOL(fd,info->pos[1]);  // FIXME: bug #5071
-	int32 page = RFIFOW(fd,info->pos[3]);
+#if PACKETVER >= 20051107
+	const PACKET_CZ_AUCTION_ITEM_SEARCH* p = reinterpret_cast<PACKET_CZ_AUCTION_ITEM_SEARCH*>( RFIFOP( fd, 0 ) );
 
 	if( !battle_config.feature_auction )
-		return; 
+		return;
 
 	clif_parse_Auction_cancelreg(fd, sd);
 
-	safestrncpy(search_text, RFIFOCP(fd,info->pos[2]), sizeof(search_text));
-	intif_Auction_requestlist(sd->status.char_id, type, price, search_text, page);
+	char search_text[NAME_LENGTH];
+
+	safestrncpy( search_text, p->text, sizeof( search_text ) );
+
+	intif_Auction_requestlist( sd->status.char_id, p->type, p->auction_id, search_text, p->page );
+#endif
 }
 
 

+ 1 - 1
src/map/clif_packetdb.hpp

@@ -757,7 +757,7 @@
 // 2005-11-07aSakexe
 #if PACKETVER >= 20051107
 	parseable_packet(0x024e,6,clif_parse_Auction_cancel,2);
-	parseable_packet(0x0251,34,clif_parse_Auction_search,2,4,8,32);
+	parseable_packet( HEADER_CZ_AUCTION_ITEM_SEARCH, sizeof( PACKET_CZ_AUCTION_ITEM_SEARCH ), clif_parse_Auction_search, 0 );
 #endif
 
 // 2006-01-09aSakexe

+ 9 - 0
src/map/packets.hpp

@@ -1592,6 +1592,15 @@ struct PACKET_CZ_JOIN_BABY{
 } __attribute__((packed));
 DEFINE_PACKET_HEADER(CZ_JOIN_BABY, 0x1f7);
 
+struct PACKET_CZ_AUCTION_ITEM_SEARCH{
+	int16 packetType;
+	uint16 type;
+	uint32 auction_id;
+	char text[24];
+	uint16 page;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_AUCTION_ITEM_SEARCH, 0x251);
+
 // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
 #if !defined( sun ) && ( !defined( __NETBSD__ ) || __NetBSD_Version__ >= 600000000 )
 	#pragma pack( pop )