aboutsummaryrefslogtreecommitdiff
path: root/src/tools/vmap4_extractor
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/vmap4_extractor')
-rw-r--r--src/tools/vmap4_extractor/gameobject_extract.cpp5
-rw-r--r--src/tools/vmap4_extractor/model.cpp9
-rw-r--r--src/tools/vmap4_extractor/vmapexport.h15
-rw-r--r--src/tools/vmap4_extractor/wmo.cpp2
4 files changed, 19 insertions, 12 deletions
diff --git a/src/tools/vmap4_extractor/gameobject_extract.cpp b/src/tools/vmap4_extractor/gameobject_extract.cpp
index 78d95ff2669..7cd77764609 100644
--- a/src/tools/vmap4_extractor/gameobject_extract.cpp
+++ b/src/tools/vmap4_extractor/gameobject_extract.cpp
@@ -119,12 +119,8 @@ void ExtractGameobjectModels()
if (!GetHeaderMagic(fileName, &header))
continue;
- uint8 isWmo = 0;
if (!memcmp(&header, "REVM", 4))
- {
- isWmo = 1;
result = ExtractSingleWmo(fileName);
- }
else if (!memcmp(&header, "MD20", 4) || !memcmp(&header, "MD21", 4))
result = ExtractSingleModel(fileName);
else
@@ -135,7 +131,6 @@ void ExtractGameobjectModels()
uint32 displayId = record.GetId();
uint32 path_length = fileName.length();
fwrite(&displayId, sizeof(uint32), 1, model_list);
- fwrite(&isWmo, sizeof(uint8), 1, model_list);
fwrite(&path_length, sizeof(uint32), 1, model_list);
fwrite(fileName.c_str(), sizeof(char), path_length, model_list);
}
diff --git a/src/tools/vmap4_extractor/model.cpp b/src/tools/vmap4_extractor/model.cpp
index f49df2ea119..f1272cb28a6 100644
--- a/src/tools/vmap4_extractor/model.cpp
+++ b/src/tools/vmap4_extractor/model.cpp
@@ -99,7 +99,10 @@ bool Model::ConvertToVMAPModel(const char * outfilename)
fwrite(&nVertices, sizeof(int), 1, output);
uint32 nofgroups = 1;
fwrite(&nofgroups, sizeof(uint32), 1, output);
- fwrite(N, 4 * 3, 1, output);// rootwmoid, flags, groupid
+ fwrite(N, 4, 1, output);// RootWMOID
+ ModelFlags tcFlags = ModelFlags::IsM2;
+ fwrite(&tcFlags, sizeof(ModelFlags), 1, output);
+ fwrite(N, 4 * 2, 1, output);// mogpFlags, groupWMOID
fwrite(&bounds, sizeof(AaBox3D), 1, output);//bbox, only needed for WMO currently
fwrite(N, 4, 1, output);// liquidflags
fwrite("GRP ", 4, 1, output);
@@ -177,7 +180,7 @@ void Doodad::Extract(ADT::MDDF const& doodadDef, char const* ModelInstName, uint
uint8 nameSet = 0;// not used for models
uint32 uniqueId = GenerateUniqueObjectId(doodadDef.UniqueId, 0, false);
- uint8 tcflags = MOD_M2;
+ uint8 tcflags = 0;
if (mapID != originalMapId)
tcflags |= MOD_PARENT_SPAWN;
@@ -285,7 +288,7 @@ void Doodad::ExtractSet(WMODoodadData const& doodadData, ADT::MODF const& wmo, b
uint8 nameSet = 0; // not used for models
uint32 uniqueId = GenerateUniqueObjectId(wmo.UniqueId, doodadId, false);
- uint8 tcflags = MOD_M2;
+ uint8 tcflags = 0;
if (mapID != originalMapId)
tcflags |= MOD_PARENT_SPAWN;
diff --git a/src/tools/vmap4_extractor/vmapexport.h b/src/tools/vmap4_extractor/vmapexport.h
index 611e9711604..49129ded1ac 100644
--- a/src/tools/vmap4_extractor/vmapexport.h
+++ b/src/tools/vmap4_extractor/vmapexport.h
@@ -22,11 +22,18 @@
#include <string>
#include <unordered_map>
-enum ModelFlags
+// flags of each spawn
+enum ModelInstanceFlags
{
- MOD_M2 = 1,
- MOD_HAS_BOUND = 1 << 1,
- MOD_PARENT_SPAWN = 1 << 2
+ MOD_HAS_BOUND = 1 << 0,
+ MOD_PARENT_SPAWN = 1 << 1
+};
+
+// flags of each model
+enum class ModelFlags : uint32
+{
+ None = 0x0,
+ IsM2 = 0x1
};
struct WMODoodadData;
diff --git a/src/tools/vmap4_extractor/wmo.cpp b/src/tools/vmap4_extractor/wmo.cpp
index de53598c3d5..4301e758cb5 100644
--- a/src/tools/vmap4_extractor/wmo.cpp
+++ b/src/tools/vmap4_extractor/wmo.cpp
@@ -200,6 +200,8 @@ bool WMORoot::ConvertToVMAPRootWmo(FILE* pOutfile)
fwrite(&nVectors,sizeof(nVectors), 1, pOutfile); // will be filled later
fwrite(&nGroups, 4, 1, pOutfile);
fwrite(&RootWMOID, 4, 1, pOutfile);
+ ModelFlags tcFlags = ModelFlags::None;
+ fwrite(&tcFlags, sizeof(ModelFlags), 1, pOutfile);
return true;
}