Преглед на файлове

Converted CZ_SETTING_WHISPER_STATE to struct (#9072)

Lemongrass3110 преди 2 месеца
родител
ревизия
e48efe71e5
променени са 3 файла, в които са добавени 21 реда и са изтрити 15 реда
  1. 14 14
      src/map/clif.cpp
  2. 1 1
      src/map/clif_packetdb.hpp
  3. 6 0
      src/map/packets.hpp

+ 14 - 14
src/map/clif.cpp

@@ -9614,12 +9614,12 @@ void clif_wisexin( map_session_data& sd, uint8 type, uint8 flag ){
 /// result:
 ///     0 = success
 ///     1 = failure
-void clif_wisall( map_session_data& sd, uint8 type, uint8 flag ){
+void clif_wisall( map_session_data& sd, uint8 type, bool failure ){
 	PACKET_ZC_SETTING_WHISPER_STATE p{};
 
 	p.packetType = HEADER_ZC_SETTING_WHISPER_STATE;
 	p.type = type;
-	p.result = flag;
+	p.result = failure;
 
 	clif_send( &p, sizeof( p ), &sd.bl, SELF );
 }
@@ -15154,39 +15154,39 @@ void clif_parse_PMIgnore(int32 fd, map_session_data* sd)
 }
 
 
-/// /inall /exall (CZ_SETTING_WHISPER_STATE).
+/// /inall /exall.
 /// Request to allow/deny all whispers.
-/// 00d0 <type>.B
+/// 00d0 <type>.B (CZ_SETTING_WHISPER_STATE)
 /// type:
 ///     0 = (/exall) deny all speech
 ///     1 = (/inall) allow all speech
-void clif_parse_PMIgnoreAll(int32 fd, map_session_data *sd)
-{
-	uint8 type = RFIFOB(fd,packet_db[RFIFOW(fd,0)].pos[0]), flag;
+void clif_parse_PMIgnoreAll( int32 fd, map_session_data* sd ){
+	const PACKET_CZ_SETTING_WHISPER_STATE* p = reinterpret_cast<PACKET_CZ_SETTING_WHISPER_STATE*>( RFIFOP( fd, 0 ) );
+	bool failure;
 
-	if( type == 0 ) {// Deny all
+	if( p->type == 0 ) {// Deny all
 		if( sd->state.ignoreAll ) {
-			flag = 1; // fail
+			failure = true;
 		} else {
 			sd->state.ignoreAll = 1;
-			flag = 0; // success
+			failure = false;
 		}
 	} else {//Unblock everyone
 		if( sd->state.ignoreAll ) {
 			sd->state.ignoreAll = 0;
-			flag = 0; // success
+			failure = false;
 		} else {
 			if (sd->ignore[0].name[0] != '\0')
 			{  //Wipe the ignore list.
 				memset(sd->ignore, 0, sizeof(sd->ignore));
-				flag = 0; // success
+				failure = false;
 			} else {
-				flag = 1; // fail
+				failure = true;
 			}
 		}
 	}
 
-	clif_wisall( *sd, type, flag );
+	clif_wisall( *sd, p->type, failure );
 }
 
 

+ 1 - 1
src/map/clif_packetdb.hpp

@@ -76,7 +76,7 @@
 	packet(0x00cd,3);
 	parseable_packet(0x00ce,2,clif_parse_GMKickAll,0);
 	parseable_packet(0x00cf,27,clif_parse_PMIgnore,2,26);
-	parseable_packet(0x00d0,3,clif_parse_PMIgnoreAll,2);
+	parseable_packet( HEADER_CZ_SETTING_WHISPER_STATE, sizeof( PACKET_CZ_SETTING_WHISPER_STATE ), clif_parse_PMIgnoreAll, 0 );
 	parseable_packet(0x00d3,2,clif_parse_PMIgnoreList,0);
 	packet(0x00d4,-1);
 	parseable_packet( HEADER_CZ_CREATE_CHATROOM, -1, clif_parse_CreateChatRoom, 0 );

+ 6 - 0
src/map/packets.hpp

@@ -2002,6 +2002,12 @@ struct PACKET_ZC_EFST_SET_ENTER{
 DEFINE_PACKET_HEADER(ZC_EFST_SET_ENTER, 0x8ff)
 #endif
 
+struct PACKET_CZ_SETTING_WHISPER_STATE{
+	int16 packetType;
+	int8 type;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_SETTING_WHISPER_STATE, 0xd0);
+
 // 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 )