summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2019-04-11 23:52:33 +0300
committerAndrei Karas <akaras@inbox.ru>2019-05-05 22:22:04 +0300
commit11634d3c6e9a58e77e8f5bd37b801c944a674242 (patch)
tree132ce8147e42953aa294163f570ae03d71ba5dc1 /src
parent811840a6fe68c2ffc68359e751f214f293efc0f6 (diff)
downloadhercules-11634d3c6e9a58e77e8f5bd37b801c944a674242.tar.gz
hercules-11634d3c6e9a58e77e8f5bd37b801c944a674242.tar.bz2
hercules-11634d3c6e9a58e77e8f5bd37b801c944a674242.tar.xz
hercules-11634d3c6e9a58e77e8f5bd37b801c944a674242.zip
Add function clif_send_selforarea for send packet to self or area
Diffstat (limited to 'src')
-rw-r--r--src/map/clif.c122
-rw-r--r--src/map/clif.h1
2 files changed, 26 insertions, 97 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index 3c65d4456..b5b67c1f2 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -9226,6 +9226,22 @@ static void clif_refresh(struct map_session_data *sd)
clif->refresh_storagewindow(sd);
}
+static void clif_send_selforarea(int fd, struct block_list *bl, const void *buf, int len)
+{
+ // if no recipient specified just update nearby clients
+ // if no recipient specified just update nearby clients
+ if (fd == 0) {
+ clif->send(buf, len, bl, AREA);
+ } else {
+ struct map_session_data *sd = sockt->session_is_valid(fd) ? sockt->session[fd]->session_data : NULL;
+ if (sd != NULL) {
+ clif->send(buf, len, &sd->bl, SELF);
+ } else {
+ clif->send(buf, len, bl, SELF);
+ }
+ }
+}
+
/// Updates the object's (bl) name on client.
/// 0095 <id>.L <char name>.24B (ZC_ACK_REQNAME)
/// 0195 <id>.L <char name>.24B <party name>.24B <guild name>.24B <position name>.24B (ZC_ACK_REQNAMEALL)
@@ -9295,19 +9311,7 @@ static void clif_pcname_ack(int fd, struct block_list *bl)
}
}
-
- // if no recipient specified just update nearby clients
- // if no recipient specified just update nearby clients
- if (fd == 0) {
- clif->send(&packet, len, bl, AREA);
- } else {
- struct map_session_data *sd = sockt->session_is_valid(fd) ? sockt->session[fd]->session_data : NULL;
- if (sd != NULL) {
- clif->send(&packet, len, &sd->bl, SELF);
- } else {
- clif->send(&packet, len, bl, SELF);
- }
- }
+ clif->send_selforarea(fd, bl, &packet, len);
}
/// Updates the object's (bl) name on client.
@@ -9325,18 +9329,7 @@ static void clif_homname_ack(int fd, struct block_list *bl)
packet.gid = bl->id;
memcpy(packet.name, BL_UCCAST(BL_HOM, bl)->homunculus.name, NAME_LENGTH);
- // if no recipient specified just update nearby clients
- // if no recipient specified just update nearby clients
- if (fd == 0) {
- clif->send(&packet, len, bl, AREA);
- } else {
- struct map_session_data *sd = sockt->session_is_valid(fd) ? sockt->session[fd]->session_data : NULL;
- if (sd != NULL) {
- clif->send(&packet, len, &sd->bl, SELF);
- } else {
- clif->send(&packet, len, bl, SELF);
- }
- }
+ clif->send_selforarea(fd, bl, &packet, len);
}
/// Updates the object's (bl) name on client.
@@ -9354,18 +9347,7 @@ static void clif_mername_ack(int fd, struct block_list *bl)
packet.gid = bl->id;
memcpy(packet.name, BL_UCCAST(BL_MER, bl)->db->name, NAME_LENGTH);
- // if no recipient specified just update nearby clients
- // if no recipient specified just update nearby clients
- if (fd == 0) {
- clif->send(&packet, len, bl, AREA);
- } else {
- struct map_session_data *sd = sockt->session_is_valid(fd) ? sockt->session[fd]->session_data : NULL;
- if (sd != NULL) {
- clif->send(&packet, len, &sd->bl, SELF);
- } else {
- clif->send(&packet, len, bl, SELF);
- }
- }
+ clif->send_selforarea(fd, bl, &packet, len);
}
/// Updates the object's (bl) name on client.
@@ -9383,18 +9365,7 @@ static void clif_petname_ack(int fd, struct block_list *bl)
packet.gid = bl->id;
memcpy(packet.name, BL_UCCAST(BL_PET, bl)->pet.name, NAME_LENGTH);
- // if no recipient specified just update nearby clients
- // if no recipient specified just update nearby clients
- if (fd == 0) {
- clif->send(&packet, len, bl, AREA);
- } else {
- struct map_session_data *sd = sockt->session_is_valid(fd) ? sockt->session[fd]->session_data : NULL;
- if (sd != NULL) {
- clif->send(&packet, len, &sd->bl, SELF);
- } else {
- clif->send(&packet, len, bl, SELF);
- }
- }
+ clif->send_selforarea(fd, bl, &packet, len);
}
/// Updates the object's (bl) name on client.
@@ -9412,18 +9383,7 @@ static void clif_npcname_ack(int fd, struct block_list *bl)
packet.gid = bl->id;
memcpy(packet.name, BL_UCCAST(BL_NPC, bl)->name, NAME_LENGTH);
- // if no recipient specified just update nearby clients
- // if no recipient specified just update nearby clients
- if (fd == 0) {
- clif->send(&packet, len, bl, AREA);
- } else {
- struct map_session_data *sd = sockt->session_is_valid(fd) ? sockt->session[fd]->session_data : NULL;
- if (sd != NULL) {
- clif->send(&packet, len, &sd->bl, SELF);
- } else {
- clif->send(&packet, len, bl, SELF);
- }
- }
+ clif->send_selforarea(fd, bl, &packet, len);
}
/// Updates the object's (bl) name on client.
@@ -9464,18 +9424,7 @@ static void clif_mobname_ack(int fd, struct block_list *bl)
}
}
- // if no recipient specified just update nearby clients
- // if no recipient specified just update nearby clients
- if (fd == 0) {
- clif->send(&packet, len, bl, AREA);
- } else {
- struct map_session_data *sd = sockt->session_is_valid(fd) ? sockt->session[fd]->session_data : NULL;
- if (sd != NULL) {
- clif->send(&packet, len, &sd->bl, SELF);
- } else {
- clif->send(&packet, len, bl, SELF);
- }
- }
+ clif->send_selforarea(fd, bl, &packet, len);
}
/// Updates the object's (bl) name on client.
@@ -9496,18 +9445,7 @@ static void clif_chatname_ack(int fd, struct block_list *bl)
memcpy(packet.name, BL_UCCAST(BL_CHAT, bl)->title, NAME_LENGTH);
#endif
- // if no recipient specified just update nearby clients
- // if no recipient specified just update nearby clients
- if (fd == 0) {
- clif->send(&packet, len, bl, AREA);
- } else {
- struct map_session_data *sd = sockt->session_is_valid(fd) ? sockt->session[fd]->session_data : NULL;
- if (sd != NULL) {
- clif->send(&packet, len, &sd->bl, SELF);
- } else {
- clif->send(&packet, len, bl, SELF);
- }
- }
+ clif->send_selforarea(fd, bl, &packet, len);
}
/// Updates the object's (bl) name on client.
@@ -9525,18 +9463,7 @@ static void clif_elemname_ack(int fd, struct block_list *bl)
packet.gid = bl->id;
memcpy(packet.name, BL_UCCAST(BL_ELEM, bl)->db->name, NAME_LENGTH);
- // if no recipient specified just update nearby clients
- // if no recipient specified just update nearby clients
- if (fd == 0) {
- clif->send(&packet, len, bl, AREA);
- } else {
- struct map_session_data *sd = sockt->session_is_valid(fd) ? sockt->session[fd]->session_data : NULL;
- if (sd != NULL) {
- clif->send(&packet, len, &sd->bl, SELF);
- } else {
- clif->send(&packet, len, bl, SELF);
- }
- }
+ clif->send_selforarea(fd, bl, &packet, len);
}
static void clif_unknownname_ack(int fd, struct block_list *bl)
@@ -23639,4 +23566,5 @@ void clif_defaults(void)
clif->pingTimerSub = clif_pingTimerSub;
clif->pResetCooldown = clif_parse_ResetCooldown;
clif->loadConfirm = clif_loadConfirm;
+ clif->send_selforarea = clif_send_selforarea;
}
diff --git a/src/map/clif.h b/src/map/clif.h
index 8d6103382..9b43f4b36 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -1602,6 +1602,7 @@ struct clif_interface {
int (*pingTimerSub) (struct map_session_data *sd, va_list ap);
void (*pResetCooldown) (int fd, struct map_session_data *sd);
void (*loadConfirm) (struct map_session_data *sd);
+ void (*send_selforarea) (int fd, struct block_list *bl, const void *buf, int len);
};
#ifdef HERCULES_CORE