X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Ftool.h;h=59dd501f51de3a75b0694ff42cf47cf6c18df6cd;hb=b3b075ea02034306256b486dd45410aa765f035a;hp=f3362d8928112c59fffc0baf5897934570bc105d;hpb=921151d97a2fb2238ab514324fb95e2732248b96;p=dragonfireclient.git diff --git a/src/tool.h b/src/tool.h index f3362d892..59dd501f5 100644 --- a/src/tool.h +++ b/src/tool.h @@ -23,6 +23,9 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include "itemgroup.h" +#include + +struct ItemDefinition; struct ToolGroupCap { @@ -30,7 +33,7 @@ struct ToolGroupCap int maxlevel = 1; int uses = 20; - ToolGroupCap() {} + ToolGroupCap() = default; bool getTime(int rating, float *time) const { @@ -42,6 +45,9 @@ struct ToolGroupCap *time = i->second; return true; } + + void toJson(Json::Value &object) const; + void fromJson(const Json::Value &json); }; @@ -54,21 +60,26 @@ 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; void deSerialize(std::istream &is); + void serializeJson(std::ostream &os) const; + void deserializeJson(std::istream &is); }; struct DigParams @@ -89,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_) {} @@ -118,7 +126,7 @@ struct PunchDamageResult int damage = 0; int wear = 0; - PunchDamageResult() {} + PunchDamageResult() = default; }; struct ItemStack; @@ -129,3 +137,5 @@ PunchDamageResult getPunchDamage( const ItemStack *punchitem, float time_from_last_punch ); + +f32 getToolRange(const ItemDefinition &def_selected, const ItemDefinition &def_hand);