summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-09-05 17:30:36 +0300
committerAndrei Karas <akaras@inbox.ru>2014-09-06 01:18:57 +0300
commit487d3be4cc8761e5697d4fb95d85e9da8dcaa42e (patch)
tree51ad4b1a6e89fd10a5a30a951879862494264c53 /src/net
parente4aea077d98d37ddec91c76ca7ad359e321a7661 (diff)
downloadmv-487d3be4cc8761e5697d4fb95d85e9da8dcaa42e.tar.gz
mv-487d3be4cc8761e5697d4fb95d85e9da8dcaa42e.tar.bz2
mv-487d3be4cc8761e5697d4fb95d85e9da8dcaa42e.tar.xz
mv-487d3be4cc8761e5697d4fb95d85e9da8dcaa42e.zip
Add serverfeatures class for check is server support one or another features.
Diffstat (limited to 'src/net')
-rw-r--r--src/net/eathena/serverfeatures.cpp33
-rw-r--r--src/net/eathena/serverfeatures.h38
-rw-r--r--src/net/net.cpp6
-rw-r--r--src/net/net.h3
-rw-r--r--src/net/serverfeatures.h39
-rw-r--r--src/net/tmwa/serverfeatures.cpp35
-rw-r--r--src/net/tmwa/serverfeatures.h38
7 files changed, 192 insertions, 0 deletions
diff --git a/src/net/eathena/serverfeatures.cpp b/src/net/eathena/serverfeatures.cpp
new file mode 100644
index 000000000..3b11842e6
--- /dev/null
+++ b/src/net/eathena/serverfeatures.cpp
@@ -0,0 +1,33 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2011-2014 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/serverfeatures.h"
+
+#include "debug.h"
+
+namespace EAthena
+{
+
+bool ServerFeatures::haveOnlineList() const
+{
+ return false;
+}
+
+} // EAthena
diff --git a/src/net/eathena/serverfeatures.h b/src/net/eathena/serverfeatures.h
new file mode 100644
index 000000000..79febd773
--- /dev/null
+++ b/src/net/eathena/serverfeatures.h
@@ -0,0 +1,38 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2011-2014 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_SERVERFEATURES_H
+#define NET_EATHENA_SERVERFEATURES_H
+
+#include "net/serverfeatures.h"
+
+#include "localconsts.h"
+
+namespace EAthena
+{
+class ServerFeatures final : public Net::ServerFeatures
+{
+ public:
+ bool haveOnlineList() const override final;
+};
+
+} // namespace Net
+
+#endif // NET_EATHENA_SERVERFEATURES_H
diff --git a/src/net/net.cpp b/src/net/net.cpp
index 63a348bde..c238731a5 100644
--- a/src/net/net.cpp
+++ b/src/net/net.cpp
@@ -50,6 +50,7 @@ Net::SkillHandler *skillHandler = nullptr;
Net::TradeHandler *tradeHandler = nullptr;
Net::BeingHandler *beingHandler = nullptr;
Net::BuySellHandler *buySellHandler = nullptr;
+Net::ServerFeatures *serverFeatures = nullptr;
Net::AdminHandler *Net::getAdminHandler()
{
@@ -131,6 +132,11 @@ Net::BuySellHandler *Net::getBuySellHandler()
return buySellHandler;
}
+Net::ServerFeatures *Net::getServerFeatures()
+{
+ return serverFeatures;
+}
+
namespace Net
{
ServerInfo::Type networkType = ServerInfo::UNKNOWN;
diff --git a/src/net/net.h b/src/net/net.h
index 376bf63e3..a1267e77a 100644
--- a/src/net/net.h
+++ b/src/net/net.h
@@ -52,6 +52,7 @@ class PlayerHandler;
class SkillHandler;
class TradeHandler;
class BuySellHandler;
+class ServerFeatures;
AdminHandler *getAdminHandler() A_WARN_UNUSED;
BeingHandler *getBeingHandler() A_WARN_UNUSED;
@@ -70,6 +71,8 @@ SkillHandler *getSkillHandler() A_WARN_UNUSED;
TradeHandler *getTradeHandler() A_WARN_UNUSED;
BuySellHandler *getBuySellHandler() A_WARN_UNUSED;
+ServerFeatures *getServerFeatures() A_WARN_UNUSED;
+
ServerInfo::Type getNetworkType() A_WARN_UNUSED;
/**
diff --git a/src/net/serverfeatures.h b/src/net/serverfeatures.h
new file mode 100644
index 000000000..a2170c44b
--- /dev/null
+++ b/src/net/serverfeatures.h
@@ -0,0 +1,39 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2011-2014 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_SERVERFEATURES_H
+#define NET_SERVERFEATURES_H
+
+#include "localconsts.h"
+
+namespace Net
+{
+class ServerFeatures notfinal
+{
+ public:
+ virtual ~ServerFeatures()
+ { }
+
+ virtual bool haveOnlineList() const = 0;
+};
+
+} // namespace Net
+
+#endif // NET_SERVERFEATURES_H
diff --git a/src/net/tmwa/serverfeatures.cpp b/src/net/tmwa/serverfeatures.cpp
new file mode 100644
index 000000000..d2aba176b
--- /dev/null
+++ b/src/net/tmwa/serverfeatures.cpp
@@ -0,0 +1,35 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2011-2014 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/tmwa/serverfeatures.h"
+
+#include "debug.h"
+
+extern int serverVersion;
+
+namespace TmwAthena
+{
+
+bool ServerFeatures::haveOnlineList() const
+{
+ return serverVersion >= 3;
+}
+
+} // TmwAthena
diff --git a/src/net/tmwa/serverfeatures.h b/src/net/tmwa/serverfeatures.h
new file mode 100644
index 000000000..f6daa2eb7
--- /dev/null
+++ b/src/net/tmwa/serverfeatures.h
@@ -0,0 +1,38 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2011-2014 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_TMWA_SERVERFEATURES_H
+#define NET_TMWA_SERVERFEATURES_H
+
+#include "net/serverfeatures.h"
+
+#include "localconsts.h"
+
+namespace TmwAthena
+{
+class ServerFeatures final : public Net::ServerFeatures
+{
+ public:
+ bool haveOnlineList() const override final;
+};
+
+} // namespace Net
+
+#endif // NET_TMWA_SERVERFEATURES_H