From c9e6a1fc641c4af0169b315471c906b13372a6bf Mon Sep 17 00:00:00 2001 From: Jan Laupetin Date: Tue, 21 Oct 2025 23:44:59 +0100 Subject: [PATCH] feat: show zone and asset statistics in modman --- src/Common/Game/CommonAsset.h | 2 +- src/Common/Game/IW3/CommonAssetIW3.cpp | 4 +- src/Common/Game/IW4/CommonAssetIW4.cpp | 4 +- src/Common/Game/IW5/CommonAssetIW5.cpp | 4 +- src/Common/Game/T5/CommonAssetT5.cpp | 4 +- src/Common/Game/T6/CommonAssetT6.cpp | 4 +- src/Linker/ZoneCreation/ZoneCreator.cpp | 2 +- src/ModMan/Web/Binds/AssetBinds.cpp | 2 +- src/ModMan/Web/Binds/ZoneBinds.cpp | 22 +++- .../zone_selector/ZoneSelectorDetails.vue | 119 +++++++++++++++++- src/ModManUi/src/native/AssetBinds.ts | 2 +- src/ModManUi/src/native/ZoneBinds.ts | 16 +++ src/ModManUi/src/utils/AssetTypeName.ts | 85 +++++++++++++ src/ZoneCommon/Zone/Zone.cpp | 3 +- src/ZoneCommon/Zone/Zone.h | 3 +- .../Game/IW3/ZoneLoaderFactoryIW3.cpp | 2 +- .../Game/IW4/ZoneLoaderFactoryIW4.cpp | 2 +- .../Game/IW5/ZoneLoaderFactoryIW5.cpp | 2 +- .../Game/T5/ZoneLoaderFactoryT5.cpp | 2 +- .../Game/T6/ZoneLoaderFactoryT6.cpp | 2 +- 20 files changed, 261 insertions(+), 25 deletions(-) create mode 100644 src/ModManUi/src/utils/AssetTypeName.ts diff --git a/src/Common/Game/CommonAsset.h b/src/Common/Game/CommonAsset.h index 769e3618..24371e49 100644 --- a/src/Common/Game/CommonAsset.h +++ b/src/Common/Game/CommonAsset.h @@ -45,7 +45,7 @@ enum class CommonAssetType : std::uint8_t // IW3, IW4, IW5, T5, T6 FONT, // IW3, IW4, IW5, T5, T6 - MENULIST, + MENU_LIST, // IW3, IW4, IW5, T5, T6 MENU, // IW3, IW4, IW5, T5, T6 diff --git a/src/Common/Game/IW3/CommonAssetIW3.cpp b/src/Common/Game/IW3/CommonAssetIW3.cpp index 1e9f372e..485657f2 100644 --- a/src/Common/Game/IW3/CommonAssetIW3.cpp +++ b/src/Common/Game/IW3/CommonAssetIW3.cpp @@ -31,7 +31,7 @@ namespace IW3 CommonAssetType::LIGHT_DEF, // ASSET_TYPE_LIGHT_DEF CommonAssetType::UI_MAP, // ASSET_TYPE_UI_MAP CommonAssetType::FONT, // ASSET_TYPE_FONT - CommonAssetType::MENULIST, // ASSET_TYPE_MENULIST + CommonAssetType::MENU_LIST, // ASSET_TYPE_MENULIST CommonAssetType::MENU, // ASSET_TYPE_MENU CommonAssetType::LOCALIZE_ENTRY, // ASSET_TYPE_LOCALIZE_ENTRY CommonAssetType::WEAPON, // ASSET_TYPE_WEAPON @@ -77,7 +77,7 @@ namespace IW3 MAP_COMMON(CommonAssetType::LIGHT_DEF, ASSET_TYPE_LIGHT_DEF) MAP_COMMON(CommonAssetType::UI_MAP, ASSET_TYPE_UI_MAP) MAP_COMMON(CommonAssetType::FONT, ASSET_TYPE_FONT) - MAP_COMMON(CommonAssetType::MENULIST, ASSET_TYPE_MENULIST) + MAP_COMMON(CommonAssetType::MENU_LIST, ASSET_TYPE_MENULIST) MAP_COMMON(CommonAssetType::MENU, ASSET_TYPE_MENU) MAP_COMMON(CommonAssetType::LOCALIZE_ENTRY, ASSET_TYPE_LOCALIZE_ENTRY) MAP_COMMON(CommonAssetType::WEAPON, ASSET_TYPE_WEAPON) diff --git a/src/Common/Game/IW4/CommonAssetIW4.cpp b/src/Common/Game/IW4/CommonAssetIW4.cpp index e89cb13e..b8f4172e 100644 --- a/src/Common/Game/IW4/CommonAssetIW4.cpp +++ b/src/Common/Game/IW4/CommonAssetIW4.cpp @@ -36,7 +36,7 @@ namespace IW4 CommonAssetType::LIGHT_DEF, // ASSET_TYPE_LIGHT_DEF CommonAssetType::UI_MAP, // ASSET_TYPE_UI_MAP CommonAssetType::FONT, // ASSET_TYPE_FONT - CommonAssetType::MENULIST, // ASSET_TYPE_MENULIST + CommonAssetType::MENU_LIST, // ASSET_TYPE_MENULIST CommonAssetType::MENU, // ASSET_TYPE_MENU CommonAssetType::LOCALIZE_ENTRY, // ASSET_TYPE_LOCALIZE_ENTRY CommonAssetType::WEAPON, // ASSET_TYPE_WEAPON @@ -92,7 +92,7 @@ namespace IW4 MAP_COMMON(CommonAssetType::LIGHT_DEF, ASSET_TYPE_LIGHT_DEF) MAP_COMMON(CommonAssetType::UI_MAP, ASSET_TYPE_UI_MAP) MAP_COMMON(CommonAssetType::FONT, ASSET_TYPE_FONT) - MAP_COMMON(CommonAssetType::MENULIST, ASSET_TYPE_MENULIST) + MAP_COMMON(CommonAssetType::MENU_LIST, ASSET_TYPE_MENULIST) MAP_COMMON(CommonAssetType::MENU, ASSET_TYPE_MENU) MAP_COMMON(CommonAssetType::LOCALIZE_ENTRY, ASSET_TYPE_LOCALIZE_ENTRY) MAP_COMMON(CommonAssetType::WEAPON, ASSET_TYPE_WEAPON) diff --git a/src/Common/Game/IW5/CommonAssetIW5.cpp b/src/Common/Game/IW5/CommonAssetIW5.cpp index 63dfa363..bc558b23 100644 --- a/src/Common/Game/IW5/CommonAssetIW5.cpp +++ b/src/Common/Game/IW5/CommonAssetIW5.cpp @@ -36,7 +36,7 @@ namespace IW5 CommonAssetType::LIGHT_DEF, // ASSET_TYPE_LIGHT_DEF CommonAssetType::UI_MAP, // ASSET_TYPE_UI_MAP CommonAssetType::FONT, // ASSET_TYPE_FONT - CommonAssetType::MENULIST, // ASSET_TYPE_MENULIST + CommonAssetType::MENU_LIST, // ASSET_TYPE_MENULIST CommonAssetType::MENU, // ASSET_TYPE_MENU CommonAssetType::LOCALIZE_ENTRY, // ASSET_TYPE_LOCALIZE_ENTRY CommonAssetType::ATTACHMENT, // ASSET_TYPE_ATTACHMENT @@ -96,7 +96,7 @@ namespace IW5 MAP_COMMON(CommonAssetType::LIGHT_DEF, ASSET_TYPE_LIGHT_DEF) MAP_COMMON(CommonAssetType::UI_MAP, ASSET_TYPE_UI_MAP) MAP_COMMON(CommonAssetType::FONT, ASSET_TYPE_FONT) - MAP_COMMON(CommonAssetType::MENULIST, ASSET_TYPE_MENULIST) + MAP_COMMON(CommonAssetType::MENU_LIST, ASSET_TYPE_MENULIST) MAP_COMMON(CommonAssetType::MENU, ASSET_TYPE_MENU) MAP_COMMON(CommonAssetType::LOCALIZE_ENTRY, ASSET_TYPE_LOCALIZE_ENTRY) MAP_COMMON(CommonAssetType::ATTACHMENT, ASSET_TYPE_ATTACHMENT) diff --git a/src/Common/Game/T5/CommonAssetT5.cpp b/src/Common/Game/T5/CommonAssetT5.cpp index 322c4635..d671bf1a 100644 --- a/src/Common/Game/T5/CommonAssetT5.cpp +++ b/src/Common/Game/T5/CommonAssetT5.cpp @@ -32,7 +32,7 @@ namespace T5 CommonAssetType::LIGHT_DEF, // ASSET_TYPE_LIGHT_DEF CommonAssetType::UI_MAP, // ASSET_TYPE_UI_MAP CommonAssetType::FONT, // ASSET_TYPE_FONT - CommonAssetType::MENULIST, // ASSET_TYPE_MENULIST + CommonAssetType::MENU_LIST, // ASSET_TYPE_MENULIST CommonAssetType::MENU, // ASSET_TYPE_MENU CommonAssetType::LOCALIZE_ENTRY, // ASSET_TYPE_LOCALIZE_ENTRY CommonAssetType::WEAPON, // ASSET_TYPE_WEAPON @@ -88,7 +88,7 @@ namespace T5 MAP_COMMON(CommonAssetType::LIGHT_DEF, ASSET_TYPE_LIGHT_DEF) MAP_COMMON(CommonAssetType::UI_MAP, ASSET_TYPE_UI_MAP) MAP_COMMON(CommonAssetType::FONT, ASSET_TYPE_FONT) - MAP_COMMON(CommonAssetType::MENULIST, ASSET_TYPE_MENULIST) + MAP_COMMON(CommonAssetType::MENU_LIST, ASSET_TYPE_MENULIST) MAP_COMMON(CommonAssetType::MENU, ASSET_TYPE_MENU) MAP_COMMON(CommonAssetType::LOCALIZE_ENTRY, ASSET_TYPE_LOCALIZE_ENTRY) MAP_COMMON(CommonAssetType::WEAPON, ASSET_TYPE_WEAPON) diff --git a/src/Common/Game/T6/CommonAssetT6.cpp b/src/Common/Game/T6/CommonAssetT6.cpp index c344a55d..5ea16b24 100644 --- a/src/Common/Game/T6/CommonAssetT6.cpp +++ b/src/Common/Game/T6/CommonAssetT6.cpp @@ -33,7 +33,7 @@ namespace T6 CommonAssetType::UI_MAP, // ASSET_TYPE_UI_MAP CommonAssetType::FONT, // ASSET_TYPE_FONT CommonAssetType::FONT_ICON, // ASSET_TYPE_FONTICON - CommonAssetType::MENULIST, // ASSET_TYPE_MENULIST + CommonAssetType::MENU_LIST, // ASSET_TYPE_MENULIST CommonAssetType::MENU, // ASSET_TYPE_MENU CommonAssetType::LOCALIZE_ENTRY, // ASSET_TYPE_LOCALIZE_ENTRY CommonAssetType::WEAPON, // ASSET_TYPE_WEAPON @@ -106,7 +106,7 @@ namespace T6 MAP_COMMON(CommonAssetType::UI_MAP, ASSET_TYPE_UI_MAP) MAP_COMMON(CommonAssetType::FONT, ASSET_TYPE_FONT) MAP_COMMON(CommonAssetType::FONT_ICON, ASSET_TYPE_FONTICON) - MAP_COMMON(CommonAssetType::MENULIST, ASSET_TYPE_MENULIST) + MAP_COMMON(CommonAssetType::MENU_LIST, ASSET_TYPE_MENULIST) MAP_COMMON(CommonAssetType::MENU, ASSET_TYPE_MENU) MAP_COMMON(CommonAssetType::LOCALIZE_ENTRY, ASSET_TYPE_LOCALIZE_ENTRY) MAP_COMMON(CommonAssetType::WEAPON, ASSET_TYPE_WEAPON) diff --git a/src/Linker/ZoneCreation/ZoneCreator.cpp b/src/Linker/ZoneCreation/ZoneCreator.cpp index 5d32c9a4..c7cb4d5c 100644 --- a/src/Linker/ZoneCreation/ZoneCreator.cpp +++ b/src/Linker/ZoneCreation/ZoneCreator.cpp @@ -11,7 +11,7 @@ namespace { std::unique_ptr CreateZone(const ZoneCreationContext& context, const GameId gameId) { - return std::make_unique(context.m_definition->m_name, 0, gameId); + return std::make_unique(context.m_definition->m_name, 0, gameId, GamePlatform::PC); } std::vector CreateGdtList(const ZoneCreationContext& context) diff --git a/src/ModMan/Web/Binds/AssetBinds.cpp b/src/ModMan/Web/Binds/AssetBinds.cpp index 926ff941..31769a01 100644 --- a/src/ModMan/Web/Binds/AssetBinds.cpp +++ b/src/ModMan/Web/Binds/AssetBinds.cpp @@ -27,7 +27,7 @@ NLOHMANN_JSON_SERIALIZE_ENUM(CommonAssetType, {CommonAssetType::LIGHT_DEF, "LIGHT_DEF" }, {CommonAssetType::UI_MAP, "UI_MAP" }, {CommonAssetType::FONT, "FONT" }, - {CommonAssetType::MENULIST, "MENULIST" }, + {CommonAssetType::MENU_LIST, "MENU_LIST" }, {CommonAssetType::MENU, "MENU" }, {CommonAssetType::LOCALIZE_ENTRY, "LOCALIZE_ENTRY" }, {CommonAssetType::WEAPON, "WEAPON" }, diff --git a/src/ModMan/Web/Binds/ZoneBinds.cpp b/src/ModMan/Web/Binds/ZoneBinds.cpp index 01b2fd70..31b93b6e 100644 --- a/src/ModMan/Web/Binds/ZoneBinds.cpp +++ b/src/ModMan/Web/Binds/ZoneBinds.cpp @@ -5,6 +5,22 @@ #include "Json/JsonExtension.h" +NLOHMANN_JSON_SERIALIZE_ENUM(GameId, + { + {GameId::IW3, "IW3"}, + {GameId::IW4, "IW4"}, + {GameId::IW5, "IW5"}, + {GameId::T5, "T5" }, + {GameId::T6, "T6" }, +}); + +NLOHMANN_JSON_SERIALIZE_ENUM(GamePlatform, + { + {GamePlatform::PC, "PC" }, + {GamePlatform::XBOX, "XBOX"}, + {GamePlatform::PS3, "PS3" }, +}); + namespace { class ZoneDto @@ -12,9 +28,11 @@ namespace public: std::string name; std::string filePath; + GameId game; + GamePlatform platform; }; - NLOHMANN_DEFINE_TYPE_EXTENSION(ZoneDto, name, filePath); + NLOHMANN_DEFINE_TYPE_EXTENSION(ZoneDto, name, filePath, game, platform); class ZoneLoadProgressDto { @@ -46,6 +64,8 @@ namespace return ZoneDto{ .name = loadedZone.m_zone->m_name, .filePath = loadedZone.m_file_path, + .game = loadedZone.m_zone->m_game_id, + .platform = loadedZone.m_zone->m_platform, }; } diff --git a/src/ModManUi/src/components/unlinking/zone_selector/ZoneSelectorDetails.vue b/src/ModManUi/src/components/unlinking/zone_selector/ZoneSelectorDetails.vue index 100f4a04..64646e4c 100644 --- a/src/ModManUi/src/components/unlinking/zone_selector/ZoneSelectorDetails.vue +++ b/src/ModManUi/src/components/unlinking/zone_selector/ZoneSelectorDetails.vue @@ -1,26 +1,139 @@ diff --git a/src/ModManUi/src/native/AssetBinds.ts b/src/ModManUi/src/native/AssetBinds.ts index 4e98dfc2..ce8a2f6c 100644 --- a/src/ModManUi/src/native/AssetBinds.ts +++ b/src/ModManUi/src/native/AssetBinds.ts @@ -17,7 +17,7 @@ export enum CommonAssetType { LIGHT_DEF = "LIGHT_DEF", UI_MAP = "UI_MAP", FONT = "FONT", - MENULIST = "MENULIST", + MENU_LIST = "MENU_LIST", MENU = "MENU", LOCALIZE_ENTRY = "LOCALIZE_ENTRY", WEAPON = "WEAPON", diff --git a/src/ModManUi/src/native/ZoneBinds.ts b/src/ModManUi/src/native/ZoneBinds.ts index f5babce3..1be14aad 100644 --- a/src/ModManUi/src/native/ZoneBinds.ts +++ b/src/ModManUi/src/native/ZoneBinds.ts @@ -1,6 +1,22 @@ +export enum GameId { + IW3 = "IW3", + IW4 = "IW4", + IW5 = "IW5", + T5 = "T5", + T6 = "T6", +} + +export enum GamePlatform { + PC = "PC", + XBOX = "XBOX", + PS3 = "PS3", +} + export interface ZoneDto { name: string; filePath: string; + game: GameId; + platform: GamePlatform; } export interface ZoneLoadProgressDto { diff --git a/src/ModManUi/src/utils/AssetTypeName.ts b/src/ModManUi/src/utils/AssetTypeName.ts new file mode 100644 index 00000000..d4c3e8d7 --- /dev/null +++ b/src/ModManUi/src/utils/AssetTypeName.ts @@ -0,0 +1,85 @@ +import { CommonAssetType } from "@/native/AssetBinds"; + +const LOOKUP_CAPITALIZED: Record = { + [CommonAssetType.PHYS_PRESET]: "Phys preset", + [CommonAssetType.XANIM]: "XAnim", + [CommonAssetType.XMODEL]: "XModel", + [CommonAssetType.MATERIAL]: "Material", + [CommonAssetType.TECHNIQUE_SET]: "Technique set", + [CommonAssetType.IMAGE]: "Image", + [CommonAssetType.SOUND]: "Sound", + [CommonAssetType.SOUND_CURVE]: "Sound curve", + [CommonAssetType.LOADED_SOUND]: "Loaded sound", + [CommonAssetType.CLIP_MAP]: "Clip map", + [CommonAssetType.COM_WORLD]: "Com world", + [CommonAssetType.GAME_WORLD_SP]: "Game world SP", + [CommonAssetType.GAME_WORLD_MP]: "Game world MP", + [CommonAssetType.MAP_ENTS]: "Map ents", + [CommonAssetType.GFX_WORLD]: "Gfx world", + [CommonAssetType.LIGHT_DEF]: "Light def", + [CommonAssetType.UI_MAP]: "UI map", + [CommonAssetType.FONT]: "Font", + [CommonAssetType.MENU_LIST]: "Menu list", + [CommonAssetType.MENU]: "Menu", + [CommonAssetType.LOCALIZE_ENTRY]: "Localize entry", + [CommonAssetType.WEAPON]: "Weapon", + [CommonAssetType.SOUND_DRIVER_GLOBALS]: "Sound driver globals", + [CommonAssetType.FX]: "FX", + [CommonAssetType.IMPACT_FX]: "Impact FX", + [CommonAssetType.AI_TYPE]: "AI type", + [CommonAssetType.MP_TYPE]: "MP type", + [CommonAssetType.CHARACTER]: "Character", + [CommonAssetType.XMODEL_ALIAS]: "XModel alias", + [CommonAssetType.RAW_FILE]: "Raw file", + [CommonAssetType.STRING_TABLE]: "String table", + [CommonAssetType.XMODEL_PIECES]: "XModel pieces", + [CommonAssetType.PHYS_COLL_MAP]: "Phys coll map", + [CommonAssetType.XMODEL_SURFS]: "XModel surfs", + [CommonAssetType.PIXEL_SHADER]: "Pixel shader", + [CommonAssetType.VERTEX_SHADER]: "Vertex shader", + [CommonAssetType.VERTEX_DECL]: "Vertex decl", + [CommonAssetType.FX_WORLD]: "FX world", + [CommonAssetType.LEADERBOARD]: "Leaderboard", + [CommonAssetType.STRUCTURED_DATA_DEF]: "Structured data def", + [CommonAssetType.TRACER]: "Tracer", + [CommonAssetType.VEHICLE]: "Vehicle", + [CommonAssetType.ADDON_MAP_ENTS]: "Addon map ents", + [CommonAssetType.GLASS_WORLD]: "Glass world", + [CommonAssetType.PATH_DATA]: "Path data", + [CommonAssetType.VEHICLE_TRACK]: "Vehicle track", + [CommonAssetType.ATTACHMENT]: "Attachment", + [CommonAssetType.SURFACE_FX]: "Surface FX", + [CommonAssetType.SCRIPT]: "Script", + [CommonAssetType.PHYS_CONSTRAINTS]: "Phys constraints", + [CommonAssetType.DESTRUCTIBLE_DEF]: "Destructible def", + [CommonAssetType.SOUND_PATCH]: "Sound patch", + [CommonAssetType.WEAPON_DEF]: "Weapon def", + [CommonAssetType.WEAPON_VARIANT]: "Weapon variant", + [CommonAssetType.MP_BODY]: "MP body", + [CommonAssetType.MP_HEAD]: "MP head", + [CommonAssetType.PACK_INDEX]: "Pack index", + [CommonAssetType.XGLOBALS]: "XGlobals", + [CommonAssetType.DDL]: "DDL", + [CommonAssetType.GLASSES]: "Glasses", + [CommonAssetType.EMBLEM_SET]: "Emblem set", + [CommonAssetType.FONT_ICON]: "Font icon", + [CommonAssetType.WEAPON_FULL]: "Weapon full", + [CommonAssetType.ATTACHMENT_UNIQUE]: "Attachment unique", + [CommonAssetType.WEAPON_CAMO]: "Weapon camo", + [CommonAssetType.KEY_VALUE_PAIRS]: "Key value pairs", + [CommonAssetType.MEMORY_BLOCK]: "Memory block", + [CommonAssetType.SKINNED_VERTS]: "Skinned verts", + [CommonAssetType.QDB]: "Qdb", + [CommonAssetType.SLUG]: "Slug", + [CommonAssetType.FOOTSTEP_TABLE]: "Footstep table", + [CommonAssetType.FOOTSTEP_FX_TABLE]: "Footstep FX table", + [CommonAssetType.ZBARRIER]: "ZBarrier", +}; + +export function getAssetTypeNameCapitalized(assetType: CommonAssetType): string { + return LOOKUP_CAPITALIZED[assetType]; +} + +export function getAssetTypeNameLower(assetType: CommonAssetType): string { + return getAssetTypeNameCapitalized(assetType).toLocaleLowerCase(); +} diff --git a/src/ZoneCommon/Zone/Zone.cpp b/src/ZoneCommon/Zone/Zone.cpp index 8c160d89..4f0fe2b5 100644 --- a/src/ZoneCommon/Zone/Zone.cpp +++ b/src/ZoneCommon/Zone/Zone.cpp @@ -2,11 +2,12 @@ #include "ZoneRegistry.h" -Zone::Zone(std::string name, const zone_priority_t priority, GameId gameId) +Zone::Zone(std::string name, const zone_priority_t priority, const GameId gameId, const GamePlatform platform) : m_name(std::move(name)), m_priority(priority), m_language(GameLanguage::LANGUAGE_NONE), m_game_id(gameId), + m_platform(platform), m_pools(ZoneAssetPools::CreateForGame(gameId, this, priority)), m_memory(std::make_unique()), m_registered(false) diff --git a/src/ZoneCommon/Zone/Zone.h b/src/ZoneCommon/Zone/Zone.h index 658bb412..a4f57018 100644 --- a/src/ZoneCommon/Zone/Zone.h +++ b/src/ZoneCommon/Zone/Zone.h @@ -15,7 +15,7 @@ class ZoneAssetPools; class Zone { public: - Zone(std::string name, zone_priority_t priority, GameId gameId); + Zone(std::string name, zone_priority_t priority, GameId gameId, GamePlatform platform); ~Zone(); Zone(const Zone& other) = delete; Zone(Zone&& other) noexcept = default; @@ -30,6 +30,7 @@ public: zone_priority_t m_priority; GameLanguage m_language; GameId m_game_id; + GamePlatform m_platform; ZoneScriptStrings m_script_strings; std::unique_ptr m_pools; diff --git a/src/ZoneLoading/Game/IW3/ZoneLoaderFactoryIW3.cpp b/src/ZoneLoading/Game/IW3/ZoneLoaderFactoryIW3.cpp index ae0708d5..0a81643c 100644 --- a/src/ZoneLoading/Game/IW3/ZoneLoaderFactoryIW3.cpp +++ b/src/ZoneLoading/Game/IW3/ZoneLoaderFactoryIW3.cpp @@ -69,7 +69,7 @@ std::unique_ptr ZoneLoaderFactory::CreateLoaderForHeader(const ZoneH return nullptr; // Create new zone - auto zone = std::make_unique(fileName, 0, GameId::IW3); + auto zone = std::make_unique(fileName, 0, GameId::IW3, inspectResult->m_platform); auto* zonePtr = zone.get(); zone->m_pools = std::make_unique(zonePtr, 0); zone->m_language = GameLanguage::LANGUAGE_NONE; diff --git a/src/ZoneLoading/Game/IW4/ZoneLoaderFactoryIW4.cpp b/src/ZoneLoading/Game/IW4/ZoneLoaderFactoryIW4.cpp index 3a23cbc9..78116b19 100644 --- a/src/ZoneLoading/Game/IW4/ZoneLoaderFactoryIW4.cpp +++ b/src/ZoneLoading/Game/IW4/ZoneLoaderFactoryIW4.cpp @@ -211,7 +211,7 @@ std::unique_ptr ZoneLoaderFactory::CreateLoaderForHeader(const ZoneH return nullptr; // Create new zone - auto zone = std::make_unique(fileName, 0, GameId::IW4); + auto zone = std::make_unique(fileName, 0, GameId::IW4, inspectResult->m_generic_result.m_platform); auto* zonePtr = zone.get(); zone->m_pools = std::make_unique(zonePtr, 0); zone->m_language = GameLanguage::LANGUAGE_NONE; diff --git a/src/ZoneLoading/Game/IW5/ZoneLoaderFactoryIW5.cpp b/src/ZoneLoading/Game/IW5/ZoneLoaderFactoryIW5.cpp index d3d3cbb7..557d5537 100644 --- a/src/ZoneLoading/Game/IW5/ZoneLoaderFactoryIW5.cpp +++ b/src/ZoneLoading/Game/IW5/ZoneLoaderFactoryIW5.cpp @@ -165,7 +165,7 @@ std::unique_ptr ZoneLoaderFactory::CreateLoaderForHeader(const ZoneH return nullptr; // Create new zone - auto zone = std::make_unique(fileName, 0, GameId::IW5); + auto zone = std::make_unique(fileName, 0, GameId::IW5, inspectResult->m_platform); auto* zonePtr = zone.get(); zone->m_pools = std::make_unique(zonePtr, 0); zone->m_language = GameLanguage::LANGUAGE_NONE; diff --git a/src/ZoneLoading/Game/T5/ZoneLoaderFactoryT5.cpp b/src/ZoneLoading/Game/T5/ZoneLoaderFactoryT5.cpp index 861a0d4d..7d93b5d2 100644 --- a/src/ZoneLoading/Game/T5/ZoneLoaderFactoryT5.cpp +++ b/src/ZoneLoading/Game/T5/ZoneLoaderFactoryT5.cpp @@ -68,7 +68,7 @@ std::unique_ptr ZoneLoaderFactory::CreateLoaderForHeader(const ZoneH return nullptr; // Create new zone - auto zone = std::make_unique(fileName, 0, GameId::T5); + auto zone = std::make_unique(fileName, 0, GameId::T5, inspectResult->m_platform); auto* zonePtr = zone.get(); zone->m_pools = std::make_unique(zonePtr, 0); zone->m_language = GameLanguage::LANGUAGE_NONE; diff --git a/src/ZoneLoading/Game/T6/ZoneLoaderFactoryT6.cpp b/src/ZoneLoading/Game/T6/ZoneLoaderFactoryT6.cpp index b4023dc0..f4a40755 100644 --- a/src/ZoneLoading/Game/T6/ZoneLoaderFactoryT6.cpp +++ b/src/ZoneLoading/Game/T6/ZoneLoaderFactoryT6.cpp @@ -284,7 +284,7 @@ std::unique_ptr ZoneLoaderFactory::CreateLoaderForHeader(const ZoneH return nullptr; // Create new zone - auto zone = std::make_unique(fileName, 0, GameId::T6); + auto zone = std::make_unique(fileName, 0, GameId::T6, inspectResult->m_generic_result.m_platform); auto* zonePtr = zone.get(); zone->m_pools = std::make_unique(zonePtr, 0); zone->m_language = GetZoneLanguage(fileName);