DDNet documentation
Loading...
Searching...
No Matches
map.h
Go to the documentation of this file.
1/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
2/* If you are missing that file, acquire a complete release at teeworlds.com. */
3#ifndef ENGINE_SHARED_MAP_H
4#define ENGINE_SHARED_MAP_H
5
6#include "datafile.h"
7
8#include <base/types.h>
9
10#include <engine/map.h>
11
12#include <set>
13
16
17class CMap : public IMap
18{
20
21public:
23 ~CMap() override;
24
25 int GetDataSize(int Index) const override;
26 void *GetData(int Index) override;
27 void *GetDataSwapped(int Index) override;
28 const char *GetDataString(int Index) override;
29 void UnloadData(int Index) override;
30 int NumData() const override;
31
32 int GetItemSize(int Index) override;
33 void *GetItem(int Index, int *pType = nullptr, int *pId = nullptr, CUuid *pUuid = nullptr) override;
34 void GetType(int Type, int *pStart, int *pNum) override;
35 int FindItemIndex(int Type, int Id) override;
36 void *FindItem(int Type, int Id) override;
37 int NumItems() const override;
38
39 [[nodiscard]] bool Load(const char *pFullName, IStorage *pStorage, const char *pPath, int StorageType) override;
40 [[nodiscard]] bool Load(IStorage *pStorage, const char *pPath, int StorageType) override;
41 void Unload() override;
42 bool IsLoaded() const override;
43 IOHANDLE File() const override;
44
45 const char *FullName() const override;
46 const char *BaseName() const override;
47 const char *Path() const override;
48 SHA256_DIGEST Sha256() const override;
49 unsigned Crc() const override;
50 int Size() const override;
51
52private:
53 static bool ValidateMapVersion(CDataFileReader &NewDataFile);
54 static bool ExtractTiles(class CTile *pDest, size_t DestSize, const class CTile *pSrc, size_t SrcSize);
55 bool UpgradeAndValidateTilesLayerItem(CDataFileReader &NewDataFile, int GroupIndex, int LayerIndex,
56 CMapItemLayerTilemap_v2 *pLayerTilemapBase, int LayerItemIndex, size_t LayerItemSize);
57 bool ValidateAndUnpackTilesLayerData(CDataFileReader &NewDataFile, int GroupIndex, int LayerIndex, const CMapItemLayerTilemap *pLayerTilemap,
58 const CMapItemLayerTilemap &GameLayer, std::set<int> &UsedDataIndices);
59};
60
61#endif
Definition datafile.h:34
Definition mapitems.h:429
Definition mapitems.h:468
int GetItemSize(int Index) override
Definition map.cpp:53
static bool ValidateMapVersion(CDataFileReader &NewDataFile)
Definition map.cpp:255
static bool ExtractTiles(class CTile *pDest, size_t DestSize, const class CTile *pSrc, size_t SrcSize)
Definition map.cpp:278
const char * BaseName() const override
Definition map.cpp:230
int NumData() const override
Definition map.cpp:48
int Size() const override
Definition map.cpp:250
bool IsLoaded() const override
Definition map.cpp:215
void Unload() override
Definition map.cpp:210
const char * Path() const override
Definition map.cpp:235
IOHANDLE File() const override
Definition map.cpp:220
void * FindItem(int Type, int Id) override
Definition map.cpp:73
void * GetDataSwapped(int Index) override
Definition map.cpp:33
void * GetItem(int Index, int *pType=nullptr, int *pId=nullptr, CUuid *pUuid=nullptr) override
Definition map.cpp:58
const char * FullName() const override
Definition map.cpp:225
const char * GetDataString(int Index) override
Definition map.cpp:38
void * GetData(int Index) override
Definition map.cpp:28
int FindItemIndex(int Type, int Id) override
Definition map.cpp:68
int GetDataSize(int Index) const override
Definition map.cpp:23
void UnloadData(int Index) override
Definition map.cpp:43
SHA256_DIGEST Sha256() const override
Definition map.cpp:240
void GetType(int Type, int *pStart, int *pNum) override
Definition map.cpp:63
bool ValidateAndUnpackTilesLayerData(CDataFileReader &NewDataFile, int GroupIndex, int LayerIndex, const CMapItemLayerTilemap *pLayerTilemap, const CMapItemLayerTilemap &GameLayer, std::set< int > &UsedDataIndices)
Definition map.cpp:569
bool UpgradeAndValidateTilesLayerItem(CDataFileReader &NewDataFile, int GroupIndex, int LayerIndex, CMapItemLayerTilemap_v2 *pLayerTilemapBase, int LayerItemIndex, size_t LayerItemSize)
Definition map.cpp:456
bool Load(const char *pFullName, IStorage *pStorage, const char *pPath, int StorageType) override
Definition map.cpp:89
int NumItems() const override
Definition map.cpp:78
unsigned Crc() const override
Definition map.cpp:245
CDataFileReader m_DataFile
Definition map.h:19
Definition mapitems.h:351
Definition map.h:20
Definition storage.h:21
void * IOHANDLE
Definition logger.h:12
Definition uuid_manager.h:17
Definition hash.h:12