aboutsummaryrefslogtreecommitdiff
path: root/src/tools/vmap4_assembler/TileAssembler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-12-07 16:23:55 +0100
committerShauren <shauren.trinity@gmail.com>2020-12-08 18:16:47 +0100
commit7a406db50626ba9e9a64c8c3d9b6e5b7310ac527 (patch)
tree2003395f4b837acbf5e867af90614ecba7a55ab5 /src/tools/vmap4_assembler/TileAssembler.cpp
parent96d340f70ccef57fad177a24ca099055d7dce04d (diff)
Core/Collision: Fixed false positive errors in console about vmap loading
Diffstat (limited to 'src/tools/vmap4_assembler/TileAssembler.cpp')
-rw-r--r--src/tools/vmap4_assembler/TileAssembler.cpp23
1 files changed, 5 insertions, 18 deletions
diff --git a/src/tools/vmap4_assembler/TileAssembler.cpp b/src/tools/vmap4_assembler/TileAssembler.cpp
index a29cb3a516d..ed9406eca96 100644
--- a/src/tools/vmap4_assembler/TileAssembler.cpp
+++ b/src/tools/vmap4_assembler/TileAssembler.cpp
@@ -76,7 +76,7 @@ namespace VMAP
printf("Calculating model bounds for map %u...\n", data.MapId);
for (auto entry = data.UniqueEntries.begin(); entry != data.UniqueEntries.end(); ++entry)
{
- // M2 models don't have a bound set in WDT/ADT placement data, i still think they're not used for LoS at all on retail
+ // M2 models don't have a bound set in WDT/ADT placement data, they're not used for LoS but are needed for pathfinding
if (entry->second.flags & MOD_M2)
if (!calculateTransformedBound(entry->second))
continue;
@@ -133,7 +133,6 @@ namespace VMAP
for (uint32 i = 0; i < mapSpawnsSize; ++i)
{
if (success && fwrite(&mapSpawns[i]->ID, sizeof(uint32), 1, mapfile) != 1) success = false;
- if (success && fwrite(&i, sizeof(uint32), 1, mapfile) != 1) success = false;
}
fclose(mapfile);
@@ -292,7 +291,7 @@ namespace VMAP
for (uint32 g = 0; g < groups; ++g)
{
GroupModel_Raw& raw_group = raw_model.groupsArray[g];
- groupsArray.push_back(GroupModel(raw_group.mogpflags, raw_group.GroupWMOID, raw_group.bounds ));
+ groupsArray.push_back(GroupModel(raw_group.mogpflags, raw_group.GroupWMOID, raw_group.bounds));
groupsArray.back().setMeshData(raw_group.vertexArray, raw_group.triangles);
groupsArray.back().setLiquidData(raw_group.liquid);
}
@@ -353,21 +352,9 @@ namespace VMAP
spawnedModelFiles.insert(model_name);
AABox bounds;
- bool boundEmpty = true;
- for (uint32 g = 0; g < raw_model.groupsArray.size(); ++g)
- {
- std::vector<Vector3>& vertices = raw_model.groupsArray[g].vertexArray;
-
- uint32 nvectors = vertices.size();
- for (uint32 i = 0; i < nvectors; ++i)
- {
- Vector3& v = vertices[i];
- if (boundEmpty)
- bounds = AABox(v, v), boundEmpty = false;
- else
- bounds.merge(v);
- }
- }
+ for (GroupModel_Raw const& groupModel : raw_model.groupsArray)
+ for (G3D::Vector3 const& vertice : groupModel.vertexArray)
+ bounds.merge(vertice);
if (bounds.isEmpty())
{