summaryrefslogtreecommitdiff
path: root/src/localplayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/localplayer.cpp')
-rw-r--r--src/localplayer.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/localplayer.cpp b/src/localplayer.cpp
index 78395438..0a041021 100644
--- a/src/localplayer.cpp
+++ b/src/localplayer.cpp
@@ -620,6 +620,7 @@ void LocalPlayer::pickUp(FloorItem *item)
}
else
{
+ pathSetByMouse();
setDestination(item->getTileX() * tileWidth + tileWidth / 2,
item->getTileY() * tileHeight + tileHeight / 2);
mPickUpTarget = item;
@@ -1031,10 +1032,17 @@ void LocalPlayer::event(Event::Channel channel, const Event &event)
{
if (event.getInt("id") == EXP)
{
- int change = event.getInt("newValue")
- - event.getInt("oldValue");
+ int change = 0,
+ oldXp = event.getInt("oldValue"),
+ newXp = event.getInt("newValue");
- addMessageToQueue(toString(change) + " xp");
+ if (newXp < oldXp)
+ change = PlayerInfo::getAttribute(EXP_NEEDED) - oldXp;
+ else
+ change = newXp - oldXp;
+
+ if (change > 0)
+ addMessageToQueue(toString(change) + " xp");
}
}
}