bool TMap::serialize( QDataStream & ofs ) { version = CURRENT_MAP_VERSION; ofs << version; ofs << envColors; ofs << mpRoomDB->getAreaNamesMap(); ofs << customEnvColors; ofs << mpRoomDB->hashTable; ofs << mpRoomDB->getAreaMap().size(); // serialize area table QMapIterator<int, TArea *> itAreaList(mpRoomDB->getAreaMap()); while( itAreaList.hasNext() ) { itAreaList.next(); int areaId = itAreaList.key(); TArea * pA = itAreaList.value(); ofs << areaId; ofs << pA->rooms; ofs << pA->ebenen; ofs << pA->exits; ofs << pA->gridMode; ofs << pA->max_x; ofs << pA->max_y; ofs << pA->max_z; ofs << pA->min_x; ofs << pA->min_y; ofs << pA->min_z; ofs << pA->span; ofs << pA->xmaxEbene; ofs << pA->ymaxEbene; ofs << pA->zmaxEbene; ofs << pA->xminEbene; ofs << pA->yminEbene; ofs << pA->zminEbene; ofs << pA->pos; ofs << pA->isZone; ofs << pA->zoneAreaRef; } if (mRoomId) ofs << mRoomId; else{ mRoomId = 0; ofs << mRoomId; } ofs << mapLabels.size(); //anzahl der areas QMapIterator<int, QMap<int, TMapLabel> > itL1(mapLabels); while( itL1.hasNext() ) { itL1.next(); int i = itL1.key(); ofs << itL1.value().size();//anzahl der labels pro area ofs << itL1.key(); //area id QMapIterator<int, TMapLabel> itL2(mapLabels[i]); while( itL2.hasNext() ) { itL2.next(); // N/U: int ii = itL2.key(); ofs << itL2.key();//label ID TMapLabel label = itL2.value(); ofs << label.pos; ofs << label.pointer; ofs << label.size; ofs << label.text; ofs << label.fgColor; ofs << label.bgColor; ofs << label.pix; ofs << label.noScaling; ofs << label.showOnTop; } } QMapIterator<int, TRoom *> it( mpRoomDB->getRoomMap() ); while( it.hasNext() ) { it.next(); // N/U: int i = it.key(); TRoom * pR = it.value(); ofs << pR->getId(); ofs << pR->getAreaId(); ofs << pR->x; ofs << pR->y; ofs << pR->z; ofs << pR->getNorth(); ofs << pR->getNortheast(); ofs << pR->getEast(); ofs << pR->getSoutheast(); ofs << pR->getSouth(); ofs << pR->getSouthwest(); ofs << pR->getWest(); ofs << pR->getNorthwest(); ofs << pR->getUp(); ofs << pR->getDown(); ofs << pR->getIn(); ofs << pR->getOut(); ofs << pR->environment; ofs << pR->getWeight(); // ofs << rooms[i]->xRot; // ofs << rooms[i]->yRot; // ofs << rooms[i]->zRot; // ofs << rooms[i]->zoom; ofs << pR->name; ofs << pR->isLocked; ofs << pR->getOtherMap(); ofs << pR->c; ofs << pR->userData; ofs << pR->customLines; ofs << pR->customLinesArrow; ofs << pR->customLinesColor; ofs << pR->customLinesStyle; ofs << pR->exitLocks; ofs << pR->exitStubs; ofs << pR->getExitWeights(); ofs << pR->doors; } return true; }
bool TMap::serialize( QDataStream & ofs ) { int version = 12; ofs << version; ofs << envColors; ofs << areaNamesMap; ofs << customEnvColors; ofs << hashTable; //ofs << mapLabels; if (mRoomId) ofs << mRoomId; else{ mRoomId = 0; ofs << mRoomId; } ofs << mapLabels.size(); //anzahl der areas QMapIterator<int, QMap<int, TMapLabel> > itL1(mapLabels); while( itL1.hasNext() ) { itL1.next(); int i = itL1.key(); ofs << itL1.value().size();//anzahl der labels pro area ofs << itL1.key(); //area id QMapIterator<int, TMapLabel> itL2(mapLabels[i]); while( itL2.hasNext() ) { itL2.next(); int ii = itL2.key(); ofs << itL2.key();//label ID TMapLabel label = itL2.value(); ofs << label.pos; ofs << label.pointer; ofs << label.size; ofs << label.text; ofs << label.fgColor; ofs << label.bgColor; ofs << label.pix; } } QMapIterator<int, TRoom *> it( rooms ); while( it.hasNext() ) { it.next(); int i = it.key(); ofs << rooms[i]->id; ofs << rooms[i]->area; ofs << rooms[i]->x; ofs << rooms[i]->y; ofs << rooms[i]->z; ofs << rooms[i]->north; ofs << rooms[i]->northeast; ofs << rooms[i]->east; ofs << rooms[i]->southeast; ofs << rooms[i]->south; ofs << rooms[i]->southwest; ofs << rooms[i]->west; ofs << rooms[i]->northwest; ofs << rooms[i]->up; ofs << rooms[i]->down; ofs << rooms[i]->in; ofs << rooms[i]->out; ofs << rooms[i]->environment; ofs << rooms[i]->weight; // ofs << rooms[i]->xRot; // ofs << rooms[i]->yRot; // ofs << rooms[i]->zRot; // ofs << rooms[i]->zoom; ofs << rooms[i]->name; ofs << rooms[i]->isLocked; ofs << rooms[i]->other; ofs << rooms[i]->c; ofs << rooms[i]->userData; ofs << rooms[i]->customLines; ofs << rooms[i]->customLinesArrow; ofs << rooms[i]->customLinesColor; ofs << rooms[i]->customLinesStyle; ofs << rooms[i]->exitLocks; } return true; }