int entityPopulate (char entityArray[MAP_SIZE][MAP_SIZE], entity entityInfo[], char mapArray[MAP_SIZE][MAP_SIZE], int playerLevel, int roomWidth, int roomHeight) { placePlayer(entityArray, entityInfo, mapArray, roomWidth, roomHeight); int monNumber = 1; int monMax = randint(5)+1; //has to be at least one monster while (monNumber <= monMax) { generateMonster(entityArray, entityInfo, playerLevel, monNumber); placeMonster (entityArray, entityInfo, mapArray, roomWidth, roomHeight, monNumber); monNumber++; } return monMax; }
void Map::generateMap(int level){ //parse right level int maxLevel = stoi(GameConfig::getConfig("maxLevel")); level = level % maxLevel; if (level == 0) level = maxLevel-1; //generate width and height this->_mapHeight = rand() % stoi(GameConfig::getConfig("maxHeight")) + stoi(GameConfig::getConfig("minHeight")); this->_mapWidth = rand() % stoi(GameConfig::getConfig("maxWidth")) + stoi(GameConfig::getConfig("minWidth")); //create objects map _map.resize(_mapWidth); for (int i = 0; i < _mapWidth; i++) _map[i].resize(_mapHeight, NULL); //create objects //do{ generateMapBlock(maxLevel - level); //} while (checkConnectedMap() == true); generateMonster(maxLevel - level); generateArtifact(maxLevel - level); generateStartEnd(); }