瀏覽代碼

Converted ZC_MEMBER_NEWENTRY to struct (#8788)

Lemongrass3110 6 月之前
父節點
當前提交
58707692e8
共有 5 個文件被更改,包括 18 次插入14 次删除
  1. 2 1
      src/map/chat.cpp
  2. 8 11
      src/map/clif.cpp
  3. 1 1
      src/map/clif.hpp
  4. 0 1
      src/map/clif_packetdb.hpp
  5. 7 0
      src/map/packets.hpp

+ 2 - 1
src/map/chat.cpp

@@ -170,7 +170,8 @@ int chat_joinchat(map_session_data* sd, int chatid, const char* pass)
 
 	// To the person who newly joined the chat
 	clif_joinchatok(*sd, *cd);
-	clif_addchat(cd, sd); //Reports To the person who already in the chat
+	// Reports to the persons, who already are in the chat
+	clif_addchat( *cd, *sd );
 	clif_dispchat(cd, 0); //Reported number of changes to the people around
 
 	if (cd->owner->type == BL_PC)

+ 8 - 11
src/map/clif.cpp

@@ -4657,19 +4657,16 @@ void clif_joinchatok(map_session_data& sd, chat_data& cd){
 }
 
 
-/// Notifies clients in a chat about a new member (ZC_MEMBER_NEWENTRY).
-/// 00dc <users>.W <name>.24B
-void clif_addchat(struct chat_data* cd,map_session_data *sd)
-{
-	unsigned char buf[29];
+/// Notifies clients in a chat about a new member.
+/// 00dc <users>.W <name>.24B (ZC_MEMBER_NEWENTRY)
+void clif_addchat( chat_data& cd, map_session_data& sd ){
+	PACKET_ZC_MEMBER_NEWENTRY p = {};
 
-	nullpo_retv(sd);
-	nullpo_retv(cd);
+	p.packetType = HEADER_ZC_MEMBER_NEWENTRY;
+	p.count = cd.users;
+	safestrncpy( p.name, sd.status.name, sizeof( p.name ) );
 
-	WBUFW(buf, 0) = 0xdc;
-	WBUFW(buf, 2) = cd->users;
-	safestrncpy(WBUFCP(buf, 4),sd->status.name,NAME_LENGTH);
-	clif_send(buf,packet_len(0xdc),&sd->bl,CHAT_WOS);
+	clif_send( &p, sizeof( p ), &sd.bl, CHAT_WOS );
 }
 
 

+ 1 - 1
src/map/clif.hpp

@@ -886,7 +886,7 @@ void clif_createchat( map_session_data& sd, e_create_chatroom flag );
 void clif_dispchat(struct chat_data* cd, int fd);	// area or fd
 void clif_joinchatfail( map_session_data& sd, e_refuse_enter_room result );
 void clif_joinchatok(map_session_data& sd,chat_data& cd);
-void clif_addchat(struct chat_data* cd,map_session_data *sd);	// chat
+void clif_addchat( chat_data& cd, map_session_data& sd );
 void clif_changechatowner(struct chat_data* cd, map_session_data* sd);	// chat
 void clif_clearchat(chat_data &cd);
 void clif_leavechat(struct chat_data* cd, map_session_data* sd, bool flag);	// chat

+ 0 - 1
src/map/clif_packetdb.hpp

@@ -87,7 +87,6 @@
 	parseable_packet(0x00d5,-1,clif_parse_CreateChatRoom,2,4,6,7,15);
 	packet(0x00d7,-1);
 	parseable_packet(0x00d9,14,clif_parse_ChatAddMember,2,6);
-	packet(0x00dc,28);
 	packet(0x00dd,29);
 	parseable_packet(0x00de,-1,clif_parse_ChatRoomStatusChange,2,4,6,7,15);
 	parseable_packet(0x00e0,30,clif_parse_ChangeChatOwner,2,6);

+ 7 - 0
src/map/packets.hpp

@@ -1394,6 +1394,13 @@ struct PACKET_ZC_NPCSPRITE_CHANGE{
 } __attribute__((packed));
 DEFINE_PACKET_HEADER(ZC_NPCSPRITE_CHANGE, 0x1b0);
 
+struct PACKET_ZC_MEMBER_NEWENTRY{
+	int16 packetType;
+	uint16 count;
+	char name[NAME_LENGTH];
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_MEMBER_NEWENTRY, 0xdc);
+
 // 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 )