From cf0bd272aa95db9fe334c07ee9048234ea3f6fc3 Mon Sep 17 00:00:00 2001 From: VladimirMangos Date: Sat, 30 May 2009 04:06:36 +0400 Subject: [PATCH] [7913] Fixed vmap_assambler sources. Updated binary. * Fixed week ago added bugs into vmap code that break vmap_assambler sources work. Note: vmap_assambler binary not updated from nov 2008 until this commit and it has been correct working. * Add to vmap assambler process show output and add appropriate error messages output. * vmap_assambler binary updated. --- contrib/vmap_assembler/vmap_assembler.cpp | 58 +-- .../vmap_extract_assembler_bin/vmap_assembler.exe | Bin 293888 -> 295424 bytes src/shared/revision_nr.h | 2 +- src/shared/vmap/CoordModelMapping.cpp | 98 ++--- src/shared/vmap/TileAssembler.cpp | 462 +++++++++++---------- 5 files changed, 316 insertions(+), 304 deletions(-) rewrite contrib/vmap_extract_assembler_bin/vmap_assembler.exe (61%) diff --git a/contrib/vmap_assembler/vmap_assembler.cpp b/contrib/vmap_assembler/vmap_assembler.cpp index 233d4ba3c..7da98b599 100644 --- a/contrib/vmap_assembler/vmap_assembler.cpp +++ b/contrib/vmap_assembler/vmap_assembler.cpp @@ -78,41 +78,43 @@ bool readConfigFile(char *pConffile, VMAP::TileAssembler* pTa) //======================================================= int main(int argc, char* argv[]) { - if(argc == 3 || argc == 4) + if(argc != 3 && argc != 4) { - bool ok = true; - char *src = argv[1]; - char *dest = argv[2]; - char *conffile = NULL; - if(argc >= 4) { - conffile = argv[3]; - } - VMAP::TileAssembler* ta = new VMAP::TileAssembler(std::string(src), std::string(dest)); - ta->setModelNameFilterMethod(modelNameFilter); + printf("\nusage: %s [config file name]\n", argv[0]); + return 1; + } - /* - All the names in the list are considered to be world maps or huge instances. - These maps will be spilt into tiles in the vmap assemble process - */ - if(conffile != NULL) { - ok = readConfigFile(conffile, ta); - if(!ok) { - printf("Can not open file config file: %s\n", conffile); - } - } - if(ok) { ok = ta->convertWorld(); } - if(ok) { - printf("Ok, all done\n"); - } else { - printf("exit with errors\n"); + char *src = argv[1]; + char *dest = argv[2]; + char *conffile = NULL; + if(argc >= 4) + conffile = argv[3]; + + VMAP::TileAssembler* ta = new VMAP::TileAssembler(std::string(src), std::string(dest)); + ta->setModelNameFilterMethod(modelNameFilter); + + /* + All the names in the list are considered to be world maps or huge instances. + These maps will be spilt into tiles in the vmap assemble process + */ + if(conffile != NULL) + { + if(!readConfigFile(conffile, ta)) + { + printf("Can not open file config file: %s\n", conffile); + delete ta; return 1; } - delete ta; } - else + + if(!ta->convertWorld()) { - printf("\nusage: %s [config file name]\n", argv[0]); + printf("exit with errors\n"); + delete ta; return 1; } + + delete ta; + printf("Ok, all done\n"); return 0; } diff --git a/contrib/vmap_extract_assembler_bin/vmap_assembler.exe b/contrib/vmap_extract_assembler_bin/vmap_assembler.exe dissimilarity index 61% index a6ef74dc086d0d0fade554ece7bf68143becfe7c..9c8b5f2d3fb38604766f1eeee3deae6807a88899 100644 GIT binary patch delta 79635 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 delta 77827 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 -1 && (iFilterMethod == NULL || (*iFilterMethod)(buffer))) + // this is ugly, but the format has no read delimiter and a space could be in the first part of the name + int nameStart = findPosChar(buffer, ' ', 2);// find the 2. space + if(nameStart > -1 && (iFilterMethod == NULL || (*iFilterMethod)(buffer))) + { + ++nameStart; + // find the 1. / (now a space only can be found at the end of the name) + int nameEnd = nameStart + findPosChar(&buffer[nameStart], '/', 1); + // find the 1. space (after the name) + nameEnd += findPosChar(&buffer[nameEnd], ' ', 1); + buffer[nameEnd] = 0; // terminate the name + + sscanf(buffer, "%d %d", &xpos, &ypos); + sscanf(&buffer[nameEnd+1], "%s %f %d", positionbuffer, &scale, &noVec); + unsigned int mapId = getMapIdFromFilename(std::string(&buffer[nameStart])); + if(!iMapIds.contains(mapId)) { - ++nameStart; - // find the 1. / (now a space only can be found at the end of the name) - int nameEnd = nameStart + findPosChar(&buffer[nameStart], '/', 1); - // find the 1. space (after the name) - nameEnd += findPosChar(&buffer[nameEnd], ' ', 1); - buffer[nameEnd] = 0; // terminate the name - - sscanf(buffer, "%d %d", &xpos, &ypos); - sscanf(&buffer[nameEnd+1], "%s %f %d", positionbuffer, &scale, &noVec); - unsigned int mapId = getMapIdFromFilename(std::string(&buffer[nameStart])); - if(!iMapIds.contains(mapId)) - { - iMapIds.append(mapId); - } - if(!isWorldAreaMap(mapId)) - { - xpos = 0; // store all files under the groupKey - ypos = 0; - } - - std::string key = CMappingEntry::getKeyString(mapId, xpos, ypos); - cMappingEntry = getCMappingEntry(key); - if(cMappingEntry == 0) - { - cMappingEntry = new CMappingEntry(mapId, xpos, ypos); - addCMappingEntry(cMappingEntry); - } - char namebuffer2[500]; - sprintf(namebuffer2, "%d %s#%s_%f", noVec, &buffer[nameStart], positionbuffer, scale); - cMappingEntry->addFilename(namebuffer2); - //break; + iMapIds.append(mapId); + printf("Coords for map %u...\n",mapId); } + if(!isWorldAreaMap(mapId)) + { + xpos = 0; // store all files under the groupKey + ypos = 0; + } + + std::string key = CMappingEntry::getKeyString(mapId, xpos, ypos); + cMappingEntry = getCMappingEntry(key); + if(cMappingEntry == 0) + { + cMappingEntry = new CMappingEntry(mapId, xpos, ypos); + addCMappingEntry(cMappingEntry); + } + char namebuffer2[500]; + sprintf(namebuffer2, "%d %s#%s_%f", noVec, &buffer[nameStart], positionbuffer, scale); + cMappingEntry->addFilename(namebuffer2); + //break; } - fclose(f); } - return result; + fclose(f); + return true; } //============================================================ diff --git a/src/shared/vmap/TileAssembler.cpp b/src/shared/vmap/TileAssembler.cpp index f3b0d1a0d..b8434a7ef 100644 --- a/src/shared/vmap/TileAssembler.cpp +++ b/src/shared/vmap/TileAssembler.cpp @@ -148,37 +148,41 @@ namespace VMAP # endif #endif - bool result = true; std::string fname = iSrcDir; fname.append("/"); fname.append("dir"); iCoordModelMapping->setModelNameFilterMethod(iFilterMethod); - iCoordModelMapping->readCoordinateMapping(fname); + + printf("Read coordinate mapping...\n"); + if(!iCoordModelMapping->readCoordinateMapping(fname)) + return false; Array mapIds = iCoordModelMapping->getMaps(); if(mapIds.size() == 0) { - result = false; + printf("Fatal error: empty map list!\n"); + return false; } - for(int i=0; i mc; @@ -188,15 +192,23 @@ namespace VMAP { sprintf(buffer, "%03u_%d_%d",mapId,y,x); // Let's flip x and y here dirname = std::string(buffer); + printf("%s...\n",dirname.c_str()); } else { sprintf(buffer, "%03u",mapId); dirname = std::string(buffer); + + // prevent spam for small maps + if(x==0 && y==0) + printf("%s...\n",dirname.c_str()); } - result = fillModelContainerArray(dirname, mapId, x, y, mc); + bool result = fillModelContainerArray(dirname, mapId, x, y, mc); emptyArray(mc); + + if(!result) + return false; } } } @@ -205,91 +217,85 @@ namespace VMAP if(::g_df) fclose(::g_df); #endif - return result; + return true; } //================================================================= bool TileAssembler::fillModelContainerArray(const std::string& pDirFileName, unsigned int pMapId, int pXPos, int pYPos, Array& pMC) { - bool result = true; ModelContainer* modelContainer; NameCollection nameCollection = iCoordModelMapping->getFilenamesForCoordinate(pMapId, pXPos, pYPos); - if(nameCollection.size() > 0) + if(nameCollection.size() == 0) + return true; // no data... + + char dirfilename[500]; + sprintf(dirfilename,"%s/%s.vmdir",iDestDir.c_str(),pDirFileName.c_str()); + FILE *dirfile = fopen(dirfilename, "ab"); + if(!dirfile) + { + printf("ERROR: Can't create file %s",dirfilename); + return false; + } + + char destnamebuffer[500]; + char fullnamedestnamebuffer[500]; + + if(nameCollection.iMainFiles.size() >0) { - result = false; - char dirfilename[500]; - sprintf(dirfilename,"%s/%s.vmdir",iDestDir.c_str(),pDirFileName.c_str()); - FILE *dirfile = fopen(dirfilename, "ab"); - if(dirfile) + sprintf(destnamebuffer,"%03u_%i_%i.vmap",pMapId, pYPos, pXPos); // flip it here too + std::string checkDoubleStr = std::string(dirfilename); + checkDoubleStr.append("##"); + checkDoubleStr.append(std::string(destnamebuffer)); + // Check, if same file already is in the same dir file + if(!iCoordModelMapping->isAlreadyProcessedSingleFile(checkDoubleStr)) { - result = true; - char destnamebuffer[500]; - char fullnamedestnamebuffer[500]; - if(nameCollection.iMainFiles.size() >0) - { - sprintf(destnamebuffer,"%03u_%i_%i.vmap",pMapId, pYPos, pXPos); // flip it here too - std::string checkDoubleStr = std::string(dirfilename); - checkDoubleStr.append("##"); - checkDoubleStr.append(std::string(destnamebuffer)); - // Check, if same file already is in the same dir file - if(!iCoordModelMapping->isAlreadyProcessedSingleFile(checkDoubleStr)) - { - iCoordModelMapping->addAlreadyProcessedSingleFile(checkDoubleStr); - fprintf(dirfile, "%s\n",destnamebuffer); - sprintf(fullnamedestnamebuffer,"%s/%s",iDestDir.c_str(),destnamebuffer); - modelContainer = processNames(nameCollection.iMainFiles, fullnamedestnamebuffer); - if(modelContainer) - { - pMC.append(modelContainer); - } - else - { - result = false; - } - } - } - // process the large singe files - int pos = 0; - while(result && (pos < nameCollection.iSingeFiles.size())) - { - std::string destFileName = iDestDir; - destFileName.append("/"); - std::string dirEntryName = getDirEntryNameFromModName(pMapId,nameCollection.iSingeFiles[pos]); - std::string checkDoubleStr = std::string(dirfilename); - checkDoubleStr.append("##"); - checkDoubleStr.append(nameCollection.iSingeFiles[pos]); - // Check, if same file already is in the same dir file - if(!iCoordModelMapping->isAlreadyProcessedSingleFile(checkDoubleStr)) - { - iCoordModelMapping->addAlreadyProcessedSingleFile(checkDoubleStr); - fprintf(dirfile, "%s\n",dirEntryName.c_str()); - destFileName.append(dirEntryName); + iCoordModelMapping->addAlreadyProcessedSingleFile(checkDoubleStr); + fprintf(dirfile, "%s\n",destnamebuffer); + sprintf(fullnamedestnamebuffer,"%s/%s",iDestDir.c_str(),destnamebuffer); + modelContainer = processNames(nameCollection.iMainFiles, fullnamedestnamebuffer); + if(modelContainer) + pMC.append(modelContainer); + else + printf("warning: (if) problems in processing data for %s\n",destnamebuffer); + } + } + // process the large singe files + int pos = 0; + while(pos < nameCollection.iSingeFiles.size()) + { + std::string destFileName = iDestDir; + destFileName.append("/"); + std::string dirEntryName = getDirEntryNameFromModName(pMapId,nameCollection.iSingeFiles[pos]); + std::string checkDoubleStr = std::string(dirfilename); + checkDoubleStr.append("##"); + checkDoubleStr.append(nameCollection.iSingeFiles[pos]); + // Check, if same file already is in the same dir file + if(!iCoordModelMapping->isAlreadyProcessedSingleFile(checkDoubleStr)) + { + iCoordModelMapping->addAlreadyProcessedSingleFile(checkDoubleStr); + fprintf(dirfile, "%s\n",dirEntryName.c_str()); + destFileName.append(dirEntryName); - Array positionarray; - positionarray.append(nameCollection.iSingeFiles[pos]); + Array positionarray; + positionarray.append(nameCollection.iSingeFiles[pos]); - if(!iCoordModelMapping->isAlreadyProcessedSingleFile(nameCollection.iSingeFiles[pos])) - { - modelContainer = processNames(positionarray, destFileName.c_str()); - iCoordModelMapping->addAlreadyProcessedSingleFile(nameCollection.iSingeFiles[pos]); - if(modelContainer) - { - pMC.append(modelContainer); - } - else - { - result = false; - } - } - } - ++pos; + if(!iCoordModelMapping->isAlreadyProcessedSingleFile(nameCollection.iSingeFiles[pos])) + { + modelContainer = processNames(positionarray, destFileName.c_str()); + iCoordModelMapping->addAlreadyProcessedSingleFile(nameCollection.iSingeFiles[pos]); + if(modelContainer) + pMC.append(modelContainer); + else + printf("warning: (while) problems in processing data for %s\n",destFileName.c_str()); } - fclose(dirfile); } + ++pos; } - return(result); + + fclose(dirfile); + return true; } //================================================================= @@ -346,8 +352,6 @@ namespace VMAP //================================================================= bool TileAssembler::readRawFile(std::string& pModelFilename, ModelPosition& pModelPosition, AABSPTree *pMainTree) { - bool result = false; - std::string filename = iSrcDir; if(filename.length() >0) filename.append("/"); @@ -363,6 +367,14 @@ namespace VMAP filename.append(baseModelFilename); rf = fopen(filename.c_str(), "rb"); } + + if(!rf) + { + printf("ERROR: Can't open model file in form: %s",pModelFilename.c_str()); + printf("... or form: %s",filename ); + return false; + } + char ident[8]; int trianglecount =0; @@ -379,181 +391,182 @@ namespace VMAP #endif // temporary use defines to simplify read/check code (close file and return at fail) - #define READ_OR_RETURN(V,S) if(fread((V), (S), 1, rf) != 1) { fclose(rf); return(false); } - #define CMP_OR_RETURN(V,S) if(strcmp((V),(S)) != 0) { fclose(rf); return(false); } + #define READ_OR_RETURN(V,S) if(fread((V), (S), 1, rf) != 1) { \ + fclose(rf); return(false); } + #define CMP_OR_RETURN(V,S) if(strcmp((V),(S)) != 0) { \ + fclose(rf); return(false); } - if(rf) + READ_OR_RETURN(&ident, 8); + if(strcmp(ident, "VMAP001") == 0) { - READ_OR_RETURN(&ident, 8); - if(strcmp(ident, "VMAP001") == 0) - { - // OK, do nothing - } - else if(strcmp(ident, "VMAP002") == 0) - { - // we have to read one int. This is needed during the export and we have to skip it here - int tempNVectors; - READ_OR_RETURN(&tempNVectors, sizeof(int)); + // OK, do nothing + } + else if(strcmp(ident, "VMAP002") == 0) + { + // we have to read one int. This is needed during the export and we have to skip it here + int tempNVectors; + READ_OR_RETURN(&tempNVectors, sizeof(int)); - } - else - { - // wrong version - fclose(rf); - return(false); - } - G3D::uint32 groups; - char blockId[5]; - blockId[4] = 0; - int blocksize; + } + else + { + // wrong version + fclose(rf); + return(false); + } + G3D::uint32 groups; + char blockId[5]; + blockId[4] = 0; + int blocksize; - READ_OR_RETURN(&groups, sizeof(G3D::uint32)); + READ_OR_RETURN(&groups, sizeof(G3D::uint32)); - for(int g=0;g<(int)groups;g++) + for(int g=0;g<(int)groups;g++) + { + // group MUST NOT have more then 65536 indexes !! Array will have a problem with that !! (strange ...) + Array tempIndexArray; + Array tempVertexArray; + + AABSPTree *gtree = new AABSPTree(); + + // add free gtree at fail + #undef READ_OR_RETURN + #undef CMP_OR_RETURN + #define READ_OR_RETURN(V,S) if(fread((V), (S), 1, rf) != 1) { \ + fclose(rf); delete gtree; return(false); } + #define CMP_OR_RETURN(V,S) if(strcmp((V),(S)) != 0) { \ + fclose(rf); delete gtree; return(false); } + + G3D::uint32 flags; + READ_OR_RETURN(&flags, sizeof(G3D::uint32)); + + G3D::uint32 branches; + READ_OR_RETURN(&blockId, 4); + CMP_OR_RETURN(blockId, "GRP "); + READ_OR_RETURN(&blocksize, sizeof(int)); + READ_OR_RETURN(&branches, sizeof(G3D::uint32)); + for(int b=0;b<(int)branches; b++) { - // group MUST NOT have more then 65536 indexes !! Array will have a problem with that !! (strange ...) - Array tempIndexArray; - Array tempVertexArray; - - AABSPTree *gtree = new AABSPTree(); - - // add free gtree at fail - #undef READ_OR_RETURN - #undef CMP_OR_RETURN - #define READ_OR_RETURN(V,S) if(fread((V), (S), 1, rf) != 1) { fclose(rf); delete gtree; return(false); } - #define CMP_OR_RETURN(V,S) if(strcmp((V),(S)) != 0) { fclose(rf); delete gtree; return(false); } - - G3D::uint32 flags; - READ_OR_RETURN(&flags, sizeof(G3D::uint32)); - - G3D::uint32 branches; - READ_OR_RETURN(&blockId, 4); - CMP_OR_RETURN(blockId, "GRP "); - READ_OR_RETURN(&blocksize, sizeof(int)); - READ_OR_RETURN(&branches, sizeof(G3D::uint32)); - for(int b=0;b<(int)branches; b++) - { - G3D::uint32 indexes; - // indexes for each branch (not used jet) - READ_OR_RETURN(&indexes, sizeof(G3D::uint32)); - } + G3D::uint32 indexes; + // indexes for each branch (not used jet) + READ_OR_RETURN(&indexes, sizeof(G3D::uint32)); + } - // ---- indexes - READ_OR_RETURN(&blockId, 4); - CMP_OR_RETURN(blockId, "INDX"); - READ_OR_RETURN(&blocksize, sizeof(int)); - unsigned int nindexes; - READ_OR_RETURN(&nindexes, sizeof(G3D::uint32)); - if(nindexes >0) + // ---- indexes + READ_OR_RETURN(&blockId, 4); + CMP_OR_RETURN(blockId, "INDX"); + READ_OR_RETURN(&blocksize, sizeof(int)); + unsigned int nindexes; + READ_OR_RETURN(&nindexes, sizeof(G3D::uint32)); + if(nindexes >0) + { + unsigned short *indexarray = new unsigned short[nindexes*sizeof(unsigned short)]; + READ_OR_RETURN(indexarray, nindexes*sizeof(unsigned short)); + for(int i=0;i<(int)nindexes; i++) { - unsigned short *indexarray = new unsigned short[nindexes*sizeof(unsigned short)]; - READ_OR_RETURN(indexarray, sizeof(unsigned short)); - for(int i=0;i<(int)nindexes; i++) - { - unsigned short val = indexarray[i]; - tempIndexArray.append(val); - } - delete[] indexarray; + unsigned short val = indexarray[i]; + tempIndexArray.append(val); } + delete[] indexarray; + } - // ---- vectors - READ_OR_RETURN(&blockId, 4); - CMP_OR_RETURN(blockId, "VERT"); - READ_OR_RETURN(&blocksize, sizeof(int)); - unsigned int nvectors; - READ_OR_RETURN(&nvectors, sizeof(int)); + // ---- vectors + READ_OR_RETURN(&blockId, 4); + CMP_OR_RETURN(blockId, "VERT"); + READ_OR_RETURN(&blocksize, sizeof(int)); + unsigned int nvectors; + READ_OR_RETURN(&nvectors, sizeof(int)); - float *vectorarray = 0; + float *vectorarray = 0; - // add vectorarray free - #undef READ_OR_RETURN - #undef CMP_OR_RETURN - #define READ_OR_RETURN(V,S) if(fread((V), (S), 1, rf) != 1) { fclose(rf); delete gtree; delete[] vectorarray; return(false); } - #define CMP_OR_RETURN(V,S) if(strcmp((V),(S)) != 0) { fclose(rf); delete gtree; delete[] vectorarray; return(false); } + // add vectorarray free + #undef READ_OR_RETURN + #undef CMP_OR_RETURN + #define READ_OR_RETURN(V,S) if(fread((V), (S), 1, rf) != 1) { \ + fclose(rf); delete gtree; delete[] vectorarray; return(false); } + #define CMP_OR_RETURN(V,S) if(strcmp((V),(S)) != 0) { \ + fclose(rf); delete gtree; delete[] vectorarray; return(false); } - if(nvectors >0) - { - vectorarray = new float[nvectors*sizeof(float)*3]; - READ_OR_RETURN(vectorarray, sizeof(float)*3); - } - // ----- liquit - if(flags & 1) - { - // we have liquit -> not handled yet ... skip - READ_OR_RETURN(&blockId, 4); - CMP_OR_RETURN(blockId, "LIQU"); - READ_OR_RETURN(&blocksize, sizeof(int)); - fseek(rf, blocksize, SEEK_CUR); - } + if(nvectors >0) + { + vectorarray = new float[nvectors*sizeof(float)*3]; + READ_OR_RETURN(vectorarray, nvectors*sizeof(float)*3); + } + // ----- liquit + if(flags & 1) + { + // we have liquit -> not handled yet ... skip + READ_OR_RETURN(&blockId, 4); + CMP_OR_RETURN(blockId, "LIQU"); + READ_OR_RETURN(&blocksize, sizeof(int)); + fseek(rf, blocksize, SEEK_CUR); + } - for(unsigned int i=0, indexNo=0; indexNo= startgroup && g <= endgroup) { - Triangle t = Triangle(tempVertexArray[tempIndexArray[i+2]], tempVertexArray[tempIndexArray[i+1]], tempVertexArray[tempIndexArray[i+0]] ); - i+=3; - ++trianglecount; - if(g>= startgroup && g <= endgroup) - { - gtree->insert(t); - } + gtree->insert(t); } + } - // drop of temporary use defines - #undef READ_OR_RETURN - #undef CMP_OR_RETURN + // drop of temporary use defines + #undef READ_OR_RETURN + #undef CMP_OR_RETURN - if(vectorarray != 0) - { - delete vectorarray; - } + if(vectorarray != 0) + { + delete vectorarray; + } - if(gtree->size() >0) + if(gtree->size() >0) + { + gtree->balance(); + SubModel *sm = new SubModel(gtree); + #ifdef _ASSEMBLER_DEBUG + if(::g_df) fprintf(::g_df,"group trianglies: %d, Tris: %d, Nodes: %d, gtree.triangles: %d\n", g, sm->getNTriangles(), sm->getNNodes(), gtree->memberTable.size()); + if(sm->getNTriangles() != gtree->memberTable.size()) { - gtree->balance(); - SubModel *sm = new SubModel(gtree); - #ifdef _ASSEMBLER_DEBUG - if(::g_df) fprintf(::g_df,"group trianglies: %d, Tris: %d, Nodes: %d, gtree.triangles: %d\n", g, sm->getNTriangles(), sm->getNNodes(), gtree->memberTable.size()); - if(sm->getNTriangles() != gtree->memberTable.size()) - { - if(::g_df) fprintf(::g_df,"ERROR !!!! group trianglies: %d, Tris: %d, Nodes: %d, gtree.triangles: %d\n", g, sm->getNTriangles(), sm->getNNodes(), gtree->memberTable.size()); - } - #endif - sm->setBasePosition(pModelPosition.iPos); - pMainTree->insert(sm); + if(::g_df) fprintf(::g_df,"ERROR !!!! group trianglies: %d, Tris: %d, Nodes: %d, gtree.triangles: %d\n", g, sm->getNTriangles(), sm->getNNodes(), gtree->memberTable.size()); } - delete gtree; + #endif + sm->setBasePosition(pModelPosition.iPos); + pMainTree->insert(sm); } - fclose(rf); - result = true; + delete gtree; } - return(result); + fclose(rf); + return true; } //================================================================= bool TileAssembler::fillModelIntoTree(AABSPTree *pMainTree, const Vector3& pBasePos, std::string& pPos, std::string& pModelFilename) { - bool result = false; ModelPosition modelPosition; getModelPosition(pPos, modelPosition); // all should be relative to object base position @@ -561,12 +574,7 @@ namespace VMAP modelPosition.init(); - if(readRawFile(pModelFilename, modelPosition, pMainTree)) - { - result = true; - } - - return result; + return readRawFile(pModelFilename, modelPosition, pMainTree); } //================================================================= -- 2.11.4.GIT