}
};
+
+// CLANG SUCKS DONKEY BALLS
+typedef std::map<std::string, struct ToolGroupCap> ToolGCMap;
+
struct ToolCapabilities
{
float full_punch_interval;
int max_drop_level;
- std::map<std::string, ToolGroupCap> groupcaps;
+ // CLANG SUCKS DONKEY BALLS
+ ToolGCMap groupcaps;
ToolCapabilities(
- float full_punch_interval_=3.0,
+ float full_punch_interval_=1.4,
int max_drop_level_=1,
- std::map<std::string, ToolGroupCap> groupcaps_ =
- std::map<std::string, ToolGroupCap>()
+ // CLANG SUCKS DONKEY BALLS
+ ToolGCMap groupcaps_=ToolGCMap()
):
full_punch_interval(full_punch_interval_),
max_drop_level(max_drop_level_),
float time;
// Caused wear
u16 wear;
+ std::string main_group;
- DigParams(bool a_diggable=false, float a_time=0, u16 a_wear=0):
+ DigParams(bool a_diggable=false, float a_time=0, u16 a_wear=0,
+ std::string a_main_group=""):
diggable(a_diggable),
time(a_time),
- wear(a_wear)
+ wear(a_wear),
+ main_group(a_main_group)
{}
};
{
s16 hp;
s16 wear;
+ std::string main_group;
- HitParams(s16 hp_=0, s16 wear_=0):
+ HitParams(s16 hp_=0, s16 wear_=0, std::string main_group_=""):
hp(hp_),
- wear(wear_)
+ wear(wear_),
+ main_group(main_group_)
{}
};
HitParams getHitParams(const ItemGroupList &groups,
const ToolCapabilities *tp);
+struct PunchDamageResult
+{
+ bool did_punch;
+ int damage;
+ int wear;
+ std::string main_group;
+
+ PunchDamageResult():
+ did_punch(false),
+ damage(0),
+ wear(0)
+ {}
+};
+
+struct ItemStack;
+
+PunchDamageResult getPunchDamage(
+ const ItemGroupList &armor_groups,
+ const ToolCapabilities *toolcap,
+ const ItemStack *punchitem,
+ float time_from_last_punch
+);
+
#endif