diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-07-19 01:40:32 +0000 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-07-19 01:40:32 +0000 |
commit | cb25562fc18a169ee5fe2e2440b5267cbe0b9c6e (patch) | |
tree | 02f19cdc16f875cd5b53b19c364ea0a6b65104f8 /src/accounthandler.cpp | |
parent | 62395df8a674475cd7b277e964cc5512fa6e7576 (diff) | |
download | manaserv-cb25562fc18a169ee5fe2e2440b5267cbe0b9c6e.tar.gz manaserv-cb25562fc18a169ee5fe2e2440b5267cbe0b9c6e.tar.bz2 manaserv-cb25562fc18a169ee5fe2e2440b5267cbe0b9c6e.tar.xz manaserv-cb25562fc18a169ee5fe2e2440b5267cbe0b9c6e.zip |
Changing the way the message ID is read.
Diffstat (limited to 'src/accounthandler.cpp')
-rw-r--r-- | src/accounthandler.cpp | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/src/accounthandler.cpp b/src/accounthandler.cpp index 6bc1b68d..0f5adddd 100644 --- a/src/accounthandler.cpp +++ b/src/accounthandler.cpp @@ -41,69 +41,70 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message) { Storage &store = Storage::instance("tmw"); - int type = message.readShort(); - MessageOut result; - switch(type) + switch (message.getId()) { case CMSG_LOGIN: { std::string username = message.readString(); std::string password = message.readString(); - + // see if the account exists Account *acc = store.getAccount(username); if (!acc) { // account doesn't exist -- send error to client std::cout << "Account does not exist " << username << std::endl; - + result.writeShort(SMSG_LOGIN_ERROR); result.writeByte(LOGIN_INVALID_USERNAME); } else if (acc->getPassword() != password) { // bad password -- send error to client std::cout << "Bad password for " << username << std::endl; - + result.writeShort(SMSG_LOGIN_ERROR); result.writeByte(LOGIN_INVALID_PASSWORD); } else { // Login OK! (send an OK message or something) std::cout << "Login OK by " << username << std::endl; - + result.writeShort(SMSG_LOGIN_CONFIRM); // TODO: Return information about available characters } - } break; - + } + break; + case CMSG_REGISTER: { std::string username = message.readString(); std::string password = message.readString(); std::string email = message.readString(); - + AccountPtr acc(new Account(username, password, email)); store.addAccount(acc); - + result.writeShort(SMSG_REGISTER_RESPONSE); result.writeByte(REGISTER_OK); - + std::cout << "Account registered" << std::endl; store.flush(); // flush changes - } break; - + } + break; + case CMSG_CHAR_CREATE: { std::string name = message.readString(); - char hairStyle = message.readByte(); - char hairColor = message.readByte(); - char sex = message.readByte(); + //char hairStyle = message.readByte(); + //char hairColor = message.readByte(); + //char sex = message.readByte(); // TODO: Finish this message type (should a player customize stats // slightly?) result.writeShort(SMSG_CHAR_CREATE_RESPONSE); result.writeShort(CREATE_OK); - } break; + } + break; default: std::cout << "Invalid message type" << std::endl; |