-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
This commit is contained in:
fledge68 2013-08-17 13:21:43 +00:00
parent 656fa401ce
commit fe2342e88c
9 changed files with 522 additions and 88 deletions

View File

@ -1166,6 +1166,7 @@ void CMenu::_buildMenus(void)
_initCoverBanner(); _initCoverBanner();
_initExplorer(); _initExplorer();
_initBoot(); _initBoot();
_initPathsMenu();
_loadCFCfg(); _loadCFCfg();
} }

View File

@ -241,11 +241,13 @@ private:
s16 m_config3LblDMLVideo; s16 m_config3LblDMLVideo;
s16 m_config3BtnDMLVideoP; s16 m_config3BtnDMLVideoP;
s16 m_config3BtnDMLVideoM; s16 m_config3BtnDMLVideoM;
s16 m_config3LblDMLGameLoader;
s16 m_config3LblDMLLoader;
s16 m_config3BtnDMLLoaderP;
s16 m_config3BtnDMLLoaderM;
s16 m_config3LblOcarina; s16 m_config3LblOcarina;
s16 m_config3BtnOcarina; s16 m_config3BtnOcarina;
s16 m_config3LblAsyncNet;
s16 m_config3BtnAsyncNet;
s16 m_config3LblUser[4]; s16 m_config3LblUser[4];
s16 m_config4LblReturnTo; s16 m_config4LblReturnTo;
s16 m_config4LblReturnToVal; s16 m_config4LblReturnToVal;
@ -255,8 +257,8 @@ private:
s16 m_config4BtnHome; s16 m_config4BtnHome;
s16 m_config4LblSaveFavMode; s16 m_config4LblSaveFavMode;
s16 m_config4BtnSaveFavMode; s16 m_config4BtnSaveFavMode;
s16 m_config4LblCategoryOnBoot; s16 m_config4LblPathManager;
s16 m_config4BtnCategoryOnBoot; s16 m_config4BtnPathManager;
s16 m_config4LblUser[4]; s16 m_config4LblUser[4];
s16 m_configSndLblBnrVol; s16 m_configSndLblBnrVol;
s16 m_configSndLblBnrVolVal; s16 m_configSndLblBnrVolVal;
@ -875,6 +877,7 @@ private:
void _initCoverBanner(); void _initCoverBanner();
void _initExplorer(); void _initExplorer();
void _initWad(); void _initWad();
void _initPathsMenu();
// //
void _textSource(void); void _textSource(void);
void _textPluginSettings(void); void _textPluginSettings(void);
@ -904,6 +907,7 @@ private:
void _textCoverBanner(void); void _textCoverBanner(void);
void _textExplorer(void); void _textExplorer(void);
void _textWad(void); void _textWad(void);
void _textPaths(void);
// //
void _refreshBoot(); void _refreshBoot();
void _refreshExplorer(s8 direction = 0); void _refreshExplorer(s8 direction = 0);
@ -940,6 +944,7 @@ private:
void _hideCoverBanner(bool instant = false); void _hideCoverBanner(bool instant = false);
void _hideExplorer(bool instant = false); void _hideExplorer(bool instant = false);
void _hideWad(bool instant = false); void _hideWad(bool instant = false);
void _hidePaths(bool instant = false);
// //
void _showError(void); void _showError(void);
void _showMain(void); void _showMain(void);
@ -973,6 +978,7 @@ private:
void _showCoverBanner(void); void _showCoverBanner(void);
void _showExplorer(void); void _showExplorer(void);
void _showWad(void); void _showWad(void);
void _showPaths(void);
void _clearSources(void); void _clearSources(void);
void _updateSourceBtns(void); void _updateSourceBtns(void);
void _updatePluginText(void); void _updatePluginText(void);
@ -1030,6 +1036,7 @@ private:
bool _Home(); bool _Home();
bool _ExitTo(); bool _ExitTo();
bool _Boot(); bool _Boot();
void _Paths();
void _mainLoopCommon(bool withCF = false, bool adjusting = false); void _mainLoopCommon(bool withCF = false, bool adjusting = false);
public: public:
void directlaunch(const char *GameID); void directlaunch(const char *GameID);
@ -1165,6 +1172,7 @@ private:
static const SOption _AspectRatio[3]; static const SOption _AspectRatio[3];
static const SOption _NMM[4]; static const SOption _NMM[4];
static const SOption _NoDVD[3]; static const SOption _NoDVD[3];
static const SOption _GlobalGCLoaders[2];
static const SOption _GCLoader[3]; static const SOption _GCLoader[3];
static const SOption _vidModePatch[4]; static const SOption _vidModePatch[4];
static const SOption _debugger[3]; static const SOption _debugger[3];

