Converted ZC_DESTROY_ROOM to struct (#8591)

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
This commit is contained in:
AoShinHo 2024-09-14 20:17:17 -03:00 committed by GitHub
parent 82a0c503ce
commit d382b3f55a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 19 additions and 21 deletions

View File

@ -218,7 +218,7 @@ int chat_leavechat(map_session_data* sd, bool kicked)
cd->usersd[i] = cd->usersd[i+1]; cd->usersd[i] = cd->usersd[i+1];
if( cd->users == 0 && cd->owner->type == BL_PC ) { // Delete empty chatroom if( cd->users == 0 && cd->owner->type == BL_PC ) { // Delete empty chatroom
clif_clearchat(cd, 0); clif_clearchat(*cd);
db_destroy(cd->kick_list); db_destroy(cd->kick_list);
map_deliddb(&cd->bl); map_deliddb(&cd->bl);
map_delblock(&cd->bl); map_delblock(&cd->bl);
@ -235,7 +235,7 @@ int chat_leavechat(map_session_data* sd, bool kicked)
if( leavechar == 0 && cd->owner->type == BL_PC ) { // Set and announce new owner if( leavechar == 0 && cd->owner->type == BL_PC ) { // Set and announce new owner
cd->owner = (struct block_list*) cd->usersd[0]; cd->owner = (struct block_list*) cd->usersd[0];
clif_changechatowner(cd, cd->usersd[0]); clif_changechatowner(cd, cd->usersd[0]);
clif_clearchat(cd, 0); clif_clearchat(*cd);
//Adjust Chat location after owner has been changed. //Adjust Chat location after owner has been changed.
map_delblock( &cd->bl ); map_delblock( &cd->bl );
@ -276,7 +276,7 @@ int chat_changechatowner(map_session_data* sd, const char* nextownername)
return -1; // name not found return -1; // name not found
// erase temporarily // erase temporarily
clif_clearchat(cd,0); clif_clearchat(*cd);
// set new owner // set new owner
cd->owner = (struct block_list*) cd->usersd[i]; cd->owner = (struct block_list*) cd->usersd[i];
@ -437,7 +437,7 @@ int chat_deletenpcchat(struct npc_data* nd)
return 0; return 0;
chat_npckickall(cd); chat_npckickall(cd);
clif_clearchat(cd, 0); clif_clearchat(*cd);
map_deliddb(&cd->bl); map_deliddb(&cd->bl);
map_delblock(&cd->bl); map_delblock(&cd->bl);
map_freeblock(&cd->bl); map_freeblock(&cd->bl);

View File

@ -4514,23 +4514,16 @@ void clif_changechatstatus(chat_data& cd) {
} }
/// Removes the chatroom (ZC_DESTROY_ROOM). /// Removes the chatroom
/// 00d8 <chat id>.L /// 00d8 <chat id>.L (ZC_DESTROY_ROOM)
void clif_clearchat(struct chat_data *cd,int fd) void clif_clearchat(chat_data &cd){
{
unsigned char buf[32];
nullpo_retv(cd); PACKET_ZC_DESTROY_ROOM p{};
WBUFW(buf,0) = 0xd8; p.packetType = HEADER_ZC_DESTROY_ROOM;
WBUFL(buf,2) = cd->bl.id; p.chatId = cd.bl.id;
if( session_isActive(fd) ) {
WFIFOHEAD(fd,packet_len(0xd8)); clif_send(&p,sizeof(p),cd.owner,AREA_WOSC);
memcpy(WFIFOP(fd,0),buf,packet_len(0xd8));
WFIFOSET(fd,packet_len(0xd8));
} else {
clif_send(buf,packet_len(0xd8),cd->owner,AREA_WOSC);
}
} }

View File

@ -888,7 +888,7 @@ void clif_joinchatfail( map_session_data& sd, e_refuse_enter_room result );
void clif_joinchatok(map_session_data& sd,chat_data& cd); 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(struct chat_data* cd,map_session_data *sd); // chat
void clif_changechatowner(struct chat_data* cd, map_session_data* sd); // chat void clif_changechatowner(struct chat_data* cd, map_session_data* sd); // chat
void clif_clearchat(struct chat_data *cd,int fd); // area or fd void clif_clearchat(chat_data &cd);
void clif_leavechat(struct chat_data* cd, map_session_data* sd, bool flag); // chat void clif_leavechat(struct chat_data* cd, map_session_data* sd, bool flag); // chat
void clif_changechatstatus(chat_data& cd); void clif_changechatstatus(chat_data& cd);
void clif_refresh_storagewindow(map_session_data *sd); void clif_refresh_storagewindow(map_session_data *sd);

View File

@ -86,7 +86,6 @@
packet(0x00d4,-1); packet(0x00d4,-1);
parseable_packet(0x00d5,-1,clif_parse_CreateChatRoom,2,4,6,7,15); parseable_packet(0x00d5,-1,clif_parse_CreateChatRoom,2,4,6,7,15);
packet(0x00d7,-1); packet(0x00d7,-1);
packet(0x00d8,6);
parseable_packet(0x00d9,14,clif_parse_ChatAddMember,2,6); parseable_packet(0x00d9,14,clif_parse_ChatAddMember,2,6);
packet(0x00dc,28); packet(0x00dc,28);
packet(0x00dd,29); packet(0x00dd,29);

View File

@ -1015,6 +1015,12 @@ struct PACKET_ZC_REFUSE_ENTER_ROOM {
} __attribute__((packed)); } __attribute__((packed));
DEFINE_PACKET_HEADER(ZC_REFUSE_ENTER_ROOM, 0xda); DEFINE_PACKET_HEADER(ZC_REFUSE_ENTER_ROOM, 0xda);
struct PACKET_ZC_DESTROY_ROOM {
int16 packetType;
uint32 chatId;
} __attribute__((packed));
DEFINE_PACKET_HEADER(ZC_DESTROY_ROOM, 0xd8);
struct PACKET_ZC_ENTER_ROOM_sub{ struct PACKET_ZC_ENTER_ROOM_sub{
uint32 flag; uint32 flag;
char name[NAME_LENGTH]; char name[NAME_LENGTH];