aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/authserver/Server/AuthSocket.cpp19
-rw-r--r--src/server/collision/Maps/MapTree.cpp4
-rw-r--r--src/server/collision/Maps/TileAssembler.cpp5
-rwxr-xr-xsrc/server/collision/Models/ModelInstance.h2
-rwxr-xr-xsrc/server/shared/Cryptography/BigNumber.cpp2
-rwxr-xr-xsrc/server/shared/Cryptography/BigNumber.h2
-rwxr-xr-xsrc/server/shared/DataStores/DBCFileLoader.cpp4
-rwxr-xr-xsrc/server/shared/DataStores/DBCFileLoader.h4
-rwxr-xr-xsrc/server/shared/Logging/Log.cpp4
-rwxr-xr-xsrc/server/shared/Utilities/ServiceWin32.cpp6
-rwxr-xr-xsrc/server/shared/Utilities/Util.cpp2
-rwxr-xr-xsrc/server/worldserver/TCSoap/TCSoap.h2
-rw-r--r--src/tools/map_extractor/System.cpp6
-rw-r--r--src/tools/map_extractor/dbcfile.cpp6
-rw-r--r--src/tools/vmap4_extractor/adtfile.cpp42
-rw-r--r--src/tools/vmap4_extractor/dbcfile.cpp5
-rw-r--r--src/tools/vmap4_extractor/model.cpp47
-rw-r--r--src/tools/vmap4_extractor/model.h27
-rw-r--r--src/tools/vmap4_extractor/vmapexport.cpp8
-rw-r--r--src/tools/vmap4_extractor/wdtfile.cpp18
-rw-r--r--src/tools/vmap4_extractor/wdtfile.h5
-rw-r--r--src/tools/vmap4_extractor/wmo.cpp39
-rw-r--r--src/tools/vmap4_extractor/wmo.h36
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();
};