diff options
| author | Guillaume Melquiond <guillaume.melquiond@gmail.com> | 2006-12-29 13:43:24 +0000 |
|---|---|---|
| committer | Guillaume Melquiond <guillaume.melquiond@gmail.com> | 2006-12-29 13:43:24 +0000 |
| commit | 291ad04d5b5c4ab08d85eadde116f968cd579b77 (patch) | |
| tree | e4dced5715a5d9792cfdc0455a6b3ee6d3116079 /src/messagein.cpp | |
| parent | 3d404e743105bb9168c89e3451cf35d7d59120b1 (diff) | |
| download | manaserv-291ad04d5b5c4ab08d85eadde116f968cd579b77.tar.gz manaserv-291ad04d5b5c4ab08d85eadde116f968cd579b77.tar.xz manaserv-291ad04d5b5c4ab08d85eadde116f968cd579b77.zip | |
Physically split the server into one tmwserv-acount program (account +
chat + database) and multiple tmwserv-game programs (selected with
respect to the maps). Cleaned the repository by moving server-specific
source files into dedicated directories.
Diffstat (limited to 'src/messagein.cpp')
| -rw-r--r-- | src/messagein.cpp | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/src/messagein.cpp b/src/messagein.cpp deleted file mode 100644 index e0a4b27..0000000 --- a/src/messagein.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* - * The Mana World Server - * Copyright 2004 The Mana World Development Team - * - * This file is part of The Mana World. - * - * The Mana World 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. - * - * The Mana World 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 The Mana World; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * $Id$ - */ - -#include "messagein.h" - -#include <string> - -#include <enet/enet.h> - -MessageIn::MessageIn(const char *data, int length): - mData(data), - mLength(length), - mPos(0) -{ - // Read the message ID - mId = readShort(); -} - -MessageIn::~MessageIn() -{ -} - -char MessageIn::readByte() -{ - char value = -1; - if (mPos < mLength) - { - value = mData[mPos]; - } - mPos += 1; - return value; -} - -short MessageIn::readShort() -{ - short value = -1; - if (mPos + 2 <= mLength) - { - uint16_t t; - memcpy(&t, mData + mPos, 2); - value = ENET_NET_TO_HOST_16(t); - } - mPos += 2; - return value; -} - -long MessageIn::readLong() -{ - long value = -1; - if (mPos + 4 <= mLength) - { - uint32_t t; - memcpy(&t, mData + mPos, 4); - value = ENET_NET_TO_HOST_32(t); - } - mPos += 4; - return value; -} - -std::string MessageIn::readString(int length) -{ - // Get string length - if (length < 0) { - length = readShort(); - } - - // Make sure the string isn't erroneous - if (length < 0 || mPos + length > mLength) { - mPos = mLength + 1; - return ""; - } - - // Read the string - char const *stringBeg = mData + mPos; - char const *stringEnd = (char const *)memchr(stringBeg, '\0', length); - std::string readString(stringBeg, - stringEnd ? stringEnd - stringBeg : length); - mPos += length; - - return readString; -} |
