diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-09-05 17:30:36 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-09-06 01:18:57 +0300 |
commit | 487d3be4cc8761e5697d4fb95d85e9da8dcaa42e (patch) | |
tree | 51ad4b1a6e89fd10a5a30a951879862494264c53 /src/net | |
parent | e4aea077d98d37ddec91c76ca7ad359e321a7661 (diff) | |
download | mv-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.cpp | 33 | ||||
-rw-r--r-- | src/net/eathena/serverfeatures.h | 38 | ||||
-rw-r--r-- | src/net/net.cpp | 6 | ||||
-rw-r--r-- | src/net/net.h | 3 | ||||
-rw-r--r-- | src/net/serverfeatures.h | 39 | ||||
-rw-r--r-- | src/net/tmwa/serverfeatures.cpp | 35 | ||||
-rw-r--r-- | src/net/tmwa/serverfeatures.h | 38 |
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 |