aboutsummaryrefslogtreecommitdiff
path: root/src/server/collision
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2013-05-30 13:14:06 +0200
committerSpp <spp@jorge.gr>2013-05-30 13:18:29 +0200
commit9664c0ab5cc7449f2e839fb60b6b87c9d56dfb92 (patch)
tree092af4d16233823423cc552c567acb3307380951 /src/server/collision
parent782ea4309a4d392ba9933caace067d567703c84b (diff)
Core/Misc: Another batch of fixes for issues found by static analysis
Diffstat (limited to 'src/server/collision')
-rw-r--r--src/server/collision/Maps/MapTree.cpp5
-rw-r--r--src/server/collision/Maps/MapTree.h3
-rw-r--r--src/server/collision/Maps/TileAssembler.cpp32
-rw-r--r--src/server/collision/Maps/TileAssembler.h4
4 files changed, 25 insertions, 19 deletions
diff --git a/src/server/collision/Maps/MapTree.cpp b/src/server/collision/Maps/MapTree.cpp
index ebe3afce810..dc12bb68e0d 100644
--- a/src/server/collision/Maps/MapTree.cpp
+++ b/src/server/collision/Maps/MapTree.cpp
@@ -119,8 +119,9 @@ namespace VMAP
return intersectionCallBack.result;
}
- StaticMapTree::StaticMapTree(uint32 mapID, const std::string &basePath)
- : iMapID(mapID), iIsTiled(false), iTreeValues(0), iBasePath(basePath)
+ StaticMapTree::StaticMapTree(uint32 mapID, const std::string &basePath) :
+ iMapID(mapID), iIsTiled(false), iTreeValues(NULL),
+ iNTreeValues(0), iBasePath(basePath)
{
if (iBasePath.length() > 0 && iBasePath[iBasePath.length()-1] != '/' && iBasePath[iBasePath.length()-1] != '\\')
{
diff --git a/src/server/collision/Maps/MapTree.h b/src/server/collision/Maps/MapTree.h
index e97c44d089e..c66893da82f 100644
--- a/src/server/collision/Maps/MapTree.h
+++ b/src/server/collision/Maps/MapTree.h
@@ -85,7 +85,8 @@ namespace VMAP
struct AreaInfo
{
- AreaInfo(): result(false), ground_Z(-G3D::inf()) {}
+ AreaInfo(): result(false), ground_Z(-G3D::inf()), flags(0), adtId(0),
+ rootId(0), groupId(0) {}
bool result;
float ground_Z;
uint32 flags;
diff --git a/src/server/collision/Maps/TileAssembler.cpp b/src/server/collision/Maps/TileAssembler.cpp
index aca7c02e79f..4b61e5da40b 100644
--- a/src/server/collision/Maps/TileAssembler.cpp
+++ b/src/server/collision/Maps/TileAssembler.cpp
@@ -152,23 +152,25 @@ namespace VMAP
uint32 x, y;
StaticMapTree::unpackTileID(tile->first, x, y);
tilefilename << std::setw(2) << x << '_' << std::setw(2) << y << ".vmtile";
- FILE* tilefile = fopen(tilefilename.str().c_str(), "wb");
- // file header
- if (success && fwrite(VMAP_MAGIC, 1, 8, tilefile) != 8) success = false;
- // write number of tile spawns
- if (success && fwrite(&nSpawns, sizeof(uint32), 1, tilefile) != 1) success = false;
- // write tile spawns
- for (uint32 s=0; s<nSpawns; ++s)
+ if (FILE* tilefile = fopen(tilefilename.str().c_str(), "wb"))
{
- if (s)
- ++tile;
- const ModelSpawn &spawn2 = map_iter->second->UniqueEntries[tile->second];
- success = success && ModelSpawn::writeToFile(tilefile, spawn2);
- // MapTree nodes to update when loading tile:
- std::map<uint32, uint32>::iterator nIdx = modelNodeIdx.find(spawn2.ID);
- if (success && fwrite(&nIdx->second, sizeof(uint32), 1, tilefile) != 1) success = false;
+ // file header
+ if (success && fwrite(VMAP_MAGIC, 1, 8, tilefile) != 8) success = false;
+ // write number of tile spawns
+ if (success && fwrite(&nSpawns, sizeof(uint32), 1, tilefile) != 1) success = false;
+ // write tile spawns
+ for (uint32 s=0; s<nSpawns; ++s)
+ {
+ if (s)
+ ++tile;
+ const ModelSpawn &spawn2 = map_iter->second->UniqueEntries[tile->second];
+ success = success && ModelSpawn::writeToFile(tilefile, spawn2);
+ // MapTree nodes to update when loading tile:
+ std::map<uint32, uint32>::iterator nIdx = modelNodeIdx.find(spawn2.ID);
+ if (success && fwrite(&nIdx->second, sizeof(uint32), 1, tilefile) != 1) success = false;
+ }
+ fclose(tilefile);
}
- fclose(tilefile);
}
// break; //test, extract only first map; TODO: remvoe this line
}
diff --git a/src/server/collision/Maps/TileAssembler.h b/src/server/collision/Maps/TileAssembler.h
index a11ce272d62..56cb7600e4f 100644
--- a/src/server/collision/Maps/TileAssembler.h
+++ b/src/server/collision/Maps/TileAssembler.h
@@ -40,6 +40,7 @@ namespace VMAP
private:
G3D::Matrix3 iRotation;
public:
+ ModelPosition(): iScale(0.0f) { }
G3D::Vector3 iPos;
G3D::Vector3 iDir;
float iScale;
@@ -74,7 +75,8 @@ namespace VMAP
std::vector<G3D::Vector3> vertexArray;
class WmoLiquid* liquid;
- GroupModel_Raw() : liquid(0) {}
+ GroupModel_Raw() : mogpflags(0), GroupWMOID(0), liquidflags(0),
+ liquid(NULL) {}
~GroupModel_Raw();
bool Read(FILE* f);