From f3d1541e44bfabc3604f3b9388063bcf24bfcfe2 Mon Sep 17 00:00:00 2001 From: AoShinHo <126742159+AoShinRO@users.noreply.github.com> Date: Sat, 14 Sep 2024 18:57:41 -0300 Subject: [PATCH] Converted ZC_MYGUILD_BASIC_INFO to struct (#8628) Co-authored-by: Lemongrass3110 --- src/map/clif.cpp | 53 ++++++++++++++++++++++----------------- src/map/clif.hpp | 2 +- src/map/clif_packetdb.hpp | 1 - src/map/guild.cpp | 2 +- 4 files changed, 32 insertions(+), 26 deletions(-) diff --git a/src/map/clif.cpp b/src/map/clif.cpp index 4de1f91b9c..ee1220898c 100644 --- a/src/map/clif.cpp +++ b/src/map/clif.cpp @@ -8755,31 +8755,38 @@ void clif_guild_basicinfo( map_session_data& sd ){ } -/// Guild alliance and opposition list (ZC_MYGUILD_BASIC_INFO). -/// 014c .W { .L .L .24B }* -void clif_guild_allianceinfo(map_session_data *sd) -{ - int fd,i,c; +/// Guild alliance and opposition list +/// 014c .W { .L .L .24B }* (ZC_MYGUILD_BASIC_INFO) +void clif_guild_allianceinfo(map_session_data& sd){ + auto &g = sd.guild; - nullpo_retv(sd); - auto &g = sd->guild; - if (!g) + if (g == nullptr){ return; - - fd = sd->fd; - WFIFOHEAD(fd, MAX_GUILDALLIANCE * 32 + 4); - WFIFOW(fd, 0)=0x14c; - for(i=c=0;iguild.alliance[i]; - if(a->guild_id>0){ - WFIFOL(fd,c*32+4)=a->opposition; - WFIFOL(fd,c*32+8)=a->guild_id; - safestrncpy(WFIFOCP(fd,c*32+12),a->name,NAME_LENGTH); - c++; - } } - WFIFOW(fd, 2)=c*32+4; - WFIFOSET(fd,WFIFOW(fd,2)); + + PACKET_ZC_MYGUILD_BASIC_INFO* p = reinterpret_cast( packet_buffer ); + + p->PacketType = HEADER_ZC_MYGUILD_BASIC_INFO; + p->PacketLength = sizeof(*p); + + for(size_t i=0, c = 0;iguild.alliance[i]; + + if(a.guild_id<=0){ + continue; + } + + RELATED_GUILD_INFO& info = p->rgInfo[c]; + + info.relation = a.opposition; + info.GDID = a.guild_id; + safestrncpy(info.guildname,a.name,sizeof(info.guildname)); + + p->PacketLength += static_castPacketLength)>(sizeof(info)); + c++; + } + + clif_send(p,p->PacketLength,&sd.bl,SELF); } @@ -14090,7 +14097,7 @@ void clif_parse_GuildRequestInfo(int fd, map_session_data *sd) { case 0: // Basic Information Guild, hostile alliance information clif_guild_basicinfo( *sd ); - clif_guild_allianceinfo(sd); + clif_guild_allianceinfo(*sd); clif_guild_castle_list(*sd); break; case 1: // Members list, list job title diff --git a/src/map/clif.hpp b/src/map/clif.hpp index 8447827986..43048cf0d7 100644 --- a/src/map/clif.hpp +++ b/src/map/clif.hpp @@ -1043,7 +1043,7 @@ void clif_guild_created( map_session_data& sd, int flag ); void clif_guild_belonginfo( map_session_data& sd ); void clif_guild_masterormember(map_session_data *sd); void clif_guild_basicinfo( map_session_data& sd ); -void clif_guild_allianceinfo(map_session_data *sd); +void clif_guild_allianceinfo(map_session_data& sd); void clif_guild_memberlist( map_session_data& sd ); void clif_guild_skillinfo( map_session_data& sd ); void clif_guild_send_onlineinfo(map_session_data *sd); //[LuzZza] diff --git a/src/map/clif_packetdb.hpp b/src/map/clif_packetdb.hpp index ab9887c51a..89b7985635 100644 --- a/src/map/clif_packetdb.hpp +++ b/src/map/clif_packetdb.hpp @@ -161,7 +161,6 @@ parseable_packet(0x0149,9,clif_parse_GMReqNoChat,2,6,7); packet(0x014a,6); packet(0x014b,27); - packet(0x014c,-1); parseable_packet(0x014d,2,clif_parse_GuildCheckMaster,0); packet(0x014e,6); parseable_packet(0x014f,6,clif_parse_GuildRequestInfo,2); diff --git a/src/map/guild.cpp b/src/map/guild.cpp index d788181c0b..72bedaa3db 100644 --- a/src/map/guild.cpp +++ b/src/map/guild.cpp @@ -2091,7 +2091,7 @@ int guild_allianceack(int guild_id1,int guild_id2,uint32 account_id1,uint32 acco for(j=0;jmax_member;j++) { map_session_data *sd_mem = g[i]->member[j].sd; if( sd_mem!=nullptr){ - clif_guild_allianceinfo(sd_mem); + clif_guild_allianceinfo(*sd_mem); // join ally channel if( channel_config.ally_tmpl.name[0] && (channel_config.ally_tmpl.opt&CHAN_OPT_AUTOJOIN) ) {