blob: c0931d54b09d95935130065a6c29b9064c63bac9 (
plain)
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
36
37
38
39
40
41
42
43
44
45
46
|
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
/* If you are missing that file, acquire a complete release at teeworlds.com. */
#include <base/system.h>
#include <engine/map.h>
#include <engine/storage.h>
#include "datafile.h"
class CMap : public IEngineMap
{
CDataFileReader m_DataFile;
public:
CMap() {}
virtual void *GetData(int Index) { return m_DataFile.GetData(Index); }
virtual void *GetDataSwapped(int Index) { return m_DataFile.GetDataSwapped(Index); }
virtual void UnloadData(int Index) { m_DataFile.UnloadData(Index); }
virtual void *GetItem(int Index, int *pType, int *pId) { return m_DataFile.GetItem(Index, pType, pId); }
virtual void GetType(int Type, int *pStart, int *pNum) { m_DataFile.GetType(Type, pStart, pNum); }
virtual void *FindItem(int Type, int Id) { return m_DataFile.FindItem(Type, Id); }
virtual int NumItems() { return m_DataFile.NumItems(); }
virtual void Unload()
{
m_DataFile.Close();
}
virtual bool Load(const char *pMapName)
{
IStorage *pStorage = Kernel()->RequestInterface<IStorage>();
if(!pStorage)
return false;
return m_DataFile.Open(pStorage, pMapName, IStorage::TYPE_ALL);
}
virtual bool IsLoaded()
{
return m_DataFile.IsOpen();
}
virtual unsigned Crc()
{
return m_DataFile.Crc();
}
};
extern IEngineMap *CreateEngineMap() { return new CMap; }
|