]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/tool.h
Add function to get server info.
[dragonfireclient.git] / src / tool.h
index e812a9e368c88cdd6889281c4da770cc0c41009e..f33152355c21e3cf5f9f3dc3bfa14c99195a1493 100644 (file)
@@ -23,12 +23,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "irrlichttypes.h"
 #include <string>
 #include <iostream>
-#include <map>
+#include "util/cpp11_container.h"
 #include "itemgroup.h"
 
 struct ToolGroupCap
 {
-       std::map<int, float> times;
+       UNORDERED_MAP<int, float> times;
        int maxlevel;
        int uses;
 
@@ -39,8 +39,8 @@ struct ToolGroupCap
 
        bool getTime(int rating, float *time) const
        {
-               std::map<int, float>::const_iterator i = times.find(rating);
-               if(i == times.end()){
+               UNORDERED_MAP<int, float>::const_iterator i = times.find(rating);
+               if (i == times.end()) {
                        *time = 0;
                        return false;
                }
@@ -50,28 +50,29 @@ struct ToolGroupCap
 };
 
 
-// CLANG SUCKS DONKEY BALLS
-typedef std::map<std::string, struct ToolGroupCap> ToolGCMap;
+typedef UNORDERED_MAP<std::string, struct ToolGroupCap> ToolGCMap;
+typedef UNORDERED_MAP<std::string, s16> DamageGroup;
 
 struct ToolCapabilities
 {
        float full_punch_interval;
        int max_drop_level;
-       // CLANG SUCKS DONKEY BALLS
        ToolGCMap groupcaps;
+       DamageGroup damageGroups;
 
        ToolCapabilities(
                        float full_punch_interval_=1.4,
                        int max_drop_level_=1,
-                       // CLANG SUCKS DONKEY BALLS
-                       ToolGCMap groupcaps_=ToolGCMap()
+                       const ToolGCMap &groupcaps_ = ToolGCMap(),
+                       const DamageGroup &damageGroups_ = DamageGroup()
        ):
                full_punch_interval(full_punch_interval_),
                max_drop_level(max_drop_level_),
-               groupcaps(groupcaps_)
+               groupcaps(groupcaps_),
+               damageGroups(damageGroups_)
        {}
 
-       void serialize(std::ostream &os) const;
+       void serialize(std::ostream &os, u16 version) const;
        void deSerialize(std::istream &is);
 };
 
@@ -84,8 +85,8 @@ struct DigParams
        u16 wear;
        std::string main_group;
 
-       DigParams(bool a_diggable=false, float a_time=0, u16 a_wear=0,
-                       std::string a_main_group=""):
+       DigParams(bool a_diggable = false, float a_time = 0.0f, u16 a_wear = 0,
+                       const std::string &a_main_group = ""):
                diggable(a_diggable),
                time(a_time),
                wear(a_wear),
@@ -103,19 +104,17 @@ struct HitParams
 {
        s16 hp;
        s16 wear;
-       std::string main_group;
 
-       HitParams(s16 hp_=0, s16 wear_=0, std::string main_group_=""):
+       HitParams(s16 hp_=0, s16 wear_=0):
                hp(hp_),
-               wear(wear_),
-               main_group(main_group_)
+               wear(wear_)
        {}
 };
 
-HitParams getHitParams(const ItemGroupList &groups,
+HitParams getHitParams(const ItemGroupList &armor_groups,
                const ToolCapabilities *tp, float time_from_last_punch);
 
-HitParams getHitParams(const ItemGroupList &groups,
+HitParams getHitParams(const ItemGroupList &armor_groups,
                const ToolCapabilities *tp);
 
 struct PunchDamageResult
@@ -123,7 +122,6 @@ struct PunchDamageResult
        bool did_punch;
        int damage;
        int wear;
-       std::string main_group;
 
        PunchDamageResult():
                did_punch(false),