diff options
| author | funjoker <funjoker109@gmail.com> | 2023-11-14 21:41:29 +0100 |
|---|---|---|
| committer | funjoker <funjoker109@gmail.com> | 2023-11-14 21:41:29 +0100 |
| commit | d8b546707130b5fa81f73277c5fbd05e7e7cc2b9 (patch) | |
| tree | 1588150433a3635aff8b5a8c9d7f278a27b66dde | |
| parent | f22ced6eca06f6ede7936bc0e782e8dc4511b9eb (diff) | |
Tools/Extractor: Update extractors for 3.4.3
| -rw-r--r-- | src/tools/extractor_common/ExtractorDB2LoadInfo.h | 43 | ||||
| -rw-r--r-- | src/tools/map_extractor/System.cpp | 12 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/vmapexport.cpp | 15 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/wdtfile.cpp | 4 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/wdtfile.h | 2 |
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); |
