Я думаю, MapGenerator
не обязательно должен быть классом.
Вероятно, cmdGenerateHeightMap
может быть автономной функцией вместо функции-члена.
В качестве альтернативы, чтобы упростить доступ к двумразмерный массив, я бы предложил создать выделенный класс, например TwoDimArray
.
Как насчет вызова cmdGenerateHeightMap
из конструктора MapGrid
, как показано ниже:
struct TwoDimArray {
int MAP_WIDTH;
Square *worldMap;
TwoDimArray( Square* m, int w ) : worldMap( m ), MAP_WIDTH( w ) {}
Square* operator[]( int i ) const { return worldMap + MAP_WIDTH * i; }
};
void cmdGenerateHeightMap( Square *myMap, int maxHeight, int maxWidth )
{
TwoDimArray worldMap( myMap, maxWidth );
...
worldMap[i][j].decraseHeight();
...
}
class MapGrid {
...
MapGrid() {
...
cmdGenerateHeightMap( worldMap[0], MAP_HEIGHT, MAP_WIDTH );
}
};
Надеюсь, этопомогает