diff options
| author | Spp <spp@jorge.gr> | 2013-05-30 13:14:06 +0200 |
|---|---|---|
| committer | Spp <spp@jorge.gr> | 2013-05-30 13:18:29 +0200 |
| commit | 9664c0ab5cc7449f2e839fb60b6b87c9d56dfb92 (patch) | |
| tree | 092af4d16233823423cc552c567acb3307380951 /src/server/collision | |
| parent | 782ea4309a4d392ba9933caace067d567703c84b (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.cpp | 5 | ||||
| -rw-r--r-- | src/server/collision/Maps/MapTree.h | 3 | ||||
| -rw-r--r-- | src/server/collision/Maps/TileAssembler.cpp | 32 | ||||
| -rw-r--r-- | src/server/collision/Maps/TileAssembler.h | 4 |
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); |
