summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2018-05-18 20:46:07 +0300
committerAndrei Karas <akaras@inbox.ru>2018-05-18 20:46:07 +0300
commitcee847abc0873504b54022c3af8cdf316e2c06c5 (patch)
tree9c9fbbd214db848b0d3b64781a069327575a7053
parente40ff3205395015708b4801a984c25f239089f50 (diff)
downloadmanaplus-cee847abc0873504b54022c3af8cdf316e2c06c5.tar.gz
manaplus-cee847abc0873504b54022c3af8cdf316e2c06c5.tar.bz2
manaplus-cee847abc0873504b54022c3af8cdf316e2c06c5.tar.xz
manaplus-cee847abc0873504b54022c3af8cdf316e2c06c5.zip
Add packet CMSG_PRIVATE_AIRSHIP_REQUEST 0x0a49.
-rw-r--r--src/net/eathena/npchandler.cpp11
-rw-r--r--src/net/eathena/npchandler.h3
-rw-r--r--src/net/eathena/packetsout.inc7
-rw-r--r--src/net/npchandler.h3
-rw-r--r--src/net/tmwa/npchandler.cpp5
-rw-r--r--src/net/tmwa/npchandler.h3
6 files changed, 32 insertions, 0 deletions
diff --git a/src/net/eathena/npchandler.cpp b/src/net/eathena/npchandler.cpp
index 7a9f30a5b..c7783f363 100644
--- a/src/net/eathena/npchandler.cpp
+++ b/src/net/eathena/npchandler.cpp
@@ -46,6 +46,7 @@
#include "debug.h"
extern int packetVersion;
+extern int packetVersionRe;
namespace EAthena
{
@@ -362,4 +363,14 @@ BeingId NpcHandler::getNpc(Net::MessageIn &msg,
return npcId;
}
+void NpcHandler::requestAirship(const std::string &mapName,
+ const int itemId) const
+{
+ if (packetVersionRe < 20180321)
+ return;
+ createOutPacket(CMSG_PRIVATE_AIRSHIP_REQUEST);
+ outMsg.writeString(mapName, 16, "map name");
+ outMsg.writeInt16(itemId, "item");
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/npchandler.h b/src/net/eathena/npchandler.h
index 533c0468b..fb2e741e9 100644
--- a/src/net/eathena/npchandler.h
+++ b/src/net/eathena/npchandler.h
@@ -94,6 +94,9 @@ class NpcHandler final : public Ea::NpcHandler
void selectArrow(const int nameId) const override final;
void selectAutoSpell(const int skillId) const override final;
+
+ void requestAirship(const std::string &mapName,
+ const int itemId) const override final;
};
} // namespace EAthena
diff --git a/src/net/eathena/packetsout.inc b/src/net/eathena/packetsout.inc
index 34ac2b436..70e1e25f2 100644
--- a/src/net/eathena/packetsout.inc
+++ b/src/net/eathena/packetsout.inc
@@ -334,6 +334,7 @@ packet(CMSG_CLAN_MESSAGE, 0x0000, 0, nullptr);
packet(CMSG_WINDOW_OPEN_REQUEST2, 0x0000, 0, nullptr);
packet(CMSG_ATTENDANCE_REWARD, 0x0000, 0, nullptr);
packet(CMSG_MAP_BLOCK_PLAY_CANCEL, 0x0000, 0, nullptr);
+packet(CMSG_PRIVATE_AIRSHIP_REQUEST, 0x0000, 0, nullptr);
#else
// 20040713
if (packetVersion >= 20040713)
@@ -1364,6 +1365,12 @@ if (packetVersionRe >= 20180307)
packet(CMSG_ATTENDANCE_REWARD, 0x0aef, 2, clif->pAttendanceRewardRequest);
}
+// re 20180321
+if (packetVersionRe >= 20180321)
+{
+ packet(CMSG_PRIVATE_AIRSHIP_REQUEST, 0x0a49, 20, clif->pPrivateAirshipRequest);
+}
+
// main 20180404
if (packetVersionMain >= 20180404)
{
diff --git a/src/net/npchandler.h b/src/net/npchandler.h
index dbf73f259..aaec5f80f 100644
--- a/src/net/npchandler.h
+++ b/src/net/npchandler.h
@@ -113,6 +113,9 @@ class NpcHandler notfinal
virtual void selectAutoSpell(const int skillId) const = 0;
+ virtual void requestAirship(const std::string &mapName,
+ const int itemId) const = 0;
+
virtual NpcDialog *getCurrentNpcDialog() const = 0;
};
diff --git a/src/net/tmwa/npchandler.cpp b/src/net/tmwa/npchandler.cpp
index c52333795..c577bc6a1 100644
--- a/src/net/tmwa/npchandler.cpp
+++ b/src/net/tmwa/npchandler.cpp
@@ -243,4 +243,9 @@ BeingId NpcHandler::getNpc(Net::MessageIn &msg,
return npcId;
}
+void NpcHandler::requestAirship(const std::string &mapName A_UNUSED,
+ const int itemId A_UNUSED) const
+{
+}
+
} // namespace TmwAthena
diff --git a/src/net/tmwa/npchandler.h b/src/net/tmwa/npchandler.h
index d02d837ef..3cfd24aea 100644
--- a/src/net/tmwa/npchandler.h
+++ b/src/net/tmwa/npchandler.h
@@ -93,6 +93,9 @@ class NpcHandler final : public Ea::NpcHandler
void selectArrow(const int nameId) const override final;
void selectAutoSpell(const int skillId) const override final;
+
+ void requestAirship(const std::string &mapName,
+ const int itemId) const override final;
};
} // namespace TmwAthena