summaryrefslogtreecommitdiff
path: root/src/equipment.cpp
diff options
context:
space:
mode:
authorIra Rice <irarice@gmail.com>2008-11-06 17:44:35 +0000
committerIra Rice <irarice@gmail.com>2008-11-06 17:44:35 +0000
commit0db6dce98d9c07b569dd29207979818f114f7a32 (patch)
tree3ae317c611a6e1d530b7d5e2b693ffc554aaa920 /src/equipment.cpp
parentcb81caa6ddbe1861d7b276d48f337dd8841d68c1 (diff)
downloadmana-client-0db6dce98d9c07b569dd29207979818f114f7a32.tar.gz
mana-client-0db6dce98d9c07b569dd29207979818f114f7a32.tar.bz2
mana-client-0db6dce98d9c07b569dd29207979818f114f7a32.tar.xz
mana-client-0db6dce98d9c07b569dd29207979818f114f7a32.zip
Ported a patch by Peavey on TMW to keep all item pointers inside of
inventory. For us, this should get rid of the arrow crashing bug, if it still exists (been a few weeks since I've heard of it happening now).
Diffstat (limited to 'src/equipment.cpp')
-rw-r--r--src/equipment.cpp29
1 files changed, 9 insertions, 20 deletions
diff --git a/src/equipment.cpp b/src/equipment.cpp
index b2d5e609..984df74d 100644
--- a/src/equipment.cpp
+++ b/src/equipment.cpp
@@ -21,36 +21,25 @@
* $Id: equipment.cpp 4347 2008-06-12 09:06:01Z b_lindeijer $
*/
-#include "equipment.h"
-
#include <algorithm>
+#include "equipment.h"
#include "item.h"
-#include "item.h"
+#include "inventory.h"
+#include "localplayer.h"
Equipment::Equipment():
mArrows(0)
{
- std::fill_n(mEquipment, EQUIPMENT_SIZE, (Item*) 0);
+ std::fill_n(mEquipment, EQUIPMENT_SIZE, 0);
}
void
-Equipment::removeEquipment(Item *item)
+Equipment::setEquipment(int index, int inventoryIndex)
{
- Item **i = std::find(mEquipment, mEquipment + EQUIPMENT_SIZE, item);
- if (i != mEquipment + EQUIPMENT_SIZE) {
- *i = 0;
- }
+ mEquipment[index] = inventoryIndex;
+ Item* item = player_node->getInventory()->getItem(inventoryIndex);
+ if (item)
+ item->setEquipped(true);
}
-void Equipment::removeEquipment(int index)
-{
- if (index >= 0 && index < EQUIPMENT_SIZE)
- mEquipment[index] = 0;
-}
-
-void Equipment::setEquipment(int index, Item *item)
-{
- mEquipment[index] = item;
- item->setEquipped(true);
-}