diff options
Diffstat (limited to 'src/tools/vmap4_extractor')
| -rw-r--r-- | src/tools/vmap4_extractor/gameobject_extract.cpp | 5 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/model.cpp | 9 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/vmapexport.h | 15 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/wmo.cpp | 2 |
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; } |
