blob: a5ce07788b2274e36c819df9a82dfe64cbd0c9a0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#ifndef REZFILELIST_H
#define REZFILELIST_H
#include <rez.h>
#include <irrlicht.h>
#include <vector>
class RezFileList : public irr::io::IFileList
{
public:
RezFileList(const rez::ball &rez);
virtual irr::u32 getFileCount() const;
virtual const irr::io::path &getFileName(irr::u32 index) const;
virtual const irr::io::path &getFullFileName(irr::u32 index) const;
virtual irr::u32 getFileSize(irr::u32 index) const;
virtual irr::u32 getFileOffset(irr::u32 index) const;
virtual irr::u32 getID(irr::u32 index) const;
virtual bool isDirectory(irr::u32 index) const;
virtual irr::s32 findFile(const irr::io::path &filename, bool isFolder) const;
virtual const irr::io::path &getPath() const;
virtual irr::u32 addItem(const irr::io::path& fullPath, irr::u32 offset,
irr::u32 size, bool isDirectory, irr::u32 id);
virtual void sort();
protected:
const rez::ball &rez;
private:
irr::u32 getFileCount(const rez::dir &dir) const;
int findFile(const irr::io::path &filename, bool isFolder,
const rez::dir::direntry *entry) const;
mutable std::vector<const rez::dir::direntry *> entries;
};
#endif
|