ddnet/src/game/editor/auto_map.h

76 lines
1.3 KiB
C
Raw Normal View History

2011-07-18 08:34:30 +00:00
#ifndef GAME_EDITOR_AUTO_MAP_H
#define GAME_EDITOR_AUTO_MAP_H
#include <vector>
class CAutoMapper
{
2015-02-19 21:54:47 +00:00
struct CIndexInfo
{
int m_ID;
int m_Flag;
2018-08-09 21:45:04 +00:00
bool m_TestFlag;
2015-02-19 21:54:47 +00:00
};
struct CPosRule
{
int m_X;
int m_Y;
int m_Value;
std::vector<CIndexInfo> m_vIndexList;
2011-08-11 08:59:14 +00:00
enum
{
NORULE = 0,
2015-02-19 21:54:47 +00:00
INDEX,
NOTINDEX
};
};
struct CIndexRule
{
int m_ID;
std::vector<CPosRule> m_vRules;
int m_Flag;
float m_RandomProbability;
bool m_DefaultRule;
2018-08-11 01:01:25 +00:00
bool m_SkipEmpty;
bool m_SkipFull;
};
2015-02-19 23:15:09 +00:00
struct CRun
{
std::vector<CIndexRule> m_vIndexRules;
2018-07-19 15:09:29 +00:00
bool m_AutomapCopy;
2015-02-19 23:15:09 +00:00
};
struct CConfiguration
{
std::vector<CRun> m_vRuns;
char m_aName[128];
int m_StartX;
int m_StartY;
int m_EndX;
int m_EndY;
};
2011-08-11 08:59:14 +00:00
public:
CAutoMapper(class CEditor *pEditor);
2011-08-11 08:59:14 +00:00
void Load(const char *pTileName);
void ProceedLocalized(class CLayerTiles *pLayer, int ConfigID, int Seed = 0, int X = 0, int Y = 0, int Width = -1, int Height = -1);
void Proceed(class CLayerTiles *pLayer, int ConfigID, int Seed = 0, int SeedOffsetX = 0, int SeedOffsetY = 0);
int ConfigNamesNum() const { return m_vConfigs.size(); }
const char *GetConfigName(int Index);
2011-08-11 08:59:14 +00:00
2017-07-09 08:27:58 +00:00
bool IsLoaded() const { return m_FileLoaded; }
private:
std::vector<CConfiguration> m_vConfigs;
class CEditor *m_pEditor;
bool m_FileLoaded;
};
#endif