From 349b04bf2861423daf34e5bcaafe04dca37c4531 Mon Sep 17 00:00:00 2001 From: Lemongrass3110 Date: Tue, 2 Apr 2024 09:53:11 +0200 Subject: [PATCH] Cleaned up CZ_PARTY_CONFIG (#8204) Thanks to @aleos89 --- src/common/mmo.hpp | 3 ++- src/map/clif.cpp | 24 +++++++++--------------- src/map/clif.hpp | 1 - src/map/clif_packetdb.hpp | 2 +- 4 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/common/mmo.hpp b/src/common/mmo.hpp index 050c370209a..a2e896a0279 100644 --- a/src/common/mmo.hpp +++ b/src/common/mmo.hpp @@ -607,7 +607,8 @@ struct mmo_charstatus { #ifdef HOTKEY_SAVING struct hotkey hotkeys[MAX_HOTKEYS_DB]; #endif - bool show_equip,allow_party, disable_call; + bool show_equip, disable_call; + bool disable_partyinvite; short rename; time_t delete_date; diff --git a/src/map/clif.cpp b/src/map/clif.cpp index b399dfa1f88..71b8f82d383 100644 --- a/src/map/clif.cpp +++ b/src/map/clif.cpp @@ -8044,7 +8044,7 @@ void clif_partyinvitationstate( map_session_data& sd ){ struct PACKET_ZC_PARTY_CONFIG p = {}; p.packetType = HEADER_ZC_PARTY_CONFIG; - p.denyPartyInvites = 0; // TODO: not implemented + p.denyPartyInvites = sd.status.disable_partyinvite; clif_send( &p, sizeof( p ), &sd.bl, SELF ); #endif @@ -17624,13 +17624,14 @@ void clif_parse_configuration( int fd, map_session_data* sd ){ /// Request to change party invitation tick. /// value: -/// 0 = disabled -/// 1 = enabled -void clif_parse_PartyTick(int fd, map_session_data* sd) -{ - bool flag = RFIFOB(fd,6) ? true : false; - sd->status.allow_party = flag; - clif_partytickack(sd, flag); +/// 0 = disabled (triggered by /accept) +/// 1 = enabled (triggered by /refuse) +void clif_parse_PartyTick( int fd, map_session_data* sd ){ + PACKET_CZ_PARTY_CONFIG* p = (PACKET_CZ_PARTY_CONFIG*)RFIFOP( fd, 0 ); + + sd->status.disable_partyinvite = p->refuseInvite; + + clif_partyinvitationstate( *sd ); } /// Questlog System [Kevin] [Inkfish] @@ -19811,13 +19812,6 @@ void __attribute__ ((unused)) clif_parse_dull(int fd, map_session_data *sd) { return; } -void clif_partytickack(map_session_data* sd, bool flag) { - WFIFOHEAD(sd->fd, packet_len(0x2c9)); - WFIFOW(sd->fd,0) = 0x2c9; - WFIFOB(sd->fd,2) = flag; - WFIFOSET(sd->fd, packet_len(0x2c9)); -} - /// Ack world info (ZC_ACK_BEFORE_WORLD_INFO) /// 0979 .24B .24B void clif_ackworldinfo(map_session_data* sd) { diff --git a/src/map/clif.hpp b/src/map/clif.hpp index b94acdca550..14bebc8cac7 100644 --- a/src/map/clif.hpp +++ b/src/map/clif.hpp @@ -965,7 +965,6 @@ void clif_hom_food(map_session_data *sd,int foodid,int fail); //[orn] void clif_send_homdata(map_session_data *sd, int state, int param); //[orn] void clif_configuration( map_session_data* sd, enum e_config_type type, bool enabled ); -void clif_partytickack(map_session_data* sd, bool flag); void clif_viewequip_ack(map_session_data* sd, map_session_data* tsd); void clif_equipcheckbox(map_session_data* sd); diff --git a/src/map/clif_packetdb.hpp b/src/map/clif_packetdb.hpp index e620e493796..b6b65123361 100644 --- a/src/map/clif_packetdb.hpp +++ b/src/map/clif_packetdb.hpp @@ -1070,7 +1070,7 @@ parseable_packet(0x02c4,26,clif_parse_PartyInvite2,2); packet(0x02c5,30); parseable_packet(0x02c7,7,clif_parse_ReplyPartyInvite2,2,6); - parseable_packet(0x02c8,3,clif_parse_PartyTick,2); + parseable_packet( HEADER_CZ_PARTY_CONFIG, sizeof( PACKET_CZ_PARTY_CONFIG ), clif_parse_PartyTick, 0 ); packet(0x02ca,3); packet(0x02cb,20); packet(0x02cc,4);