#ifndef RESOURCEFORK_H #define RESOURCEFORK_H #include #include #include "ResType.h" class Resource { ResType type; short id; std::string name; std::string data; int attr; public: Resource() {} Resource(ResType type, int id, std::string data, std::string name = "", int attr = 0) : type(type), id(id), name(name), data(data), attr(attr) {} const std::string& getData() const { return data; } inline ResType getType() const { return type; } inline int getID() const { return id; } inline ResRef getTypeAndID() const { return ResRef(type, id); } std::string getName() const { return name; } int getAttr() const { return attr; } }; class Fork { public: virtual void writeFork(std::ostream& out) const { } virtual ~Fork() {} }; class Resources : public Fork { public: std::map resources; Resources() {} Resources(std::istream& in); void writeFork(std::ostream& out) const; void addResource(Resource res) { resources[res.getTypeAndID()] = res; } void addResources(const Resources& res); unsigned countResources() const { return resources.size(); } }; #endif // RESOURCEFORK_H