void TMap::init( Host * pH ) { areas.clear(); int s_areas = 0; QMap<int,int> s_area_exits; buildAreas(); QMapIterator<int, TArea *> it( areas ); while( it.hasNext() ) { it.next(); int id = it.key(); // area mit raeumen fuellen QMapIterator<int, TRoom *> it2( rooms ); while( it2.hasNext() ) { it2.next(); int id2 = it2.key(); if( rooms[id2]->area == id ) { areas[id]->rooms.push_back(id2); } } areas[id]->ausgaengeBestimmen(); s_areas++; s_area_exits[areas[id]->exits.size()]++; it.value()->calcSpan(); } auditRooms(); qDebug()<<"statistics: areas:"<<s_areas; qDebug()<<"area exit stats:" <<s_area_exits; }
void TRoomDB::initAreasForOldMaps() { buildAreas(); // area mit raeumen fuellen QMapIterator<int, TRoom *> it( rooms ); while( it.hasNext() ) { it.next(); int roomID = it.key(); int areaID = rooms[roomID]->getArea(); if( areas.contains(areaID)) areas[areaID]->rooms.push_back(roomID); } QMapIterator<int, TArea *> it2( areas ); while( it2.hasNext() ) { it2.next(); TArea * pA = it2.value(); pA->ausgaengeBestimmen(); pA->calcSpan(); } }