summaryrefslogtreecommitdiff
path: root/src/equipment.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/equipment.cpp')
-rw-r--r--src/equipment.cpp42
1 files changed, 40 insertions, 2 deletions
diff --git a/src/equipment.cpp b/src/equipment.cpp
index cb7acd44..63743263 100644
--- a/src/equipment.cpp
+++ b/src/equipment.cpp
@@ -21,15 +21,51 @@
#include "equipment.h"
#include "item.h"
+#ifdef EATHENA_SUPPORT
#include "inventory.h"
#include "localplayer.h"
+#endif
-Equipment::Equipment():
- mArrows(0)
+#include <algorithm>
+
+Equipment::Equipment()
+#ifdef EATHENA_SUPPORT
+ : mArrows(0)
+#endif
{
+#ifdef TMWSERV_SUPPORT
+ std::fill_n(mEquipment, EQUIPMENT_SIZE, (Item*) 0);
+#else
std::fill_n(mEquipment, EQUIPMENT_SIZE, 0);
+#endif
+}
+
+#ifdef TMWSERV_SUPPORT
+
+Equipment::~Equipment()
+{
+ clear();
}
+void Equipment::clear()
+{
+ for (int i = 0; i < EQUIPMENT_SIZE; ++i)
+ delete mEquipment[i];
+
+ std::fill_n(mEquipment, EQUIPMENT_SIZE, (Item*) 0);
+}
+
+void Equipment::setEquipment(int index, int id)
+{
+ if (mEquipment[index] && mEquipment[index]->getId() == id)
+ return;
+
+ delete mEquipment[index];
+ mEquipment[index] = (id > 0) ? new Item(id) : 0;
+}
+
+#else
+
void Equipment::setEquipment(int index, int inventoryIndex)
{
mEquipment[index] = inventoryIndex;
@@ -37,3 +73,5 @@ void Equipment::setEquipment(int index, int inventoryIndex)
if (item)
item->setEquipped(true);
}
+
+#endif