[8587] MaNGOS 0.14 release.
[getmangos.git] / contrib / extractor / loadlib / loadlib.cpp
blobed5bd9acb71edf3cb05ad9daf72d1f9b17a2668b
1 #define _CRT_SECURE_NO_DEPRECATE
3 #include "loadlib.h"
4 #include "../mpq_libmpq.h"
6 class MPQFile;
8 FileLoader::FileLoader()
10 data = 0;
11 data_size = 0;
12 version = 0;
15 FileLoader::~FileLoader()
17 free();
20 bool FileLoader::loadFile(char *filename, bool log)
22 free();
23 MPQFile mf(filename);
24 if(mf.isEof())
26 if (log)
27 printf("No such file %s\n", filename);
28 return false;
31 data_size = mf.getSize();
33 data = new uint8 [data_size];
34 if (data)
36 mf.read(data, data_size);
37 mf.close();
38 if (prepareLoadedData())
39 return true;
41 printf("Error loading %s", filename);
42 mf.close();
43 free();
44 return false;
47 bool FileLoader::prepareLoadedData()
49 // Check version
50 version = (file_MVER *) data;
51 if (version->fcc != 'MVER')
52 return false;
53 if (version->ver != FILE_FORMAT_VERSION)
54 return false;
55 return true;
58 void FileLoader::free()
60 if (data) delete[] data;
61 data = 0;
62 data_size = 0;
63 version = 0;