00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "equipment.h"
00023 #include "item.h"
00024 #ifdef EATHENA_SUPPORT
00025 #include "inventory.h"
00026 #include "localplayer.h"
00027 #endif
00028
00029 #include <algorithm>
00030
00031 Equipment::Equipment()
00032 #ifdef EATHENA_SUPPORT
00033 : mArrows(0)
00034 #endif
00035 {
00036 #ifdef TMWSERV_SUPPORT
00037 std::fill_n(mEquipment, EQUIPMENT_SIZE, (Item*) 0);
00038 #else
00039 std::fill_n(mEquipment, EQUIPMENT_SIZE, -1);
00040 #endif
00041 }
00042
00043 #ifdef TMWSERV_SUPPORT
00044
00045 Equipment::~Equipment()
00046 {
00047 clear();
00048 }
00049
00050 void Equipment::clear()
00051 {
00052 for (int i = 0; i < EQUIPMENT_SIZE; ++i)
00053 delete mEquipment[i];
00054
00055 std::fill_n(mEquipment, EQUIPMENT_SIZE, (Item*) 0);
00056 }
00057
00058 void Equipment::setEquipment(int index, int id)
00059 {
00060 if (mEquipment[index] && mEquipment[index]->getId() == id)
00061 return;
00062
00063 delete mEquipment[index];
00064 mEquipment[index] = (id > 0) ? new Item(id) : 0;
00065 }
00066
00067 #else
00068
00069 void Equipment::setEquipment(int index, int inventoryIndex)
00070 {
00071 mEquipment[index] = inventoryIndex;
00072 Item *item = player_node->getInventory()->getItem(inventoryIndex);
00073 if (item)
00074 item->setEquipped(true);
00075 }
00076
00077 void Equipment::removeEquipment(int index)
00078 {
00079 if (index >= 0 && index < EQUIPMENT_SIZE)
00080 mEquipment[index] = -1;
00081 }
00082
00083 #endif