#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]; }; public: CAutoMapper(class CEditor *pEditor); void Load(const char* pTileName); void Proceed(class CLayerTiles *pLayer, int ConfigID, int Seed=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