aboutsummaryrefslogtreecommitdiff
path: root/src/server/collision/Maps/TileAssembler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2013-05-28 17:37:10 +0200
committerShauren <shauren.trinity@gmail.com>2013-05-28 17:37:10 +0200
commit26a22dc3ab98538297f72b80dc12ed6e2295384f (patch)
tree3cdb5fa99cb2df6ebcb5f283120254afaa4898b1 /src/server/collision/Maps/TileAssembler.cpp
parent0938fdeeec47bca2304cd77be8169f61a0c23654 (diff)
Tools/Extractors: Fixed many false positive err=2 messages and fixed many compile warnings
Diffstat (limited to 'src/server/collision/Maps/TileAssembler.cpp')
-rw-r--r--src/server/collision/Maps/TileAssembler.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/server/collision/Maps/TileAssembler.cpp b/src/server/collision/Maps/TileAssembler.cpp
index aca7c02e79f..90bfe01b561 100644
--- a/src/server/collision/Maps/TileAssembler.cpp
+++ b/src/server/collision/Maps/TileAssembler.cpp
@@ -345,10 +345,13 @@ namespace VMAP
uint32 name_length, displayId;
char buff[500];
- while (!feof(model_list))
+ while (true)
{
- if (fread(&displayId, sizeof(uint32), 1, model_list) != 1
- || fread(&name_length, sizeof(uint32), 1, model_list) != 1
+ if (fread(&displayId, sizeof(uint32), 1, model_list) != 1)
+ if (!feof(model_list)) // EOF flag is only set after failed reading attempt
+ break;
+
+ if (fread(&name_length, sizeof(uint32), 1, model_list) != 1
|| name_length >= sizeof(buff)
|| fread(&buff, sizeof(char), name_length, model_list) != name_length)
{
@@ -359,7 +362,7 @@ namespace VMAP
std::string model_name(buff, name_length);
WorldModel_Raw raw_model;
- if ( !raw_model.Read((iSrcDir + "/" + model_name).c_str()) )
+ if (!raw_model.Read((iSrcDir + "/" + model_name).c_str()) )
continue;
spawnedModelFiles.insert(model_name);