diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/localplayer.cpp | 8 | ||||
-rw-r--r-- | src/localplayer.h | 3 | ||||
-rw-r--r-- | src/net/ea/equipmenthandler.cpp | 14 | ||||
-rw-r--r-- | src/net/ea/equipmenthandler.h | 1 | ||||
-rw-r--r-- | src/net/ea/inventoryhandler.cpp | 1 |
5 files changed, 25 insertions, 2 deletions
diff --git a/src/localplayer.cpp b/src/localplayer.cpp index d20ebcc3..34ab5246 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -911,6 +911,14 @@ void LocalPlayer::setMaxMP(int value) statusWindow->update(StatusWindow::MP); } +void LocalPlayer::setMoney(int value) +{ + mMoney = value; + + if (statusWindow) + statusWindow->update(StatusWindow::MONEY); +} + void LocalPlayer::pickedUp(const ItemInfo &itemInfo, int amount) { if (!amount) diff --git a/src/localplayer.h b/src/localplayer.h index 140d64b4..a3ed5f29 100644 --- a/src/localplayer.h +++ b/src/localplayer.h @@ -309,8 +309,7 @@ class LocalPlayer : public Player int getMoney() const { return mMoney; } - void setMoney(int value) - { mMoney = value; } + void setMoney(int value); int getTotalWeight() const { return mTotalWeight; } diff --git a/src/net/ea/equipmenthandler.cpp b/src/net/ea/equipmenthandler.cpp index 0b6c5753..3520bca5 100644 --- a/src/net/ea/equipmenthandler.cpp +++ b/src/net/ea/equipmenthandler.cpp @@ -113,6 +113,20 @@ void setEquipment(int eAthenaSlot, int index, bool equiped) } } +void clearEquipment() +{ + for (int i = 0; i < Equipment::EQUIP_VECTOREND; i++) + { + if (equips[i]) + { + equips[i]->setEquipped(false); + player_node->mEquipment->setEquipment(i, -1); + } + + equips[i] = NULL; + } +} + Item *getRealEquipedItem(const Item *equipped) { if (!equipped) diff --git a/src/net/ea/equipmenthandler.h b/src/net/ea/equipmenthandler.h index 5239c486..47c2f803 100644 --- a/src/net/ea/equipmenthandler.h +++ b/src/net/ea/equipmenthandler.h @@ -29,6 +29,7 @@ class Item; namespace EAthena { void setEquipment(int eAthenaSlot, int index, bool equiped); +void clearEquipment(); Item *getRealEquipedItem(const Item *equipped); class EquipmentHandler : public MessageHandler diff --git a/src/net/ea/inventoryhandler.cpp b/src/net/ea/inventoryhandler.cpp index 172e3e95..6ee974fc 100644 --- a/src/net/ea/inventoryhandler.cpp +++ b/src/net/ea/inventoryhandler.cpp @@ -87,6 +87,7 @@ void InventoryHandler::handleMessage(MessageIn &msg) if (msg.getId() == SMSG_PLAYER_INVENTORY) { // Clear inventory - this will be a complete refresh + clearEquipment(); inventory->clear(); } else |