Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
loadlib.h
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#ifndef LOAD_LIB_H
7
#define LOAD_LIB_H
8
9
#include "StormLib.h"
10
#include <map>
11
#include <string>
12
13
#ifdef _WIN32
14
typedef
__int64
int64
;
15
typedef
__int32
int32
;
16
typedef
__int16
int16
;
17
typedef
__int8
int8
;
18
typedef
unsigned
__int64
uint64
;
19
typedef
unsigned
__int32
uint32
;
20
typedef
unsigned
__int16
uint16
;
21
typedef
unsigned
__int8
uint8
;
22
#else
23
#include <stdint.h>
24
#ifndef uint64_t
25
#ifdef __linux__
26
#include <linux/types.h>
27
#endif
28
#endif
29
typedef
int64_t
int64
;
30
typedef
int32_t
int32
;
31
typedef
int16_t
int16
;
32
typedef
int8_t
int8
;
33
typedef
uint64_t
uint64
;
34
typedef
uint32_t
uint32
;
35
typedef
uint16_t
uint16
;
36
typedef
uint8_t
uint8
;
37
#endif
38
39
#define FILE_FORMAT_VERSION 18
40
41
#pragma pack(push, 1)
42
43
union
u_map_fcc
44
{
45
char
fcc_txt
[4];
46
uint32
fcc
;
47
};
48
49
//
50
// File version chunk
51
//
52
struct
file_MVER
53
{
54
union
{
55
uint32
fcc
;
56
char
fcc_txt
[4];
57
};
58
uint32
size
;
59
uint32
ver
;
60
};
61
62
class
FileChunk
63
{
64
public
:
65
~FileChunk
();
66
67
uint8
*
data
;
68
uint32
size
;
69
70
template
<
class
T>
71
T*
As
() {
return
(T*)
data
; }
72
void
parseSubChunks
();
73
std::multimap<std::string, FileChunk*>
subchunks
;
74
FileChunk
*
GetSubChunk
(std::string
const
& name);
75
};
76
77
class
ChunkedFile
{
78
public
:
79
uint8
*
data
;
80
uint32
data_size
;
81
uint8
*
GetData
() {
return
data
;}
82
uint32
GetDataSize
() {
return
data_size
;}
83
84
ChunkedFile
();
85
virtual
~ChunkedFile
();
86
bool
prepareLoadedData
();
87
bool
loadFile
(HANDLE mpq,
char
*filename,
bool
log =
true
);
88
void
free
();
89
90
void
parseChunks
();
91
std::multimap<std::string, FileChunk*>
chunks
;
92
FileChunk
*
GetChunk
(std::string
const
& name);
93
};
94
95
#pragma pack(pop)
96
97
#endif
int32
std::int32_t int32
Definition
Define.h:73
uint8
std::uint8_t uint8
Definition
Define.h:79
uint32
std::uint32_t uint32
Definition
Define.h:77
int8
std::int8_t int8
Definition
Define.h:75
uint64
std::uint64_t uint64
Definition
Define.h:76
int64
std::int64_t int64
Definition
Define.h:72
uint16
std::uint16_t uint16
Definition
Define.h:78
int16
std::int16_t int16
Definition
Define.h:74
ChunkedFile::free
void free()
Definition
loadlib.cpp:66
ChunkedFile::loadFile
bool loadFile(HANDLE mpq, char *filename, bool log=true)
Definition
loadlib.cpp:24
ChunkedFile::~ChunkedFile
virtual ~ChunkedFile()
Definition
loadlib.cpp:19
ChunkedFile::GetChunk
FileChunk * GetChunk(std::string const &name)
Definition
loadlib.cpp:122
ChunkedFile::data
uint8 * data
Definition
loadlib.h:79
ChunkedFile::parseChunks
void parseChunks()
Definition
loadlib.cpp:96
ChunkedFile::chunks
std::multimap< std::string, FileChunk * > chunks
Definition
loadlib.h:91
ChunkedFile::GetDataSize
uint32 GetDataSize()
Definition
loadlib.h:82
ChunkedFile::GetData
uint8 * GetData()
Definition
loadlib.h:81
ChunkedFile::ChunkedFile
ChunkedFile()
Definition
loadlib.cpp:13
ChunkedFile::prepareLoadedData
bool prepareLoadedData()
Definition
loadlib.cpp:51
ChunkedFile::data_size
uint32 data_size
Definition
loadlib.h:80
FileChunk
Definition
loadlib.h:63
FileChunk::~FileChunk
~FileChunk()
Definition
loadlib.cpp:131
FileChunk::size
uint32 size
Definition
loadlib.h:68
FileChunk::parseSubChunks
void parseSubChunks()
Definition
loadlib.cpp:139
FileChunk::data
uint8 * data
Definition
loadlib.h:67
FileChunk::As
T * As()
Definition
loadlib.h:71
FileChunk::subchunks
std::multimap< std::string, FileChunk * > subchunks
Definition
loadlib.h:73
FileChunk::GetSubChunk
FileChunk * GetSubChunk(std::string const &name)
Definition
loadlib.cpp:165
uint8
uint8_t uint8
Definition
loadlib.h:36
uint32
uint32_t uint32
Definition
loadlib.h:34
file_MVER
Definition
loadlib.h:53
file_MVER::size
uint32 size
Definition
loadlib.h:58
file_MVER::fcc_txt
char fcc_txt[4]
Definition
loadlib.h:56
file_MVER::ver
uint32 ver
Definition
loadlib.h:59
file_MVER::fcc
uint32 fcc
Definition
loadlib.h:55
u_map_fcc
Definition
loadlib.h:44
u_map_fcc::fcc
uint32 fcc
Definition
loadlib.h:46
u_map_fcc::fcc_txt
char fcc_txt[4]
Definition
loadlib.h:45
src
tools
map_extractor
loadlib
loadlib.h
Generated on
for Project SkyFire Core by
1.17.0