diff options
author | Jared Adams <jaxad0127@gmail.com> | 2010-06-13 13:16:16 -0600 |
---|---|---|
committer | Jared Adams <jaxad0127@gmail.com> | 2010-06-13 13:16:16 -0600 |
commit | e8bea8a6edf69e824a922adeb5e697111ceabe90 (patch) | |
tree | db1937956bc585b300f2a2c8312af4ad5bf924de /src/net | |
parent | 593fd2b831304c8e421589aab0fb158e4b7e9c35 (diff) | |
parent | 0b15a3ad32838134384524ce4af95d65b0b4e5da (diff) | |
download | mana-e8bea8a6edf69e824a922adeb5e697111ceabe90.tar.gz mana-e8bea8a6edf69e824a922adeb5e697111ceabe90.tar.bz2 mana-e8bea8a6edf69e824a922adeb5e697111ceabe90.tar.xz mana-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')
-rw-r--r-- | src/net/download.cpp | 4 | ||||
-rw-r--r-- | src/net/manaserv/charhandler.cpp | 21 | ||||
-rw-r--r-- | src/net/manaserv/generalhandler.cpp | 8 | ||||
-rw-r--r-- | src/net/manaserv/stats.cpp | 11 | ||||
-rw-r--r-- | src/net/manaserv/stats.h | 5 | ||||
-rw-r--r-- | src/net/tmwa/charserverhandler.cpp | 10 | ||||
-rw-r--r-- | src/net/tmwa/loginhandler.cpp | 13 | ||||
-rw-r--r-- | src/net/tmwa/loginhandler.h | 1 |
8 files changed, 40 insertions, 33 deletions
diff --git a/src/net/download.cpp b/src/net/download.cpp index 2b96a6b9..a2cd4910 100644 --- a/src/net/download.cpp +++ b/src/net/download.cpp @@ -122,7 +122,7 @@ void Download::setWriteFunction(WriteFunction write) bool Download::start() { - logger->log("Starting download: %s\n", mUrl.c_str()); + logger->log("Starting download: %s", mUrl.c_str()); mThread = SDL_CreateThread(downloadThread, this); @@ -140,7 +140,7 @@ bool Download::start() void Download::cancel() { - logger->log("Canceling download: %s\n", mUrl.c_str()); + logger->log("Canceling download: %s", mUrl.c_str()); mOptions.cancel = true; if (mThread && SDL_GetThreadID(mThread) != 0) diff --git a/src/net/manaserv/charhandler.cpp b/src/net/manaserv/charhandler.cpp index 721780d2..e2c67f35 100644 --- a/src/net/manaserv/charhandler.cpp +++ b/src/net/manaserv/charhandler.cpp @@ -37,6 +37,7 @@ #include "net/manaserv/messagein.h" #include "net/manaserv/messageout.h" #include "net/manaserv/protocol.h" +#include "net/manaserv/stats.h" #include "resources/colordb.h" @@ -258,15 +259,7 @@ void CharHandler::setCharCreateDialog(CharCreateDialog *window) if (!mCharCreateDialog) return; - std::vector<std::string> attributes; - attributes.push_back(_("Strength:")); - attributes.push_back(_("Agility:")); - attributes.push_back(_("Dexterity:")); - attributes.push_back(_("Vitality:")); - attributes.push_back(_("Intelligence:")); - attributes.push_back(_("Willpower:")); - - mCharCreateDialog->setAttributes(attributes, 60, 1, 20); + mCharCreateDialog->setAttributes(Stats::getLabelVector(), 60, 1, 20); } void CharHandler::requestCharacters() @@ -304,12 +297,10 @@ void CharHandler::newCharacter(const std::string &name, msg.writeInt8(hairstyle); msg.writeInt8(hairColor); msg.writeInt8(gender); - msg.writeInt16(stats[0]); - msg.writeInt16(stats[1]); - msg.writeInt16(stats[2]); - msg.writeInt16(stats[3]); - msg.writeInt16(stats[4]); - msg.writeInt16(stats[5]); + + std::vector<int>::const_iterator it, it_end; + for (it = stats.begin(), it_end = stats.end(); it != it_end; it++) + msg.writeInt16((*it)); accountServerConnection->send(msg); } diff --git a/src/net/manaserv/generalhandler.cpp b/src/net/manaserv/generalhandler.cpp index 09f68c1e..0d3073f1 100644 --- a/src/net/manaserv/generalhandler.cpp +++ b/src/net/manaserv/generalhandler.cpp @@ -108,9 +108,6 @@ void GeneralHandler::load() registerHandler(mPartyHandler.get()); registerHandler(mPlayerHandler.get()); registerHandler(mTradeHandler.get()); - - Stats::load(); - Stats::informItemDB(); } void GeneralHandler::reload() @@ -194,6 +191,11 @@ void GeneralHandler::stateChanged(State oldState, State newState) GameHandler *game = static_cast<GameHandler*>(Net::getGameHandler()); game->gameLoading(); } + else if (newState == STATE_LOAD_DATA) + { + Stats::load(); + Stats::informItemDB(); + } } } // namespace ManaServ diff --git a/src/net/manaserv/stats.cpp b/src/net/manaserv/stats.cpp index b79b1fd9..f109a232 100644 --- a/src/net/manaserv/stats.cpp +++ b/src/net/manaserv/stats.cpp @@ -198,5 +198,16 @@ namespace Stats { it->second.modifiable, it->second.description); } + + std::vector<std::string> getLabelVector() + { + std::vector<std::string> attributes; + StatMap::const_iterator it, it_end; + for (it = stats.begin(), it_end = stats.end(); it != it_end; it++) + if (it->second.modifiable) + attributes.push_back(it->second.name + ":"); + + return attributes; + } } // namespace Stats } // namespace ManaServ diff --git a/src/net/manaserv/stats.h b/src/net/manaserv/stats.h index c4afbd79..63349095 100644 --- a/src/net/manaserv/stats.h +++ b/src/net/manaserv/stats.h @@ -21,6 +21,9 @@ #ifndef NET_MANASERV_STATS_H #define NET_MANASERV_STATS_H +#include <string> +#include <vector> + namespace ManaServ { namespace Stats { void load(); @@ -30,6 +33,8 @@ namespace Stats { void informItemDB(); void informStatusWindow(); + + std::vector<std::string> getLabelVector(); } // namespace Stats } // namespace ManaServ 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; |