summaryrefslogtreecommitdiff
path: root/src/messageout.cpp
diff options
context:
space:
mode:
authorGuillaume Melquiond <guillaume.melquiond@gmail.com>2006-12-29 13:43:24 +0000
committerGuillaume Melquiond <guillaume.melquiond@gmail.com>2006-12-29 13:43:24 +0000
commit291ad04d5b5c4ab08d85eadde116f968cd579b77 (patch)
treee4dced5715a5d9792cfdc0455a6b3ee6d3116079 /src/messageout.cpp
parent3d404e743105bb9168c89e3451cf35d7d59120b1 (diff)
downloadmanaserv-291ad04d5b5c4ab08d85eadde116f968cd579b77.tar.gz
manaserv-291ad04d5b5c4ab08d85eadde116f968cd579b77.tar.bz2
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/messageout.cpp')
-rw-r--r--src/messageout.cpp136
1 files changed, 0 insertions, 136 deletions
diff --git a/src/messageout.cpp b/src/messageout.cpp
deleted file mode 100644
index 7b547bb1..00000000
--- a/src/messageout.cpp
+++ /dev/null
@@ -1,136 +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 "messageout.h"
-
-#include <string>
-#include <stdlib.h>
-#include <iosfwd>
-
-#include <enet/enet.h>
-
-/** Initial amount of bytes allocated for the messageout data buffer. */
-const unsigned int INITIAL_DATA_CAPACITY = 16;
-
-/** Factor by which the messageout data buffer is increased when too small. */
-const unsigned int CAPACITY_GROW_FACTOR = 2;
-
-MessageOut::MessageOut():
- mPos(0)
-{
- mData = (char*) malloc(INITIAL_DATA_CAPACITY);
- mDataSize = INITIAL_DATA_CAPACITY;
-}
-
-MessageOut::MessageOut(short id):
- mPos(0)
-{
- mData = (char*) malloc(INITIAL_DATA_CAPACITY);
- mDataSize = INITIAL_DATA_CAPACITY;
-
- writeShort(id);
-}
-
-MessageOut::~MessageOut()
-{
- free(mData);
-}
-
-void
-MessageOut::expand(size_t bytes)
-{
- if (bytes > mDataSize)
- {
- do
- {
- mDataSize *= CAPACITY_GROW_FACTOR;
- }
- while (bytes > mDataSize);
-
- mData = (char*) realloc(mData, mDataSize);
- }
-}
-
-void
-MessageOut::writeByte(char value)
-{
- expand(mPos + 1);
- mData[mPos] = value;
- mPos += 1;
-}
-
-void
-MessageOut::writeShort(short value)
-{
- expand(mPos + 2);
- uint16_t t = ENET_HOST_TO_NET_16(value);
- memcpy(mData + mPos, &t, 2);
- mPos += 2;
-}
-
-void
-MessageOut::writeLong(long value)
-{
- expand(mPos + 4);
- uint32_t t = ENET_HOST_TO_NET_32(value);
- memcpy(mData + mPos, &t, 4);
- mPos += 4;
-}
-
-void MessageOut::writeCoordinates(int x, int y)
-{
- expand(mPos + 3);
- char *p = mData + mPos;
- p[0] = x & 0x00FF;
- p[1] = ((x & 0x0700) >> 8) | ((y & 0x001F) << 3);
- p[2] = (y & 0x07E0) >> 5;
- mPos += 3;
-}
-
-void
-MessageOut::writeString(const std::string &string, int length)
-{
- int stringLength = string.length();
- if (length < 0)
- {
- // Write the length at the start if not fixed
- writeShort(stringLength);
- length = stringLength;
- }
- else if (length < stringLength)
- {
- // Make sure the length of the string is no longer than specified
- stringLength = length;
- }
- expand(mPos + length);
-
- // Write the actual string
- memcpy(mData + mPos, string.c_str(), stringLength);
-
- if (length > stringLength)
- {
- // Pad remaining space with zeros
- memset(mData + mPos + stringLength, '\0', length - stringLength);
- }
- mPos += length;
-}