diff options
author | Stefan Dombrowski <stefan@uni-bonn.de> | 2010-10-31 12:11:54 +0100 |
---|---|---|
committer | Stefan Dombrowski <stefan@uni-bonn.de> | 2010-10-31 12:11:54 +0100 |
commit | 1f69108501c4bf51f3adac9ffbf7a7631fb12b9a (patch) | |
tree | 0155fe575006f6ddf9b3c57f374ad09daeebb3e3 /src | |
parent | 1fa380950a37405b6b8921867b844e4c1a162263 (diff) | |
download | mana-1f69108501c4bf51f3adac9ffbf7a7631fb12b9a.tar.gz mana-1f69108501c4bf51f3adac9ffbf7a7631fb12b9a.tar.bz2 mana-1f69108501c4bf51f3adac9ffbf7a7631fb12b9a.tar.xz mana-1f69108501c4bf51f3adac9ffbf7a7631fb12b9a.zip |
Using tile coordinates for pick-up
Since the tile coordinates are already avaible the
calculation is not needed. Furthermore this avoids
the correction of the tile, which was needed because
the pixel coordinates are meant as coordinates for
drawing the being.
This resolves http://bugs.manasource.org/view.php?id=249
Reviewed-by: Thorbjorn
Diffstat (limited to 'src')
-rw-r--r-- | src/game.cpp | 9 | ||||
-rw-r--r-- | src/localplayer.cpp | 4 |
2 files changed, 4 insertions, 9 deletions
diff --git a/src/game.cpp b/src/game.cpp index 270affb5..77544058 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -607,13 +607,8 @@ void Game::handleInput() { case KeyboardConfig::KEY_PICKUP: { - const Vector &pos = player_node->getPosition(); - Map *map = viewport->getCurrentMap(); - Uint16 x = (int) pos.x / map->getTileWidth(); - Uint16 y = (int) (pos.y - 1) - / map->getTileHeight(); - // y - 1 needed to fix position, otherwise, it's - // off under eAthena. + int x = player_node->getTileX(); + int y = player_node->getTileY(); FloorItem *item = floorItemManager->findByCoordinates(x, y); diff --git a/src/localplayer.cpp b/src/localplayer.cpp index 5f5f44ae..7826596c 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -707,8 +707,8 @@ void LocalPlayer::setInvItem(int index, int id, int amount) void LocalPlayer::pickUp(FloorItem *item) { - int dx = item->getX() - (int) getPosition().x / mMap->getTileWidth(); - int dy = item->getY() - ((int) getPosition().y - 1) / mMap->getTileHeight(); + int dx = item->getX() - getTileX(); + int dy = item->getY() - getTileY(); if (dx * dx + dy * dy < 4) { |