aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfunjoker <funjoker109@gmail.com>2023-11-14 21:41:29 +0100
committerfunjoker <funjoker109@gmail.com>2023-11-14 21:41:29 +0100
commitd8b546707130b5fa81f73277c5fbd05e7e7cc2b9 (patch)
tree1588150433a3635aff8b5a8c9d7f278a27b66dde /src
parentf22ced6eca06f6ede7936bc0e782e8dc4511b9eb (diff)
Tools/Extractor: Update extractors for 3.4.3
Diffstat (limited to 'src')
-rw-r--r--src/tools/extractor_common/ExtractorDB2LoadInfo.h43
-rw-r--r--src/tools/map_extractor/System.cpp12
-rw-r--r--src/tools/vmap4_extractor/vmapexport.cpp15
-rw-r--r--src/tools/vmap4_extractor/wdtfile.cpp4
-rw-r--r--src/tools/vmap4_extractor/wdtfile.h2
5 files changed, 26 insertions, 50 deletions
diff --git a/src/tools/extractor_common/ExtractorDB2LoadInfo.h b/src/tools/extractor_common/ExtractorDB2LoadInfo.h
index 54ff44fd989..9297cd36ab8 100644
--- a/src/tools/extractor_common/ExtractorDB2LoadInfo.h
+++ b/src/tools/extractor_common/ExtractorDB2LoadInfo.h
@@ -23,18 +23,17 @@
struct CinematicCameraLoadInfo
{
- static constexpr DB2MetaField MetaFields[5] =
+ static constexpr DB2MetaField MetaFields[4] =
{
{ FT_FLOAT, 3, true },
{ FT_INT, 1, false },
{ FT_FLOAT, 1, true },
{ FT_INT, 1, false },
- { FT_INT, 1, false },
};
- static constexpr DB2Meta MetaInstance{ 1294214, -1, 5, 5, 0x4B3DF171, MetaFields, -1 };
+ static constexpr DB2Meta MetaInstance{ 1294214, -1, 4, 4, 0x744B99BC, MetaFields, -1 };
- static constexpr DB2FieldMeta Fields[8] =
+ static constexpr DB2FieldMeta Fields[7] =
{
{ false, FT_INT, "ID" },
{ false, FT_FLOAT, "OriginX" },
@@ -43,31 +42,29 @@ struct CinematicCameraLoadInfo
{ false, FT_INT, "SoundID" },
{ false, FT_FLOAT, "OriginFacing" },
{ false, FT_INT, "FileDataID" },
- { false, FT_INT, "ConversationID" },
};
- static constexpr DB2FileLoadInfo Instance{ Fields, 8, & MetaInstance };
+ static constexpr DB2FileLoadInfo Instance{ Fields, 7, & MetaInstance };
};
struct GameobjectDisplayInfoLoadInfo
{
- static constexpr DB2MetaField MetaFields[8] =
+ static constexpr DB2MetaField MetaFields[6] =
{
+ { FT_STRING_NOT_LOCALIZED, 1, true },
{ FT_FLOAT, 6, true },
{ FT_INT, 1, true },
{ FT_SHORT, 1, true },
{ FT_FLOAT, 1, true },
{ FT_FLOAT, 1, true },
- { FT_INT, 1, true },
- { FT_INT, 1, true },
- { FT_INT, 1, true },
};
- static constexpr DB2Meta MetaInstance{ 1266277, -1, 8, 8, 0x7F774625, MetaFields, -1 };
+ static constexpr DB2Meta MetaInstance{ 1266277, -1, 6, 6, 0xB59CF0B2, MetaFields, -1 };
- static constexpr DB2FieldMeta Fields[14] =
+ static constexpr DB2FieldMeta Fields[12] =
{
{ false, FT_INT, "ID" },
+ { false, FT_STRING_NOT_LOCALIZED, "ModelName" },
{ false, FT_FLOAT, "GeoBoxMinX" },
{ false, FT_FLOAT, "GeoBoxMinY" },
{ false, FT_FLOAT, "GeoBoxMinZ" },
@@ -78,12 +75,9 @@ struct GameobjectDisplayInfoLoadInfo
{ true, FT_SHORT, "ObjectEffectPackageID" },
{ false, FT_FLOAT, "OverrideLootEffectScale" },
{ false, FT_FLOAT, "OverrideNameScale" },
- { true, FT_INT, "AlternateDisplayType" },
- { true, FT_INT, "ClientCreatureDisplayInfoID" },
- { true, FT_INT, "ClientItemID" },
};
- static constexpr DB2FileLoadInfo Instance{ Fields, 14, &MetaInstance };
+ static constexpr DB2FileLoadInfo Instance{ Fields, 12, &MetaInstance };
};
struct LiquidMaterialLoadInfo
@@ -226,7 +220,7 @@ struct LiquidTypeLoadInfo
struct MapLoadInfo
{
- static constexpr DB2MetaField MetaFields[24] =
+ static constexpr DB2MetaField MetaFields[22] =
{
{ FT_STRING_NOT_LOCALIZED, 1, true },
{ FT_STRING, 1, true },
@@ -234,7 +228,6 @@ struct MapLoadInfo
{ FT_STRING, 1, true },
{ FT_STRING, 1, true },
{ FT_STRING, 1, true },
- { FT_FLOAT, 2, true },
{ FT_BYTE, 1, false },
{ FT_BYTE, 1, true },
{ FT_BYTE, 1, false },
@@ -245,18 +238,17 @@ struct MapLoadInfo
{ FT_SHORT, 1, true },
{ FT_BYTE, 1, false },
{ FT_FLOAT, 1, true },
+ { FT_INT, 1, true },
{ FT_SHORT, 1, true },
{ FT_BYTE, 1, false },
{ FT_SHORT, 1, true },
{ FT_INT, 1, true },
- { FT_INT, 1, true },
- { FT_INT, 1, true },
{ FT_INT, 3, true },
};
- static constexpr DB2Meta MetaInstance{ 1349477, -1, 24, 24, 0x15542FE8, MetaFields, -1 };
+ static constexpr DB2Meta MetaInstance{ 1349477, -1, 22, 22, 0xBFC078A9, MetaFields, -1 };
- static constexpr DB2FieldMeta Fields[28] =
+ static constexpr DB2FieldMeta Fields[25] =
{
{ false, FT_INT, "ID" },
{ false, FT_STRING_NOT_LOCALIZED, "Directory" },
@@ -265,8 +257,6 @@ struct MapLoadInfo
{ false, FT_STRING, "MapDescription1" },
{ false, FT_STRING, "PvpShortDescription" },
{ false, FT_STRING, "PvpLongDescription" },
- { false, FT_FLOAT, "CorpseX" },
- { false, FT_FLOAT, "CorpseY" },
{ false, FT_BYTE, "MapType" },
{ true, FT_BYTE, "InstanceType" },
{ false, FT_BYTE, "ExpansionID" },
@@ -277,18 +267,17 @@ struct MapLoadInfo
{ true, FT_SHORT, "CosmeticParentMapID" },
{ false, FT_BYTE, "TimeOffset" },
{ false, FT_FLOAT, "MinimapIconScale" },
+ { true, FT_INT, "RaidOffset" },
{ true, FT_SHORT, "CorpseMapID" },
{ false, FT_BYTE, "MaxPlayers" },
{ true, FT_SHORT, "WindSettingsID" },
{ true, FT_INT, "ZmpFileDataID" },
- { true, FT_INT, "WdtFileDataID" },
- { true, FT_INT, "NavigationMaxDistance" },
{ true, FT_INT, "Flags1" },
{ true, FT_INT, "Flags2" },
{ true, FT_INT, "Flags3" },
};
- static constexpr DB2FileLoadInfo Instance{ Fields, 28, &MetaInstance };
+ static constexpr DB2FileLoadInfo Instance{ Fields, 25, &MetaInstance };
};
#endif // ExtractorDB2LoadInfo_h__
diff --git a/src/tools/map_extractor/System.cpp b/src/tools/map_extractor/System.cpp
index ee57b149825..02ca7c353b6 100644
--- a/src/tools/map_extractor/System.cpp
+++ b/src/tools/map_extractor/System.cpp
@@ -48,7 +48,6 @@ std::shared_ptr<CASC::Storage> CascStorage;
struct MapEntry
{
uint32 Id = 0;
- int32 WdtFileDataId = 0;
std::string Name;
std::string Directory;
};
@@ -107,7 +106,7 @@ float CONF_flat_liquid_delta_limit = 0.001f; // If max - min less this value - l
uint32 CONF_Locale = 0;
-char const* CONF_Product = "wow";
+char const* CONF_Product = "wow_classic";
char const* CONF_Region = "eu";
bool CONF_UseRemoteCasc = false;
@@ -284,7 +283,6 @@ void ReadMapDBC()
MapEntry map;
map.Id = record.GetId();
- map.WdtFileDataId = record.GetInt32("WdtFileDataID");
map.Name = record.GetString("MapName");
map.Directory = record.GetString("Directory");
idToIndex[map.Id] = map_ids.size();
@@ -299,15 +297,12 @@ void ReadMapDBC()
{
MapEntry map;
map.Id = copy.NewRowId;
- map.WdtFileDataId = map_ids[itr->second].WdtFileDataId;
map.Name = map_ids[itr->second].Name;
map.Directory = map_ids[itr->second].Directory;
map_ids.push_back(map);
}
}
- map_ids.erase(std::remove_if(map_ids.begin(), map_ids.end(), [](MapEntry const& map) { return !map.WdtFileDataId; }), map_ids.end());
-
printf("Done! (" SZFMTD " maps loaded)\n", map_ids.size());
}
@@ -1086,7 +1081,8 @@ void ExtractMaps(uint32 build)
// Loadup map grid data
ChunkedFile wdt;
std::bitset<(WDT_MAP_SIZE) * (WDT_MAP_SIZE)> existingTiles;
- if (wdt.loadFile(CascStorage, map_ids[z].WdtFileDataId, Trinity::StringFormat("WDT for map {}", map_ids[z].Id), false))
+ std::string fileName = Trinity::StringFormat("World\\Maps\\{}\\{}.wdt", map_ids[z].Directory.c_str(), map_ids[z].Directory.c_str());
+ if (wdt.loadFile(CascStorage, fileName, false))
{
FileChunk* mphd = wdt.GetChunk("MPHD");
FileChunk* main = wdt.GetChunk("MAIN");
@@ -1106,7 +1102,7 @@ void ExtractMaps(uint32 build)
}
else
{
- std::string storagePath = Trinity::StringFormat(R"(World\Maps\{}\{}_{}_{}.adt)", map_ids[z].Directory, map_ids[z].Directory, x, y);
+ std::string storagePath = Trinity::StringFormat("World\\Maps\\{}\\{}_{}_{}.adt", map_ids[z].Directory, map_ids[z].Directory, x, y);
existingTiles[y * WDT_MAP_SIZE + x] = ConvertADT(storagePath, map_ids[z].Name, outputFileName, y, x, build, ignoreDeepWater);
}
}
diff --git a/src/tools/vmap4_extractor/vmapexport.cpp b/src/tools/vmap4_extractor/vmapexport.cpp
index ef54f40d49f..5cc2c2cd36a 100644
--- a/src/tools/vmap4_extractor/vmapexport.cpp
+++ b/src/tools/vmap4_extractor/vmapexport.cpp
@@ -51,7 +51,6 @@ std::shared_ptr<CASC::Storage> CascStorage;
struct MapEntry
{
uint32 Id = 0;
- int32 WdtFileDataId = 0;
int16 ParentMapID = 0;
std::string Name;
std::string Directory;
@@ -61,7 +60,7 @@ std::vector<MapEntry> map_ids; // partitioned by parent maps first
std::unordered_set<uint32> maps_that_are_parents;
boost::filesystem::path input_path;
bool preciseVectorData = false;
-char const* CascProduct = "wow";
+char const* CascProduct = "wow_classic";
char const* CascRegion = "eu";
bool UseRemoteCasc = false;
uint32 DbcLocale = 0;
@@ -276,13 +275,9 @@ void ParsMapFiles()
if (mapEntryItr == map_ids.end())
return nullptr;
- uint32 fileDataId = mapEntryItr->WdtFileDataId;
- if (!fileDataId)
- return nullptr;
-
- std::string description = Trinity::StringFormat("WDT for map {} - {} (FileDataID {})", mapId, mapEntryItr->Name, fileDataId);
+ std::string fileName = Trinity::StringFormat("World\\Maps\\{}\\{}.wdt", mapEntryItr->Directory.c_str(), mapEntryItr->Directory.c_str());
std::string directory = mapEntryItr->Directory;
- itr = wdts.emplace(std::piecewise_construct, std::forward_as_tuple(mapId), std::forward_as_tuple(fileDataId, description, std::move(directory), maps_that_are_parents.count(mapId) > 0)).first;
+ itr = wdts.emplace(std::piecewise_construct, std::forward_as_tuple(mapId), std::forward_as_tuple(std::move(fileName), std::move(directory), maps_that_are_parents.count(mapId) > 0)).first;
if (!itr->second.init(mapId))
{
wdts.erase(itr);
@@ -546,7 +541,6 @@ int main(int argc, char ** argv)
MapEntry map;
map.Id = record.GetId();
- map.WdtFileDataId = record.GetInt32("WdtFileDataID");
map.ParentMapID = int16(record.GetUInt16("ParentMapID"));
map.Name = record.GetString("MapName");
map.Directory = record.GetString("Directory");
@@ -569,7 +563,6 @@ int main(int argc, char ** argv)
{
MapEntry map;
map.Id = copy.NewRowId;
- map.WdtFileDataId = map_ids[itr->second].WdtFileDataId;
map.ParentMapID = map_ids[itr->second].ParentMapID;
map.Name = map_ids[itr->second].Name;
map.Directory = map_ids[itr->second].Directory;
@@ -577,8 +570,6 @@ int main(int argc, char ** argv)
}
}
- map_ids.erase(std::remove_if(map_ids.begin(), map_ids.end(), [](MapEntry const& map) { return !map.WdtFileDataId; }), map_ids.end());
-
// force parent maps to be extracted first
std::stable_partition(map_ids.begin(), map_ids.end(), [](MapEntry const& map) { return maps_that_are_parents.count(map.Id) > 0; });
diff --git a/src/tools/vmap4_extractor/wdtfile.cpp b/src/tools/vmap4_extractor/wdtfile.cpp
index cde22020a65..ec7a2168bec 100644
--- a/src/tools/vmap4_extractor/wdtfile.cpp
+++ b/src/tools/vmap4_extractor/wdtfile.cpp
@@ -25,8 +25,8 @@
extern std::shared_ptr<CASC::Storage> CascStorage;
-WDTFile::WDTFile(uint32 fileDataId, std::string const& description, std::string mapName, bool cache)
- : _file(CascStorage, fileDataId, description), _mapName(std::move(mapName))
+WDTFile::WDTFile(std::string fileName, std::string mapName, bool cache)
+ : _file(CascStorage, fileName.c_str()), _mapName(std::move(mapName))
{
memset(&_header, 0, sizeof(WDT::MPHD));
memset(&_adtInfo, 0, sizeof(WDT::MAIN));
diff --git a/src/tools/vmap4_extractor/wdtfile.h b/src/tools/vmap4_extractor/wdtfile.h
index 47b111fd13e..1ddc3f94d6d 100644
--- a/src/tools/vmap4_extractor/wdtfile.h
+++ b/src/tools/vmap4_extractor/wdtfile.h
@@ -70,7 +70,7 @@ namespace WDT
class WDTFile
{
public:
- WDTFile(uint32 fileDataId, std::string const& description, std::string mapName, bool cache);
+ WDTFile(std::string fileName, std::string mapName, bool cache);
~WDTFile();
bool init(uint32 mapId);