]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/tooldef.h
Fix active_object_count and active_object_count_wider not getting updated between...
[dragonfireclient.git] / src / tooldef.h
index 8aa6abea41cde03e87d3cadb55daae681cb7f33a..9741d7088719e22400851b11c5e3874d71f354f5 100644 (file)
@@ -21,10 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #define TOOLDEF_HEADER
 
 #include <string>
-
-/*
-       TODO: Rename to tooldef.h
-*/
+#include <iostream>
 
 struct ToolDiggingProperties
 {
@@ -40,19 +37,9 @@ struct ToolDiggingProperties
        float dd_crumbliness;
        float dd_cuttability;
 
-       ToolDiggingProperties(float a=0.75, float b=0, float c=0, float d=0, float e=0,
-                       float f=50, float g=0, float h=0, float i=0, float j=0):
-               basetime(a),
-               dt_weight(b),
-               dt_crackiness(c),
-               dt_crumbliness(d),
-               dt_cuttability(e),
-               basedurability(f),
-               dd_weight(g),
-               dd_crackiness(h),
-               dd_crumbliness(i),
-               dd_cuttability(j)
-       {}
+       ToolDiggingProperties(
+                       float a=0.75, float b=0, float c=0, float d=0, float e=0,
+                       float f=50, float g=0, float h=0, float i=0, float j=0);
 };
 
 struct ToolDefinition
@@ -66,6 +53,10 @@ struct ToolDefinition
                imagename(imagename_),
                properties(properties_)
        {}
+       
+       std::string dump();
+       void serialize(std::ostream &os);
+       void deSerialize(std::istream &is);
 };
 
 class IToolDefManager
@@ -77,6 +68,8 @@ class IToolDefManager
        virtual std::string getImagename(const std::string &toolname) const =0;
        virtual ToolDiggingProperties getDiggingProperties(
                        const std::string &toolname) const =0;
+       
+       virtual void serialize(std::ostream &os)=0;
 };
 
 class IWritableToolDefManager : public IToolDefManager
@@ -90,6 +83,10 @@ class IWritableToolDefManager : public IToolDefManager
                        const std::string &toolname) const =0;
                        
        virtual bool registerTool(std::string toolname, const ToolDefinition &def)=0;
+       virtual void clear()=0;
+
+       virtual void serialize(std::ostream &os)=0;
+       virtual void deSerialize(std::istream &is)=0;
 };
 
 IWritableToolDefManager* createToolDefManager();