//
// Created by Иван_Архипов on 07.11.2017.
//

#ifndef LOTRO_DAT_PATCHER_SUBDIRECTORY_H
#define LOTRO_DAT_PATCHER_SUBDIRECTORY_H

#include <vector>
#include <map>
#include <unordered_map>

extern "C++"
{
namespace LOTRO_DAT
{
    class DatFile;
    class DatException;
    class BinaryData;
    class Subfile;

    class SubDirectory
    {
    public:
        SubDirectory();
        SubDirectory(long long offset, DatFile *dat, long long max_subdirs = 63);
        void MakeDictionary(std::unordered_map<long long, Subfile*> &dict);

    private:
        void MakeSubDirectories();
        void MakeSubFiles();

        DatFile *dat_;
        long long offset_;
        long long max_subdirs_;
        std::vector<SubDirectory> subdirs_;
        std::vector<Subfile> subfiles_;
    };
}
};

#endif //LOTRO_DAT_PATCHER_SUBDIRECTORY_H