summaryrefslogtreecommitdiff
path: root/src/emap/clif.c
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2019-05-14 03:11:52 +0300
committerAndrei Karas <akaras@inbox.ru>2019-05-14 03:11:52 +0300
commit9f23e082a90ff69817f0ed01d9508a755b3fb1a9 (patch)
tree71b364717dc113f474367542062dfbfd4ac91199 /src/emap/clif.c
parent3e8a083fbfc8127b2222f34f6a599c93038fe1d9 (diff)
downloadevol-hercules-9f23e082a90ff69817f0ed01d9508a755b3fb1a9.tar.gz
evol-hercules-9f23e082a90ff69817f0ed01d9508a755b3fb1a9.tar.bz2
evol-hercules-9f23e082a90ff69817f0ed01d9508a755b3fb1a9.tar.xz
evol-hercules-9f23e082a90ff69817f0ed01d9508a755b3fb1a9.zip
Add legacy bl name packets for legacy clients
Diffstat (limited to 'src/emap/clif.c')
-rw-r--r--src/emap/clif.c96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/emap/clif.c b/src/emap/clif.c
index 53d9a29..aa82932 100644
--- a/src/emap/clif.c
+++ b/src/emap/clif.c
@@ -529,6 +529,102 @@ void eclif_charnameupdate_pre(struct map_session_data **ssdPtr)
}
}
+// clientVersion < 26
+void eclif_homname_ack_pre(int *fdPtr, struct block_list **blPtr)
+{
+ struct block_list *bl = *blPtr;
+ int fd = *fdPtr;
+ struct SessionExt *data = session_get(fd);
+ if (!data)
+ return;
+ if (data->clientVersion >= 26)
+ {
+ return;
+ }
+
+ nullpo_retv(bl);
+ Assert_retv(bl->type == BL_HOM);
+
+ struct packet_reqname_ack packet = { 0 };
+ packet.packet_id = reqName;
+ packet.gid = bl->id;
+ memcpy(packet.name, BL_UCCAST(BL_HOM, bl)->homunculus.name, NAME_LENGTH);
+ clif->send_selforarea(fd, bl, &packet, sizeof(struct packet_reqname_ack));
+ hookStop();
+}
+
+// clientVersion < 26
+void eclif_mername_ack_pre(int *fdPtr, struct block_list **blPtr)
+{
+ struct block_list *bl = *blPtr;
+ int fd = *fdPtr;
+ struct SessionExt *data = session_get(fd);
+ if (!data)
+ return;
+ if (data->clientVersion >= 26)
+ {
+ return;
+ }
+
+ nullpo_retv(bl);
+ Assert_retv(bl->type == BL_MER);
+
+ struct packet_reqname_ack packet = { 0 };
+ packet.packet_id = reqName;
+ packet.gid = bl->id;
+ memcpy(packet.name, BL_UCCAST(BL_MER, bl)->db->name, NAME_LENGTH);
+ clif->send_selforarea(fd, bl, &packet, sizeof(struct packet_reqname_ack));
+ hookStop();
+}
+
+// clientVersion < 26
+void eclif_petname_ack_pre(int *fdPtr, struct block_list **blPtr)
+{
+ struct block_list *bl = *blPtr;
+ int fd = *fdPtr;
+ struct SessionExt *data = session_get(fd);
+ if (!data)
+ return;
+ if (data->clientVersion >= 26)
+ {
+ return;
+ }
+
+ nullpo_retv(bl);
+ Assert_retv(bl->type == BL_PET);
+
+ struct packet_reqname_ack packet = { 0 };
+ packet.packet_id = reqName;
+ packet.gid = bl->id;
+ memcpy(packet.name, BL_UCCAST(BL_PET, bl)->pet.name, NAME_LENGTH);
+ clif->send_selforarea(fd, bl, &packet, sizeof(struct packet_reqname_ack));
+ hookStop();
+}
+
+// clientVersion < 26
+void eclif_elemname_ack_pre(int *fdPtr, struct block_list **blPtr)
+{
+ struct block_list *bl = *blPtr;
+ int fd = *fdPtr;
+ struct SessionExt *data = session_get(fd);
+ if (!data)
+ return;
+ if (data->clientVersion >= 26)
+ {
+ return;
+ }
+
+ nullpo_retv(bl);
+ Assert_retv(bl->type == BL_ELEM);
+
+ struct packet_reqname_ack packet = { 0 };
+ packet.packet_id = reqName;
+ packet.gid = bl->id;
+ memcpy(packet.name, BL_UCCAST(BL_ELEM, bl)->db->name, NAME_LENGTH);
+ clif->send_selforarea(fd, bl, &packet, sizeof(struct packet_reqname_ack));
+ hookStop();
+}
+
#define equipPos(index, field) \
equip = sd->equip_index[index]; \
if (equip >= 0) \