DDraceNetwork 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_MAP_H
4#define ENGINE_MAP_H
5
6#include <base/hash.h>
7#include <base/types.h>
8
9#include <memory>
10
11class IStorage;
12
13enum
14{
16};
17
18class IMap
19{
20public:
21 virtual ~IMap() = default;
22
23 virtual int GetDataSize(int Index) const = 0;
24 virtual void *GetData(int Index) = 0;
25 virtual void *GetDataSwapped(int Index) = 0;
26 virtual const char *GetDataString(int Index) = 0;
27 virtual void UnloadData(int Index) = 0;
28 virtual int NumData() const = 0;
29
30 virtual int GetItemSize(int Index) = 0;
31 virtual void *GetItem(int Index, int *pType = nullptr, int *pId = nullptr) = 0;
32 virtual void GetType(int Type, int *pStart, int *pNum) = 0;
33 virtual int FindItemIndex(int Type, int Id) = 0;
34 virtual void *FindItem(int Type, int Id) = 0;
35 virtual int NumItems() const = 0;
36
37 [[nodiscard]] virtual bool Load(const char *pFullName, IStorage *pStorage, const char *pPath, int StorageType) = 0;
38 [[nodiscard]] virtual bool Load(IStorage *pStorage, const char *pPath, int StorageType) = 0;
39 virtual void Unload() = 0;
40 virtual bool IsLoaded() const = 0;
41 virtual IOHANDLE File() const = 0;
42
48 virtual const char *FullName() const = 0;
54 virtual const char *BaseName() const = 0;
60 virtual const char *Path() const = 0;
61 virtual SHA256_DIGEST Sha256() const = 0;
62 virtual unsigned Crc() const = 0;
63 virtual int Size() const = 0;
64};
65
66extern std::unique_ptr<IMap> CreateMap();
67
68#endif
Definition map.h:19
virtual int NumData() const =0
virtual void * GetItem(int Index, int *pType=nullptr, int *pId=nullptr)=0
virtual bool IsLoaded() const =0
virtual int GetItemSize(int Index)=0
virtual const char * GetDataString(int Index)=0
virtual void * GetData(int Index)=0
virtual void * GetDataSwapped(int Index)=0
virtual IOHANDLE File() const =0
virtual const char * FullName() const =0
virtual int GetDataSize(int Index) const =0
virtual void GetType(int Type, int *pStart, int *pNum)=0
virtual int NumItems() const =0
virtual void Unload()=0
virtual void * FindItem(int Type, int Id)=0
virtual bool Load(IStorage *pStorage, const char *pPath, int StorageType)=0
virtual SHA256_DIGEST Sha256() const =0
virtual void UnloadData(int Index)=0
virtual const char * Path() const =0
virtual int FindItemIndex(int Type, int Id)=0
virtual const char * BaseName() const =0
virtual bool Load(const char *pFullName, IStorage *pStorage, const char *pPath, int StorageType)=0
virtual int Size() const =0
virtual ~IMap()=default
virtual unsigned Crc() const =0
Definition storage.h:21
std::unique_ptr< IMap > CreateMap()
Definition map.cpp:205
@ MAX_MAP_LENGTH
Definition map.h:15
void * IOHANDLE
Definition logger.h:12
Definition hash.h:15