From fe2342e88cb798fcab79e353ea56dc9380a40980 Mon Sep 17 00:00:00 2001 From: fledge68 Date: Sat, 17 Aug 2013 13:21:43 +0000 Subject: [PATCH] -moved async network, categories on start, and source menu on start to startup settings -added new Path Manager menu. access it via config page 4 -added GC default global loader to config page 3 --- source/menu/menu.cpp | 1 + source/menu/menu.hpp | 18 +- source/menu/menu_boot.cpp | 193 ++++++++++++++++---- source/menu/menu_config3.cpp | 40 +++-- source/menu/menu_config4.cpp | 39 ++-- source/menu/menu_game.cpp | 22 ++- source/menu/menu_main.cpp | 2 +- source/menu/menu_paths.cpp | 286 ++++++++++++++++++++++++++++++ wii/wiiflow/Languages/english.ini | 9 + 9 files changed, 522 insertions(+), 88 deletions(-) create mode 100644 source/menu/menu_paths.cpp diff --git a/source/menu/menu.cpp b/source/menu/menu.cpp index b069d68c..ee240e74 100644 --- a/source/menu/menu.cpp +++ b/source/menu/menu.cpp @@ -1166,6 +1166,7 @@ void CMenu::_buildMenus(void) _initCoverBanner(); _initExplorer(); _initBoot(); + _initPathsMenu(); _loadCFCfg(); } diff --git a/source/menu/menu.hpp b/source/menu/menu.hpp index 626a602e..ba57c14f 100644 --- a/source/menu/menu.hpp +++ b/source/menu/menu.hpp @@ -241,11 +241,13 @@ private: s16 m_config3LblDMLVideo; s16 m_config3BtnDMLVideoP; s16 m_config3BtnDMLVideoM; - + s16 m_config3LblDMLGameLoader; + s16 m_config3LblDMLLoader; + s16 m_config3BtnDMLLoaderP; + s16 m_config3BtnDMLLoaderM; + s16 m_config3LblOcarina; s16 m_config3BtnOcarina; - s16 m_config3LblAsyncNet; - s16 m_config3BtnAsyncNet; s16 m_config3LblUser[4]; s16 m_config4LblReturnTo; s16 m_config4LblReturnToVal; @@ -255,8 +257,8 @@ private: s16 m_config4BtnHome; s16 m_config4LblSaveFavMode; s16 m_config4BtnSaveFavMode; - s16 m_config4LblCategoryOnBoot; - s16 m_config4BtnCategoryOnBoot; + s16 m_config4LblPathManager; + s16 m_config4BtnPathManager; s16 m_config4LblUser[4]; s16 m_configSndLblBnrVol; s16 m_configSndLblBnrVolVal; @@ -875,6 +877,7 @@ private: void _initCoverBanner(); void _initExplorer(); void _initWad(); + void _initPathsMenu(); // void _textSource(void); void _textPluginSettings(void); @@ -904,6 +907,7 @@ private: void _textCoverBanner(void); void _textExplorer(void); void _textWad(void); + void _textPaths(void); // void _refreshBoot(); void _refreshExplorer(s8 direction = 0); @@ -940,6 +944,7 @@ private: void _hideCoverBanner(bool instant = false); void _hideExplorer(bool instant = false); void _hideWad(bool instant = false); + void _hidePaths(bool instant = false); // void _showError(void); void _showMain(void); @@ -973,6 +978,7 @@ private: void _showCoverBanner(void); void _showExplorer(void); void _showWad(void); + void _showPaths(void); void _clearSources(void); void _updateSourceBtns(void); void _updatePluginText(void); @@ -1030,6 +1036,7 @@ private: bool _Home(); bool _ExitTo(); bool _Boot(); + void _Paths(); void _mainLoopCommon(bool withCF = false, bool adjusting = false); public: void directlaunch(const char *GameID); @@ -1165,6 +1172,7 @@ private: static const SOption _AspectRatio[3]; static const SOption _NMM[4]; static const SOption _NoDVD[3]; + static const SOption _GlobalGCLoaders[2]; static const SOption _GCLoader[3]; static const SOption _vidModePatch[4]; static const SOption _debugger[3]; diff --git a/source/menu/menu_boot.cpp b/source/menu/menu_boot.cpp index 358b7d8f..ba9ad2cb 100644 --- a/source/menu/menu_boot.cpp +++ b/source/menu/menu_boot.cpp @@ -19,6 +19,12 @@ #include "channel/nand_save.hpp" s16 m_bootLblTitle; +s16 m_bootBtnBack; +s16 m_bootLblPage; +s16 m_bootBtnPageM; +s16 m_bootBtnPageP; +s16 m_bootLblUser[4]; + s16 m_bootLblLoadCIOS; s16 m_bootBtnLoadCIOS; @@ -30,34 +36,44 @@ s16 m_bootLblCIOSrevP; s16 m_bootLblUSBPort; s16 m_bootBtnUSBPort; -s16 m_bootBtnBack; -s16 m_bootLblUser[4]; +s16 m_bootLblAsyncNet; +s16 m_bootBtnAsyncNet; + +s16 m_bootLblCategoryOnBoot; +s16 m_bootBtnCategoryOnBoot; + +s16 m_bootLblSourceOnBoot; +s16 m_bootBtnSourceOnBoot; u8 set_port = 0; +u8 boot_curPage = 1; +u8 boot_Pages = 2; static void showBoot(void) { m_btnMgr.show(m_bootLblTitle); - m_btnMgr.show(m_bootLblLoadCIOS); - m_btnMgr.show(m_bootBtnLoadCIOS); - - m_btnMgr.show(m_bootLblCIOSrev); - m_btnMgr.show(m_bootLblCurCIOSrev); - m_btnMgr.show(m_bootLblCIOSrevM); - m_btnMgr.show(m_bootLblCIOSrevP); - - m_btnMgr.show(m_bootLblUSBPort); - m_btnMgr.show(m_bootBtnUSBPort); - m_btnMgr.show(m_bootBtnBack); + m_btnMgr.show(m_bootLblPage); + m_btnMgr.show(m_bootBtnPageM); + m_btnMgr.show(m_bootBtnPageP); for(u8 i = 0; i < ARRAY_SIZE(m_bootLblUser); ++i) if(m_bootLblUser[i] != -1) m_btnMgr.show(m_bootLblUser[i]); } -static void hideBoot(bool instant) +static void hideBoot(bool instant, bool common) { - m_btnMgr.hide(m_bootLblTitle, instant); + if(common) + { + m_btnMgr.hide(m_bootLblTitle, instant); + m_btnMgr.hide(m_bootBtnBack, instant); + m_btnMgr.hide(m_bootLblPage, instant); + m_btnMgr.hide(m_bootBtnPageM, instant); + m_btnMgr.hide(m_bootBtnPageP, instant); + for(u8 i = 0; i < ARRAY_SIZE(m_bootLblUser); ++i) + if(m_bootLblUser[i] != -1) + m_btnMgr.hide(m_bootLblUser[i], instant); + } m_btnMgr.hide(m_bootLblLoadCIOS, instant); m_btnMgr.hide(m_bootBtnLoadCIOS, instant); @@ -68,19 +84,25 @@ static void hideBoot(bool instant) m_btnMgr.hide(m_bootLblUSBPort, instant); m_btnMgr.hide(m_bootBtnUSBPort, instant); - - m_btnMgr.hide(m_bootBtnBack, instant); - for(u8 i = 0; i < ARRAY_SIZE(m_bootLblUser); ++i) - if(m_bootLblUser[i] != -1) - m_btnMgr.hide(m_bootLblUser[i], instant); + + m_btnMgr.hide(m_bootLblAsyncNet, instant); + m_btnMgr.hide(m_bootBtnAsyncNet, instant); + /* page 2 */ + m_btnMgr.hide(m_bootLblCategoryOnBoot, instant); + m_btnMgr.hide(m_bootBtnCategoryOnBoot, instant); + + m_btnMgr.hide(m_bootLblSourceOnBoot, instant); + m_btnMgr.hide(m_bootBtnSourceOnBoot, instant); } bool CMenu::_Boot(void) { + boot_curPage = 1; SetupInput(); set_port = currentPort; bool prev_load = cur_load; u8 prev_ios = cur_ios; + showBoot(); _refreshBoot(); while(!m_exit) @@ -88,6 +110,26 @@ bool CMenu::_Boot(void) _mainLoopCommon(); if(BTN_HOME_PRESSED || BTN_B_PRESSED) break; + else if(BTN_UP_PRESSED) + m_btnMgr.up(); + else if(BTN_DOWN_PRESSED) + m_btnMgr.down(); + else if((BTN_MINUS_PRESSED || BTN_LEFT_PRESSED) || (BTN_A_PRESSED && m_btnMgr.selected(m_bootBtnPageM))) + { + boot_curPage--; + if(boot_curPage == 0) boot_curPage = boot_Pages; + if(BTN_LEFT_PRESSED || BTN_MINUS_PRESSED) + m_btnMgr.click(m_bootBtnPageM); + _refreshBoot(); + } + else if(((BTN_PLUS_PRESSED || BTN_RIGHT_PRESSED)) || (BTN_A_PRESSED && m_btnMgr.selected(m_bootBtnPageP))) + { + boot_curPage++; + if(boot_curPage > boot_Pages) boot_curPage = 1; + if(BTN_RIGHT_PRESSED || BTN_PLUS_PRESSED) + m_btnMgr.click(m_bootBtnPageP); + _refreshBoot(); + } else if(BTN_A_PRESSED) { if(m_btnMgr.selected(m_bootBtnBack)) @@ -95,7 +137,7 @@ bool CMenu::_Boot(void) else if(m_btnMgr.selected(m_bootBtnLoadCIOS)) { cur_load = !cur_load; - _refreshBoot(); + m_btnMgr.setText(m_bootBtnLoadCIOS, _optBoolToString(cur_load)); } else if(m_btnMgr.selected(m_bootLblCIOSrevM) || m_btnMgr.selected(m_bootLblCIOSrevP)) { @@ -114,12 +156,30 @@ bool CMenu::_Boot(void) itr--; } cur_ios = itr->first; - _refreshBoot(); + if(cur_ios > 0) + m_btnMgr.setText(m_bootLblCurCIOSrev, wfmt(L"%i", cur_ios)); + else + m_btnMgr.setText(m_bootLblCurCIOSrev, L"AUTO"); } else if(m_btnMgr.selected(m_bootBtnUSBPort)) { set_port = !set_port; - _refreshBoot(); + m_btnMgr.setText(m_bootBtnUSBPort, wfmt(L"%i", set_port)); + } + else if (m_btnMgr.selected(m_bootBtnAsyncNet)) + { + m_cfg.setBool("GENERAL", "async_network", !m_cfg.getBool("GENERAL", "async_network", false)); + m_btnMgr.setText(m_bootBtnAsyncNet, m_cfg.getBool("GENERAL", "async_network", false) ? _t("on", L"On") : _t("off", L"Off")); + } + else if (m_btnMgr.selected(m_bootBtnCategoryOnBoot)) + { + m_cfg.setBool("GENERAL", "category_on_start", !m_cfg.getBool("GENERAL", "category_on_start", false)); + m_btnMgr.setText(m_bootBtnCategoryOnBoot, m_cfg.getBool("GENERAL", "category_on_start") ? _t("on", L"On") : _t("off", L"Off")); + } + else if (m_btnMgr.selected(m_bootBtnSourceOnBoot)) + { + m_cfg.setBool("GENERAL", "source_on_start", !m_cfg.getBool("GENERAL", "source_on_start", false)); + m_btnMgr.setText(m_bootBtnSourceOnBoot, m_cfg.getBool("GENERAL", "source_on_start") ? _t("on", L"On") : _t("off", L"Off")); } } } @@ -127,7 +187,7 @@ bool CMenu::_Boot(void) InternalSave.SaveIOS(); if(set_port != currentPort) InternalSave.SavePort(set_port); - hideBoot(false); + hideBoot(false, true); if(prev_load != cur_load || prev_ios != cur_ios || set_port != currentPort) { @@ -140,13 +200,43 @@ bool CMenu::_Boot(void) void CMenu::_refreshBoot() { - m_btnMgr.setText(m_bootBtnLoadCIOS, _optBoolToString(cur_load)); - m_btnMgr.setText(m_bootBtnUSBPort, wfmt(L"%i", set_port)); - if(cur_ios > 0) - m_btnMgr.setText(m_bootLblCurCIOSrev, wfmt(L"%i", cur_ios)); + hideBoot(true, false); + m_btnMgr.setText(m_bootLblPage, wfmt(L"%i / %i", boot_curPage, boot_Pages)); + if(boot_curPage == 1) + { + m_btnMgr.setText(m_bootBtnLoadCIOS, _optBoolToString(cur_load)); + m_btnMgr.setText(m_bootBtnUSBPort, wfmt(L"%i", set_port)); + if(cur_ios > 0) + m_btnMgr.setText(m_bootLblCurCIOSrev, wfmt(L"%i", cur_ios)); + else + m_btnMgr.setText(m_bootLblCurCIOSrev, L"AUTO"); + m_btnMgr.setText(m_bootBtnAsyncNet, m_cfg.getBool("GENERAL", "async_network", false) ? _t("on", L"On") : _t("off", L"Off")); + + m_btnMgr.show(m_bootLblLoadCIOS); + m_btnMgr.show(m_bootBtnLoadCIOS); + + m_btnMgr.show(m_bootLblCIOSrev); + m_btnMgr.show(m_bootLblCurCIOSrev); + m_btnMgr.show(m_bootLblCIOSrevM); + m_btnMgr.show(m_bootLblCIOSrevP); + + m_btnMgr.show(m_bootLblUSBPort); + m_btnMgr.show(m_bootBtnUSBPort); + + m_btnMgr.show(m_bootLblAsyncNet); + m_btnMgr.show(m_bootBtnAsyncNet); + } else - m_btnMgr.setText(m_bootLblCurCIOSrev, L"AUTO"); - showBoot(); + { + m_btnMgr.setText(m_bootBtnCategoryOnBoot, m_cfg.getBool("GENERAL", "category_on_start") ? _t("on", L"On") : _t("off", L"Off")); + m_btnMgr.setText(m_bootBtnSourceOnBoot, m_cfg.getBool("GENERAL", "source_on_start") ? _t("on", L"On") : _t("off", L"Off")); + + m_btnMgr.show(m_bootLblCategoryOnBoot); + m_btnMgr.show(m_bootBtnCategoryOnBoot); + + m_btnMgr.show(m_bootLblSourceOnBoot); + m_btnMgr.show(m_bootBtnSourceOnBoot); + } } void CMenu::_textBoot(void) @@ -155,6 +245,9 @@ void CMenu::_textBoot(void) m_btnMgr.setText(m_bootLblLoadCIOS, _t("cfgbt2", L"Force Load cIOS")); m_btnMgr.setText(m_bootLblCIOSrev, _t("cfgbt3", L"Force cIOS Revision")); m_btnMgr.setText(m_bootLblUSBPort, _t("cfgbt4", L"USB Port")); + m_btnMgr.setText(m_bootLblAsyncNet, _t("cfgp3", L"Init network on boot")); + m_btnMgr.setText(m_bootLblCategoryOnBoot, _t("cfgd7", L"Show categories on boot")); + m_btnMgr.setText(m_bootLblSourceOnBoot, _t("", L"Show source menu on boot")); m_btnMgr.setText(m_bootBtnBack, _t("cfg10", L"Back")); } @@ -163,21 +256,36 @@ void CMenu::_initBoot(void) { _addUserLabels(m_bootLblUser, ARRAY_SIZE(m_bootLblUser), "BOOT"); m_bootLblTitle = _addTitle("BOOT/TITLE", theme.titleFont, L"", 20, 30, 600, 60, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE); - + m_bootBtnBack = _addButton("BOOT/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 56, theme.btnFontColor); + m_bootLblPage = _addLabel("BOOT/PAGE_BTN", theme.btnFont, L"", 76, 400, 80, 56, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC); + m_bootBtnPageM = _addPicButton("BOOT/PAGE_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 20, 400, 56, 56); + m_bootBtnPageP = _addPicButton("BOOT/PAGE_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 156, 400, 56, 56); + m_bootLblLoadCIOS = _addLabel("BOOT/LOAD_CIOS", theme.lblFont, L"", 40, 130, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); - m_bootBtnLoadCIOS = _addButton("BOOT/LOAD_CIOS_BTN", theme.btnFont, L"", 330, 130, 270, 56, theme.btnFontColor); + m_bootBtnLoadCIOS = _addButton("BOOT/LOAD_CIOS_BTN", theme.btnFont, L"", 370, 130, 230, 56, theme.btnFontColor); m_bootLblCIOSrev = _addLabel("BOOT/CIOS_REV", theme.lblFont, L"", 40, 190, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); - m_bootLblCurCIOSrev = _addLabel("BOOT/CIOS_REV_BTN", theme.btnFont, L"", 386, 190, 158, 56, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC); - m_bootLblCIOSrevM = _addPicButton("BOOT/CIOS_REV_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 330, 190, 56, 56); + m_bootLblCurCIOSrev = _addLabel("BOOT/CIOS_REV_BTN", theme.btnFont, L"", 426, 190, 118, 56, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC); + m_bootLblCIOSrevM = _addPicButton("BOOT/CIOS_REV_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 370, 190, 56, 56); m_bootLblCIOSrevP = _addPicButton("BOOT/CIOS_REV_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 544, 190, 56, 56); m_bootLblUSBPort = _addLabel("BOOT/USB_PORT", theme.lblFont, L"", 40, 250, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); - m_bootBtnUSBPort = _addButton("BOOT/USB_PORT_BTN", theme.btnFont, L"", 330, 250, 270, 56, theme.btnFontColor); - - m_bootBtnBack = _addButton("BOOT/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 56, theme.btnFontColor); + m_bootBtnUSBPort = _addButton("BOOT/USB_PORT_BTN", theme.btnFont, L"", 370, 250, 230, 56, theme.btnFontColor); + m_bootLblAsyncNet = _addLabel("BOOT/ASYNCNET", theme.lblFont, L"", 40, 310, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); + m_bootBtnAsyncNet = _addButton("BOOT/ASYNCNET_BTN", theme.btnFont, L"", 370, 310, 230, 56, theme.btnFontColor); + /* page 2 */ + m_bootLblCategoryOnBoot = _addLabel("BOOT/CAT_ON_START", theme.lblFont, L"", 40, 130, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); + m_bootBtnCategoryOnBoot = _addButton("BOOT/CAT_ON_START_BTN", theme.btnFont, L"", 370, 130, 230, 56, theme.btnFontColor); + + m_bootLblSourceOnBoot = _addLabel("BOOT/SOURCE_ON_START", theme.lblFont, L"", 40, 190, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); + m_bootBtnSourceOnBoot = _addButton("BOOT/SOURCE_ON_START_BTN", theme.btnFont, L"", 370, 190, 230, 56, theme.btnFontColor); + _setHideAnim(m_bootLblTitle, "BOOT/TITLE", 0, -200, 0.f, 1.f); + _setHideAnim(m_bootBtnBack, "BOOT/BACK_BTN", 0, 0, 1.f, -1.f); + _setHideAnim(m_bootLblPage, "BOOT/PAGE_BTN", 0, 0, 1.f, -1.f); + _setHideAnim(m_bootBtnPageM, "BOOT/PAGE_MINUS", 0, 0, 1.f, -1.f); + _setHideAnim(m_bootBtnPageP, "BOOT/PAGE_PLUS", 0, 0, 1.f, -1.f); _setHideAnim(m_bootLblLoadCIOS, "BOOT/LOAD_CIOS", -200, 0, 1.f, 0.f); _setHideAnim(m_bootBtnLoadCIOS, "BOOT/LOAD_CIOS_BTN", 200, 0, 1.f, 0.f); @@ -189,8 +297,15 @@ void CMenu::_initBoot(void) _setHideAnim(m_bootLblUSBPort, "BOOT/USB_PORT", -200, 0, 1.f, 0.f); _setHideAnim(m_bootBtnUSBPort, "BOOT/USB_PORT_BTN", 200, 0, 1.f, 0.f); - _setHideAnim(m_bootBtnBack, "BOOT/BACK_BTN", 0, 0, -2.f, 0.f); + _setHideAnim(m_bootLblAsyncNet, "BOOT/ASYNCNET", -200, 0, 1.f, 0.f); + _setHideAnim(m_bootBtnAsyncNet, "BOOT/ASYNCNET_BTN", 200, 0, 1.f, 0.f); + + _setHideAnim(m_bootLblCategoryOnBoot, "BOOT/CAT_ON_START", -200, 0, 1.f, 0.f); + _setHideAnim(m_bootBtnCategoryOnBoot, "BOOT/CAT_ON_START_BTN", 200, 0, 1.f, 0.f); + + _setHideAnim(m_bootLblSourceOnBoot, "BOOT/SOURCE_ON_START", -200, 0, 1.f, 0.f); + _setHideAnim(m_bootBtnSourceOnBoot, "BOOT/SOURCE_ON_START_BTN", 200, 0, 1.f, 0.f); - hideBoot(true); + hideBoot(true, true); _textBoot(); } diff --git a/source/menu/menu_config3.cpp b/source/menu/menu_config3.cpp index d018f9fe..81b65fa8 100644 --- a/source/menu/menu_config3.cpp +++ b/source/menu/menu_config3.cpp @@ -34,8 +34,10 @@ void CMenu::_hideConfig3(bool instant) m_btnMgr.hide(m_config3BtnDMLVideoP, instant); m_btnMgr.hide(m_config3BtnDMLVideoM, instant); } - m_btnMgr.hide(m_config3LblAsyncNet, instant); - m_btnMgr.hide(m_config3BtnAsyncNet, instant); + m_btnMgr.hide(m_config3LblDMLGameLoader, instant); + m_btnMgr.hide(m_config3LblDMLLoader, instant); + m_btnMgr.hide(m_config3BtnDMLLoaderP, instant); + m_btnMgr.hide(m_config3BtnDMLLoaderM, instant); m_btnMgr.hide(m_config3LblOcarina, instant); m_btnMgr.hide(m_config3BtnOcarina, instant); for(u8 i = 0; i < ARRAY_SIZE(m_config3LblUser); ++i) @@ -69,8 +71,10 @@ void CMenu::_showConfig3(void) m_btnMgr.show(m_config3BtnDMLVideoP); m_btnMgr.show(m_config3BtnDMLVideoM); } - m_btnMgr.show(m_config3LblAsyncNet); - m_btnMgr.show(m_config3BtnAsyncNet); + m_btnMgr.show(m_config3LblDMLGameLoader); + m_btnMgr.show(m_config3LblDMLLoader); + m_btnMgr.show(m_config3BtnDMLLoaderP); + m_btnMgr.show(m_config3BtnDMLLoaderM); m_btnMgr.show(m_config3LblOcarina); m_btnMgr.show(m_config3BtnOcarina); @@ -96,8 +100,8 @@ void CMenu::_showConfig3(void) i = min(max(0, m_cfg.getInt(GC_DOMAIN, "game_language", 0)), (int)ARRAY_SIZE(CMenu::_GlobalGClanguages) - 1); m_btnMgr.setText(m_config3LblDMLLanguage, _t(CMenu::_GlobalGClanguages[i].id, CMenu::_GlobalGClanguages[i].text)); } - - m_btnMgr.setText(m_config3BtnAsyncNet, m_cfg.getBool("GENERAL", "async_network", false) ? _t("on", L"On") : _t("off", L"Off")); + i = min(max(0, m_cfg.getInt(GC_DOMAIN, "default_loader", 0)), (int)ARRAY_SIZE(CMenu::_GlobalGCLoaders) - 1); + m_btnMgr.setText(m_config3LblDMLLoader, _t(CMenu::_GlobalGCLoaders[i].id, CMenu::_GlobalGCLoaders[i].text)); m_btnMgr.setText(m_config3BtnOcarina, m_cfg.getBool(_domainFromView(), "cheat", false) ? _t("on", L"On") : _t("off", L"Off")); } @@ -138,9 +142,10 @@ int CMenu::_config3(void) m_cfg.setInt(GC_DOMAIN, "video_mode", (int)loopNum((u32)m_cfg.getInt(GC_DOMAIN, "video_mode", 0) + direction, ARRAY_SIZE(CMenu::_GlobalDMLvideoModes))); _showConfig3(); } - else if (m_btnMgr.selected(m_config3BtnAsyncNet)) + else if (m_btnMgr.selected(m_config3BtnDMLLoaderP) || m_btnMgr.selected(m_config3BtnDMLLoaderM)) { - m_cfg.setBool("GENERAL", "async_network", !m_cfg.getBool("GENERAL", "async_network", false)); + s8 direction = m_btnMgr.selected(m_config3BtnDMLLoaderP) ? 1 : -1; + m_cfg.setInt(GC_DOMAIN, "default_loader", (int)loopNum((u32)m_cfg.getInt(GC_DOMAIN, "default_loader", 0) + direction, ARRAY_SIZE(CMenu::_GlobalGCLoaders))); _showConfig3(); } else if (m_btnMgr.selected(m_config3BtnOcarina)) @@ -175,9 +180,11 @@ void CMenu::_initConfig3Menu() m_config3LblDMLLanguage = _addLabel("CONFIG3/DML_LANG_BTN", theme.btnFont, L"", 386, 190, 158, 56, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC); m_config3BtnDMLLanguageM = _addPicButton("CONFIG3/DML_LANG_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 330, 190, 56, 56); m_config3BtnDMLLanguageP = _addPicButton("CONFIG3/DML_LANG_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 544, 190, 56, 56); - - m_config3LblAsyncNet = _addLabel("CONFIG3/ASYNCNET", theme.lblFont, L"", 40, 250, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); - m_config3BtnAsyncNet = _addButton("CONFIG3/ASYNCNET_BTN", theme.btnFont, L"", 330, 250, 270, 56, theme.btnFontColor); + m_config3LblDMLGameLoader = _addLabel("CONFIG3/GC_LOADER", theme.lblFont, L"", 40, 250, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); + m_config3LblDMLLoader = _addLabel("CONFIG3/GC_LOADER_BTN", theme.btnFont, L"", 386, 250, 158, 56, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC); + m_config3BtnDMLLoaderM = _addPicButton("CONFIG3/GC_LOADER_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 330, 250, 56, 56); + m_config3BtnDMLLoaderP = _addPicButton("CONFIG3/GC_LOADER_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 544, 250, 56, 56); + m_config3LblOcarina = _addLabel("CONFIG3/OCARINA", theme.lblFont, L"", 40, 310, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); m_config3BtnOcarina = _addButton("CONFIG3/OCARINA_BTN", theme.btnFont, L"", 330, 310, 270, 56, theme.btnFontColor); @@ -198,9 +205,11 @@ void CMenu::_initConfig3Menu() _setHideAnim(m_config3LblDMLLanguage, "CONFIG3/DML_LANG_BTN", 0, 0, 1.f, -1.f); _setHideAnim(m_config3BtnDMLLanguageM, "CONFIG3/DML_LANG_MINUS", 0, 0, 1.f, -1.f); _setHideAnim(m_config3BtnDMLLanguageP, "CONFIG3/DML_LANG_PLUS", 0, 0, 1.f, -1.f); - - _setHideAnim(m_config3LblAsyncNet, "CONFIG3/ASYNCNET", 100, 0, -2.f, 0.f); - _setHideAnim(m_config3BtnAsyncNet, "CONFIG3/ASYNCNET_BTN", 0, 0, 1.f, -1.f); + _setHideAnim(m_config3LblDMLGameLoader, "CONFIG3/GC_LOADER", 100, 0, -2.f, 0.f); + _setHideAnim(m_config3LblDMLLoader, "CONFIG3/GC_LOADER_BTN", 0, 0, 1.f, -1.f); + _setHideAnim(m_config3BtnDMLLoaderM, "CONFIG3/GC_LOADER_MINUS", 0, 0, 1.f, -1.f); + _setHideAnim(m_config3BtnDMLLoaderP, "CONFIG3/GC_LOADER_PLUS", 0, 0, 1.f, -1.f); + _setHideAnim(m_config3LblOcarina, "CONFIG3/OCARINA", 100, 0, -2.f, 0.f); _setHideAnim(m_config3BtnOcarina, "CONFIG3/OCARINA_BTN", 0, 0, 1.f, -1.f); _hideConfig3(true); @@ -213,8 +222,7 @@ void CMenu::_textConfig3(void) m_btnMgr.setText(m_config3LblGameLanguage, _t("cfgb4", L"Default game language")); m_btnMgr.setText(m_config3LblDMLGameVideo, _t("cfgb5", L"Default DML video mode")); m_btnMgr.setText(m_config3LblDMLGameLanguage, _t("cfgb6", L"Default DML game language")); - - m_btnMgr.setText(m_config3LblAsyncNet, _t("cfgp3", L"Init network on boot")); + m_btnMgr.setText(m_config3LblDMLGameLoader, _t("cfgb2", L"Default GC game loader")); m_btnMgr.setText(m_config3LblOcarina, _t("cfgb1", L"Ocarina")); } diff --git a/source/menu/menu_config4.cpp b/source/menu/menu_config4.cpp index 4d5bbf6c..5c4b2246 100644 --- a/source/menu/menu_config4.cpp +++ b/source/menu/menu_config4.cpp @@ -28,12 +28,12 @@ void CMenu::_hideConfig4(bool instant) { _hideConfigCommon(instant); - m_btnMgr.hide(m_config4LblHome, instant); - m_btnMgr.hide(m_config4BtnHome, instant); + m_btnMgr.hide(m_config4LblPathManager, instant); + m_btnMgr.hide(m_config4BtnPathManager, instant); m_btnMgr.hide(m_config4LblSaveFavMode, instant); m_btnMgr.hide(m_config4BtnSaveFavMode, instant); - m_btnMgr.hide(m_config4LblCategoryOnBoot, instant); - m_btnMgr.hide(m_config4BtnCategoryOnBoot, instant); + m_btnMgr.hide(m_config4LblHome, instant); + m_btnMgr.hide(m_config4BtnHome, instant); m_btnMgr.hide(m_config4LblReturnTo, instant); m_btnMgr.hide(m_config4LblReturnToVal, instant); m_btnMgr.hide(m_config4BtnReturnToM, instant); @@ -47,12 +47,12 @@ void CMenu::_showConfig4(void) { _showConfigCommon(m_config4Bg, g_curPage); - m_btnMgr.show(m_config4LblHome); - m_btnMgr.show(m_config4BtnHome); + m_btnMgr.show(m_config4LblPathManager); + m_btnMgr.show(m_config4BtnPathManager); m_btnMgr.show(m_config4LblSaveFavMode); m_btnMgr.show(m_config4BtnSaveFavMode); - m_btnMgr.show(m_config4LblCategoryOnBoot); - m_btnMgr.show(m_config4BtnCategoryOnBoot); + m_btnMgr.show(m_config4LblHome); + m_btnMgr.show(m_config4BtnHome); m_btnMgr.show(m_config4LblReturnTo); m_btnMgr.show(m_config4LblReturnToVal); m_btnMgr.show(m_config4BtnReturnToM); @@ -66,7 +66,6 @@ void CMenu::_showConfig4(void) i = min(max(0, m_cfg.getInt("GENERAL", "exit_to", 0)), (int)ARRAY_SIZE(CMenu::_exitTo) - 1); m_btnMgr.setText(m_config4BtnHome, _t(CMenu::_exitTo[i].id, CMenu::_exitTo[i].text)); m_btnMgr.setText(m_config4BtnSaveFavMode, m_cfg.getBool("GENERAL", "save_favorites_mode") ? _t("on", L"On") : _t("off", L"Off")); - m_btnMgr.setText(m_config4BtnCategoryOnBoot, m_cat.getBool("GENERAL", "category_on_start") ? _t("on", L"On") : _t("off", L"Off")); Config titles, custom_titles; titles.load(fmt("%s/" TITLES_FILENAME, m_settingsDir.c_str())); @@ -116,10 +115,12 @@ int CMenu::_config4(void) m_cfg.setBool("GENERAL", "save_favorites_mode", !m_cfg.getBool("GENERAL", "save_favorites_mode")); _showConfig4(); } - else if (m_btnMgr.selected(m_config4BtnCategoryOnBoot)) + else if (m_btnMgr.selected(m_config4BtnPathManager)) { - m_cat.setBool("GENERAL", "category_on_start", !m_cat.getBool("GENERAL", "category_on_start", false)); + _hideConfig4(); + _Paths(); _showConfig4(); + break; } else if (m_btnMgr.selected(m_config4BtnReturnToP)) { @@ -150,23 +151,24 @@ void CMenu::_initConfig4Menu() { _addUserLabels(m_config4LblUser, ARRAY_SIZE(m_config4LblUser), "CONFIG4"); m_config4Bg = _texture("CONFIG4/BG", "texture", theme.bg, false); + m_config4LblHome = _addLabel("CONFIG4/WIIMENU", theme.lblFont, L"", 40, 130, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); m_config4BtnHome = _addButton("CONFIG4/WIIMENU_BTN", theme.btnFont, L"", 370, 130, 230, 56, theme.btnFontColor); m_config4LblSaveFavMode = _addLabel("CONFIG4/SAVE_FAVMODE", theme.lblFont, L"", 40, 190, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); m_config4BtnSaveFavMode = _addButton("CONFIG4/SAVE_FAVMODE_BTN", theme.btnFont, L"", 370, 190, 230, 56, theme.btnFontColor); - m_config4LblCategoryOnBoot = _addLabel("CONFIG4/CAT_ON_START", theme.lblFont, L"", 40, 250, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); - m_config4BtnCategoryOnBoot = _addButton("CONFIG4/CAT_ON_START_BTN", theme.btnFont, L"", 370, 250, 230, 56, theme.btnFontColor); + m_config4LblPathManager = _addLabel("CONFIG4/PATH_MANAGER", theme.lblFont, L"", 40, 250, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); + m_config4BtnPathManager = _addButton("CONFIG4/PATH_MANAGER_BTN", theme.btnFont, L"", 370, 250, 230, 56, theme.btnFontColor); m_config4LblReturnTo = _addLabel("CONFIG4/RETURN_TO", theme.lblFont, L"", 40, 310, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); m_config4LblReturnToVal = _addLabel("CONFIG4/RETURN_TO_BTN", theme.btnFont, L"", 426, 310, 118, 56, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC); m_config4BtnReturnToM = _addPicButton("CONFIG4/RETURN_TO_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 370, 310, 56, 56); m_config4BtnReturnToP = _addPicButton("CONFIG4/RETURN_TO_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 544, 310, 56, 56); // - _setHideAnim(m_config4LblHome, "CONFIG4/WIIMENU", 100, 0, -2.f, 0.f); - _setHideAnim(m_config4BtnHome, "CONFIG4/WIIMENU_BTN", 0, 0, 1.f, -1.f); + _setHideAnim(m_config4LblPathManager, "CONFIG4/PATH_MANAGER", 100, 0, -2.f, 0.f); + _setHideAnim(m_config4BtnPathManager, "CONFIG4/PATH_MANAGER_BTN", 0, 0, 1.f, -1.f); _setHideAnim(m_config4LblSaveFavMode, "CONFIG4/SAVE_FAVMODE", 100, 0, -2.f, 0.f); _setHideAnim(m_config4BtnSaveFavMode, "CONFIG4/SAVE_FAVMODE_BTN", 0, 0, 1.f, -1.f); - _setHideAnim(m_config4LblCategoryOnBoot, "CONFIG4/CAT_ON_START", 100, 0, -2.f, 0.f); - _setHideAnim(m_config4BtnCategoryOnBoot, "CONFIG4/CAT_ON_START_BTN", 0, 0, 1.f, -1.f); + _setHideAnim(m_config4LblHome, "CONFIG4/WIIMENU", 100, 0, -2.f, 0.f); + _setHideAnim(m_config4BtnHome, "CONFIG4/WIIMENU_BTN", 0, 0, 1.f, -1.f); _setHideAnim(m_config4LblReturnTo, "CONFIG4/RETURN_TO", 100, 0, -2.f, 0.f); _setHideAnim(m_config4LblReturnToVal, "CONFIG4/RETURN_TO_BTN", 0, 0, 1.f, -1.f); _setHideAnim(m_config4BtnReturnToM, "CONFIG4/RETURN_TO_MINUS", 0, 0, 1.f, -1.f); @@ -179,6 +181,7 @@ void CMenu::_textConfig4(void) { m_btnMgr.setText(m_config4LblHome, _t("cfgc1", L"Exit To")); m_btnMgr.setText(m_config4LblSaveFavMode, _t("cfgd5", L"Save favorite mode state")); - m_btnMgr.setText(m_config4LblCategoryOnBoot, _t("cfgd7", L"Show categories on boot")); + m_btnMgr.setText(m_config4LblPathManager, _t("cfgd4", L"Path Manager")); + m_btnMgr.setText(m_config4BtnPathManager, _t("cfgc5", L"Go")); m_btnMgr.setText(m_config4LblReturnTo, _t("cfgg21", L"Return To Channel")); } diff --git a/source/menu/menu_game.cpp b/source/menu/menu_game.cpp index 3901dc1a..df6ed85c 100644 --- a/source/menu/menu_game.cpp +++ b/source/menu/menu_game.cpp @@ -173,6 +173,11 @@ const CMenu::SOption CMenu::_NoDVD[3] = { { "NoDVDon", L"Enabled" }, }; +const CMenu::SOption CMenu::_GlobalGCLoaders[2] = { + { "GC_DM", L"DIOS-MIOS" }, + { "GC_Devo", L"Devolution" }, +}; + const CMenu::SOption CMenu::_GCLoader[3] = { { "GC_Def", L"Default" }, { "GC_DM", L"DIOS-MIOS" }, @@ -857,7 +862,6 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc) DCFlushRange((u8*)Disc_ID, 32); const char *path = hdr->path; - m_cfg.setString(GC_DOMAIN, "current_item", id); m_gcfg1.setInt("PLAYCOUNT", id, m_gcfg1.getInt("PLAYCOUNT", id, 0) + 1); m_gcfg1.setUInt("LASTPLAYED", id, time(NULL)); @@ -880,20 +884,24 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc) } u8 loader = min((u32)m_gcfg2.getInt(id, "gc_loader", 0), ARRAY_SIZE(CMenu::_GCLoader) - 1u); + loader = (loader == 0) ? min((u32)m_cfg.getInt(GC_DOMAIN, "default_loader", 0), ARRAY_SIZE(CMenu::_GlobalGCLoaders) - 1u) : loader-1; bool memcard_emu = m_gcfg2.getBool(id, "devo_memcard_emu", false); bool widescreen = m_gcfg2.getBool(id, "dm_widescreen", false); bool activity_led = m_gcfg2.getBool(id, "led", false); if(disc) { - loader = 1; + loader = 0; gprintf("Booting GC Disc: %s\n", id); DML_New_SetBootDiscOption(m_new_dm_cfg); } - else if(loader == 1 || strcasestr(path, "boot.bin") != NULL || !m_devo_installed) - { - loader = 1; + else m_cfg.setString(GC_DOMAIN, "current_item", id); + bool DIOSMIOS = false; + if(loader == 0 || strcasestr(path, "boot.bin") != NULL) + { + + DIOSMIOS = true; char CheatPath[256]; u8 NMM = min((u32)m_gcfg2.getInt(id, "dml_nmm", 0), ARRAY_SIZE(CMenu::_NMM) - 1u); NMM = (NMM == 0) ? m_cfg.getInt(GC_DOMAIN, "dml_nmm", 0) : NMM-1; @@ -926,11 +934,7 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc) WDVD_StopMotor(); } else - { - loader = 2; DEVO_GetLoader(m_dataDir.c_str()); - } - bool DIOSMIOS = (loader == 1); m_gcfg1.save(true); m_gcfg2.save(true); diff --git a/source/menu/menu_main.cpp b/source/menu/menu_main.cpp index e5296d92..ff9ffa4c 100644 --- a/source/menu/menu_main.cpp +++ b/source/menu/menu_main.cpp @@ -268,7 +268,7 @@ int CMenu::main(void) if(m_cfg.getBool("GENERAL", "update_cache", false)) UpdateCache(); LoadView(); - if(m_cfg.getBool("GENERAL", "startup_menu", false)) + if(m_cfg.getBool("GENERAL", "source_on_start", false)) { _hideMain(); if(!_Source()) diff --git a/source/menu/menu_paths.cpp b/source/menu/menu_paths.cpp new file mode 100644 index 00000000..21cc317e --- /dev/null +++ b/source/menu/menu_paths.cpp @@ -0,0 +1,286 @@ + +#include "menu.hpp" + +using namespace std; + +s16 m_pathsLblTitle; +s16 m_pathsLblPage; +s16 m_pathsBtnPageM; +s16 m_pathsBtnPageP; +s16 m_pathsBtnBack; + +s16 m_pathsLbl1; +s16 m_pathsLbl2; +s16 m_pathsLbl3; +s16 m_pathsLbl4; + +s16 m_pathsBtn1; +s16 m_pathsBtn2; +s16 m_pathsBtn3; +s16 m_pathsBtn4; + +s16 m_pathsLblUser[4]; + +TexData m_pathsBg; + +u8 paths_curPage = 1; +u8 paths_Pages = 2; + +void CMenu::_hidePaths(bool instant) +{ + m_btnMgr.hide(m_pathsLblTitle, instant); + m_btnMgr.hide(m_pathsBtnBack, instant); + m_btnMgr.hide(m_pathsLblPage, instant); + m_btnMgr.hide(m_pathsBtnPageM, instant); + m_btnMgr.hide(m_pathsBtnPageP, instant); + m_btnMgr.hide(m_pathsLbl1, instant); + m_btnMgr.hide(m_pathsBtn1, instant); + m_btnMgr.hide(m_pathsLbl2, instant); + m_btnMgr.hide(m_pathsBtn2, instant); + m_btnMgr.hide(m_pathsLbl3, instant); + m_btnMgr.hide(m_pathsBtn3, instant); + m_btnMgr.hide(m_pathsLbl4, instant); + m_btnMgr.hide(m_pathsBtn4, instant); + + for(u8 i = 0; i < ARRAY_SIZE(m_pathsLblUser); ++i) + if(m_pathsLblUser[i] != -1) + m_btnMgr.hide(m_pathsLblUser[i], instant); +} + +void CMenu::_showPaths(void) +{ + m_btnMgr.hide(m_pathsLbl1, true); + m_btnMgr.hide(m_pathsBtn1, true); + m_btnMgr.hide(m_pathsLbl2, true); + m_btnMgr.hide(m_pathsBtn2, true); + m_btnMgr.hide(m_pathsLbl3, true); + m_btnMgr.hide(m_pathsBtn3, true); + m_btnMgr.hide(m_pathsLbl4, true); + m_btnMgr.hide(m_pathsBtn4, true); + _setBg(m_pathsBg, m_pathsBg); + m_btnMgr.show(m_pathsLblTitle); + m_btnMgr.show(m_pathsBtnBack); + m_btnMgr.show(m_pathsLblPage); + m_btnMgr.show(m_pathsBtnPageM); + m_btnMgr.show(m_pathsBtnPageP); + for(u32 i = 0; i < ARRAY_SIZE(m_pathsLblUser); ++i) + if(m_pathsLblUser[i] != -1) + m_btnMgr.show(m_pathsLblUser[i]); + m_btnMgr.setText(m_pathsLblPage, wfmt(L"%i / %i", paths_curPage, paths_Pages)); + m_btnMgr.show(m_pathsLbl1); + m_btnMgr.show(m_pathsBtn1); + m_btnMgr.show(m_pathsLbl2); + m_btnMgr.show(m_pathsBtn2); + m_btnMgr.show(m_pathsLbl3); + m_btnMgr.show(m_pathsBtn3); + if(paths_curPage == 1) + { + m_btnMgr.show(m_pathsLbl4); + m_btnMgr.show(m_pathsBtn4); + m_btnMgr.setText(m_pathsLbl1, _t("cfgp1", L"Box Covers")); + m_btnMgr.setText(m_pathsLbl2, _t("cfgp2", L"Flat Covers")); + m_btnMgr.setText(m_pathsLbl3, _t("cfgp3", L"Custom Banners")); + m_btnMgr.setText(m_pathsLbl4, _t("cfgp4", L"Banners Cache")); + } + else + { + m_btnMgr.setText(m_pathsLbl1, _t("cfgp5", L"Wii Games")); + m_btnMgr.setText(m_pathsLbl2, _t("cfgp6", L"GameCube Games")); + m_btnMgr.setText(m_pathsLbl3, _t("cfgp7", L"Music")); + } +} + +void CMenu::_Paths(void) +{ + const char *path; + paths_curPage = 1; + SetupInput(); + _showPaths(); + while(!m_exit) + { + _mainLoopCommon(); + if (BTN_HOME_PRESSED || BTN_B_PRESSED || (BTN_A_PRESSED && m_btnMgr.selected(m_pathsBtnBack))) + break; + else if (BTN_UP_PRESSED) + m_btnMgr.up(); + else if (BTN_DOWN_PRESSED) + m_btnMgr.down(); + else if (BTN_LEFT_PRESSED || BTN_MINUS_PRESSED || (BTN_A_PRESSED && m_btnMgr.selected(m_pathsBtnPageM))) + { + paths_curPage--; + if(paths_curPage == 0) paths_curPage = paths_Pages; + if(BTN_LEFT_PRESSED || BTN_MINUS_PRESSED) + m_btnMgr.click(m_pathsBtnPageM); + _showPaths(); + } + else if (BTN_RIGHT_PRESSED || BTN_PLUS_PRESSED || (BTN_A_PRESSED && m_btnMgr.selected(m_pathsBtnPageP))) + { + paths_curPage++; + if(paths_curPage > paths_Pages) paths_curPage = 1; + if(BTN_RIGHT_PRESSED || BTN_PLUS_PRESSED) m_btnMgr.click(m_pathsBtnPageP); + _showPaths(); + } + else if (BTN_A_PRESSED && paths_curPage == 1) + { + if (m_btnMgr.selected(m_pathsBtn1)) + { + _hidePaths(); + path = _FolderExplorer(); + if(strlen(path) > 0) + { + m_cfg.setString("GENERAL", "dir_box_covers", path); + m_boxPicDir = path; + m_load_view = true; + } + _showPaths(); + } + else if (m_btnMgr.selected(m_pathsBtn2)) + { + _hidePaths(); + path = _FolderExplorer(); + if(strlen(path) > 0) + { + m_cfg.setString("GENERAL", "dir_flat_covers", path); + m_picDir = path; + m_load_view = true; + } + _showPaths(); + } + else if (m_btnMgr.selected(m_pathsBtn3)) + { + _hidePaths(); + path = _FolderExplorer(); + if(strlen(path) > 0) + { + m_cfg.setString("GENERAL", "dir_custom_banners", path); + m_customBnrDir = path; + } + _showPaths(); + } + else if (m_btnMgr.selected(m_pathsBtn4)) + { + _hidePaths(); + path = _FolderExplorer(); + if(strlen(path) > 0) + { + m_cfg.setString("GENERAL", "dir_banner_cache", path); + m_bnrCacheDir = path; + } + _showPaths(); + } + } + else if (BTN_A_PRESSED && paths_curPage == 2) + { + if (m_btnMgr.selected(m_pathsBtn1)) + { + _hidePaths(); + path = _FolderExplorer(); + if(strlen(path) > 0) + { + if(strncmp(path, "sd:/", 4) == 0) + m_cfg.setInt(WII_DOMAIN, "partition", 0); + else + { + const char *partval = &path[3]; + m_cfg.setInt(WII_DOMAIN, "partition", atoi(partval)); + } + char tmpPath[MAX_FAT_PATH]; + strcpy(tmpPath, "%s"); + strcat(tmpPath, strchr(path, ':')); + m_cfg.setString(WII_DOMAIN, "wii_games_dir", tmpPath); + memset(wii_games_dir, 0, 64); + strncpy(wii_games_dir, tmpPath, 64); + m_cfg.setBool(WII_DOMAIN, "update_cache", true); + if(m_cfg.getBool(WII_DOMAIN, "source")) + m_load_view = true; + } + _showPaths(); + } + else if (m_btnMgr.selected(m_pathsBtn2)) + { + _hidePaths(); + path = _FolderExplorer(); + if(strlen(path) > 0) + { + if(strncmp(path, "sd:/", 4) == 0) + m_cfg.setInt(GC_DOMAIN, "partition", 0); + else + { + const char *partval = &path[3]; + m_cfg.setInt(GC_DOMAIN, "partition", atoi(partval)); + } + char tmpPath[MAX_FAT_PATH]; + strncpy(tmpPath, strchr(path, '/')+1, MAX_FAT_PATH-1); + m_cfg.setString(GC_DOMAIN, "dir_usb_games", tmpPath); + m_DMLgameDir = fmt("%%s:/%s", m_cfg.getString(GC_DOMAIN, "dir_usb_games", "games").c_str()); + m_cfg.setBool(GC_DOMAIN, "update_cache", true); + if(m_cfg.getBool(GC_DOMAIN, "source")) + m_load_view = true; + } + _showPaths(); + } + else if (m_btnMgr.selected(m_pathsBtn3)) + { + _hidePaths(); + path = _FolderExplorer(); + if(strlen(path) > 0) + { + m_cfg.setString("GENERAL", "dir_music", path); + m_musicDir = path; + MusicPlayer.Init(m_cfg, m_musicDir, fmt("%s/music", m_themeDataDir.c_str())); + + } + _showPaths(); + } + } + } + _hidePaths(); +} + +void CMenu::_initPathsMenu() +{ + _addUserLabels(m_pathsLblUser, ARRAY_SIZE(m_pathsLblUser), "PATHS"); + m_pathsBg = _texture("PATHS/BG", "texture", theme.bg, false); + m_pathsLblTitle = _addTitle("PATHS/TITLE", theme.titleFont, L"", 20, 30, 600, 60, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE); + m_pathsLblPage = _addLabel("PATHS/PAGE_BTN", theme.btnFont, L"", 76, 400, 80, 56, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC); + m_pathsBtnPageM = _addPicButton("PATHS/PAGE_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 20, 400, 56, 56); + m_pathsBtnPageP = _addPicButton("PATHS/PAGE_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 156, 400, 56, 56); + m_pathsBtnBack = _addButton("PATHS/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 56, theme.btnFontColor); + + m_pathsLbl1 = _addLabel("PATHS/DIR1", theme.lblFont, L"", 40, 130, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); + m_pathsBtn1 = _addButton("PATHS/DIR1_BTN", theme.btnFont, L"", 370, 130, 230, 56, theme.btnFontColor); + m_pathsLbl2 = _addLabel("PATHS/DIR2", theme.lblFont, L"", 40, 190, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); + m_pathsBtn2 = _addButton("PATHS/DIR2_BTN", theme.btnFont, L"", 370, 190, 230, 56, theme.btnFontColor); + m_pathsLbl3 = _addLabel("PATHS/DIR3", theme.lblFont, L"", 40, 250, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); + m_pathsBtn3 = _addButton("PATHS/DIR3_BTN", theme.btnFont, L"", 370, 250, 230, 56, theme.btnFontColor); + m_pathsLbl4 = _addLabel("PATHS/DIR4", theme.lblFont, L"", 40, 310, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); + m_pathsBtn4 = _addButton("PATHS/DIR4_BTN", theme.btnFont, L"", 370, 310, 230, 56, theme.btnFontColor); + + _setHideAnim(m_pathsLblTitle, "PATHS/TITLE", 0, 0, -2.f, 0.f); + _setHideAnim(m_pathsBtnBack, "PATHS/BACK_BTN", 0, 0, -2.f, 0.f); + _setHideAnim(m_pathsLblPage, "PATHS/PAGE_BTN", 0, 0, 1.f, -1.f); + _setHideAnim(m_pathsBtnPageM, "PATHS/PAGE_MINUS", 0, 0, 1.f, -1.f); + _setHideAnim(m_pathsBtnPageP, "PATHS/PAGE_PLUS", 0, 0, 1.f, -1.f); + + _setHideAnim(m_pathsLbl1, "PATHS/DIR1", 100, 0, -2.f, 0.f); + _setHideAnim(m_pathsBtn1, "PATHS/DIR1_BTN", 0, 0, 1.f, -1.f); + _setHideAnim(m_pathsLbl2, "PATHS/DIR2", 100, 0, -2.f, 0.f); + _setHideAnim(m_pathsBtn2, "PATHS/DIR2_BTN", 0, 0, 1.f, -1.f); + _setHideAnim(m_pathsLbl3, "PATHS/DIR3", 100, 0, -2.f, 0.f); + _setHideAnim(m_pathsBtn3, "PATHS/DIR3_BTN", 0, 0, 1.f, -1.f); + _setHideAnim(m_pathsLbl4, "PATHS/DIR4", 100, 0, -2.f, 0.f); + _setHideAnim(m_pathsBtn4, "PATHS/DIR4_BTN", 0, 0, 1.f, -1.f); + + _hidePaths(true); + _textPaths(); +} + +void CMenu::_textPaths(void) +{ + m_btnMgr.setText(m_pathsLblTitle, _t("cfgd4", L"Path Manager")); + m_btnMgr.setText(m_pathsBtnBack, _t("cfg10", L"Back")); + m_btnMgr.setText(m_pathsBtn1, _t("dl16", L"Set")); + m_btnMgr.setText(m_pathsBtn2, _t("dl16", L"Set")); + m_btnMgr.setText(m_pathsBtn3, _t("dl16", L"Set")); + m_btnMgr.setText(m_pathsBtn4, _t("dl16", L"Set")); +} diff --git a/wii/wiiflow/Languages/english.ini b/wii/wiiflow/Languages/english.ini index 7a33d5c4..5c04526d 100644 --- a/wii/wiiflow/Languages/english.ini +++ b/wii/wiiflow/Languages/english.ini @@ -44,6 +44,7 @@ cfga3=Install cfga6=Language cfga7=Theme cfgb1=Ocarina +cfgb2=Default GC game loader cfgb3=Default video mode cfgb4=Default game language cfgb5=Default DML video mode @@ -67,6 +68,7 @@ cfgc6=Horizontal offset cfgc7=Vertical offset cfgc8=Startup Settings cfgc9=Manage Languages +cfgd4=Path Manager cfgd5=Save favorite mode state cfgd7=Show categories on boot cfgg1=Settings @@ -151,6 +153,13 @@ cfgs1=Music volume cfgs2=GUI sound volume cfgs3=Coverflow sound volume cfgs4=Game sound volume +cfgp1=Box Covers +cfgp2=Flat Covers +cfgp3=Custom Banners +cfgp4=Banners Cache +cfgp5=Wii Games +cfgp6=GC Games +cfgp7=Music cheat1=Back cheat2=Apply cheat3=Cheat file for game not found.