summaryrefslogtreecommitdiffstats
path: root/src/Item.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Item.h')
-rw-r--r--src/Item.h56
1 files changed, 32 insertions, 24 deletions
diff --git a/src/Item.h b/src/Item.h
index 1a070eafd..620c77b29 100644
--- a/src/Item.h
+++ b/src/Item.h
@@ -11,6 +11,7 @@
#include "Defines.h"
#include "Enchantments.h"
+#include "WorldStorage/FireworksSerializer.h"
@@ -32,18 +33,19 @@ namespace Json
class cItem
{
public:
- /// Creates an empty item
+ /** Creates an empty item */
cItem(void) :
m_ItemType(E_ITEM_EMPTY),
m_ItemCount(0),
m_ItemDamage(0),
m_CustomName(""),
- m_Lore("")
+ m_Lore(""),
+ m_FireworkItem()
{
}
- /// Creates an item of the specified type, by default 1 piece with no damage and no enchantments
+ /** Creates an item of the specified type, by default 1 piece with no damage and no enchantments */
cItem(
short a_ItemType,
char a_ItemCount = 1,
@@ -57,7 +59,8 @@ public:
m_ItemDamage (a_ItemDamage),
m_Enchantments(a_Enchantments),
m_CustomName (a_CustomName),
- m_Lore (a_Lore)
+ m_Lore (a_Lore),
+ m_FireworkItem()
{
if (!IsValidItem(m_ItemType))
{
@@ -70,14 +73,15 @@ public:
}
- /// Creates an exact copy of the item
+ /** Creates an exact copy of the item */
cItem(const cItem & a_CopyFrom) :
m_ItemType (a_CopyFrom.m_ItemType),
m_ItemCount (a_CopyFrom.m_ItemCount),
m_ItemDamage (a_CopyFrom.m_ItemDamage),
m_Enchantments(a_CopyFrom.m_Enchantments),
m_CustomName (a_CopyFrom.m_CustomName),
- m_Lore (a_CopyFrom.m_Lore)
+ m_Lore (a_CopyFrom.m_Lore),
+ m_FireworkItem(a_CopyFrom.m_FireworkItem)
{
}
@@ -90,6 +94,7 @@ public:
m_Enchantments.Clear();
m_CustomName = "";
m_Lore = "";
+ m_FireworkItem.EmptyData();
}
@@ -106,8 +111,8 @@ public:
return ((m_ItemType <= 0) || (m_ItemCount <= 0));
}
- /* Returns true if this itemstack can stack with the specified stack (types match, enchantments etc.) ItemCounts are ignored!
- */
+ /* Returns true if this itemstack can stack with the specified stack (types match, enchantments etc.)
+ ItemCounts are ignored. */
bool IsEqual(const cItem & a_Item) const
{
return (
@@ -115,7 +120,8 @@ public:
(m_ItemDamage == a_Item.m_ItemDamage) &&
(m_Enchantments == a_Item.m_Enchantments) &&
(m_CustomName == a_Item.m_CustomName) &&
- (m_Lore == a_Item.m_Lore)
+ (m_Lore == a_Item.m_Lore) &&
+ m_FireworkItem.IsEqualTo(a_Item.m_FireworkItem)
);
}
@@ -135,39 +141,39 @@ public:
bool IsCustomNameEmpty(void) const { return (m_CustomName.empty()); }
bool IsLoreEmpty(void) const { return (m_Lore.empty()); }
- /// Returns a copy of this item with m_ItemCount set to 1. Useful to preserve enchantments etc. on stacked items
+ /** Returns a copy of this item with m_ItemCount set to 1. Useful to preserve enchantments etc. on stacked items */
cItem CopyOne(void) const;
- /// Adds the specified count to this object and returns the reference to self (useful for chaining)
+ /** Adds the specified count to this object and returns the reference to self (useful for chaining) */
cItem & AddCount(char a_AmountToAdd);
- /// Returns the maximum damage value that this item can have; zero if damage is not applied
+ /** Returns the maximum damage value that this item can have; zero if damage is not applied */
short GetMaxDamage(void) const;
- /// Damages a weapon / tool. Returns true when damage reaches max value and the item should be destroyed
+ /** Damages a weapon / tool. Returns true when damage reaches max value and the item should be destroyed */
bool DamageItem(short a_Amount = 1);
inline bool IsDamageable(void) const { return (GetMaxDamage() > 0); }
- /// Returns true if the item is stacked up to its maximum stacking.
+ /** Returns true if the item is stacked up to its maximum stacking. */
bool IsFullStack(void) const;
- /// Returns the maximum amount of stacked items of this type.
+ /** Returns the maximum amount of stacked items of this type. */
char GetMaxStackSize(void) const;
// tolua_end
- /// Returns the cItemHandler responsible for this item type
+ /** Returns the cItemHandler responsible for this item type */
cItemHandler * GetHandler(void) const;
- /// Saves the item data into JSON representation
+ /** Saves the item data into JSON representation */
void GetJson(Json::Value & a_OutValue) const;
- /// Loads the item data from JSON representation
+ /** Loads the item data from JSON representation */
void FromJson(const Json::Value & a_Value);
- /// Returns true if the specified item type is enchantable (as per 1.2.5 protocol requirements)
- static bool IsEnchantable(short a_ItemType);
+ /** Returns true if the specified item type is enchantable (as per 1.2.5 protocol requirements) */
+ static bool IsEnchantable(short a_ItemType); // tolua_export
/** Fills a_Enchantments with the list of enchantments applicable to the specified item type */
static void cItem::GetApplicableEnchantmentsForType(short a_ItemType, cEnchantmentsArray & a_Enchantments);
@@ -177,9 +183,11 @@ public:
short m_ItemType;
char m_ItemCount;
short m_ItemDamage;
+ cEnchantments m_Enchantments;
AString m_CustomName;
AString m_Lore;
- cEnchantments m_Enchantments;
+
+ cFireworkItem m_FireworkItem;
};
// tolua_end
@@ -196,7 +204,7 @@ class cItems // tolua_export
public:
// tolua_begin
- /// Need a Lua-accessible constructor
+ /** Need a Lua-accessible constructor */
cItems(void) {}
cItem * Get (int a_Idx);
@@ -204,7 +212,7 @@ public:
void Add (const cItem & a_Item) {push_back(a_Item); }
void Delete(int a_Idx);
void Clear (void) {clear(); }
- int Size (void) {return size(); }
+ size_t Size (void) {return size(); }
void Set (int a_Idx, short a_ItemType, char a_ItemCount, short a_ItemDamage);
void Add (short a_ItemType, char a_ItemCount, short a_ItemDamage)
@@ -219,7 +227,7 @@ public:
-/// Used to store loot probability tables
+/** Used to store loot probability tables */
class cLootProbab
{
public: