#ifndef ITEM_H #define ITEM_H #include // Fixed up a bit struct Item { private: // Трябва да се добавят още get функции! char* name; int bonusAttack; int levelBonusAttack; int bonusDefence; int levelBonusDefence; int bonusHp; int levelBonusHp; int bonusMana; int levelBonusMana; char* description; void copy(const Item& other) { bonusAttack = other.bonusAttack; levelBonusAttack = other.levelBonusAttack; bonusDefence = other.bonusDefence; levelBonusDefence = other.levelBonusDefence; bonusHp = other.bonusHp; levelBonusHp = other.levelBonusHp; bonusMana = other.bonusMana; levelBonusMana = other.levelBonusMana; name = new char[strlen(other.name)+1]; strcpy(name,other.name); description = new char[strlen(other.description)+1]; strcpy(description,other.description); } public: const char* getName() const { return name; } const char* getDescription() const { return description; } int getBonusAttack() const { return bonusAttack;} int getLevelBonusAttack() const {return levelBonusAttack;} int getBonusDefence() const { return bonusDefence;} int getLevelBonusDefence() const {return levelBonusDefence;} int getBonusHp() const { return bonusHp; } int getLevelBonusHp() const { return levelBonusHp; } int getBonusMana() const { return bonusMana; } int getLevelBonusMana() const { return levelBonusMana; } // Wow.. Item(char*_name = "Zdravko_item", int _bonusAttack = 0, int _levelBonusAttack = 0, int _bonusDefence = 0, int _levelBonusDefence = 0, int _bonusHp = 0, int _levelBonusHp = 0, int _bonusMana = 0, int _levelBonusMana = 0, char* _description = "") : bonusAttack(_bonusAttack), levelBonusAttack(_levelBonusAttack), bonusDefence(_bonusDefence), levelBonusDefence(_levelBonusDefence), bonusHp(_bonusHp), levelBonusHp(_levelBonusHp), bonusMana(_bonusMana), levelBonusMana(_levelBonusMana) { name = new char[strlen(_name) + 1]; strcpy (name, _name); description = new char[strlen(_description) + 1]; strcpy (description, _description); } Item(const Item& other) { copy(other); } Item& operator=(const Item& a) { if(this != &a) { delete[] name; delete[] description; copy(a); } return *this; } ~Item() { delete [] name; delete [] description; } }; #endif // ITEM_H