Update README.md
[tar-legacy.git] / MCDV / generic.hpp
1 #pragma once
2 #include <vector>
3
4 namespace bsp {
5 #pragma pack(push, 1)
6 struct lumpHeader
7 {
8 int lumpOffset;
9 int lumpLength;
10 int version;
11 char fourCC[4];
12 };
13 #pragma pack(pop)
14
15 /* Reads back a vector of lumps, can be used for basic lump types */
16 template<typename T>
17 std::vector<T> readLumpGeneric(std::ifstream* reader, bsp::lumpHeader lumpinfo)
18 {
19 //Calculate lump count
20 int numData = lumpinfo.lumpLength / sizeof(T);
21 std::vector<T> ret;
22
23 //Jump to that position
24 reader->seekg(lumpinfo.lumpOffset);
25 for (int i = 0; i < numData; i++) {
26 T var;
27 reader->read((char*)&var, sizeof(var));
28 ret.push_back(var);
29 }
30
31 return ret;
32 }
33 }