From a722b868fa4da0a69c29696cbf522907b75ef070 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 16 May 2024 19:43:35 +0200 Subject: [PATCH] fix: crash on trying to dump referenced iw5 menu --- .../Game/IW5/AssetDumpers/AssetDumperMenuList.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperMenuList.cpp b/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperMenuList.cpp index 6d529bb0..c3b9bb44 100644 --- a/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperMenuList.cpp +++ b/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperMenuList.cpp @@ -81,8 +81,13 @@ void AssetDumperMenuList::DumpMenus(MenuDumper& menuDumper, const MenuList* menu { const auto* menu = menuList->menus[menuNum]; const auto* menuAssetName = menu->window.name; + + bool isReference = false; if (menuAssetName && menuAssetName[0] == ',') + { menuAssetName = &menuAssetName[1]; + isReference = true; + } std::ostringstream ss; ss << parentPath << menuAssetName << ".menu"; @@ -90,7 +95,7 @@ void AssetDumperMenuList::DumpMenus(MenuDumper& menuDumper, const MenuList* menu const auto menuName = ss.str(); // If the menu was embedded directly as menu list write its data in the menu list file - if (menuName == menuList->name) + if (!isReference && menuName == menuList->name) menuDumper.WriteMenu(menu); else menuDumper.IncludeMenu(ss.str());