diff options
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();  }; | 