View File

@ -19,6 +19,12 @@
#include "channel/nand_save.hpp" #include "channel/nand_save.hpp"
s16 m_bootLblTitle; s16 m_bootLblTitle;
s16 m_bootBtnBack;
s16 m_bootLblPage;
s16 m_bootBtnPageM;
s16 m_bootBtnPageP;
s16 m_bootLblUser[4];
s16 m_bootLblLoadCIOS; s16 m_bootLblLoadCIOS;
s16 m_bootBtnLoadCIOS; s16 m_bootBtnLoadCIOS;
@ -30,34 +36,44 @@ s16 m_bootLblCIOSrevP;
s16 m_bootLblUSBPort; s16 m_bootLblUSBPort;
s16 m_bootBtnUSBPort; s16 m_bootBtnUSBPort;
s16 m_bootBtnBack; s16 m_bootLblAsyncNet;
s16 m_bootLblUser[4]; s16 m_bootBtnAsyncNet;
s16 m_bootLblCategoryOnBoot;
s16 m_bootBtnCategoryOnBoot;
s16 m_bootLblSourceOnBoot;
s16 m_bootBtnSourceOnBoot;
u8 set_port = 0; u8 set_port = 0;
u8 boot_curPage = 1;
u8 boot_Pages = 2;
static void showBoot(void) static void showBoot(void)
{ {
m_btnMgr.show(m_bootLblTitle); 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_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) for(u8 i = 0; i < ARRAY_SIZE(m_bootLblUser); ++i)
if(m_bootLblUser[i] != -1) if(m_bootLblUser[i] != -1)
m_btnMgr.show(m_bootLblUser[i]); m_btnMgr.show(m_bootLblUser[i]);
} }
static void hideBoot(bool instant) static void hideBoot(bool instant, bool common)
{ {
if(common)
{
m_btnMgr.hide(m_bootLblTitle, instant); 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_bootLblLoadCIOS, instant);
m_btnMgr.hide(m_bootBtnLoadCIOS, instant); m_btnMgr.hide(m_bootBtnLoadCIOS, instant);
@ -69,18 +85,24 @@ static void hideBoot(bool instant)
m_btnMgr.hide(m_bootLblUSBPort, instant); m_btnMgr.hide(m_bootLblUSBPort, instant);
m_btnMgr.hide(m_bootBtnUSBPort, instant); m_btnMgr.hide(m_bootBtnUSBPort, instant);
m_btnMgr.hide(m_bootBtnBack, instant); m_btnMgr.hide(m_bootLblAsyncNet, instant);
for(u8 i = 0; i < ARRAY_SIZE(m_bootLblUser); ++i) m_btnMgr.hide(m_bootBtnAsyncNet, instant);
if(m_bootLblUser[i] != -1) /* page 2 */
m_btnMgr.hide(m_bootLblUser[i], instant); 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) bool CMenu::_Boot(void)
{ {
boot_curPage = 1;
SetupInput(); SetupInput();
set_port = currentPort; set_port = currentPort;
bool prev_load = cur_load; bool prev_load = cur_load;
u8 prev_ios = cur_ios; u8 prev_ios = cur_ios;
showBoot();
_refreshBoot(); _refreshBoot();
while(!m_exit) while(!m_exit)
@ -88,6 +110,26 @@ bool CMenu::_Boot(void)
_mainLoopCommon(); _mainLoopCommon();
if(BTN_HOME_PRESSED || BTN_B_PRESSED) if(BTN_HOME_PRESSED || BTN_B_PRESSED)
break; 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) else if(BTN_A_PRESSED)
{ {
if(m_btnMgr.selected(m_bootBtnBack)) if(m_btnMgr.selected(m_bootBtnBack))
@ -95,7 +137,7 @@ bool CMenu::_Boot(void)
else if(m_btnMgr.selected(m_bootBtnLoadCIOS)) else if(m_btnMgr.selected(m_bootBtnLoadCIOS))
{ {
cur_load = !cur_load; 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)) else if(m_btnMgr.selected(m_bootLblCIOSrevM) || m_btnMgr.selected(m_bootLblCIOSrevP))
{ {
@ -114,12 +156,30 @@ bool CMenu::_Boot(void)
itr--; itr--;
} }
cur_ios = itr->first; 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)) else if(m_btnMgr.selected(m_bootBtnUSBPort))
{ {
set_port = !set_port; 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(); InternalSave.SaveIOS();
if(set_port != currentPort) if(set_port != currentPort)
InternalSave.SavePort(set_port); InternalSave.SavePort(set_port);
hideBoot(false); hideBoot(false, true);
if(prev_load != cur_load || prev_ios != cur_ios || set_port != currentPort) if(prev_load != cur_load || prev_ios != cur_ios || set_port != currentPort)
{ {
@ -140,13 +200,43 @@ bool CMenu::_Boot(void)
void CMenu::_refreshBoot() void CMenu::_refreshBoot()
{ {
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_bootBtnLoadCIOS, _optBoolToString(cur_load));
m_btnMgr.setText(m_bootBtnUSBPort, wfmt(L"%i", set_port)); m_btnMgr.setText(m_bootBtnUSBPort, wfmt(L"%i", set_port));
if(cur_ios > 0) if(cur_ios > 0)
m_btnMgr.setText(m_bootLblCurCIOSrev, wfmt(L"%i", cur_ios)); m_btnMgr.setText(m_bootLblCurCIOSrev, wfmt(L"%i", cur_ios));
else else
m_btnMgr.setText(m_bootLblCurCIOSrev, L"AUTO"); m_btnMgr.setText(m_bootLblCurCIOSrev, L"AUTO");
showBoot(); 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_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) 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_bootLblLoadCIOS, _t("cfgbt2", L"Force Load cIOS"));
m_btnMgr.setText(m_bootLblCIOSrev, _t("cfgbt3", L"Force cIOS Revision")); 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_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")); 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"); _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_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_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_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_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, 330, 190, 56, 56); 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_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_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_bootBtnUSBPort = _addButton("BOOT/USB_PORT_BTN", theme.btnFont, L"", 370, 250, 230, 56, theme.btnFontColor);
m_bootBtnBack = _addButton("BOOT/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 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_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_bootLblLoadCIOS, "BOOT/LOAD_CIOS", -200, 0, 1.f, 0.f);
_setHideAnim(m_bootBtnLoadCIOS, "BOOT/LOAD_CIOS_BTN", 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_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_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);
hideBoot(true); _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, true);
_textBoot(); _textBoot();
} }

View File

@ -34,8 +34,10 @@ void CMenu::_hideConfig3(bool instant)
m_btnMgr.hide(m_config3BtnDMLVideoP, instant); m_btnMgr.hide(m_config3BtnDMLVideoP, instant);
m_btnMgr.hide(m_config3BtnDMLVideoM, instant); m_btnMgr.hide(m_config3BtnDMLVideoM, instant);
} }
m_btnMgr.hide(m_config3LblAsyncNet, instant); m_btnMgr.hide(m_config3LblDMLGameLoader, instant);
m_btnMgr.hide(m_config3BtnAsyncNet, 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_config3LblOcarina, instant);
m_btnMgr.hide(m_config3BtnOcarina, instant); m_btnMgr.hide(m_config3BtnOcarina, instant);
for(u8 i = 0; i < ARRAY_SIZE(m_config3LblUser); ++i) 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_config3BtnDMLVideoP);
m_btnMgr.show(m_config3BtnDMLVideoM); m_btnMgr.show(m_config3BtnDMLVideoM);
} }
m_btnMgr.show(m_config3LblAsyncNet); m_btnMgr.show(m_config3LblDMLGameLoader);
m_btnMgr.show(m_config3BtnAsyncNet); m_btnMgr.show(m_config3LblDMLLoader);
m_btnMgr.show(m_config3BtnDMLLoaderP);
m_btnMgr.show(m_config3BtnDMLLoaderM);
m_btnMgr.show(m_config3LblOcarina); m_btnMgr.show(m_config3LblOcarina);
m_btnMgr.show(m_config3BtnOcarina); 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); 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_config3LblDMLLanguage, _t(CMenu::_GlobalGClanguages[i].id, CMenu::_GlobalGClanguages[i].text));
} }
i = min(max(0, m_cfg.getInt(GC_DOMAIN, "default_loader", 0)), (int)ARRAY_SIZE(CMenu::_GlobalGCLoaders) - 1);
m_btnMgr.setText(m_config3BtnAsyncNet, m_cfg.getBool("GENERAL", "async_network", false) ? _t("on", L"On") : _t("off", L"Off")); 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")); 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))); m_cfg.setInt(GC_DOMAIN, "video_mode", (int)loopNum((u32)m_cfg.getInt(GC_DOMAIN, "video_mode", 0) + direction, ARRAY_SIZE(CMenu::_GlobalDMLvideoModes)));
_showConfig3(); _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(); _showConfig3();
} }
else if (m_btnMgr.selected(m_config3BtnOcarina)) 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_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_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_config3BtnDMLLanguageP = _addPicButton("CONFIG3/DML_LANG_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 544, 190, 56, 56);
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_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_config3LblOcarina = _addLabel("CONFIG3/OCARINA", theme.lblFont, L"", 40, 310, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); 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); 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_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_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_config3BtnDMLLanguageP, "CONFIG3/DML_LANG_PLUS", 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_config3LblAsyncNet, "CONFIG3/ASYNCNET", 100, 0, -2.f, 0.f);
_setHideAnim(m_config3BtnAsyncNet, "CONFIG3/ASYNCNET_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_config3LblOcarina, "CONFIG3/OCARINA", 100, 0, -2.f, 0.f); _setHideAnim(m_config3LblOcarina, "CONFIG3/OCARINA", 100, 0, -2.f, 0.f);
_setHideAnim(m_config3BtnOcarina, "CONFIG3/OCARINA_BTN", 0, 0, 1.f, -1.f); _setHideAnim(m_config3BtnOcarina, "CONFIG3/OCARINA_BTN", 0, 0, 1.f, -1.f);
_hideConfig3(true); _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_config3LblGameLanguage, _t("cfgb4", L"Default game language"));
m_btnMgr.setText(m_config3LblDMLGameVideo, _t("cfgb5", L"Default DML video mode")); 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_config3LblDMLGameLanguage, _t("cfgb6", L"Default DML game language"));
m_btnMgr.setText(m_config3LblDMLGameLoader, _t("cfgb2", L"Default GC game loader"));
m_btnMgr.setText(m_config3LblAsyncNet, _t("cfgp3", L"Init network on boot"));
m_btnMgr.setText(m_config3LblOcarina, _t("cfgb1", L"Ocarina")); m_btnMgr.setText(m_config3LblOcarina, _t("cfgb1", L"Ocarina"));
} }

