summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Steinbrink <B.Steinbrink@gmx.de>2006-03-08 14:49:14 +0000
committerBjörn Steinbrink <B.Steinbrink@gmx.de>2006-03-08 14:49:14 +0000
commit61536d859c62518718d17e82e21b3a2459de3410 (patch)
treeecf992d7334f2bd9c035a1043c22cf0225b0d6f1
parent8f375a38ad972a1fcac7953cc0d254313c88b7c9 (diff)
downloadmana-61536d859c62518718d17e82e21b3a2459de3410.tar.gz
mana-61536d859c62518718d17e82e21b3a2459de3410.tar.bz2
mana-61536d859c62518718d17e82e21b3a2459de3410.tar.xz
mana-61536d859c62518718d17e82e21b3a2459de3410.zip
Reverted changes from r2225, it broke walking code as I missed the differences between tile and being collisions.
-rw-r--r--ChangeLog3
-rw-r--r--src/gui/gui.cpp6
-rw-r--r--src/localplayer.cpp7
3 files changed, 8 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 3bb416b9..0f638d7b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2006-03-08 Björn Steinbrink <B.Steinbrink@gmx.de>
+ * src/localplayer.cpp, src/gui/gui.cpp: Reverted changes from r2225,
+ it broke walking code as I missed the differences between tile and
+ being collisions.
* src/gui/itemcontainer.cpp, src/inventory.cpp: Made Inventory use STL
algorithms and fixed getLastUsedSlot semantics.
* src/engine.cpp, src/engine.h: Moved a variable definition into the
diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp
index af9a1281..b52ff8e8 100644
--- a/src/gui/gui.cpp
+++ b/src/gui/gui.cpp
@@ -48,6 +48,7 @@
#include "../localplayer.h"
#include "../log.h"
#include "../main.h"
+#include "../map.h"
#include "../npc.h"
#include "../resources/image.h"
@@ -256,8 +257,7 @@ Gui::mousePress(int mx, int my, int button)
Being *being;
FloorItem *floorItem;
- if ((being = beingManager->findBeing(tilex, tiley))
- && being->getType() != Being::LOCALPLAYER)
+ if ((being = beingManager->findBeing(tilex, tiley)) && being->getType() != Being::LOCALPLAYER)
{
showPopup(mx, my, being);
return;
@@ -310,7 +310,7 @@ Gui::mousePress(int mx, int my, int button)
player_node->pickUp(item);
}
// Just walk around
- else
+ else if (engine->getCurrentMap()->getWalk(tilex, tiley))
{
// XXX XXX XXX REALLY UGLY!
Uint8 *keys = SDL_GetKeyState(NULL);
diff --git a/src/localplayer.cpp b/src/localplayer.cpp
index 29a2a54b..89302ea2 100644
--- a/src/localplayer.cpp
+++ b/src/localplayer.cpp
@@ -203,7 +203,8 @@ void LocalPlayer::walk(unsigned char dir)
if (dx && dy && !mMap->getWalk(x + dx, y + dy))
dx = 0;
- if (dx || dy)
+ // Walk to where the player can actually go
+ if ((dx || dy) && mMap->getWalk(x + dx, y + dy))
{
setDestination(x + dx, y + dy);
}
@@ -217,10 +218,6 @@ void LocalPlayer::walk(unsigned char dir)
void LocalPlayer::setDestination(Uint16 x, Uint16 y)
{
- // Check if we can walk there
- if (!mMap->getWalk(x, y))
- return;
-
char temp[3];
MessageOut outMsg(mNetwork);
set_coordinates(temp, x, y, direction);