From b58e23565352b7a511bc3428ffbd39758597de0b Mon Sep 17 00:00:00 2001 From: momo5502 Date: Sat, 18 Feb 2017 22:52:42 +0100 Subject: [PATCH] [Menus] Fix scriptmenu error --- src/Components/Modules/Menus.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Components/Modules/Menus.cpp b/src/Components/Modules/Menus.cpp index 203fbeb5..ca7a00d6 100644 --- a/src/Components/Modules/Menus.cpp +++ b/src/Components/Modules/Menus.cpp @@ -511,9 +511,6 @@ namespace Components { Game::XAssetHeader header = { nullptr }; - Game::MenuList* menuList = Game::DB_FindXAssetHeader(type, filename.data()).menuList; - header.menuList = menuList; - // Free the last menulist and ui context, as we have to rebuild it with the new menus if (Menus::MenuListList.find(filename) != Menus::MenuListList.end()) { @@ -527,10 +524,22 @@ namespace Components Menus::RemoveMenuList(filename); } + if(Utils::String::EndsWith(filename, ".menu")) + { + if (FileSystem::File(filename).exists()) + { + header.menuList = Menus::LoadScriptMenu(filename.data()); + if (header.menuList) return header; + } + } + + Game::MenuList* menuList = Game::DB_FindXAssetHeader(type, filename.data()).menuList; + header.menuList = menuList; + if (menuList && reinterpret_cast(menuList) != 0xDDDDDDDD) { // Parse scriptmenus! - if ((menuList->menuCount > 0 && menuList->menus[0] && menuList->menus[0]->window.name == "default_menu"s) || Utils::String::EndsWith(filename, ".menu")) + if ((menuList->menuCount > 0 && menuList->menus[0] && menuList->menus[0]->window.name == "default_menu"s)) { if (FileSystem::File(filename).exists()) {