diff options
Diffstat (limited to 'src')
23 files changed, 140 insertions, 155 deletions
diff --git a/src/server/authserver/Server/AuthSocket.cpp b/src/server/authserver/Server/AuthSocket.cpp index 2ad80c7f62d..ee3a9677130 100755 --- a/src/server/authserver/Server/AuthSocket.cpp +++ b/src/server/authserver/Server/AuthSocket.cpp @@ -196,7 +196,7 @@ const AuthHandler table[] = Patcher PatchesCache; // Constructor - set the N and g values for SRP6 -AuthSocket::AuthSocket(RealmSocket& socket) : socket_(socket) +AuthSocket::AuthSocket(RealmSocket& socket) : socket_(socket), pPatch(NULL) { N.SetHexStr("894B645E89E1535BBDAD5B8B290650530801B18EBFBF5E8FAB3C82872A3E9BB7"); g.SetDword(7); @@ -869,7 +869,7 @@ bool AuthSocket::_HandleRealmList() flag &= ~REALM_FLAG_SPECIFYBUILD; std::string name = i->first; - if (_expversion & PRE_BC_EXP_FLAG && flag & REALM_FLAG_SPECIFYBUILD) + if (buildInfo && (_expversion & PRE_BC_EXP_FLAG && flag & REALM_FLAG_SPECIFYBUILD)) { std::ostringstream ss; ss << name << " (" << buildInfo->MajorVersion << '.' << buildInfo->MinorVersion << '.' << buildInfo->BugfixVersion << ')'; @@ -902,10 +902,15 @@ bool AuthSocket::_HandleRealmList() if (_expversion & POST_BC_EXP_FLAG && flag & REALM_FLAG_SPECIFYBUILD) { - pkt << uint8(buildInfo->MajorVersion); - pkt << uint8(buildInfo->MinorVersion); - pkt << uint8(buildInfo->BugfixVersion); - pkt << uint16(buildInfo->Build); + if (buildInfo) + { + pkt << uint8(buildInfo->MajorVersion); + pkt << uint8(buildInfo->MinorVersion); + pkt << uint8(buildInfo->BugfixVersion); + pkt << uint16(buildInfo->Build); + } + else + pkt << uint8(0) << uint8(0) << uint8(0) << uint16(0); } ++RealmListSize; @@ -946,7 +951,7 @@ bool AuthSocket::_HandleXferResume() { sLog->outDebug(LOG_FILTER_AUTHSERVER, "Entering _HandleXferResume"); // Check packet length and patch existence - if (socket().recv_len() < 9 || !pPatch) + if (socket().recv_len() < 9 || !pPatch) // FIXME: pPatch is never used { sLog->outError(LOG_FILTER_AUTHSERVER, "Error while resuming patch transfer (wrong packet)"); return false; diff --git a/src/server/collision/Maps/MapTree.cpp b/src/server/collision/Maps/MapTree.cpp index 6489ddd7a4f..f35e36d92fd 100644 --- a/src/server/collision/Maps/MapTree.cpp +++ b/src/server/collision/Maps/MapTree.cpp @@ -124,8 +124,8 @@ namespace VMAP return intersectionCallBack.result; } - StaticMapTree::StaticMapTree(uint32 mapID, const std::string &basePath): - iMapID(mapID), iTreeValues(0), iBasePath(basePath) + StaticMapTree::StaticMapTree(uint32 mapID, const std::string &basePath) + : iMapID(mapID), iTreeValues(0), iBasePath(basePath), iIsTiled(false) { if (iBasePath.length() > 0 && iBasePath[iBasePath.length()-1] != '/' && iBasePath[iBasePath.length()-1] != '\\') { diff --git a/src/server/collision/Maps/TileAssembler.cpp b/src/server/collision/Maps/TileAssembler.cpp index 207b652a4d6..8458ffdd5d3 100644 --- a/src/server/collision/Maps/TileAssembler.cpp +++ b/src/server/collision/Maps/TileAssembler.cpp @@ -54,11 +54,8 @@ namespace VMAP //================================================================= TileAssembler::TileAssembler(const std::string& pSrcDirName, const std::string& pDestDirName) + : iSrcDir(pSrcDirName), iDestDir(pDestDirName), iCurrentUniqueNameId(0), iFilterMethod(NULL) { - iCurrentUniqueNameId = 0; - iFilterMethod = NULL; - iSrcDir = pSrcDirName; - iDestDir = pDestDirName; //mkdir(iDestDir); //init(); } diff --git a/src/server/collision/Models/ModelInstance.h b/src/server/collision/Models/ModelInstance.h index 1118b654578..2745628ac7e 100755 --- a/src/server/collision/Models/ModelInstance.h +++ b/src/server/collision/Models/ModelInstance.h @@ -63,7 +63,7 @@ namespace VMAP class ModelInstance: public ModelSpawn { public: - ModelInstance(): iModel(0) {} + ModelInstance(): iModel(0), iInvScale(0.0f) {} ModelInstance(const ModelSpawn &spawn, WorldModel* model); void setUnloaded() { iModel = 0; } bool intersectRay(const G3D::Ray& pRay, float& pMaxDist, bool pStopAtFirstHit) const; diff --git a/src/server/shared/Cryptography/BigNumber.cpp b/src/server/shared/Cryptography/BigNumber.cpp index 364ee76ec75..146b2c37ad3 100755 --- a/src/server/shared/Cryptography/BigNumber.cpp +++ b/src/server/shared/Cryptography/BigNumber.cpp @@ -75,7 +75,7 @@ void BigNumber::SetRand(int numbits) BN_rand(_bn, numbits, 0, 1); } -BigNumber BigNumber::operator=(const BigNumber &bn) +BigNumber& BigNumber::operator=(const BigNumber &bn) { if (this == &bn) return *this; diff --git a/src/server/shared/Cryptography/BigNumber.h b/src/server/shared/Cryptography/BigNumber.h index 6646245a6a0..a27d74fb5c7 100755 --- a/src/server/shared/Cryptography/BigNumber.h +++ b/src/server/shared/Cryptography/BigNumber.h @@ -39,7 +39,7 @@ class BigNumber void SetRand(int numbits); - BigNumber operator=(const BigNumber &bn); + BigNumber& operator=(const BigNumber &bn); BigNumber operator+=(const BigNumber &bn); BigNumber operator+(const BigNumber &bn) diff --git a/src/server/shared/DataStores/DBCFileLoader.cpp b/src/server/shared/DataStores/DBCFileLoader.cpp index f909c8566bb..85b61c4f143 100755 --- a/src/server/shared/DataStores/DBCFileLoader.cpp +++ b/src/server/shared/DataStores/DBCFileLoader.cpp @@ -23,10 +23,8 @@ #include "DBCFileLoader.h" #include "Errors.h" -DBCFileLoader::DBCFileLoader() +DBCFileLoader::DBCFileLoader() : stringTable(NULL), data(NULL), fieldsOffset(NULL) { - data = NULL; - fieldsOffset = NULL; } bool DBCFileLoader::Load(const char* filename, const char* fmt) diff --git a/src/server/shared/DataStores/DBCFileLoader.h b/src/server/shared/DataStores/DBCFileLoader.h index a43807a3b59..eb8317fbefd 100755 --- a/src/server/shared/DataStores/DBCFileLoader.h +++ b/src/server/shared/DataStores/DBCFileLoader.h @@ -32,8 +32,8 @@ enum FT_BYTE='b', //uint8 FT_SORT='d', //sorted by this field, field is not included FT_IND='n', //the same, but parsed to data - FT_LOGIC='l', //Logical (boolean) - FT_SQL_PRESENT='p', //Used in sql format to mark column present in sql dbc + FT_LOGIC='l', //Logical (boolean) + FT_SQL_PRESENT='p', //Used in sql format to mark column present in sql dbc FT_SQL_ABSENT='a' //Used in sql format to mark column absent in sql dbc }; diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp index 6e17a32c78b..0b2bbb3122a 100755 --- a/src/server/shared/Logging/Log.cpp +++ b/src/server/shared/Logging/Log.cpp @@ -103,7 +103,7 @@ void Log::CreateAppenderFromConfig(const char* name) LogLevel level = LogLevel(atoi(*iter)); if (level > LOG_LEVEL_FATAL) { - fprintf(stderr, "Log::CreateAppenderFromConfig: Wrong Log Level %u for appender %s\n", level, name); + fprintf(stderr, "Log::CreateAppenderFromConfig: Wrong Log Level %d for appender %s\n", level, name); return; } @@ -158,7 +158,7 @@ void Log::CreateAppenderFromConfig(const char* name) break; } default: - fprintf(stderr, "Log::CreateAppenderFromConfig: Unknown type %u for appender %s\n", type, name); + fprintf(stderr, "Log::CreateAppenderFromConfig: Unknown type %d for appender %s\n", type, name); break; } } diff --git a/src/server/shared/Utilities/ServiceWin32.cpp b/src/server/shared/Utilities/ServiceWin32.cpp index c6e9d385be3..91a78af1adc 100755 --- a/src/server/shared/Utilities/ServiceWin32.cpp +++ b/src/server/shared/Utilities/ServiceWin32.cpp @@ -52,8 +52,6 @@ typedef WINADVAPI BOOL (WINAPI *CSD_T)(SC_HANDLE, DWORD, LPCVOID); bool WinServiceInstall() { - CSD_T ChangeService_Config2; - HMODULE advapi32; SC_HANDLE serviceControlManager = OpenSCManager(0, 0, SC_MANAGER_CREATE_SERVICE); if (serviceControlManager) @@ -79,7 +77,7 @@ bool WinServiceInstall() 0); // no password if (service) { - advapi32 = GetModuleHandle("ADVAPI32.DLL"); + HMODULE advapi32 = GetModuleHandle("ADVAPI32.DLL"); if (!advapi32) { CloseServiceHandle(service); @@ -87,7 +85,7 @@ bool WinServiceInstall() return false; } - ChangeService_Config2 = (CSD_T) GetProcAddress(advapi32, "ChangeServiceConfig2A"); + CSD_T ChangeService_Config2 = (CSD_T) GetProcAddress(advapi32, "ChangeServiceConfig2A"); if (!ChangeService_Config2) { CloseServiceHandle(service); diff --git a/src/server/shared/Utilities/Util.cpp b/src/server/shared/Utilities/Util.cpp index 7bedf9690ca..9917bbb5309 100755 --- a/src/server/shared/Utilities/Util.cpp +++ b/src/server/shared/Utilities/Util.cpp @@ -217,7 +217,7 @@ uint32 CreatePIDFile(const std::string& filename) pid_t pid = getpid(); #endif - fprintf(pid_file, "%d", pid ); + fprintf(pid_file, "%u", pid ); fclose(pid_file); return (uint32)pid; diff --git a/src/server/worldserver/TCSoap/TCSoap.h b/src/server/worldserver/TCSoap/TCSoap.h index 285adaaaf4b..51ffb3a91c8 100755 --- a/src/server/worldserver/TCSoap/TCSoap.h +++ b/src/server/worldserver/TCSoap/TCSoap.h @@ -51,7 +51,7 @@ class SOAPCommand { public: SOAPCommand(): - pendingCommands(0, USYNC_THREAD, "pendingCommands") + pendingCommands(0, USYNC_THREAD, "pendingCommands"), m_success(false) { } diff --git a/src/tools/map_extractor/System.cpp b/src/tools/map_extractor/System.cpp index d64276c6363..f474925313e 100644 --- a/src/tools/map_extractor/System.cpp +++ b/src/tools/map_extractor/System.cpp @@ -900,7 +900,7 @@ void ExtractMapsFromMpq(uint32 build) printf("Convert map files\n"); for(uint32 z = 0; z < map_count; ++z) { - printf("Extract %s (%d/%d) \n", map_ids[z].name, z+1, map_count); + printf("Extract %s (%d/%u) \n", map_ids[z].name, z+1, map_count); // Loadup map grid data sprintf(mpq_map_name, "World\\Maps\\%s\\%s.wdt", map_ids[z].name, map_ids[z].name); WDT_file wdt; @@ -980,13 +980,13 @@ void ExtractDBCFiles(int locale, bool basicLocale) } // extract DBCs - int count = 0; + uint32 count = 0; for (set<string>::iterator iter = dbcfiles.begin(); iter != dbcfiles.end(); ++iter) { string filename = path; filename += (iter->c_str() + strlen("DBFilesClient\\")); - if(ExtractFile(iter->c_str(), filename)) + if (ExtractFile(iter->c_str(), filename)) ++count; } printf("Extracted %u DBC files\n\n", count); diff --git a/src/tools/map_extractor/dbcfile.cpp b/src/tools/map_extractor/dbcfile.cpp index 927d3d62b7f..c1cab7ddb2f 100644 --- a/src/tools/map_extractor/dbcfile.cpp +++ b/src/tools/map_extractor/dbcfile.cpp @@ -3,12 +3,12 @@ #include "dbcfile.h" #include "mpq_libmpq04.h" -DBCFile::DBCFile(const std::string &filename): - filename(filename), - data(0) +DBCFile::DBCFile(const std::string& filename): + filename(filename), recordSize(0), recordCount(0), fieldCount(0), stringSize(0), data(NULL), stringTable(NULL) { } + bool DBCFile::open() { MPQFile f(filename.c_str()); diff --git a/src/tools/vmap4_extractor/adtfile.cpp b/src/tools/vmap4_extractor/adtfile.cpp index a966172a3be..a605118eead 100644 --- a/src/tools/vmap4_extractor/adtfile.cpp +++ b/src/tools/vmap4_extractor/adtfile.cpp @@ -26,7 +26,7 @@ #define snprintf _snprintf #endif -const char * GetPlainName(const char * FileName) +char const* GetPlainName(char const* FileName) { const char * szTemp; @@ -35,7 +35,7 @@ const char * GetPlainName(const char * FileName) return FileName; } -char * GetPlainName(char * FileName) +char* GetPlainName(char* FileName) { char * szTemp; @@ -44,24 +44,21 @@ char * GetPlainName(char * FileName) return FileName; } -void fixnamen(char *name, size_t len) +void fixnamen(char* name, size_t len) { - for (size_t i=0; i<len-3; i++) + for (size_t i = 0; i < len-3; i++) { - if (i>0 && name[i]>='A' && name[i]<='Z' && isalpha(name[i-1])) - { + if (i > 0 && name[i] >= 'A' && name[i] <= 'Z' && isalpha(name[i-1])) name[i] |= 0x20; - } else if ((i==0 || !isalpha(name[i-1])) && name[i]>='a' && name[i]<='z') - { + else if ((i == 0 || !isalpha(name[i-1])) && name[i]>='a' && name[i]<='z') name[i] &= ~0x20; - } } //extension in lowercase - for(size_t i=len-3; i<len; i++) + for (size_t i = len - 3; i < len; i++) name[i] |= 0x20; } -void fixname2(char *name, size_t len) +void fixname2(char* name, size_t len) { for (size_t i=0; i<len-3; i++) { @@ -70,15 +67,15 @@ void fixname2(char *name, size_t len) } } -char * GetExtension(char * FileName) +char* GetExtension(char* FileName) { - char * szTemp; - if((szTemp = strrchr(FileName, '.')) != NULL) + char* szTemp; + if (szTemp = strrchr(FileName, '.')) return szTemp; return NULL; } -ADTFile::ADTFile(char* filename): ADT(filename) +ADTFile::ADTFile(char* filename): ADT(filename), nWMO(0), nMDX(0), WmoInstansName(NULL), ModelInstansName(NULL) { Adtfilename.append(filename); } @@ -99,7 +96,7 @@ bool ADTFile::init(uint32 map_num, uint32 tileX, uint32 tileY) 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("_"))); Adtfilename.erase((Adtfilename.length()-xMap.length()-yMap.length()-2), (xMap.length()+yMap.length()+2)); - string AdtMapNumber = xMap + ' ' + yMap + ' ' + GetPlainName((char*)Adtfilename.c_str()); + //string AdtMapNumber = xMap + ' ' + yMap + ' ' + GetPlainName((char*)Adtfilename.c_str()); //printf("Processing map %s...\n", AdtMapNumber.c_str()); //printf("MapNumber = %s\n", TempMapNumber.c_str()); //printf("xMap = %s\n", xMap.c_str()); @@ -159,18 +156,17 @@ bool ADTFile::init(uint32 map_num, uint32 tileX, uint32 tileY) { if (size) { - char *buf = new char[size]; + char* buf = new char[size]; ADT.read(buf, size); - char *p=buf; + char* p=buf; int q = 0; WmoInstansName = new string[size]; while (p<buf+size) { - string path(p); - char* s=GetPlainName(p); - fixnamen(s,strlen(s)); - fixname2(s,strlen(s)); - p=p+strlen(p)+1; + char* s = GetPlainName(p); + fixnamen(s, strlen(s)); + fixname2(s, strlen(s)); + p += strlen(p) + 1; WmoInstansName[q++] = s; } delete[] buf; diff --git a/src/tools/vmap4_extractor/dbcfile.cpp b/src/tools/vmap4_extractor/dbcfile.cpp index 2474cea5259..a651456d916 100644 --- a/src/tools/vmap4_extractor/dbcfile.cpp +++ b/src/tools/vmap4_extractor/dbcfile.cpp @@ -23,9 +23,10 @@ #include <cstdio> -DBCFile::DBCFile(const std::string &filename) : filename(filename) +DBCFile::DBCFile(const std::string& filename): + filename(filename), recordSize(0), recordCount(0), fieldCount(0), stringSize(0), data(NULL), stringTable(NULL) { - data = NULL; + } bool DBCFile::open() diff --git a/src/tools/vmap4_extractor/model.cpp b/src/tools/vmap4_extractor/model.cpp index e81972f521f..57f9b421dbe 100644 --- a/src/tools/vmap4_extractor/model.cpp +++ b/src/tools/vmap4_extractor/model.cpp @@ -26,15 +26,14 @@ Model::Model(std::string &filename) : filename(filename), vertices(0), indices(0) { + memset(&header, 0, sizeof(header)); } bool Model::open() { MPQFile f(filename.c_str()); - ok = !f.isEof(); - - if (!ok) + if (f.isEof()) { f.close(); // Do not show this error on console to avoid confusion, the extractor can continue working even if some models fail to load @@ -52,9 +51,7 @@ bool Model::open() vertices = new Vec3D[header.nBoundingVertices]; f.read(vertices,header.nBoundingVertices*12); for (uint32 i=0; i<header.nBoundingVertices; i++) - { vertices[i] = fixCoordSystem(vertices[i]); - } f.seek(0); f.seekRelative(header.ofsBoundingTriangles); indices = new uint16[header.nBoundingTriangles]; @@ -73,13 +70,13 @@ bool Model::open() bool Model::ConvertToVMAPModel(const char * outfilename) { int N[12] = {0,0,0,0,0,0,0,0,0,0,0,0}; - FILE * output=fopen(outfilename,"wb"); - if(!output) + FILE* output=fopen(outfilename, "wb"); + if (!output) { printf("Can't create the output file '%s'\n",outfilename); return false; } - fwrite(szRawVMAPMagic,8,1,output); + fwrite(szRawVMAPMagic, 8, 1, output); uint32 nVertices = 0; nVertices = header.nBoundingVertices; fwrite(&nVertices, sizeof(int), 1, output); @@ -101,20 +98,18 @@ bool Model::ConvertToVMAPModel(const char * outfilename) wsize = sizeof(uint32) + sizeof(unsigned short) * nIndexes; fwrite(&wsize, sizeof(int), 1, output); fwrite(&nIndexes, sizeof(uint32), 1, output); - if(nIndexes >0) - { + if (nIndexes >0) fwrite(indices, sizeof(unsigned short), nIndexes, output); - } - fwrite("VERT",4, 1, output); + + fwrite("VERT", 4, 1, output); wsize = sizeof(int) + sizeof(float) * 3 * nVertices; fwrite(&wsize, sizeof(int), 1, output); fwrite(&nVertices, sizeof(int), 1, output); - if(nVertices >0) + if (nVertices >0) { for(uint32 vpos=0; vpos <nVertices; ++vpos) - { std::swap(vertices[vpos].y, vertices[vpos].z); - } + fwrite(vertices, sizeof(float)*3, nVertices, output); } @@ -134,24 +129,24 @@ Vec3D fixCoordSystem2(Vec3D v) return Vec3D(v.x, v.z, v.y); } -ModelInstance::ModelInstance(MPQFile &f,const char* ModelInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE *pDirfile) +ModelInstance::ModelInstance(MPQFile& f, char const* ModelInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE *pDirfile) + : model(NULL), d1(0), w(0.0f) { float ff[3]; f.read(&id, 4); - f.read(ff,12); - pos = fixCoords(Vec3D(ff[0],ff[1],ff[2])); - f.read(ff,12); - rot = Vec3D(ff[0],ff[1],ff[2]); - f.read(&scale,4); + f.read(ff, 12); + pos = fixCoords(Vec3D(ff[0], ff[1], ff[2])); + f.read(ff, 12); + rot = Vec3D(ff[0], ff[1], ff[2]); + f.read(&scale, 4); // scale factor - divide by 1024. blizzard devs must be on crack, why not just use a float? sc = scale / 1024.0f; char tempname[512]; sprintf(tempname, "%s/%s", szWorkDirWmo, ModelInstName); - FILE *input; - input = fopen(tempname, "r+b"); + FILE* input = fopen(tempname, "r+b"); - if(!input) + if (!input) { //printf("ModelInstance::ModelInstance couldn't open %s\n", tempname); return; @@ -167,7 +162,9 @@ ModelInstance::ModelInstance(MPQFile &f,const char* ModelInstName, uint32 mapID, uint16 adtId = 0;// not used for models uint32 flags = MOD_M2; - if(tileX == 65 && tileY == 65) flags |= MOD_WORLDSPAWN; + if (tileX == 65 && tileY == 65) + flags |= MOD_WORLDSPAWN; + //write mapID, tileX, tileY, Flags, ID, Pos, Rot, Scale, name fwrite(&mapID, sizeof(uint32), 1, pDirfile); fwrite(&tileX, sizeof(uint32), 1, pDirfile); diff --git a/src/tools/vmap4_extractor/model.h b/src/tools/vmap4_extractor/model.h index a6f4e27583c..7dd69212b54 100644 --- a/src/tools/vmap4_extractor/model.h +++ b/src/tools/vmap4_extractor/model.h @@ -21,12 +21,9 @@ #include "loadlib/loadlib.h" #include "vec3d.h" -//#include "mpq.h" #include "modelheaders.h" #include <vector> -class Model; -class WMOInstance; class MPQFile; Vec3D fixCoordSystem(Vec3D v); @@ -35,18 +32,14 @@ class Model { public: ModelHeader header; - uint32 offsBB_vertices, offsBB_indices; - Vec3D *BB_vertices, *vertices; - uint16 *BB_indices, *indices; - size_t nIndices; + Vec3D* vertices; + uint16* indices; bool open(); - bool ConvertToVMAPModel(const char * outfilename); + bool ConvertToVMAPModel(char const* outfilename); - bool ok; - - Model(std::string &filename); - ~Model() {_unload();} + Model(std::string& filename); + ~Model() { _unload(); } private: void _unload() @@ -56,22 +49,22 @@ private: vertices = NULL; indices = NULL; } + std::string filename; - char outfilename; }; class ModelInstance { public: - Model *model; + Model* model; uint32 id; Vec3D pos, rot; unsigned int d1, scale; - float w,sc; + float w, sc; - ModelInstance() {} - ModelInstance(MPQFile &f,const char* ModelInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE *pDirfile); + ModelInstance() : model(NULL), d1(0), scale(0), w(0.0f), sc(0.0f), id(0) {} + ModelInstance(MPQFile& f, char const* ModelInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE* pDirfile); }; diff --git a/src/tools/vmap4_extractor/vmapexport.cpp b/src/tools/vmap4_extractor/vmapexport.cpp index 126a543400c..40a22a2a6e0 100644 --- a/src/tools/vmap4_extractor/vmapexport.cpp +++ b/src/tools/vmap4_extractor/vmapexport.cpp @@ -159,12 +159,12 @@ bool ExtractSingleWmo(std::string& fname) int p = 0; //Select root wmo files - const char * rchr = strrchr(plain_name, '_'); + char const* rchr = strrchr(plain_name, '_'); if(rchr != NULL) { char cpy[4]; - strncpy((char*)cpy,rchr,4); - for (int i=0;i < 4; ++i) + strncpy((char*)cpy, rchr, 4); + for (int i = 0; i < 4; ++i) { int m = cpy[i]; if(isdigit(m)) @@ -200,7 +200,7 @@ bool ExtractSingleWmo(std::string& fname) strcpy(temp, fname.c_str()); temp[fname.length()-4] = 0; char groupFileName[1024]; - sprintf(groupFileName,"%s_%03d.wmo",temp, i); + sprintf(groupFileName, "%s_%03u.wmo", temp, i); //printf("Trying to open groupfile %s\n",groupFileName); string s = groupFileName; diff --git a/src/tools/vmap4_extractor/wdtfile.cpp b/src/tools/vmap4_extractor/wdtfile.cpp index e3ee545db19..a799a928710 100644 --- a/src/tools/vmap4_extractor/wdtfile.cpp +++ b/src/tools/vmap4_extractor/wdtfile.cpp @@ -30,7 +30,7 @@ char * wdtGetPlainName(char * FileName) return FileName; } -WDTFile::WDTFile(char* file_name, char* file_name1):WDT(file_name) +WDTFile::WDTFile(char* file_name, char* file_name1) : WDT(file_name), gWmoInstansName(NULL), gnWMO(0) { filename.append(file_name1,strlen(file_name1)); } @@ -78,9 +78,8 @@ bool WDTFile::init(char *map_id, unsigned int mapID) char *p=buf; int q = 0; gWmoInstansName = new string[size]; - while (p<buf+size) + while (p < buf + size) { - string path(p); char* s=wdtGetPlainName(p); fixnamen(s,strlen(s)); p=p+strlen(p)+1; @@ -89,23 +88,20 @@ bool WDTFile::init(char *map_id, unsigned int mapID) delete[] buf; } } - else if (!strcmp(fourcc,"MODF")) + else if (!strcmp(fourcc, "MODF")) { // global wmo instance data if (size) { gnWMO = (int)size / 64; - string gWMO_mapname; - string fake_mapname; - fake_mapname = "65 65 "; - //gWMO_mapname = fake_mapname + filename; - gWMO_mapname = fake_mapname + std::string(map_id); - for (int i=0; i<gnWMO; ++i) + + for (int i = 0; i < gnWMO; ++i) { int id; WDT.read(&id, 4); - WMOInstance inst(WDT,gWmoInstansName[id].c_str(),mapID, 65, 65, dirfile); + WMOInstance inst(WDT,gWmoInstansName[id].c_str(), mapID, 65, 65, dirfile); } + delete[] gWmoInstansName; } } diff --git a/src/tools/vmap4_extractor/wdtfile.h b/src/tools/vmap4_extractor/wdtfile.h index f3d71c41791..2c66dbceb92 100644 --- a/src/tools/vmap4_extractor/wdtfile.h +++ b/src/tools/vmap4_extractor/wdtfile.h @@ -13,16 +13,15 @@ class WDTFile public: WDTFile(char* file_name, char* file_name1); ~WDTFile(void); - bool init(char *map_id, unsigned int mapID); + bool init(char* map_id, unsigned int mapID); string* gWmoInstansName; - int gnWMO, nMaps; + int gnWMO; ADTFile* GetMap(int x, int z); private: MPQFile WDT; - bool maps[64][64]; string filename; }; diff --git a/src/tools/vmap4_extractor/wmo.cpp b/src/tools/vmap4_extractor/wmo.cpp index 6703872111b..0bc749b9bd5 100644 --- a/src/tools/vmap4_extractor/wmo.cpp +++ b/src/tools/vmap4_extractor/wmo.cpp @@ -31,8 +31,12 @@ using namespace std; extern uint16 *LiqType; -WMORoot::WMORoot(std::string &filename) : filename(filename) +WMORoot::WMORoot(std::string &filename) + : filename(filename), col(0), nTextures(0), nGroups(0), nP(0), nLights(0), + nModels(0), nDoodads(0), nDoodadSets(0), RootWMOID(0), liquidType(0) { + memset(bbcorn1, 0, sizeof(bbcorn1)); + memset(bbcorn2, 0, sizeof(bbcorn2)); } bool WMORoot::open() @@ -57,7 +61,7 @@ bool WMORoot::open() size_t nextpos = f.getPos() + size; - if (!strcmp(fourcc,"MOHD"))//header + if (!strcmp(fourcc,"MOHD")) // header { f.read(&nTextures, 4); f.read(&nGroups, 4); @@ -68,8 +72,8 @@ bool WMORoot::open() f.read(&nDoodadSets, 4); f.read(&col, 4); f.read(&RootWMOID, 4); - f.read(bbcorn1,12); - f.read(bbcorn2,12); + f.read(bbcorn1, 12); + f.read(bbcorn2, 12); f.read(&liquidType, 4); break; } @@ -120,15 +124,15 @@ bool WMORoot::open() return true; } -bool WMORoot::ConvertToVMAPRootWmo(FILE *pOutfile) +bool WMORoot::ConvertToVMAPRootWmo(FILE* pOutfile) { //printf("Convert RootWmo...\n"); - fwrite(szRawVMAPMagic,1,8,pOutfile); + fwrite(szRawVMAPMagic, 1, 8, pOutfile); unsigned int nVectors = 0; - fwrite(&nVectors,sizeof(nVectors),1,pOutfile); // will be filled later - fwrite(&nGroups,4,1,pOutfile); - fwrite(&RootWMOID,4,1,pOutfile); + fwrite(&nVectors,sizeof(nVectors), 1, pOutfile); // will be filled later + fwrite(&nGroups, 4, 1, pOutfile); + fwrite(&RootWMOID, 4, 1, pOutfile); return true; } @@ -136,9 +140,13 @@ WMORoot::~WMORoot() { } -WMOGroup::WMOGroup(std::string &filename) : filename(filename), - MOPY(0), MOVI(0), MoviEx(0), MOVT(0), MOBA(0), MobaEx(0), hlq(0), LiquEx(0), LiquBytes(0) +WMOGroup::WMOGroup(const std::string &filename) : + filename(filename), MOPY(0), MOVI(0), MoviEx(0), MOVT(0), MOBA(0), MobaEx(0), + hlq(0), LiquEx(0), LiquBytes(0), groupName(0), descGroupName(0), mogpFlags(0), + mopy_size(0), moba_size(0), LiquEx_size(0), nVertices(0), nTriangles(0) { + memset(bbcorn1, 0, sizeof(bbcorn1)); + memset(bbcorn2, 0, sizeof(bbcorn2)); } bool WMOGroup::open() @@ -237,7 +245,7 @@ bool WMOGroup::open() return true; } -int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, WMORoot *rootWMO, bool pPreciseVectorData) +int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, WMORoot *rootWMO, bool preciseVectorData) { fwrite(&mogpFlags,sizeof(uint32),1,output); fwrite(&groupWMOID,sizeof(uint32),1,output); @@ -246,7 +254,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, WMORoot *rootWMO, bool pPrecis fwrite(bbcorn2, sizeof(float), 3, output); fwrite(&liquflags,sizeof(uint32),1,output); int nColTriangles = 0; - if(pPreciseVectorData) + if (preciseVectorData) { char GRP[] = "GRP "; fwrite(GRP,1,4,output); @@ -479,10 +487,9 @@ WMOGroup::~WMOGroup() delete [] LiquBytes; } -WMOInstance::WMOInstance(MPQFile &f,const char* WmoInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE *pDirfile) +WMOInstance::WMOInstance(MPQFile& f, char const* WmoInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE* pDirfile) + : currx(0), curry(0), wmo(NULL), doodadset(0), pos(), indx(0), d3(0) { - pos = Vec3D(0,0,0); - float ff[3]; f.read(&id, 4); f.read(ff,12); diff --git a/src/tools/vmap4_extractor/wmo.h b/src/tools/vmap4_extractor/wmo.h index d1f7b82f0c6..74e666d3f82 100644 --- a/src/tools/vmap4_extractor/wmo.h +++ b/src/tools/vmap4_extractor/wmo.h @@ -50,14 +50,13 @@ public: float bbcorn1[3]; float bbcorn2[3]; - WMORoot(std::string &filename); + WMORoot(std::string& filename); ~WMORoot(); bool open(); - bool ConvertToVMAPRootWmo(FILE *output); + bool ConvertToVMAPRootWmo(FILE* output); private: std::string filename; - char outfilename; }; struct WMOLiquidHeader @@ -89,30 +88,29 @@ public: uint16 nBatchB; uint32 nBatchC, fogIdx, liquidType, groupWMOID; - int mopy_size,moba_size; + int mopy_size, moba_size; int LiquEx_size; unsigned int nVertices; // number when loaded int nTriangles; // number when loaded - char *MOPY; - uint16 *MOVI; - uint16 *MoviEx; - float *MOVT; - uint16 *MOBA; - int *MobaEx; - WMOLiquidHeader *hlq; - WMOLiquidVert *LiquEx; - char *LiquBytes; + char* MOPY; + uint16* MOVI; + uint16* MoviEx; + float* MOVT; + uint16* MOBA; + int* MobaEx; + WMOLiquidHeader* hlq; + WMOLiquidVert* LiquEx; + char* LiquBytes; uint32 liquflags; - WMOGroup(std::string &filename); + WMOGroup(std::string const& filename); ~WMOGroup(); bool open(); - int ConvertToVMAPGroupWmo(FILE *output, WMORoot *rootWMO, bool pPreciseVectorData); + int ConvertToVMAPGroupWmo(FILE* output, WMORoot* rootWMO, bool preciseVectorData); private: std::string filename; - char outfilename; }; class WMOInstance @@ -122,13 +120,13 @@ public: std::string MapName; int currx; int curry; - WMOGroup *wmo; + WMOGroup* wmo; Vec3D pos; Vec3D pos2, pos3, rot; - uint32 indx,id, d2, d3; + uint32 indx, id, d2, d3; int doodadset; - WMOInstance(MPQFile &f,const char* WmoInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE *pDirfile); + WMOInstance(MPQFile&f , char const* WmoInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE* pDirfile); static void reset(); }; |