diff options
author | Guillaume Melquiond <guillaume.melquiond@gmail.com> | 2007-01-03 17:10:43 +0000 |
---|---|---|
committer | Guillaume Melquiond <guillaume.melquiond@gmail.com> | 2007-01-03 17:10:43 +0000 |
commit | 1673de8b5553f6dcd4898c84b8d44ba8b30740f1 (patch) | |
tree | 3dcc47461a6b4914c4e81492e7be885c3a1502ea /src/object.cpp | |
parent | 6b7441516002d6e7cca424416bb67c6bc7d7c9d2 (diff) | |
download | manaserv-1673de8b5553f6dcd4898c84b8d44ba8b30740f1.tar.gz manaserv-1673de8b5553f6dcd4898c84b8d44ba8b30740f1.tar.bz2 manaserv-1673de8b5553f6dcd4898c84b8d44ba8b30740f1.tar.xz manaserv-1673de8b5553f6dcd4898c84b8d44ba8b30740f1.zip |
Split persistent player data from game server data. Enabled inventory code back.
Diffstat (limited to 'src/object.cpp')
-rw-r--r-- | src/object.cpp | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/src/object.cpp b/src/object.cpp deleted file mode 100644 index c2e11a7f..00000000 --- a/src/object.cpp +++ /dev/null @@ -1,79 +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 "map.h" -#include "object.h" -#include "game-server/mapmanager.hpp" - -void MovingObject::move() -{ - mOld = getPosition(); - if (mActionTime > 100) - { - // current move has not yet ended - mActionTime -= 100; - return; - } - - int tileSX = mOld.x / 32, tileSY = mOld.y / 32; - int tileDX = mDst.x / 32, tileDY = mDst.y / 32; - if (tileSX == tileDX && tileSY == tileDY) - { - // moving while staying on the same tile is free - setPosition(mDst); - mActionTime = 0; - return; - } - - Map *map = mapManager->getMap(getMapId()); - // TODO: cache pathfinding results - std::list<PATH_NODE> path = map->findPath(tileSX, tileSY, tileDX, tileDY); - if (path.empty()) - { - // no path was found - mDst = mOld; - mActionTime = 0; - return; - } - - PATH_NODE prev(tileSX, tileSY); - Point pos; - do - { - PATH_NODE next = path.front(); - path.pop_front(); - mActionTime += (prev.x != next.x && prev.y != next.y) - ? mSpeed * 362 / 256 : mSpeed; - if (path.empty()) - { - // skip last tile center - pos = mDst; - break; - } - pos.x = next.x * 32 + 16; - pos.y = next.y * 32 + 16; - } - while (mActionTime < 100); - setPosition(pos); - - mActionTime = mActionTime > 100 ? mActionTime - 100 : 0; -} |