X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftool.h;h=59dd501f51de3a75b0694ff42cf47cf6c18df6cd;hb=b3b075ea02034306256b486dd45410aa765f035a;hp=f6b196a49daba6c7559f0525d81a4c194a2f08cf;hpb=a637107a4e81be88938d68df4deae50e68cf2cd8;p=dragonfireclient.git diff --git a/src/tool.h b/src/tool.h index f6b196a49..59dd501f5 100644 --- a/src/tool.h +++ b/src/tool.h @@ -25,6 +25,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "itemgroup.h" #include +struct ItemDefinition; + struct ToolGroupCap { std::unordered_map times; @@ -58,17 +60,20 @@ struct ToolCapabilities int max_drop_level; ToolGCMap groupcaps; DamageGroup damageGroups; + int punch_attack_uses; ToolCapabilities( - float full_punch_interval_=1.4, - int max_drop_level_=1, + float full_punch_interval_ = 1.4f, + int max_drop_level_ = 1, const ToolGCMap &groupcaps_ = ToolGCMap(), - const DamageGroup &damageGroups_ = DamageGroup() + const DamageGroup &damageGroups_ = DamageGroup(), + int punch_attack_uses_ = 0 ): full_punch_interval(full_punch_interval_), max_drop_level(max_drop_level_), groupcaps(groupcaps_), - damageGroups(damageGroups_) + damageGroups(damageGroups_), + punch_attack_uses(punch_attack_uses_) {} void serialize(std::ostream &os, u16 version) const; @@ -95,18 +100,15 @@ struct DigParams {} }; -DigParams getDigParams(const ItemGroupList &groups, - const ToolCapabilities *tp, float time_from_last_punch); - DigParams getDigParams(const ItemGroupList &groups, const ToolCapabilities *tp); struct HitParams { s16 hp; - s16 wear; + u16 wear; - HitParams(s16 hp_=0, s16 wear_=0): + HitParams(s16 hp_ = 0, u16 wear_ = 0): hp(hp_), wear(wear_) {} @@ -135,3 +137,5 @@ PunchDamageResult getPunchDamage( const ItemStack *punchitem, float time_from_last_punch ); + +f32 getToolRange(const ItemDefinition &def_selected, const ItemDefinition &def_hand);