mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-20 00:02:55 +00:00
Properly update menulist asset dependencies
This commit is contained in:
parent
b5475e30f0
commit
657d32e5f6
@ -34,7 +34,7 @@ namespace IW4
|
||||
zoneState->AddFunction(std::move(function));
|
||||
|
||||
// Prepare a list of all menus of this file
|
||||
std::vector<menuDef_t*> allMenusOfFile;
|
||||
std::vector<XAssetInfo<menuDef_t>*> allMenusOfFile;
|
||||
allMenusOfFile.reserve(parsingResult->m_menus.size());
|
||||
|
||||
// Convert all menus and add them as assets
|
||||
@ -49,11 +49,13 @@ namespace IW4
|
||||
}
|
||||
|
||||
menus.push_back(menuAsset);
|
||||
allMenusOfFile.push_back(menuAsset);
|
||||
auto* menuAssetInfo = manager->AddAsset(ASSET_TYPE_MENU, menu->m_name, menuAsset, std::move(converter.GetDependencies()), std::vector<scr_string_t>());
|
||||
|
||||
if (menuAssetInfo)
|
||||
{
|
||||
allMenusOfFile.push_back(reinterpret_cast<XAssetInfo<menuDef_t>*>(menuAssetInfo));
|
||||
menuListDependencies.push_back(menuAssetInfo);
|
||||
}
|
||||
|
||||
zoneState->AddMenu(std::move(menu));
|
||||
}
|
||||
@ -142,7 +144,10 @@ bool AssetLoaderMenuList::LoadFromRaw(const std::string& assetName, ISearchPath*
|
||||
{
|
||||
std::cout << "Already loaded \"" << menuFileToLoad << "\", skipping\n";
|
||||
for (auto* menu : alreadyLoadedMenuFile->second)
|
||||
menus.push_back(menu);
|
||||
{
|
||||
menus.push_back(menu->Asset());
|
||||
menuListDependencies.push_back(menu);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -160,7 +165,7 @@ bool AssetLoaderMenuList::LoadFromRaw(const std::string& assetName, ISearchPath*
|
||||
auto* menuListAsset = MenuLoader::CreateMenuListAsset(assetName, memory, menus);
|
||||
|
||||
if (menuListAsset)
|
||||
manager->AddAsset(ASSET_TYPE_MENULIST, assetName, menuListAsset);
|
||||
manager->AddAsset(ASSET_TYPE_MENULIST, assetName, menuListAsset, menuListDependencies, std::vector<scr_string_t>());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ const char* MenuConversionZoneState::AddString(const std::string& str)
|
||||
return strDuped;
|
||||
}
|
||||
|
||||
void MenuConversionZoneState::AddLoadedFile(std::string loadedFileName, std::vector<menuDef_t*> menusOfFile)
|
||||
void MenuConversionZoneState::AddLoadedFile(std::string loadedFileName, std::vector<XAssetInfo<menuDef_t>*> menusOfFile)
|
||||
{
|
||||
m_menus_by_filename.emplace(std::make_pair(std::move(loadedFileName), std::move(menusOfFile)));
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ namespace IW4
|
||||
std::map<std::string, const char*> m_strings_by_value;
|
||||
|
||||
public:
|
||||
std::map<std::string, std::vector<menuDef_t*>> m_menus_by_filename;
|
||||
std::map<std::string, std::vector<XAssetInfo<menuDef_t>*>> m_menus_by_filename;
|
||||
ExpressionSupportingData* m_supporting_data;
|
||||
|
||||
MenuConversionZoneState();
|
||||
@ -32,7 +32,7 @@ namespace IW4
|
||||
size_t AddStaticDvar(const std::string& dvarName);
|
||||
const char* AddString(const std::string& str);
|
||||
|
||||
void AddLoadedFile(std::string loadedFileName, std::vector<menuDef_t*> menusOfFile);
|
||||
void AddLoadedFile(std::string loadedFileName, std::vector<XAssetInfo<menuDef_t>*> menusOfFile);
|
||||
|
||||
void FinalizeSupportingData() const;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user