PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
archive.h
1#pragma once
2
3#include <cstdint>
4#include <cstdio>
5#include <string>
6#include <unordered_map>
7#include <vector>
8
9namespace pixelbullet
10{
11class Filesystem;
12class VirtualPath;
13
15{
16 uint64_t offset;
17 uint64_t compressed_size;
18 uint64_t uncompressed_size;
19};
20
22{
23public:
24 Archive();
25 ~Archive();
26
28 bool Open(const Filesystem& filesystem, const VirtualPath& archivePath);
29
32 std::vector<uint8_t> GetAsset(const std::string& assetName);
33
34private:
36 bool ReadIndex();
37
38private:
39 FILE* file_;
40 std::unordered_map<std::string, FileEntry> index_;
41};
42} // namespace pixelbullet
Definition archive.h:22
bool Open(const Filesystem &filesystem, const VirtualPath &archivePath)
Opens the archive at the given path and reads the index.
Definition archive.cc:25
std::vector< uint8_t > GetAsset(const std::string &assetName)
Definition archive.cc:91
Definition filesystem.h:16
Definition virtual_path.h:10
Definition archive.h:15