View File

@ -28,12 +28,12 @@ void CMenu::_hideConfig4(bool instant)
{ {
_hideConfigCommon(instant); _hideConfigCommon(instant);
m_btnMgr.hide(m_config4LblHome, instant); m_btnMgr.hide(m_config4LblPathManager, instant);
m_btnMgr.hide(m_config4BtnHome, instant); m_btnMgr.hide(m_config4BtnPathManager, instant);
m_btnMgr.hide(m_config4LblSaveFavMode, instant); m_btnMgr.hide(m_config4LblSaveFavMode, instant);
m_btnMgr.hide(m_config4BtnSaveFavMode, instant); m_btnMgr.hide(m_config4BtnSaveFavMode, instant);
m_btnMgr.hide(m_config4LblCategoryOnBoot, instant); m_btnMgr.hide(m_config4LblHome, instant);
m_btnMgr.hide(m_config4BtnCategoryOnBoot, instant); m_btnMgr.hide(m_config4BtnHome, instant);
m_btnMgr.hide(m_config4LblReturnTo, instant); m_btnMgr.hide(m_config4LblReturnTo, instant);
m_btnMgr.hide(m_config4LblReturnToVal, instant); m_btnMgr.hide(m_config4LblReturnToVal, instant);
m_btnMgr.hide(m_config4BtnReturnToM, instant); m_btnMgr.hide(m_config4BtnReturnToM, instant);
@ -47,12 +47,12 @@ void CMenu::_showConfig4(void)
{ {
_showConfigCommon(m_config4Bg, g_curPage); _showConfigCommon(m_config4Bg, g_curPage);
m_btnMgr.show(m_config4LblHome); m_btnMgr.show(m_config4LblPathManager);
m_btnMgr.show(m_config4BtnHome); m_btnMgr.show(m_config4BtnPathManager);
m_btnMgr.show(m_config4LblSaveFavMode); m_btnMgr.show(m_config4LblSaveFavMode);
m_btnMgr.show(m_config4BtnSaveFavMode); m_btnMgr.show(m_config4BtnSaveFavMode);
m_btnMgr.show(m_config4LblCategoryOnBoot); m_btnMgr.show(m_config4LblHome);
m_btnMgr.show(m_config4BtnCategoryOnBoot); m_btnMgr.show(m_config4BtnHome);
m_btnMgr.show(m_config4LblReturnTo); m_btnMgr.show(m_config4LblReturnTo);
m_btnMgr.show(m_config4LblReturnToVal); m_btnMgr.show(m_config4LblReturnToVal);
m_btnMgr.show(m_config4BtnReturnToM); 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); 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_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_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; Config titles, custom_titles;
titles.load(fmt("%s/" TITLES_FILENAME, m_settingsDir.c_str())); 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")); m_cfg.setBool("GENERAL", "save_favorites_mode", !m_cfg.getBool("GENERAL", "save_favorites_mode"));
_showConfig4(); _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(); _showConfig4();
break;
} }
else if (m_btnMgr.selected(m_config4BtnReturnToP)) else if (m_btnMgr.selected(m_config4BtnReturnToP))
{ {
@ -150,23 +151,24 @@ void CMenu::_initConfig4Menu()
{ {
_addUserLabels(m_config4LblUser, ARRAY_SIZE(m_config4LblUser), "CONFIG4"); _addUserLabels(m_config4LblUser, ARRAY_SIZE(m_config4LblUser), "CONFIG4");
m_config4Bg = _texture("CONFIG4/BG", "texture", theme.bg, false); 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_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_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_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_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_config4LblPathManager = _addLabel("CONFIG4/PATH_MANAGER", 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_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_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_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_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); 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_config4LblPathManager, "CONFIG4/PATH_MANAGER", 100, 0, -2.f, 0.f);
_setHideAnim(m_config4BtnHome, "CONFIG4/WIIMENU_BTN", 0, 0, 1.f, -1.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_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_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_config4LblHome, "CONFIG4/WIIMENU", 100, 0, -2.f, 0.f);
_setHideAnim(m_config4BtnCategoryOnBoot, "CONFIG4/CAT_ON_START_BTN", 0, 0, 1.f, -1.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_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_config4LblReturnToVal, "CONFIG4/RETURN_TO_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_config4BtnReturnToM, "CONFIG4/RETURN_TO_MINUS", 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_config4LblHome, _t("cfgc1", L"Exit To"));
m_btnMgr.setText(m_config4LblSaveFavMode, _t("cfgd5", L"Save favorite mode state")); 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")); m_btnMgr.setText(m_config4LblReturnTo, _t("cfgg21", L"Return To Channel"));
} }

View File

@ -173,6 +173,11 @@ const CMenu::SOption CMenu::_NoDVD[3] = {
{ "NoDVDon", L"Enabled" }, { "NoDVDon", L"Enabled" },
}; };
const CMenu::SOption CMenu::_GlobalGCLoaders[2] = {
{ "GC_DM", L"DIOS-MIOS" },
{ "GC_Devo", L"Devolution" },
};
const CMenu::SOption CMenu::_GCLoader[3] = { const CMenu::SOption CMenu::_GCLoader[3] = {
{ "GC_Def", L"Default" }, { "GC_Def", L"Default" },
{ "GC_DM", L"DIOS-MIOS" }, { "GC_DM", L"DIOS-MIOS" },
@ -857,7 +862,6 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
DCFlushRange((u8*)Disc_ID, 32); DCFlushRange((u8*)Disc_ID, 32);
const char *path = hdr->path; 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.setInt("PLAYCOUNT", id, m_gcfg1.getInt("PLAYCOUNT", id, 0) + 1);
m_gcfg1.setUInt("LASTPLAYED", id, time(NULL)); 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); 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 memcard_emu = m_gcfg2.getBool(id, "devo_memcard_emu", false);
bool widescreen = m_gcfg2.getBool(id, "dm_widescreen", false); bool widescreen = m_gcfg2.getBool(id, "dm_widescreen", false);
bool activity_led = m_gcfg2.getBool(id, "led", false); bool activity_led = m_gcfg2.getBool(id, "led", false);
if(disc) if(disc)
{ {
loader = 1; loader = 0;
gprintf("Booting GC Disc: %s\n", id); gprintf("Booting GC Disc: %s\n", id);
DML_New_SetBootDiscOption(m_new_dm_cfg); DML_New_SetBootDiscOption(m_new_dm_cfg);
} }
else if(loader == 1 || strcasestr(path, "boot.bin") != NULL || !m_devo_installed) else
{
loader = 1;
m_cfg.setString(GC_DOMAIN, "current_item", id); m_cfg.setString(GC_DOMAIN, "current_item", id);
bool DIOSMIOS = false;
if(loader == 0 || strcasestr(path, "boot.bin") != NULL)
{
DIOSMIOS = true;
char CheatPath[256]; char CheatPath[256];
u8 NMM = min((u32)m_gcfg2.getInt(id, "dml_nmm", 0), ARRAY_SIZE(CMenu::_NMM) - 1u); 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; 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(); WDVD_StopMotor();
} }
else else
{
loader = 2;
DEVO_GetLoader(m_dataDir.c_str()); DEVO_GetLoader(m_dataDir.c_str());
}
bool DIOSMIOS = (loader == 1);
m_gcfg1.save(true); m_gcfg1.save(true);
m_gcfg2.save(true); m_gcfg2.save(true);

View File

@ -268,7 +268,7 @@ int CMenu::main(void)
if(m_cfg.getBool("GENERAL", "update_cache", false)) if(m_cfg.getBool("GENERAL", "update_cache", false))
UpdateCache(); UpdateCache();
LoadView(); LoadView();
if(m_cfg.getBool("GENERAL", "startup_menu", false)) if(m_cfg.getBool("GENERAL", "source_on_start", false))
{ {
_hideMain(); _hideMain();
if(!_Source()) if(!_Source())

286
source/menu/menu_paths.cpp Normal file
View File

@ -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"));
}

View File

@ -44,6 +44,7 @@ cfga3=Install
cfga6=Language cfga6=Language
cfga7=Theme cfga7=Theme
cfgb1=Ocarina cfgb1=Ocarina
cfgb2=Default GC game loader
cfgb3=Default video mode cfgb3=Default video mode
cfgb4=Default game language cfgb4=Default game language
cfgb5=Default DML video mode cfgb5=Default DML video mode
@ -67,6 +68,7 @@ cfgc6=Horizontal offset
cfgc7=Vertical offset cfgc7=Vertical offset
cfgc8=Startup Settings cfgc8=Startup Settings
cfgc9=Manage Languages cfgc9=Manage Languages
cfgd4=Path Manager
cfgd5=Save favorite mode state cfgd5=Save favorite mode state
cfgd7=Show categories on boot cfgd7=Show categories on boot
cfgg1=Settings cfgg1=Settings
@ -151,6 +153,13 @@ cfgs1=Music volume
cfgs2=GUI sound volume cfgs2=GUI sound volume
cfgs3=Coverflow sound volume cfgs3=Coverflow sound volume
cfgs4=Game 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 cheat1=Back
cheat2=Apply cheat2=Apply
cheat3=Cheat file for game not found. cheat3=Cheat file for game not found.