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