summaryrefslogtreecommitdiff
path: root/src/net/ea
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/ea')
-rw-r--r--src/net/ea/charserverhandler.cpp99
-rw-r--r--src/net/ea/charserverhandler.h11
-rw-r--r--src/net/ea/charserverrecv.cpp145
-rw-r--r--src/net/ea/charserverrecv.h43
4 files changed, 188 insertions, 110 deletions
diff --git a/src/net/ea/charserverhandler.cpp b/src/net/ea/charserverhandler.cpp
index eafdaff34..e46562085 100644
--- a/src/net/ea/charserverhandler.cpp
+++ b/src/net/ea/charserverhandler.cpp
@@ -77,105 +77,6 @@ unsigned int CharServerHandler::maxSprite() const
return EA_SPRITE_VECTOREND;
}
-void CharServerHandler::processCharLoginError(Net::MessageIn &msg)
-{
- BLOCK_START("CharServerHandler::processCharLoginError")
- switch (msg.readUInt8("error"))
- {
- case 0:
- // TRANSLATORS: error message
- errorMessage = _("Access denied. Most likely, there are "
- "too many players on this server.");
- break;
- case 1:
- // TRANSLATORS: error message
- errorMessage = _("Cannot use this ID.");
- break;
- default:
- // TRANSLATORS: error message
- errorMessage = _("Unknown char-server failure.");
- break;
- }
- client->setState(STATE_ERROR);
- BLOCK_END("CharServerHandler::processCharLoginError")
-}
-
-void CharServerHandler::processCharCreateFailed(Net::MessageIn &msg)
-{
- BLOCK_START("CharServerHandler::processCharCreateFailed")
- switch (msg.readUInt8("error"))
- {
- case 1:
- case 0:
- default:
- // TRANSLATORS: error message
- errorMessage = _("Failed to create character. Most "
- "likely the name is already taken.");
- break;
- case 2:
- // TRANSLATORS: error message
- errorMessage = _("Wrong name.");
- break;
- case 3:
- // TRANSLATORS: error message
- errorMessage = _("Incorrect stats.");
- break;
- case 4:
- // TRANSLATORS: error message
- errorMessage = _("Incorrect hair.");
- break;
- case 5:
- // TRANSLATORS: error message
- errorMessage = _("Incorrect slot.");
- break;
- case 6:
- // TRANSLATORS: error message
- errorMessage = _("Incorrect race.");
- break;
- case 7:
- // TRANSLATORS: error message
- errorMessage = _("Incorrect look.");
- break;
- }
- CREATEWIDGET(OkDialog,
- // TRANSLATORS: error message header
- _("Error"),
- errorMessage,
- // TRANSLATORS: ok dialog button
- _("OK"),
- DialogType::ERROR,
- Modal_true,
- ShowCenter_true,
- nullptr,
- 260);
- if (mCharCreateDialog)
- mCharCreateDialog->unlock();
- BLOCK_END("CharServerHandler::processCharCreateFailed")
-}
-
-void CharServerHandler::processCharDelete(Net::MessageIn &msg A_UNUSED)
-{
- BLOCK_START("CharServerHandler::processCharDelete")
- delete mSelectedCharacter;
- mCharacters.remove(mSelectedCharacter);
- mSelectedCharacter = nullptr;
- updateCharSelectDialog();
- unlockCharSelectDialog();
- CREATEWIDGET(OkDialog,
- // TRANSLATORS: info message header
- _("Info"),
- // TRANSLATORS: info message
- _("Character deleted."),
- // TRANSLATORS: ok dialog button
- _("OK"),
- DialogType::OK,
- Modal_true,
- ShowCenter_true,
- nullptr,
- 260);
- BLOCK_END("CharServerHandler::processCharDelete")
-}
-
void CharServerHandler::clear()
{
delete_all(mCharacters);
diff --git a/src/net/ea/charserverhandler.h b/src/net/ea/charserverhandler.h
index 99fb84c35..72a7baff8 100644
--- a/src/net/ea/charserverhandler.h
+++ b/src/net/ea/charserverhandler.h
@@ -25,11 +25,6 @@
#include "net/charserverhandler.h"
-namespace Net
-{
- class MessageIn;
-}
-
namespace Ea
{
@@ -54,12 +49,6 @@ class CharServerHandler notfinal : public Net::CharServerHandler
virtual void connect() = 0;
- static void processCharLoginError(Net::MessageIn &msg);
-
- static void processCharCreateFailed(Net::MessageIn &msg);
-
- static void processCharDelete(Net::MessageIn &msg);
-
void clear() override final;
protected:
diff --git a/src/net/ea/charserverrecv.cpp b/src/net/ea/charserverrecv.cpp
new file mode 100644
index 000000000..8435f0caf
--- /dev/null
+++ b/src/net/ea/charserverrecv.cpp
@@ -0,0 +1,145 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2004-2009 The Mana World Development Team
+ * Copyright (C) 2009-2010 The Mana Developers
+ * Copyright (C) 2011-2015 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/ea/charserverrecv.h"
+
+#include "client.h"
+
+#include "gui/windows/charcreatedialog.h"
+#include "gui/windows/okdialog.h"
+
+#include "gui/widgets/createwidget.h"
+
+#include "net/ea/eaprotocol.h"
+
+#include "net/character.h"
+#include "net/messagein.h"
+
+#include "utils/dtor.h"
+#include "utils/gettext.h"
+
+#include "debug.h"
+
+namespace Ea
+{
+
+void CharServerRecv::processCharLoginError(Net::MessageIn &msg)
+{
+ BLOCK_START("CharServerRecv::processCharLoginError")
+ switch (msg.readUInt8("error"))
+ {
+ case 0:
+ // TRANSLATORS: error message
+ errorMessage = _("Access denied. Most likely, there are "
+ "too many players on this server.");
+ break;
+ case 1:
+ // TRANSLATORS: error message
+ errorMessage = _("Cannot use this ID.");
+ break;
+ default:
+ // TRANSLATORS: error message
+ errorMessage = _("Unknown char-server failure.");
+ break;
+ }
+ client->setState(STATE_ERROR);
+ BLOCK_END("CharServerRecv::processCharLoginError")
+}
+
+void CharServerRecv::processCharCreateFailed(Net::MessageIn &msg)
+{
+ BLOCK_START("CharServerRecv::processCharCreateFailed")
+ switch (msg.readUInt8("error"))
+ {
+ case 1:
+ case 0:
+ default:
+ // TRANSLATORS: error message
+ errorMessage = _("Failed to create character. Most "
+ "likely the name is already taken.");
+ break;
+ case 2:
+ // TRANSLATORS: error message
+ errorMessage = _("Wrong name.");
+ break;
+ case 3:
+ // TRANSLATORS: error message
+ errorMessage = _("Incorrect stats.");
+ break;
+ case 4:
+ // TRANSLATORS: error message
+ errorMessage = _("Incorrect hair.");
+ break;
+ case 5:
+ // TRANSLATORS: error message
+ errorMessage = _("Incorrect slot.");
+ break;
+ case 6:
+ // TRANSLATORS: error message
+ errorMessage = _("Incorrect race.");
+ break;
+ case 7:
+ // TRANSLATORS: error message
+ errorMessage = _("Incorrect look.");
+ break;
+ }
+ CREATEWIDGET(OkDialog,
+ // TRANSLATORS: error message header
+ _("Error"),
+ errorMessage,
+ // TRANSLATORS: ok dialog button
+ _("OK"),
+ DialogType::ERROR,
+ Modal_true,
+ ShowCenter_true,
+ nullptr,
+ 260);
+ if (charServerHandler->mCharCreateDialog)
+ charServerHandler->mCharCreateDialog->unlock();
+ BLOCK_END("CharServerRecv::processCharCreateFailed")
+}
+
+void CharServerRecv::processCharDelete(Net::MessageIn &msg A_UNUSED)
+{
+ BLOCK_START("CharServerRecv::processCharDelete")
+ delete charServerHandler->mSelectedCharacter;
+ charServerHandler->mCharacters.remove(
+ charServerHandler->mSelectedCharacter);
+ charServerHandler->mSelectedCharacter = nullptr;
+ charServerHandler->updateCharSelectDialog();
+ charServerHandler->unlockCharSelectDialog();
+ CREATEWIDGET(OkDialog,
+ // TRANSLATORS: info message header
+ _("Info"),
+ // TRANSLATORS: info message
+ _("Character deleted."),
+ // TRANSLATORS: ok dialog button
+ _("OK"),
+ DialogType::OK,
+ Modal_true,
+ ShowCenter_true,
+ nullptr,
+ 260);
+ BLOCK_END("CharServerRecv::processCharDelete")
+}
+
+} // namespace Ea
diff --git a/src/net/ea/charserverrecv.h b/src/net/ea/charserverrecv.h
new file mode 100644
index 000000000..8f5d233c5
--- /dev/null
+++ b/src/net/ea/charserverrecv.h
@@ -0,0 +1,43 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2004-2009 The Mana World Development Team
+ * Copyright (C) 2009-2010 The Mana Developers
+ * Copyright (C) 2011-2015 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_EA_CHARSERVERRECV_H
+#define NET_EA_CHARSERVERRECV_H
+
+#include "net/charserverhandler.h"
+
+namespace Net
+{
+ class MessageIn;
+}
+
+namespace Ea
+{
+ namespace CharServerRecv
+ {
+ void processCharLoginError(Net::MessageIn &msg);
+ void processCharCreateFailed(Net::MessageIn &msg);
+ void processCharDelete(Net::MessageIn &msg);
+ } // namespace CharServerRecv
+} // namespace Ea
+
+#endif // NET_EA_CHARSERVERRECV_H