summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormekolat <mekolat@users.noreply.github.com>2015-05-19 21:09:48 -0400
committermekolat <mekolat@users.noreply.github.com>2015-05-19 21:09:48 -0400
commitf8fb37a14476e0d8fd7cc2c87fe9813ae9dc30b5 (patch)
treef8c5ae4fe8c2054c1bb51cffc253805f1c8a9981 /src
parentc6c3671dbe28c596ef06b4670979c5923c8821b6 (diff)
downloadtmwa-f8fb37a14476e0d8fd7cc2c87fe9813ae9dc30b5.tar.gz
tmwa-f8fb37a14476e0d8fd7cc2c87fe9813ae9dc30b5.tar.bz2
tmwa-f8fb37a14476e0d8fd7cc2c87fe9813ae9dc30b5.tar.xz
tmwa-f8fb37a14476e0d8fd7cc2c87fe9813ae9dc30b5.zip
handle old client in login server too
Diffstat (limited to 'src')
-rw-r--r--src/char/char.hpp3
-rw-r--r--src/login/login.cpp4
-rw-r--r--src/login/login.hpp2
-rw-r--r--src/mmo/login.t.hpp44
-rw-r--r--src/mmo/version.hpp3
5 files changed, 4 insertions, 52 deletions
diff --git a/src/char/char.hpp b/src/char/char.hpp
index 8adac4d..049875b 100644
--- a/src/char/char.hpp
+++ b/src/char/char.hpp
@@ -42,9 +42,6 @@ std::chrono::seconds DEFAULT_AUTOSAVE_INTERVAL = 5_min;
constexpr
GmLevel default_gm_level = GmLevel::from(0_u32);
-// increase the min version when the protocol is incompatible with old m+ versions
-#define MIN_CLIENT_VERSION 1
-
struct AuthFifoEntry
{
AccountId account_id;
diff --git a/src/login/login.cpp b/src/login/login.cpp
index 886c510..9310ad3 100644
--- a/src/login/login.cpp
+++ b/src/login/login.cpp
@@ -2494,9 +2494,7 @@ void parse_login(Session *s)
result = mmo_auth(&account, s);
if (result == -1)
{
- VERSION_2 version_2 = fixed.version_2_flags;
- if (!bool(version_2 & VERSION_2::UPDATEHOST)
- || !bool(version_2 & VERSION_2::SERVERORDER))
+ if (fixed.version < MIN_CLIENT_VERSION)
result = 5; // client too old
}
if (result == -1)
diff --git a/src/login/login.hpp b/src/login/login.hpp
index ae99558..ba42bae 100644
--- a/src/login/login.hpp
+++ b/src/login/login.hpp
@@ -18,8 +18,6 @@
// 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 "login.t.hpp"
-
#include "fwd.hpp"
#include "../strings/vstring.hpp"
diff --git a/src/mmo/login.t.hpp b/src/mmo/login.t.hpp
deleted file mode 100644
index f2c775a..0000000
--- a/src/mmo/login.t.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-#pragma once
-// login.t.hpp - externally useful types from login
-//
-// Copyright © ????-2004 Athena Dev Teams
-// Copyright © 2004-2011 The Mana World Development Team
-// Copyright © 2011-2014 Ben Longbons <b.r.longbons@gmail.com>
-//
-// This file is part of The Mana World (Athena server)
-//
-// 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 3 of the License, or
-// (at your option) 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 "fwd.hpp"
-
-#include <cstdint>
-
-#include "../generic/enum.hpp"
-
-
-namespace tmwa
-{
-namespace e
-{
-enum class VERSION_2 : uint8_t
-{
- /// client supports updatehost
- UPDATEHOST = 0x01,
- /// send servers in forward order
- SERVERORDER = 0x02,
-};
-ENUM_BITWISE_OPERATORS(VERSION_2)
-}
-using e::VERSION_2;
-} // namespace tmwa
diff --git a/src/mmo/version.hpp b/src/mmo/version.hpp
index a09953f..6de3a9c 100644
--- a/src/mmo/version.hpp
+++ b/src/mmo/version.hpp
@@ -35,6 +35,9 @@ namespace tmwa
#define TMWA_SERVER_INTER 0x04
#define TMWA_SERVER_MAP 0x08
+// increase the min version when the protocol is incompatible with old m+ versions
+#define MIN_CLIENT_VERSION 1
+
// TODO now that I generate the protocol, split 'flags' out of the struct
struct Version
{