X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Finventory.h;h=465aa66db346934fb95314765c5b1b2199fc4e68;hb=8a99c8c94a40640c7c337278277f5c027e96f3cb;hp=459228d3e328f2cb03b2eb73666d339195c2d64a;hpb=fd3afbced5410639325e730d5710b8b5039b320e;p=dragonfireclient.git diff --git a/src/inventory.h b/src/inventory.h index 459228d3e..465aa66db 100644 --- a/src/inventory.h +++ b/src/inventory.h @@ -32,11 +32,12 @@ struct ToolCapabilities; struct ItemStack { - ItemStack() {} + ItemStack() = default; + ItemStack(const std::string &name_, u16 count_, u16 wear, IItemDefManager *itemdef); - ~ItemStack() {} + ~ItemStack() = default; // Serialization void serialize(std::ostream &os) const; @@ -110,12 +111,15 @@ struct ItemStack const ToolCapabilities& getToolCapabilities( IItemDefManager *itemdef) const { - ToolCapabilities *cap; - cap = itemdef->get(name).tool_capabilities; - if(cap == NULL) - cap = itemdef->get("").tool_capabilities; - assert(cap != NULL); - return *cap; + const ToolCapabilities *item_cap = + itemdef->get(name).tool_capabilities; + + if (item_cap == NULL) + // Fall back to the hand's tool capabilities + item_cap = itemdef->get("").tool_capabilities; + + assert(item_cap != NULL); + return metadata.getToolCapabilities(*item_cap); // Check for override } // Wear out (only tools) @@ -132,10 +136,8 @@ struct ItemStack wear += amount; return true; } - else - { - return false; - } + + return false; } // If possible, adds newitem to this item.