#ifndef GAME_EDITOR_AUTO_MAP_H #define GAME_EDITOR_AUTO_MAP_H #include class CAutoMapper { struct CIndexInfo { int m_ID; int m_Flag; bool m_TestFlag; }; struct CPosRule { int m_X; int m_Y; int m_Value; array m_aIndexList; enum { NORULE = 0, INDEX, NOTINDEX }; }; struct CIndexRule { int m_ID; array m_aRules; int m_Flag; float m_RandomProbability; bool m_DefaultRule; bool m_SkipEmpty; bool m_SkipFull; }; struct CRun { array m_aIndexRules; bool m_AutomapCopy; }; struct CConfiguration { array m_aRuns; char m_aName[128]; int m_StartX; int m_StartY; int m_EndX; int m_EndY; }; public: CAutoMapper(class CEditor *pEditor); 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_lConfigs.size(); } const char *GetConfigName(int Index); bool IsLoaded() const { return m_FileLoaded; } private: array m_lConfigs; class CEditor *m_pEditor; bool m_FileLoaded; }; #endif