diff --git a/src/tools/mmaps_generator/IntermediateValues.h b/src/tools/mmaps_generator/IntermediateValues.h index 95a651a2df..580e9e4313 100644 --- a/src/tools/mmaps_generator/IntermediateValues.h +++ b/src/tools/mmaps_generator/IntermediateValues.h @@ -22,7 +22,6 @@ #include "PathCommon.h" #include "TerrainBuilder.h" #include "Recast.h" -#include "DetourNavMesh.h" namespace MMAP { diff --git a/src/tools/mmaps_generator/MapBuilder.cpp b/src/tools/mmaps_generator/MapBuilder.cpp index 69ca529702..ff2f72f353 100644 --- a/src/tools/mmaps_generator/MapBuilder.cpp +++ b/src/tools/mmaps_generator/MapBuilder.cpp @@ -15,17 +15,15 @@ * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ -#include #include "PathCommon.h" #include "MapBuilder.h" - #include "MapTree.h" -#include "ModelInstance.h" - #include "DetourNavMeshBuilder.h" #include "DetourNavMesh.h" -#include "DetourCommon.h" +#include "IntermediateValues.h" + +#include #define MMAP_MAGIC 0x4d4d4150 // 'MMAP' #define MMAP_VERSION 5 @@ -164,7 +162,7 @@ namespace MMAP { while (1) { - uint32 mapId; + uint32 mapId = 0; _queue.WaitAndPop(mapId); @@ -215,12 +213,12 @@ namespace MMAP } /**************************************************************************/ - void MapBuilder::getGridBounds(uint32 mapID, uint32 &minX, uint32 &minY, uint32 &maxX, uint32 &maxY) + void MapBuilder::getGridBounds(uint32 mapID, uint32 &minX, uint32 &minY, uint32 &maxX, uint32 &maxY) const { - maxX = INT_MAX; - maxY = INT_MAX; - minX = INT_MIN; - minY = INT_MIN; + maxX = std::numeric_limits::max(); + maxY = std::numeric_limits::max(); + minX = 0; + minY = 0; float bmin[3] = { 0, 0, 0 }; float bmax[3] = { 0, 0, 0 }; diff --git a/src/tools/mmaps_generator/MapBuilder.h b/src/tools/mmaps_generator/MapBuilder.h index ced03d1dde..432a0ee748 100644 --- a/src/tools/mmaps_generator/MapBuilder.h +++ b/src/tools/mmaps_generator/MapBuilder.h @@ -19,20 +19,18 @@ #ifndef _MAP_BUILDER_H #define _MAP_BUILDER_H -#include -#include -#include -#include -#include -#include - #include "TerrainBuilder.h" -#include "IntermediateValues.h" #include "Recast.h" #include "DetourNavMesh.h" #include "ProducerConsumerQueue.h" +#include +#include +#include +#include +#include + using namespace VMAP; namespace MMAP @@ -120,7 +118,7 @@ namespace MMAP void getTileBounds(uint32 tileX, uint32 tileY, float* verts, int vertCount, float* bmin, float* bmax); - void getGridBounds(uint32 mapID, uint32 &minX, uint32 &minY, uint32 &maxX, uint32 &maxY); + void getGridBounds(uint32 mapID, uint32 &minX, uint32 &minY, uint32 &maxX, uint32 &maxY) const; bool shouldSkipMap(uint32 mapID); bool isTransportMap(uint32 mapID); diff --git a/src/tools/mmaps_generator/PathCommon.h b/src/tools/mmaps_generator/PathCommon.h index 9451e9d03b..aa9591fba2 100644 --- a/src/tools/mmaps_generator/PathCommon.h +++ b/src/tools/mmaps_generator/PathCommon.h @@ -19,11 +19,10 @@ #ifndef _MMAP_COMMON_H #define _MMAP_COMMON_H -#include -#include - #include "Common.h" +#include + #ifndef _WIN32 #include #include diff --git a/src/tools/mmaps_generator/TerrainBuilder.cpp b/src/tools/mmaps_generator/TerrainBuilder.cpp index 9043627994..e525f24fce 100644 --- a/src/tools/mmaps_generator/TerrainBuilder.cpp +++ b/src/tools/mmaps_generator/TerrainBuilder.cpp @@ -764,12 +764,12 @@ namespace MMAP } uint32 liqOffset = meshData.liquidVerts.size() / 3; - for (uint32 i = 0; i < liqVerts.size(); ++i) - meshData.liquidVerts.append(liqVerts[i].y, liqVerts[i].z, liqVerts[i].x); + for (uint32 j = 0; j < liqVerts.size(); ++j) + meshData.liquidVerts.append(liqVerts[j].y, liqVerts[j].z, liqVerts[j].x); - for (uint32 i = 0; i < liqTris.size() / 3; ++i) + for (uint32 j = 0; j < liqTris.size() / 3; ++j) { - meshData.liquidTris.append(liqTris[i*3+1] + liqOffset, liqTris[i*3+2] + liqOffset, liqTris[i*3] + liqOffset); + meshData.liquidTris.append(liqTris[j*3+1] + liqOffset, liqTris[j*3+2] + liqOffset, liqTris[j*3] + liqOffset); meshData.liquidType.append(type); } } diff --git a/src/tools/mmaps_generator/TerrainBuilder.h b/src/tools/mmaps_generator/TerrainBuilder.h index 6c66ae45f4..f305bf0bd4 100644 --- a/src/tools/mmaps_generator/TerrainBuilder.h +++ b/src/tools/mmaps_generator/TerrainBuilder.h @@ -81,11 +81,13 @@ namespace MMAP TerrainBuilder(bool skipLiquid); ~TerrainBuilder(); + TerrainBuilder(const TerrainBuilder &tb) = delete; + void loadMap(uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData); bool loadVMap(uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData); void loadOffMeshConnections(uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData, const char* offMeshFilePath); - bool usesLiquids() { return !m_skipLiquid; } + bool usesLiquids() const { return !m_skipLiquid; } // vert and triangle methods static void transform(std::vector &original, std::vector &transformed, @@ -104,9 +106,6 @@ namespace MMAP /// Controls whether liquids are loaded bool m_skipLiquid; - /// Load the map terrain from file - bool loadHeightMap(uint32 mapID, uint32 tileX, uint32 tileY, G3D::Array &vertices, G3D::Array &triangles, Spot portion); - /// Get the vector coordinate for a specific position void getHeightCoord(int index, Grid grid, float xOffset, float yOffset, float* coord, float* v); @@ -121,10 +120,6 @@ namespace MMAP /// Get the liquid type for a specific position uint8 getLiquidType(int square, const uint8 liquid_type[16][16]); - - // hide parameterless and copy constructor - TerrainBuilder(); - TerrainBuilder(const TerrainBuilder &tb); }; } diff --git a/src/tools/vmap4_extractor/adtfile.cpp b/src/tools/vmap4_extractor/adtfile.cpp index 557511f6d1..3a8b349565 100644 --- a/src/tools/vmap4_extractor/adtfile.cpp +++ b/src/tools/vmap4_extractor/adtfile.cpp @@ -86,11 +86,11 @@ bool ADTFile::init(uint32 map_num, uint32 tileX, uint32 tileY) uint32 size; - string xMap; - string yMap; + std::string xMap; + std::string yMap; Adtfilename.erase(Adtfilename.find(".adt"),4); - string TempMapNumber; + std::string TempMapNumber; TempMapNumber = Adtfilename.substr(Adtfilename.length()-6,6); xMap = TempMapNumber.substr(TempMapNumber.find("_")+1,(TempMapNumber.find_last_of("_")-1) - (TempMapNumber.find("_"))); yMap = TempMapNumber.substr(TempMapNumber.find_last_of("_")+1,(TempMapNumber.length()) - (TempMapNumber.find_last_of("_"))); @@ -134,7 +134,7 @@ bool ADTFile::init(uint32 map_num, uint32 tileX, uint32 tileY) ADT.read(buf, size); char *p=buf; int t=0; - ModelInstansName = new string[size]; + ModelInstansName = new std::string[size]; while (p -#include -#include -#include -#include -using namespace std; +#include +#include +#include +#include class MPQArchive { @@ -38,7 +36,7 @@ public: MPQArchive(const char* filename); ~MPQArchive() { close(); } - void GetFileListTo(vector& filelist) { + void GetFileListTo(std::vector& filelist) { uint32_t filenum; if(libmpq__file_number(mpq_a, "(listfile)", &filenum)) return; libmpq__off_t size, transferred; @@ -57,7 +55,7 @@ public: while ((token != NULL) && (counter < size)) { //cout << token << endl; token[strlen(token) - 1] = 0; - string s = token; + std::string s = token; filelist.push_back(s); counter += strlen(token) + 2; token = strtok(NULL, seps); @@ -78,9 +76,8 @@ class MPQFile char *buffer; libmpq__off_t pointer,size; - // disable copying - MPQFile(const MPQFile& /*f*/) {} - void operator=(const MPQFile& /*f*/) {} + MPQFile(const MPQFile& /*f*/) = delete; + void operator=(const MPQFile& /*f*/) = delete; public: MPQFile(const char* filename); // filenames are not case sensitive diff --git a/src/tools/vmap4_extractor/vmapexport.cpp b/src/tools/vmap4_extractor/vmapexport.cpp index 7a12897563..78d6e86358 100644 --- a/src/tools/vmap4_extractor/vmapexport.cpp +++ b/src/tools/vmap4_extractor/vmapexport.cpp @@ -17,14 +17,15 @@ */ #define _CRT_SECURE_NO_DEPRECATE -#include -#include -#include -#include -#include + +#include "adtfile.h" +#include "wdtfile.h" +#include "dbcfile.h" +#include "wmo.h" +#include "mpq_libmpq04.h" +#include "vmapexport.h" #ifdef WIN32 - #include #include #include #define mkdir _mkdir @@ -32,23 +33,14 @@ #include #endif +#include +#include +#include +#include + #undef min #undef max -//#pragma warning(disable : 4505) -//#pragma comment(lib, "Winmm.lib") - -#include - -//From Extractor -#include "adtfile.h" -#include "wdtfile.h" -#include "dbcfile.h" -#include "wmo.h" -#include "mpq_libmpq04.h" - -#include "vmapexport.h" - //------------------------------------------------------------------------------ // Defines @@ -129,12 +121,12 @@ bool ExtractWmo() for (ArchiveSet::const_iterator ar_itr = gOpenArchives.begin(); ar_itr != gOpenArchives.end() && success; ++ar_itr) { - vector filelist; + std::vector filelist; (*ar_itr)->GetFileListTo(filelist); - for (vector::iterator fname = filelist.begin(); fname != filelist.end() && success; ++fname) + for (std::vector::iterator fname = filelist.begin(); fname != filelist.end() && success; ++fname) { - if (fname->find(".wmo") != string::npos) + if (fname->find(".wmo") != std::string::npos) success = ExtractSingleWmo(*fname); } } @@ -203,7 +195,7 @@ bool ExtractSingleWmo(std::string& fname) sprintf(groupFileName, "%s_%03u.wmo", temp, i); //printf("Trying to open groupfile %s\n",groupFileName); - string s = groupFileName; + std::string s = groupFileName; WMOGroup fgroup(s); if(!fgroup.open()) { @@ -305,7 +297,7 @@ bool fillArchiveNameVector(std::vector& pArchiveNames) printf("\nGame path: %s\n", input_path); char path[512]; - string in_path(input_path); + std::string in_path(input_path); std::vector locales, searchLocales; searchLocales.push_back("enGB"); @@ -345,10 +337,10 @@ bool fillArchiveNameVector(std::vector& pArchiveNames) } // open expansion and common files - pArchiveNames.push_back(input_path + string("common.MPQ")); - pArchiveNames.push_back(input_path + string("common-2.MPQ")); - pArchiveNames.push_back(input_path + string("expansion.MPQ")); - pArchiveNames.push_back(input_path + string("lichking.MPQ")); + pArchiveNames.push_back(input_path + std::string("common.MPQ")); + pArchiveNames.push_back(input_path + std::string("common-2.MPQ")); + pArchiveNames.push_back(input_path + std::string("expansion.MPQ")); + pArchiveNames.push_back(input_path + std::string("lichking.MPQ")); // now, scan for the patch levels in the core dir printf("Scanning patch levels from data directory.\n"); diff --git a/src/tools/vmap4_extractor/wdtfile.cpp b/src/tools/vmap4_extractor/wdtfile.cpp index 877f49ce37..4e0b7b9770 100644 --- a/src/tools/vmap4_extractor/wdtfile.cpp +++ b/src/tools/vmap4_extractor/wdtfile.cpp @@ -19,6 +19,7 @@ #include "vmapexport.h" #include "wdtfile.h" #include "adtfile.h" + #include char * wdtGetPlainName(char * FileName) @@ -30,7 +31,7 @@ char * wdtGetPlainName(char * FileName) return FileName; } -WDTFile::WDTFile(char* file_name, char* file_name1) : WDT(file_name), gWmoInstansName(NULL), gnWMO(0) +WDTFile::WDTFile(char* file_name, char* file_name1) : gWmoInstansName(NULL), gnWMO(0), WDT(file_name) { filename.append(file_name1,strlen(file_name1)); } @@ -77,7 +78,7 @@ bool WDTFile::init(char* /*map_id*/, unsigned int mapID) WDT.read(buf, size); char *p=buf; int q = 0; - gWmoInstansName = new string[size]; + gWmoInstansName = new std::string[size]; while (p < buf + size) { char* s=wdtGetPlainName(p); diff --git a/src/tools/vmap4_extractor/wdtfile.h b/src/tools/vmap4_extractor/wdtfile.h index 22702133b9..81e84b36d1 100644 --- a/src/tools/vmap4_extractor/wdtfile.h +++ b/src/tools/vmap4_extractor/wdtfile.h @@ -20,26 +20,25 @@ #define WDTFILE_H #include "mpq_libmpq04.h" -#include "wmo.h" #include -#include "stdlib.h" class ADTFile; class WDTFile { -private: - MPQFile WDT; - string filename; public: WDTFile(char* file_name, char* file_name1); ~WDTFile(void); - bool init(char* map_id, unsigned int mapID); - string* gWmoInstansName; + bool init(char* map_id, unsigned int mapID); + ADTFile* GetMap(int x, int z); + + std::string* gWmoInstansName; int gnWMO; - ADTFile* GetMap(int x, int z); +private: + MPQFile WDT; + std::string filename; }; #endif diff --git a/src/tools/vmap4_extractor/wmo.cpp b/src/tools/vmap4_extractor/wmo.cpp index f6f59bbc47..80dfbb97c5 100644 --- a/src/tools/vmap4_extractor/wmo.cpp +++ b/src/tools/vmap4_extractor/wmo.cpp @@ -19,16 +19,14 @@ #include "vmapexport.h" #include "wmo.h" #include "vec3d.h" +#include "mpq_libmpq04.h" + #include #include #include -#include -#include #undef min #undef max -#include "mpq_libmpq04.h" -using namespace std; extern uint16 *LiqType; WMORoot::WMORoot(std::string &filename)