From 9136a7de3b74c2c9af94fc7d88eabffce6b2e0cc Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 30 Dec 2021 19:20:01 +0100 Subject: [PATCH] Enable of usage of functions that were defined in the same menu file --- .../IW4/AssetLoaders/AssetLoaderMenuList.cpp | 18 ++++++------------ .../IW4/AssetLoaders/AssetLoaderMenuList.h | 1 - 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMenuList.cpp b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMenuList.cpp index 8095ec6d..ea85d03d 100644 --- a/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMenuList.cpp +++ b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMenuList.cpp @@ -48,15 +48,6 @@ void AssetLoaderMenuList::AddMenuFilesToLoadToQueue(std::deque& que } } -void AssetLoaderMenuList::AddResultsToZoneState(menu::ParsingResult* parsingResult, menu::MenuAssetZoneState* zoneState) -{ - for (auto& function : parsingResult->m_functions) - zoneState->AddFunction(std::move(function)); - - for (auto& menu : parsingResult->m_menus) - zoneState->AddMenu(std::move(menu)); -} - bool AssetLoaderMenuList::ProcessParsedResults(const std::string& assetName, ISearchPath* searchPath, MemoryManager* memory, IAssetLoadingManager* manager, menu::ParsingResult* parsingResult, menu::MenuAssetZoneState* zoneState, std::vector& menus, std::vector& menuListDependencies) { @@ -69,7 +60,10 @@ bool AssetLoaderMenuList::ProcessParsedResults(const std::string& assetName, ISe std::cout << "Successfully read menu file \"" << assetName << "\" (" << menuLoadCount << " loads, " << menuCount << " menus, " << functionCount << " functions, " << totalItemCount << " items)\n"; - for (const auto& menu : parsingResult->m_menus) + for (auto& function : parsingResult->m_functions) + zoneState->AddFunction(std::move(function)); + + for (auto& menu : parsingResult->m_menus) { MenuConverter converter(ObjLoading::Configuration.MenuNoOptimization, searchPath, memory, manager); auto* menuAsset = converter.ConvertMenu(*menu); @@ -84,9 +78,9 @@ bool AssetLoaderMenuList::ProcessParsedResults(const std::string& assetName, ISe if (menuAssetInfo) menuListDependencies.push_back(menuAssetInfo); - } - AddResultsToZoneState(parsingResult, zoneState); + zoneState->AddMenu(std::move(menu)); + } return true; } diff --git a/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMenuList.h b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMenuList.h index 258b7bf9..c6a716cb 100644 --- a/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMenuList.h +++ b/src/ObjLoading/Game/IW4/AssetLoaders/AssetLoaderMenuList.h @@ -15,7 +15,6 @@ namespace IW4 { static bool ShouldLoadMenuFile(const std::string& menuFilePath, menu::MenuAssetZoneState* zoneState); static void AddMenuFilesToLoadToQueue(std::deque& queue, const menu::ParsingResult* parsingResult, menu::MenuAssetZoneState* zoneState); - static void AddResultsToZoneState(menu::ParsingResult* parsingResult, menu::MenuAssetZoneState* zoneState); static bool ProcessParsedResults(const std::string& assetName, ISearchPath* searchPath, MemoryManager* memory, IAssetLoadingManager* manager, menu::ParsingResult* parsingResult, menu::MenuAssetZoneState* zoneState, std::vector& menus, std::vector& menuListDependencies); static MenuList* CreateMenuListAsset(const std::string& assetName, MemoryManager* memory, const std::vector& menus);