void addBoardToLists() { string instr = seed == 0 ? "" : seed.ToString(), outstr; // int randI; List <int> randRoomList = new List <int>(); List <string> seedToUse = new List <string>(); if (roomSizeMax[0] - roomSizeCount[0] < 1 && roomSizeMax[1] - roomSizeCount[1] < 1 && roomSizeMax[2] - roomSizeCount[2] < 1) { entranceQ.Clear(); return; } if (rooms.Count < 1) { int i; i = Random.Range(1, 3); randRoomList.Add(i); } else { if (roomSizeMax[0] - roomSizeCount[0] > 0) { randRoomList.Add(0); } if (roomSizeMax[1] - roomSizeCount[1] > 0) { randRoomList.Add(1); } if (roomSizeMax[2] - roomSizeCount[2] > 0) { randRoomList.Add(2); } } if (randRoomList.Count == 0) { entranceQ.Clear(); ; return; } int iRand; iRand = Random.Range(0, randRoomList.Count); mapGenerator.recieveRoomSettings(randRoomList[iRand]); Room tempRoom = new Room(mapGenerator.GenerateMapForOther(instr, out outstr), 1, 1, 1, 1); bool isIntersecting = false; if (rooms.Count > 0) { Entrance tempEntrance = entranceQ.Dequeue(); joinRooms(tempEntrance.room, tempRoom, tempEntrance.side); int i = 0; do { isIntersecting = (DoRoomsIntersect(tempRoom, rooms[i]) || DoRoomsIntersect(rooms[i], tempRoom)); i++; } while (isIntersecting != true && i < rooms.Count); if (!isIntersecting) { tempRoom.ActuallyDrawLine(); tempEntrance.room.ActuallyDrawLine(); } } if (!isIntersecting) { boardHolder.Add(new GameObject("Board" + boardHolder.Count).transform); tempRoom.index = rooms.Count; rooms.Add(tempRoom); //rooms[rooms.Count].index = rooms.Count - 1; roomSizeCount[randRoomList[iRand]]++; if (rooms[rooms.Count - 1].rows * rooms[rooms.Count - 1].columns > 150)//room is atleast medium size { entranceQ.Enqueue(new Entrance(rooms[rooms.Count - 1], 0, new Vector3(0, 0, 0))); entranceQ.Enqueue(new Entrance(rooms[rooms.Count - 1], 1, new Vector3(0, 0, 0))); entranceQ.Enqueue(new Entrance(rooms[rooms.Count - 1], 2, new Vector3(0, 0, 0))); entranceQ.Enqueue(new Entrance(rooms[rooms.Count - 1], 3, new Vector3(0, 0, 0))); } seed += outstr.GetHashCode(); } }