summaryrefslogtreecommitdiff
path: root/src/net/tmwa
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2010-06-13 13:16:16 -0600
committerJared Adams <jaxad0127@gmail.com>2010-06-13 13:16:16 -0600
commite8bea8a6edf69e824a922adeb5e697111ceabe90 (patch)
treedb1937956bc585b300f2a2c8312af4ad5bf924de /src/net/tmwa
parent593fd2b831304c8e421589aab0fb158e4b7e9c35 (diff)
parent0b15a3ad32838134384524ce4af95d65b0b4e5da (diff)
downloadmana-client-e8bea8a6edf69e824a922adeb5e697111ceabe90.tar.gz
mana-client-e8bea8a6edf69e824a922adeb5e697111ceabe90.tar.bz2
mana-client-e8bea8a6edf69e824a922adeb5e697111ceabe90.tar.xz
mana-client-e8bea8a6edf69e824a922adeb5e697111ceabe90.zip
Merge remote branch '1.0/1.0'
Conflicts: data/graphics/CMakeLists.txt data/graphics/Makefile.am src/client.cpp
Diffstat (limited to 'src/net/tmwa')
-rw-r--r--src/net/tmwa/charserverhandler.cpp10
-rw-r--r--src/net/tmwa/loginhandler.cpp13
-rw-r--r--src/net/tmwa/loginhandler.h1
3 files changed, 11 insertions, 13 deletions
diff --git a/src/net/tmwa/charserverhandler.cpp b/src/net/tmwa/charserverhandler.cpp
index 843e5c9f..8f15691c 100644
--- a/src/net/tmwa/charserverhandler.cpp
+++ b/src/net/tmwa/charserverhandler.cpp
@@ -70,9 +70,6 @@ CharServerHandler::CharServerHandler()
void CharServerHandler::handleMessage(Net::MessageIn &msg)
{
- logger->log("CharServerHandler: Packet ID: %x, Length: %d",
- msg.getId(), msg.getLength());
-
switch (msg.getId())
{
case SMSG_CHAR_LOGIN:
@@ -102,16 +99,17 @@ void CharServerHandler::handleMessage(Net::MessageIn &msg)
switch (msg.readInt8())
{
case 0:
- errorMessage = _("Access denied.");
+ errorMessage = _("Access denied. Most likely, there are "
+ "too many players on this server.");
break;
case 1:
errorMessage = _("Cannot use this ID.");
break;
default:
- errorMessage = _("Unknown failure to select character.");
+ errorMessage = _("Unknown char-server failure.");
break;
}
- unlockCharSelectDialog();
+ Client::setState(STATE_ERROR);
break;
case SMSG_CHAR_CREATE_SUCCEEDED:
diff --git a/src/net/tmwa/loginhandler.cpp b/src/net/tmwa/loginhandler.cpp
index 7d973ba3..e58acb4d 100644
--- a/src/net/tmwa/loginhandler.cpp
+++ b/src/net/tmwa/loginhandler.cpp
@@ -42,6 +42,7 @@ namespace TmwAthena {
extern ServerInfo charServer;
LoginHandler::LoginHandler():
+ mVersionResponse(false),
mRegistrationEnabled(true)
{
static const Uint16 _messages[] = {
@@ -187,6 +188,7 @@ void LoginHandler::handleMessage(Net::MessageIn &msg)
case SMSG_SERVER_VERSION_RESPONSE:
{
// TODO: verify these!
+
msg.readInt8(); // -1
msg.readInt8(); // T
msg.readInt8(); // M
@@ -194,13 +196,10 @@ void LoginHandler::handleMessage(Net::MessageIn &msg)
unsigned int options = msg.readInt32();
- if (options & 1)
- {
- // Registeration not allowed
- mRegistrationEnabled = false;
- }
+ mRegistrationEnabled = (options & 1);
- //state = STATE_LOGIN;
+ // Leave this last
+ mVersionResponse = true;
}
break;
}
@@ -214,7 +213,7 @@ void LoginHandler::connect()
bool LoginHandler::isConnected()
{
- return mNetwork->isConnected();
+ return mVersionResponse && mNetwork->isConnected();
}
void LoginHandler::disconnect()
diff --git a/src/net/tmwa/loginhandler.h b/src/net/tmwa/loginhandler.h
index 455c75f1..8f6ea321 100644
--- a/src/net/tmwa/loginhandler.h
+++ b/src/net/tmwa/loginhandler.h
@@ -83,6 +83,7 @@ class LoginHandler : public MessageHandler, public Net::LoginHandler
void sendLoginRegister(const std::string &username,
const std::string &password);
+ bool mVersionResponse;
bool mRegistrationEnabled;
std::string mUpdateHost;
Worlds mWorlds;