summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/Makefile.am2
-rw-r--r--src/net/eathena/clanrecv.cpp52
-rw-r--r--src/net/eathena/clanrecv.h37
-rw-r--r--src/net/eathena/network.cpp1
-rw-r--r--src/net/eathena/packetsin.inc6
6 files changed, 100 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 4e8fa8014..ca1a624e2 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1591,6 +1591,8 @@ SET(SRCS
net/eathena/chathandler.h
net/eathena/chatrecv.cpp
net/eathena/chatrecv.h
+ net/eathena/clanrecv.cpp
+ net/eathena/clanrecv.h
net/eathena/elementalhandler.cpp
net/eathena/elementalhandler.h
net/eathena/elementalrecv.cpp
diff --git a/src/Makefile.am b/src/Makefile.am
index 9e1ea7961..bca161c69 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1896,6 +1896,8 @@ SRC += gui/windows/bankwindow.cpp \
net/eathena/chathandler.h \
net/eathena/chatrecv.cpp \
net/eathena/chatrecv.h \
+ net/eathena/clanrecv.cpp \
+ net/eathena/clanrecv.h \
net/eathena/elementalhandler.cpp \
net/eathena/elementalhandler.h \
net/eathena/elementalrecv.cpp \
diff --git a/src/net/eathena/clanrecv.cpp b/src/net/eathena/clanrecv.cpp
new file mode 100644
index 000000000..c2751ea85
--- /dev/null
+++ b/src/net/eathena/clanrecv.cpp
@@ -0,0 +1,52 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2011-2018 The ManaPlus Developers
+ *
+ * This file is part of The ManaPlus Client.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "net/eathena/clanrecv.h"
+
+#include "net/messagein.h"
+
+#include "logger.h"
+
+#include "debug.h"
+
+namespace EAthena
+{
+
+void ClanRecv::processClanInfo(Net::MessageIn &msg)
+{
+ UNIMPLEMENTEDPACKET;
+ msg.readInt16("len");
+ msg.readInt32("clan id");
+ msg.readString(24, "clan name");
+ msg.readString(24, "master name");
+ msg.readString(16, "map name");
+ const int allyCount = msg.readUInt8("ally clans count");
+ const int antagonistCount = msg.readUInt8("antagonist clans count");
+ for (int f = 0; f < allyCount; f ++)
+ {
+ msg.readString(24, "ally clan name");
+ }
+ for (int f = 0; f < antagonistCount; f ++)
+ {
+ msg.readString(24, "antagonist clan name");
+ }
+}
+
+} // namespace EAthena
diff --git a/src/net/eathena/clanrecv.h b/src/net/eathena/clanrecv.h
new file mode 100644
index 000000000..c90150959
--- /dev/null
+++ b/src/net/eathena/clanrecv.h
@@ -0,0 +1,37 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2011-2018 The ManaPlus Developers
+ *
+ * This file is part of The ManaPlus Client.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef NET_EATHENA_CLANRECV_H
+#define NET_EATHENA_CLANRECV_H
+
+namespace Net
+{
+ class MessageIn;
+} // namespace Net
+
+namespace EAthena
+{
+ namespace ClanRecv
+ {
+ void processClanInfo(Net::MessageIn &msg);
+ } // namespace ClanRecv
+} // namespace EAthena
+
+#endif // NET_EATHENA_CLANRECV_H
diff --git a/src/net/eathena/network.cpp b/src/net/eathena/network.cpp
index a3236af4a..9bf8a05b0 100644
--- a/src/net/eathena/network.cpp
+++ b/src/net/eathena/network.cpp
@@ -50,6 +50,7 @@
#include "net/eathena/cashshoprecv.h"
#include "net/eathena/charserverrecv.h"
#include "net/eathena/chatrecv.h"
+#include "net/eathena/clanrecv.h"
#include "net/eathena/elementalrecv.h"
#include "net/eathena/familyrecv.h"
#include "net/eathena/friendsrecv.h"
diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc
index e3304821f..0c84deb7d 100644
--- a/src/net/eathena/packetsin.inc
+++ b/src/net/eathena/packetsin.inc
@@ -730,6 +730,12 @@ if (packetVersion >= 20120604)
packet(SMSG_PLAYER_SKILL_COOLDOWN_LIST, 0x0985, -1, &SkillRecv::processSkillCoolDownList, 20120604);
}
+// 20120702
+if (packetVersion >= 20120702)
+{
+ packet(SMSG_CLAN_INFO, 0x098a, -1, &ClanRecv::processClanInfo, 20120702);
+}
+
// 20120925
if (packetVersion >= 20120925)
{