Forráskód Böngészése

Converted CZ_MAKE_GROUP to struct (#9024)

Lemongrass3110 3 hónapja
szülő
commit
d84815530f
3 módosított fájl, 27 hozzáadás és 13 törlés
  1. 11 11
      src/map/clif.cpp
  2. 2 2
      src/map/clif_packetdb.hpp
  3. 14 0
      src/map/packets.hpp

+ 11 - 11
src/map/clif.cpp

@@ -13527,7 +13527,6 @@ void clif_parse_InsertCard(int32 fd,map_session_data *sd)
 		return;
 	}
 
-	struct s_packet_db* info = &packet_db[RFIFOW(fd,0)];
 	if (sd->state.trading != 0)
 		return;
 
@@ -13802,9 +13801,6 @@ void clif_parse_CreateParty(int32 fd, map_session_data *sd){
 		return;
 	}
 
-	char* name = RFIFOCP(fd,packet_db[RFIFOW(fd,0)].pos[0]);
-	name[NAME_LENGTH-1] = '\0';
-
 	if( map_getmapflag(sd->bl.m, MF_PARTYLOCK) ) {// Party locked.
 		clif_displaymessage(fd, msg_txt(sd,227));
 		return;
@@ -13814,6 +13810,11 @@ void clif_parse_CreateParty(int32 fd, map_session_data *sd){
 		return;
 	}
 
+	const PACKET_CZ_MAKE_GROUP* p = reinterpret_cast<PACKET_CZ_MAKE_GROUP*>( RFIFOP( fd, 0 ) );
+	char name[NAME_LENGTH];
+
+	safestrncpy( name, p->name, sizeof( name ) );
+
 	party_create( *sd, name, 0, 0 );
 }
 
@@ -13823,12 +13824,6 @@ void clif_parse_CreateParty2(int32 fd, map_session_data *sd){
 		return;
 	}
 
-	struct s_packet_db* info = &packet_db[RFIFOW(fd,0)];
-	char* name = RFIFOCP(fd,info->pos[0]);
-	int32 item1 = RFIFOB(fd,info->pos[1]);
-	int32 item2 = RFIFOB(fd,info->pos[2]);
-	name[NAME_LENGTH-1] = '\0';
-
 	if( map_getmapflag(sd->bl.m, MF_PARTYLOCK) ) {// Party locked.
 		clif_displaymessage(fd, msg_txt(sd,227));
 		return;
@@ -13838,7 +13833,12 @@ void clif_parse_CreateParty2(int32 fd, map_session_data *sd){
 		return;
 	}
 
-	party_create( *sd, name, item1, item2 );
+	const PACKET_CZ_MAKE_GROUP2* p = reinterpret_cast<PACKET_CZ_MAKE_GROUP2*>( RFIFOP( fd, 0 ) );
+	char name[NAME_LENGTH];
+
+	safestrncpy( name, p->name, sizeof( name ) );
+
+	party_create( *sd, name, p->item_pickup, p->item_share );
 }
 
 

+ 2 - 2
src/map/clif_packetdb.hpp

@@ -100,7 +100,7 @@
 	parseable_packet(0x00f3,8,clif_parse_MoveToKafra,2,4);
 	parseable_packet(0x00f5,8,clif_parse_MoveFromKafra,2,4);
 	parseable_packet(0x00f7,2,clif_parse_CloseKafra,0);
-	parseable_packet(0x00f9,26,clif_parse_CreateParty,2);
+	parseable_packet( HEADER_CZ_MAKE_GROUP, sizeof( PACKET_CZ_MAKE_GROUP ), clif_parse_CreateParty, 0 );
 	packet(0x00fb,-1);
 	parseable_packet( HEADER_CZ_REQ_JOIN_GROUP, sizeof( PACKET_CZ_REQ_JOIN_GROUP ), clif_parse_PartyInvite, 0 );
 	packet(0x00fd,27);
@@ -252,7 +252,7 @@
 	packet(0x01e5,6);
 	packet(0x01e6,26);
 	parseable_packet(0x01e7,2,clif_parse_NoviceDoriDori,0);
-	parseable_packet(0x01e8,28,clif_parse_CreateParty2,2,26,27);
+	parseable_packet( HEADER_CZ_MAKE_GROUP2, sizeof( PACKET_CZ_MAKE_GROUP2 ), clif_parse_CreateParty2, 0 );
 	packet(0x01ea,6);
 	packet(0x01ec,26);
 	parseable_packet(0x01ed,2,clif_parse_NoviceExplosionSpirits,0);

+ 14 - 0
src/map/packets.hpp

@@ -1861,6 +1861,20 @@ struct PACKET_ZC_FRIENDS_STATE{
 DEFINE_PACKET_HEADER(ZC_FRIENDS_STATE, 0x206);
 #endif
 
+struct PACKET_CZ_MAKE_GROUP{
+	int16 packetType;
+	char name[NAME_LENGTH];
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_MAKE_GROUP, 0xf9);
+
+struct PACKET_CZ_MAKE_GROUP2{
+	int16 packetType;
+	char name[NAME_LENGTH];
+	uint8 item_pickup;
+	uint8 item_share;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_MAKE_GROUP2, 0x1e8);
+
 // 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 )