- replaced homebrew button on main screen with categories button. new images thanks to Hakaisha. no more 'B' on favorites star.

- replaced adult only button on game selected screen with categories button.
- homebrew button is now restored as one of the quick launch buttons or accessible via source menu or plugin select menu.cpp
- adult only option now replaces the categories option of the game settings menu page 1 line 1.
- locking wiiflow no longer blocks homebrew access. you must use the adult only option for each homebrew app to block kids from accessing it.
- other minor code changes and fixes.
This commit is contained in:
Fledge68 2019-03-04 14:29:46 -06:00
parent 6cb6c64f77
commit 5dc8212037
16 changed files with 341 additions and 321 deletions

View File

@ -12,15 +12,15 @@ Controls:
-- B+A = Launch game immediately
-- B+Left / B+Right = Change Song
-- B+UP / B+DOWN = Previous / next game in sorted list (alpha default)
-- B+Minus = Boot a random game of the current coverflow
-- B+Minus = Boot or select a random game of the current coverflow
-- B+Plus = Select sort type (alpha, wifi, players, playcount, etc...)
-- Z / ZR = Take Screenshot
-- A on Onscreen Arrows = Fast skip through games
-- B on Onscreen Arrows = previous / next game in sorted list (alpha default)
-- A on Star Icon = Favorites
-- B on Star Icon = Categories
-- A on Gear Icon = WiiFlow settings
-- A on Categories Icon = Select categories to use
-- A on Gear Icon = Main settings menu
-- A on USB(Wii), GC, Channels, Plugin, or Homebrew Icon = Switch to that source
-- A on Home Icon = Open Home Menu / Exit WiiFlow
-- A on Disc Icon (Game Disc in Drive) = Launch game disc
@ -29,7 +29,7 @@ Controls:
-- A on box = Flip Cover
-- A out of screen = Launch game
-- A on Star Icon = Toggle Favorite (Yellow = Favorite)
-- B on Star Icon = Set Categories for game
-- A on Categories Icon = Set Categories for current game
-- A on Hand Icon = Parental Lock (Red = locked)
-- A on Gear Icon = Game Settings
-- A on X Icon = Delete Game
@ -47,7 +47,7 @@ Controls:
-- Plus = Zoom in
-- Minus = Zoom out
- Settings menus:
- All Settings menus:
-- Minus / Plus = Previous / next page
-- Left / Right = Previous / next page
-- Up / Down = Previous / next button

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

After

Width:  |  Height:  |  Size: 3.3 MiB

BIN
out/imgs/btncat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
out/imgs/btncats.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -1637,7 +1637,7 @@ bool CCoverFlow::_setCurPosToID(const char *id, bool instant, bool path)
{
//homebrew folder or rom title.ext
const char *name = strrchr(m_items[i].hdr->path, '/');
if(name != NULL && strcmp(name + 1, id) == 0)
if(name != NULL && strcasecmp(name + 1, id) == 0)
break;
else if(strcmp(m_items[i].hdr->path, id) == 0)// scummvm
break;
@ -2659,6 +2659,9 @@ bool CCoverFlow::_loadCoverTexPNG(u32 i, bool box, bool hq, bool blankBoxCover)
if(!m_loadingCovers)
return false;
if(box && m_smallBox)// prevent full cover for smallbox mode
return false;
/* get path to cover png or jpg */
const char *path = box ? (blankBoxCover ? mainMenu.getBlankCoverPath(m_items[i].hdr) :
mainMenu.getBoxPath(m_items[i].hdr)) : mainMenu.getFrontPath(m_items[i].hdr);
@ -2733,10 +2736,18 @@ bool CCoverFlow::_loadCoverTexPNG(u32 i, bool box, bool hq, bool blankBoxCover)
if(wfcCoverDir != NULL)
{
fsop_MakeFolder(fmt("%s/%s", m_cachePath.c_str(), wfcCoverDir));// will make subfolders if needed
strncpy(full_path, fmt("%s/%s/%s.wfc", m_cachePath.c_str(), wfcCoverDir, wfcTitle), MAX_FAT_PATH);
if(m_smallBox)
strncpy(full_path, fmt("%s/%s/%s_small.wfc", m_cachePath.c_str(), wfcCoverDir, wfcTitle), MAX_FAT_PATH);
else
strncpy(full_path, fmt("%s/%s/%s.wfc", m_cachePath.c_str(), wfcCoverDir, wfcTitle), MAX_FAT_PATH);
}
else
strncpy(full_path, fmt("%s/%s.wfc", m_cachePath.c_str(), wfcTitle), MAX_FAT_PATH);
{
if(m_smallBox)
strncpy(full_path, fmt("%s/%s_small.wfc", m_cachePath.c_str(), wfcTitle), MAX_FAT_PATH);
else
strncpy(full_path, fmt("%s/%s.wfc", m_cachePath.c_str(), wfcTitle), MAX_FAT_PATH);
}
DCFlushRange(full_path, MAX_FAT_PATH+1);
@ -2855,9 +2866,19 @@ CCoverFlow::CLRet CCoverFlow::_loadCoverTex(u32 i, bool box, bool hq, bool blank
/* set full path of wfc file */
if(wfcCoverDir != NULL)
strncpy(full_path, fmt("%s/%s/%s.wfc", m_cachePath.c_str(), wfcCoverDir, wfcTitle), MAX_FAT_PATH);
{
if(m_smallBox)
strncpy(full_path, fmt("%s/%s/%s_small.wfc", m_cachePath.c_str(), wfcCoverDir, wfcTitle), MAX_FAT_PATH);
else
strncpy(full_path, fmt("%s/%s/%s.wfc", m_cachePath.c_str(), wfcCoverDir, wfcTitle), MAX_FAT_PATH);
}
else
strncpy(full_path, fmt("%s/%s.wfc", m_cachePath.c_str(), wfcTitle), MAX_FAT_PATH);
{
if(m_smallBox)
strncpy(full_path, fmt("%s/%s_small.wfc", m_cachePath.c_str(), wfcTitle), MAX_FAT_PATH);
else
strncpy(full_path, fmt("%s/%s.wfc", m_cachePath.c_str(), wfcTitle), MAX_FAT_PATH);
}
DCFlushRange(full_path, MAX_FAT_PATH+1);

View File

@ -1990,11 +1990,6 @@ void CMenu::_initCF(void)
strcat(tmp1, tmp2);
id = tmp1;*/
}
else if(m_current_view == COVERFLOW_HOMEBREW)
{
CoverFlow.addItem(&(*hdr), 0, 0);
continue;
}
else if(hdr->type == TYPE_HOMEBREW)
{
wcstombs(id, hdr->title, 63);
@ -2012,7 +2007,7 @@ void CMenu::_initCF(void)
favDomain = "FAVORITES_PLUGINS";
adultDomain = "ADULTONLY_PLUGINS";
}
else
else // wii, gc, channels
{
strcpy(id, hdr->id);
if(hdr->type == TYPE_GC_GAME && hdr->settings[0] == 1) /* disc 2 */
@ -2138,9 +2133,9 @@ void CMenu::_initCF(void)
}
/* remove them if false to keep file short */
if(!m_gcfg1.getBool(favDomain, id))
m_cfg.remove(favDomain, id);
m_gcfg1.remove(favDomain, id);
if(!m_gcfg1.getBool(adultDomain, id))
m_cfg.remove(adultDomain, id);
m_gcfg1.remove(adultDomain, id);
}
if(dumpGameLst)
@ -2150,42 +2145,47 @@ void CMenu::_initCF(void)
}
CoverFlow.setSorting(m_source_cnt > 1 ? (Sorting)0 : (Sorting)m_cfg.getInt(_domainFromView(), "sort", 0));
if(m_current_view == COVERFLOW_HOMEBREW)
if(!m_sourceflow)
{
CoverFlow.setBoxMode(m_cfg.getBool(HOMEBREW_DOMAIN, "box_mode", true));
CoverFlow.setSmallBoxMode(m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox", false));
if(m_current_view == COVERFLOW_HOMEBREW)
{
CoverFlow.setBoxMode(m_cfg.getBool(HOMEBREW_DOMAIN, "box_mode", true));
CoverFlow.setSmallBoxMode(m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox", false));
}
else if(m_current_view == COVERFLOW_PLUGIN)
{
m_plugin.GetEnabledPlugins(m_cfg, &enabledPluginsCount);
if(enabledPluginsCount == 1 && m_cfg.getBool(PLUGIN_ENABLED, "48425257") && m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox"))
CoverFlow.setSmallBoxMode(true);
else
CoverFlow.setSmallBoxMode(false);
int boxmode_cnt = 0;
for(u8 i = 0; m_plugin.PluginExist(i); ++i)
{
if(m_plugin.GetEnableStatus(m_cfg, m_plugin.getPluginMagic(i)))
{
if(m_plugin.GetBoxMode(i))
boxmode_cnt++;
}
}
if(boxmode_cnt == 0)
CoverFlow.setBoxMode(false);
else
CoverFlow.setBoxMode(true);
}
else
{
CoverFlow.setBoxMode(m_cfg.getBool("GENERAL", "box_mode", true));
CoverFlow.setSmallBoxMode(false);
}
}
else if(m_sourceflow)
else // sourceflow
{
CoverFlow.setBoxMode(m_cfg.getBool(SOURCEFLOW_DOMAIN, "box_mode", true));
CoverFlow.setSmallBoxMode(m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox", false));
}
else if(m_current_view != COVERFLOW_PLUGIN)
{
CoverFlow.setBoxMode(m_cfg.getBool("GENERAL", "box_mode", true));
CoverFlow.setSmallBoxMode(false);
}
else
{
m_plugin.GetEnabledPlugins(m_cfg, &enabledPluginsCount);
if(enabledPluginsCount == 1 && m_cfg.getBool(PLUGIN_ENABLED, "48425257") && m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox"))
CoverFlow.setSmallBoxMode(true);
else
CoverFlow.setSmallBoxMode(false);
int boxmode_cnt = 0;
for(u8 i = 0; m_plugin.PluginExist(i); ++i)
{
if(m_plugin.GetEnableStatus(m_cfg, m_plugin.getPluginMagic(i)))
{
if(m_plugin.GetBoxMode(i))
boxmode_cnt++;
}
}
if(boxmode_cnt == 0)
CoverFlow.setBoxMode(false);
else
CoverFlow.setBoxMode(true);
}
CoverFlow.setBufferSize(m_cfg.getInt("GENERAL", "cover_buffer", 20));
CoverFlow.setHQcover(m_cfg.getBool("GENERAL", "cover_use_hq", true));
CoverFlow.start(m_imgsDir);
@ -2195,7 +2195,7 @@ void CMenu::_initCF(void)
bool path = false;
char cur_item[64];
cur_item[63] = '\0';
if(m_current_view == COVERFLOW_PLUGIN)
if(m_current_view == COVERFLOW_PLUGIN && !m_sourceflow)
{
strncpy(m_plugin.PluginMagicWord, m_cfg.getString(PLUGIN_DOMAIN, "cur_magic").c_str(), 8);
if(!m_cfg.getBool("PLUGINS_ENABLED", m_plugin.PluginMagicWord, false))
@ -2247,13 +2247,6 @@ bool CMenu::_loadList(void)
m_cacheList.Clear();
return true;
}
if(m_current_view == COVERFLOW_HOMEBREW)
{
_loadHomebrewList(HOMEBREW_DIR);
gprintf("Apps found: %i\n", m_gameList.size());
m_cacheList.Clear();
return m_gameList.size() > 0 ? true : false;
}
gprintf("Creating Gamelist\n");
if(m_current_view & COVERFLOW_PLUGIN)
_loadPluginList();
@ -2267,6 +2260,9 @@ bool CMenu::_loadList(void)
if(m_current_view & COVERFLOW_GAMECUBE)
_loadGamecubeList();
if(m_current_view & COVERFLOW_HOMEBREW)
_loadHomebrewList(HOMEBREW_DIR);
m_cacheList.Clear();
gprintf("Games found: %i\n", m_gameList.size());

View File

@ -192,6 +192,7 @@ private:
TexData m_mainBgLQ;
//Main Coverflow
s16 m_mainBtnCategories;
s16 m_mainBtnConfig;
s16 m_mainBtnHome;
s16 m_mainBtnFavoritesOn;
@ -413,8 +414,7 @@ private:
};
s16 m_gameBtnFavoriteOn;
s16 m_gameBtnFavoriteOff;
s16 m_gameBtnAdultOn;
s16 m_gameBtnAdultOff;
s16 m_gameBtnCategories;
s16 m_gameBtnDelete;
s16 m_gameBtnSettings;
s16 m_gameBtnPlay;
@ -569,8 +569,8 @@ private:
s16 m_gameSettingsLblCheat;
s16 m_gameSettingsBtnCheat;
s16 m_gameSettingsLblCategoryMain;
s16 m_gameSettingsBtnCategoryMain;
s16 m_gameSettingsLblAdultOnly;
s16 m_gameSettingsBtnAdultOnly;
s16 m_gameSettingsLblGameIOS;
s16 m_gameSettingsLblIOS;

View File

@ -3,7 +3,7 @@
#include "channel/nand.hpp"
#include "loader/nk.h"
const int CMenu::_nbCfgPages = 11;
const int CMenu::_nbCfgPages = 12;
void CMenu::_hideConfigCommon(bool instant)
{
@ -91,19 +91,7 @@ void CMenu::_config(int page)
case 6:
change = _configScreen();
break;
case 7:
change = _config7(page);
break;
case 8:
change = _config7(page);
break;
case 9:
change = _config7(page);
break;
case 10:
change = _config7(page);
break;
case 11:
default:
change = _config7(page);
break;
}
@ -115,7 +103,7 @@ void CMenu::_config(int page)
page += change;
if (page > _nbCfgPages)
page = 1;
else if (page < 0)
else if (page <= 0)
page = _nbCfgPages;
}
}

View File

@ -66,21 +66,31 @@ void CMenu::_showConfig7(int curPage)
if(m_config7LblUser[i] != -1)
m_btnMgr.show(m_config7LblUser[i]);
m_btnMgr.show(m_config7Lbl1);
m_btnMgr.show(m_config7Btn1);
m_btnMgr.show(m_config7Lbl2);
m_btnMgr.show(m_config7Btn2);
m_btnMgr.show(m_config7Lbl3);
m_btnMgr.show(m_config7Btn3);
m_btnMgr.show(m_config7Lbl4);
if(curPage == 7 || curPage == 11)
m_btnMgr.show(m_config7Btn4);
if(curPage == 12)
{
m_btnMgr.show(m_config7Lbl1);
m_btnMgr.show(m_config7Btn1);
//m_btnMgr.show(m_config7Lbl2);
//m_btnMgr.show(m_config7Btn2);
}
else
{
m_btnMgr.show(m_config7Lbl4Val);
m_btnMgr.show(m_config7Btn4M);
m_btnMgr.show(m_config7Btn4P);
m_btnMgr.show(m_config7Lbl1);
m_btnMgr.show(m_config7Btn1);
m_btnMgr.show(m_config7Lbl2);
m_btnMgr.show(m_config7Btn2);
m_btnMgr.show(m_config7Lbl3);
m_btnMgr.show(m_config7Btn3);
m_btnMgr.show(m_config7Lbl4);
if(curPage == 7 || curPage == 11)
m_btnMgr.show(m_config7Btn4);
else
{
m_btnMgr.show(m_config7Lbl4Val);
m_btnMgr.show(m_config7Btn4M);
m_btnMgr.show(m_config7Btn4P);
}
}
if(curPage == 7)
@ -127,7 +137,7 @@ void CMenu::_showConfig7(int curPage)
m_btnMgr.setText(m_config7Lbl4, _t("cfg716", L"Music fade rate"));
m_btnMgr.setText(m_config7Lbl4Val, wfmt(L"%i", m_cfg.getInt("GENERAL", "music_fade_rate", 8)));
}
else // page 11
else if(curPage == 11)
{
m_btnMgr.setText(m_config7Lbl1, _t("cfg717", L"Random game boot or select"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("GENERAL", "random_select") ? _t("select", L"Select") : _t("boot", L"Boot"));
@ -138,6 +148,13 @@ void CMenu::_showConfig7(int curPage)
m_btnMgr.setText(m_config7Lbl4, _t("cfg721", L"Play GC default sound"));
m_btnMgr.setText(m_config7Btn4, m_cfg.getBool(GC_DOMAIN, "play_default_sound") ? _t("yes", L"Yes") : _t("no", L"No"));
}
else // page 12
{
m_btnMgr.setText(m_config7Lbl1, _t("cfg722", L"Homebrew settings"));
m_btnMgr.setText(m_config7Btn1, _t("cfg14", L"Set"));
//m_btnMgr.setText(m_config7Lbl2, _t("cfg723", L"Source menu settings"));
//m_btnMgr.setText(m_config7Btn2, _t("cfg14", L"Set"));
}
}
int CMenu::_config7(int curPage)
@ -285,6 +302,21 @@ int CMenu::_config7(int curPage)
m_gc_play_default_sound = m_cfg.getBool(GC_DOMAIN, "play_default_sound", true);
}
}
if(curPage == 12)
{
if(m_btnMgr.selected(m_config7Btn1))
{
_hideConfig7();
_CfgHB();
_showConfig7(12);
}
/*else if(m_btnMgr.selected(m_config7Btn2))
{
_hideConfig7();
_CfgSrc();
_showConfig7(12);
}*/
}
}
}
if(rand_music != m_cfg.getBool("GENERAL", "randomize_music"))

View File

@ -81,8 +81,8 @@ void CMenu::_hideGameSettingsPg(bool instant)
//All
m_btnMgr.hide(m_gameSettingsLblManage, instant);
m_btnMgr.hide(m_gameSettingsBtnManage, instant);
m_btnMgr.hide(m_gameSettingsBtnCategoryMain, instant);
m_btnMgr.hide(m_gameSettingsLblCategoryMain, instant);
m_btnMgr.hide(m_gameSettingsBtnAdultOnly, instant);
m_btnMgr.hide(m_gameSettingsLblAdultOnly, instant);
m_btnMgr.hide(m_gameSettingsLblGameLanguage, instant);
m_btnMgr.hide(m_gameSettingsLblLanguage, instant);
m_btnMgr.hide(m_gameSettingsBtnLanguageP, instant);
@ -148,7 +148,29 @@ void CMenu::_hideGameSettingsPg(bool instant)
void CMenu::_showGameSettings()
{
u32 i;
const char *id = GameHdr->id;
char id[74];
char catID[64];
memset(id, 0, 74);
memset(catID, 0, 64);
if(GameHdr->type == TYPE_HOMEBREW)
wcstombs(id, GameHdr->title, 63);
else if(GameHdr->type == TYPE_PLUGIN)
{
strncpy(m_plugin.PluginMagicWord, fmt("%08x", GameHdr->settings[0]), 8);
if(strrchr(GameHdr->path, '/') != NULL)
wcstombs(catID, GameHdr->title, 63);
else
strncpy(catID, GameHdr->path, 63);// scummvm
strcpy(id, m_plugin.PluginMagicWord);
strcat(id, fmt("/%s", catID));
}
else
{
strcpy(id, GameHdr->id);
if(GameHdr->type == TYPE_GC_GAME && GameHdr->settings[0] == 1) /* disc 2 */
strcat(id, "_2");
}
_setBg(m_gameSettingsBg, m_gameSettingsBg);
for(i = 0; i < ARRAY_SIZE(m_gameSettingsLblUser); ++i)
@ -165,8 +187,12 @@ void CMenu::_showGameSettings()
if(GameHdr->type == TYPE_PLUGIN || GameHdr->type == TYPE_HOMEBREW)
{
m_btnMgr.show(m_gameSettingsBtnCategoryMain);
m_btnMgr.show(m_gameSettingsLblCategoryMain);
m_btnMgr.show(m_gameSettingsBtnAdultOnly);
m_btnMgr.show(m_gameSettingsLblAdultOnly);
if(GameHdr->type == TYPE_PLUGIN)
m_btnMgr.setText(m_gameSettingsBtnAdultOnly, m_gcfg1.getBool("ADULTONLY_PLUGINS", id, false) ? _t("yes", L"Yes") : _t("no", L"No"));
else
m_btnMgr.setText(m_gameSettingsBtnAdultOnly, m_gcfg1.getBool("ADULTONLY", id, false) ? _t("yes", L"Yes") : _t("no", L"No"));
return;
}
@ -187,8 +213,8 @@ void CMenu::_showGameSettings()
if(m_gameSettingsPage == 1)
{
m_btnMgr.show(m_gameSettingsBtnCategoryMain);
m_btnMgr.show(m_gameSettingsLblCategoryMain);
m_btnMgr.show(m_gameSettingsBtnAdultOnly);
m_btnMgr.show(m_gameSettingsLblAdultOnly);
if(GameHdr->type == TYPE_GC_GAME)
{
@ -376,6 +402,7 @@ void CMenu::_showGameSettings()
}
}
m_btnMgr.setText(m_gameSettingsBtnAdultOnly, m_gcfg1.getBool("ADULTONLY", id, false) ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_gameSettingsBtnOcarina, _optBoolToString(m_gcfg2.getOptBool(id, "cheat", 0)));
m_btnMgr.setText(m_gameSettingsBtnLED, _optBoolToString(m_gcfg2.getOptBool(id, "led", 0)));
@ -465,7 +492,30 @@ void CMenu::_gameSettings(const dir_discHdr *hdr, bool disc)
{
m_gcfg2.load(fmt("%s/" GAME_SETTINGS2_FILENAME, m_settingsDir.c_str()));
GameHdr = hdr;//
const char *id = GameHdr->id;
char id[74];
char catID[64];
memset(id, 0, 74);
memset(catID, 0, 64);
if(GameHdr->type == TYPE_HOMEBREW)
wcstombs(id, GameHdr->title, 63);
else if(GameHdr->type == TYPE_PLUGIN)
{
strncpy(m_plugin.PluginMagicWord, fmt("%08x", GameHdr->settings[0]), 8);
if(strrchr(GameHdr->path, '/') != NULL)
wcstombs(catID, GameHdr->title, 63);
else
strncpy(catID, GameHdr->path, 63);// scummvm
strcpy(id, m_plugin.PluginMagicWord);
strcat(id, fmt("/%s", catID));
}
else
{
strcpy(id, GameHdr->id);
if(GameHdr->type == TYPE_GC_GAME && GameHdr->settings[0] == 1) /* disc 2 */
strcat(id, "_2");
}
if(GameHdr->type == TYPE_GC_GAME)
{
videoScale = m_gcfg2.getInt(id, "nin_width", 127);
@ -736,22 +786,16 @@ void CMenu::_gameSettings(const dir_discHdr *hdr, bool disc)
m_gcfg2.setBool(id, "private_server", !m_gcfg2.getBool(id, "private_server", 0));
_showGameSettings();
}
else if(m_btnMgr.selected(m_gameSettingsBtnCategoryMain))
else if(m_btnMgr.selected(m_gameSettingsBtnAdultOnly))
{
if(disc)
error(_t("cfgg57", L"Not allowed for disc!"));
else
{
_hideGameSettings();
_CategorySettings(true);
// update these in case the user changed games while in cat menu
id = CoverFlow.getId();
GameHdr = CoverFlow.getHdr();
if(GameHdr->type == TYPE_GC_GAME)
{
videoScale = m_gcfg2.getInt(id, "nin_width", 127);
videoOffset = m_gcfg2.getInt(id, "nin_pos", 127);
}
if(GameHdr->type == TYPE_PLUGIN)
m_gcfg1.setBool("ADULTONLY_PLUGINS", id, !m_gcfg1.getBool("ADULTONLY_PLUGINS", id, false));
else
m_gcfg1.setBool("ADULTONLY", id, !m_gcfg1.getBool("ADULTONLY", id, false));
}
_showGameSettings();
}
@ -785,8 +829,8 @@ void CMenu::_initGameSettingsMenu()
m_gameSettingsLblTitle = _addLabel("GAME_SETTINGS/TITLE", theme.titleFont, L"", 0, 10, 640, 60, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE);
// Page 1
m_gameSettingsLblCategoryMain = _addLabel("GAME_SETTINGS/CAT_MAIN", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnCategoryMain = _addButton("GAME_SETTINGS/CAT_MAIN_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
m_gameSettingsLblAdultOnly = _addLabel("GAME_SETTINGS/ADULT_ONLY", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnAdultOnly = _addButton("GAME_SETTINGS/ADULT_ONLY_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
m_gameSettingsLblGameIOS = _addLabel("GAME_SETTINGS/IOS", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsLblIOS = _addLabel("GAME_SETTINGS/IOS_BTN", theme.btnFont, L"", 468, 190, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
@ -1056,8 +1100,8 @@ void CMenu::_initGameSettingsMenu()
_setHideAnim(m_gameSettingsLblFlashSave, "GAME_SETTINGS/FLASH_SAVE", 50, 0, -2.f, 0.f);
_setHideAnim(m_gameSettingsBtnFlashSave, "GAME_SETTINGS/FLASH_SAVE_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblCategoryMain, "GAME_SETTINGS/CAT_MAIN", 50, 0, -2.f, 0.f);
_setHideAnim(m_gameSettingsBtnCategoryMain, "GAME_SETTINGS/CAT_MAIN_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblAdultOnly, "GAME_SETTINGS/ADULT_ONLY", 50, 0, -2.f, 0.f);
_setHideAnim(m_gameSettingsBtnAdultOnly, "GAME_SETTINGS/ADULT_ONLY_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblPage, "GAME_SETTINGS/PAGE_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameSettingsBtnPageM, "GAME_SETTINGS/PAGE_MINUS", 0, 0, 1.f, -1.f);
@ -1075,8 +1119,7 @@ void CMenu::_textGameSettings(void)
m_btnMgr.setText(m_gameSettingsLblManage, _t("cfgg40", L"Manage Cover and Banner"));
m_btnMgr.setText(m_gameSettingsBtnManage, _t("cfgg41", L"Manage"));
m_btnMgr.setText(m_gameSettingsLblCategoryMain, _t("cfgg17", L"Categories"));
m_btnMgr.setText(m_gameSettingsBtnCategoryMain, _t("cfgg16", L"Select"));
m_btnMgr.setText(m_gameSettingsLblAdultOnly, _t("cfgg58", L"Adult only"));
m_btnMgr.setText(m_gameSettingsLblGCLoader, _t("cfgg35", L"GameCube Loader"));
m_btnMgr.setText(m_gameSettingsLblGameVideo, _t("cfgg2", L"Video mode"));
m_btnMgr.setText(m_gameSettingsLblGameLanguage, _t("cfgg3", L"Language"));

View File

@ -5,8 +5,8 @@ s16 m_cfghbLblTitle;
s16 m_cfghbBtnBack;
s16 m_cfghbLblUser[4];
s16 m_cfghbLblAdjustCF;
s16 m_cfghbBtnAdjustCF;
s16 m_cfghbLblHideHB;
s16 m_cfghbBtnHideHB;
s16 m_cfghbLblSmallbox;
s16 m_cfghbBtnSmallbox;
@ -29,8 +29,8 @@ static void _showCfgHB(void)
if(m_cfghbLblUser[i] != -1)
m_btnMgr.show(m_cfghbLblUser[i]);
m_btnMgr.show(m_cfghbLblAdjustCF);
m_btnMgr.show(m_cfghbBtnAdjustCF);
m_btnMgr.show(m_cfghbLblHideHB);
m_btnMgr.show(m_cfghbBtnHideHB);
m_btnMgr.show(m_cfghbLblSmallbox);
m_btnMgr.show(m_cfghbBtnSmallbox);
@ -53,8 +53,8 @@ static void _hideCfgHB(bool instant)
if(m_cfghbLblUser[i] != -1)
m_btnMgr.hide(m_cfghbLblUser[i], instant);
m_btnMgr.hide(m_cfghbLblAdjustCF, instant);
m_btnMgr.hide(m_cfghbBtnAdjustCF, instant);
m_btnMgr.hide(m_cfghbLblHideHB, instant);
m_btnMgr.hide(m_cfghbBtnHideHB, instant);
m_btnMgr.hide(m_cfghbLblSmallbox, instant);
m_btnMgr.hide(m_cfghbBtnSmallbox, instant);
@ -70,6 +70,7 @@ static void _hideCfgHB(bool instant)
void CMenu::_CfgHB(void)
{
m_btnMgr.setText(m_cfghbBtnHideHB, m_cfg.getBool(HOMEBREW_DOMAIN, "disable", false) ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_cfghbBtnSmallbox, m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox") ? _t("on", L"On") : _t("off", L"Off"));
m_btnMgr.setText(m_cfghbBtnBoxMode, m_cfg.getBool(HOMEBREW_DOMAIN, "box_mode") ? _t("on", L"On") : _t("off", L"Off"));
@ -94,12 +95,10 @@ void CMenu::_CfgHB(void)
{
if(m_btnMgr.selected(m_cfghbBtnBack))
break;
else if (m_btnMgr.selected(m_cfghbBtnAdjustCF))
else if (m_btnMgr.selected(m_cfghbBtnHideHB))
{
m_refreshGameList = true;
_hideCfgHB(true);
_cfTheme();
_showCfgHB();
m_cfg.setBool(HOMEBREW_DOMAIN, "disable", !m_cfg.getBool(HOMEBREW_DOMAIN, "disable"));
m_btnMgr.setText(m_cfghbBtnHideHB, m_cfg.getBool(HOMEBREW_DOMAIN, "disable") ? _t("yes", L"Yes") : _t("no", L"No"));
}
else if (m_btnMgr.selected(m_cfghbBtnSmallbox))
{
@ -134,8 +133,8 @@ void CMenu::_initCfgHB(void)
m_cfghbLblTitle = _addLabel("CFG_HB/TITLE", theme.titleFont, L"", 0, 10, 640, 60, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE);
m_cfghbBtnBack = _addButton("CFG_HB/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 48, theme.btnFontColor);
m_cfghbLblAdjustCF = _addLabel("CFG_HB/ADJUST_CF", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_cfghbBtnAdjustCF = _addButton("CFG_HB/ADJUST_CF_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
m_cfghbLblHideHB = _addLabel("CFG_HB/HIDE_HB", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_cfghbBtnHideHB = _addButton("CFG_HB/HIDE_HB_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
m_cfghbLblSmallbox = _addLabel("CFG_HB/HB_SMALLBOX", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_cfghbBtnSmallbox = _addButton("CFG_HB/HB_SMALLBOX_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);
@ -151,8 +150,8 @@ void CMenu::_initCfgHB(void)
_setHideAnim(m_cfghbLblTitle, "CFG_HB/TITLE", 0, 0, -2.f, 0.f);
_setHideAnim(m_cfghbBtnBack, "CFG_HB/BACK_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_cfghbLblAdjustCF, "CFG_HB/ADJUST_CF", -50, 0, -2.f, 0.f);
_setHideAnim(m_cfghbBtnAdjustCF, "CFG_HB/ADJUST_CF_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_cfghbLblHideHB, "CFG_HB/HIDE_HB", -50, 0, -2.f, 0.f);
_setHideAnim(m_cfghbBtnHideHB, "CFG_HB/HIDE_HB_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_cfghbLblSmallbox, "CFG_HB/HB_SMALLBOX", -50, 0, -2.f, 0.f);
_setHideAnim(m_cfghbBtnSmallbox, "CFG_HB/HB_SMALLBOX_BTN", -50, 0, 1.f, 0.f);
@ -172,8 +171,7 @@ void CMenu::_initCfgHB(void)
void CMenu::_textCfgHB(void)
{
m_btnMgr.setText(m_cfghbLblTitle, _t("cfghb1", L"Homebrew Settings"));
m_btnMgr.setText(m_cfghbLblAdjustCF, _t("cfgc4", L"Adjust Coverflow"));
m_btnMgr.setText(m_cfghbBtnAdjustCF, _t("cfgc5", L"Go"));
m_btnMgr.setText(m_cfghbLblHideHB, _t("cfghb5", L"Hide homebrew button"));
m_btnMgr.setText(m_cfghbLblSmallbox, _t("cfghb2", L"Coverflow Smallbox"));
m_btnMgr.setText(m_cfghbLblBoxMode, _t("cfghb4", L"Box Mode"));
m_btnMgr.setText(m_cfghbLblPartition, _t("cfghb3", L"Homebrew Partition"));

View File

@ -120,14 +120,14 @@ void CMenu::_CfgSrc(void)
else if(m_btnMgr.selected(m_cfgsrcBtnSmallbox))
{
m_refreshGameList = true;
fsop_deleteFolder(fmt("%s/sourceflow", m_cacheDir.c_str()));
//fsop_deleteFolder(fmt("%s/sourceflow", m_cacheDir.c_str()));
m_cfg.setBool(SOURCEFLOW_DOMAIN, "smallbox", !m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox", false));
m_btnMgr.setText(m_cfgsrcBtnSmallbox, m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox") ? _t("on", L"On") : _t("off", L"Off"));
}
else if(m_btnMgr.selected(m_cfgsrcBtnBoxMode))
{
m_refreshGameList = true;
fsop_deleteFolder(fmt("%s/sourceflow", m_cacheDir.c_str()));
//fsop_deleteFolder(fmt("%s/sourceflow", m_cacheDir.c_str()));
m_cfg.setBool(SOURCEFLOW_DOMAIN, "box_mode", !m_cfg.getBool(SOURCEFLOW_DOMAIN, "box_mode", false));
m_btnMgr.setText(m_cfgsrcBtnBoxMode, m_cfg.getBool(SOURCEFLOW_DOMAIN, "box_mode") ? _t("on", L"On") : _t("off", L"Off"));
}

View File

@ -308,8 +308,7 @@ void CMenu::_hideGame(bool instant)
m_btnMgr.hide(m_gameBtnToggleFull, instant);
m_btnMgr.hide(m_gameBtnFavoriteOn, instant);
m_btnMgr.hide(m_gameBtnFavoriteOff, instant);
m_btnMgr.hide(m_gameBtnAdultOn, instant);
m_btnMgr.hide(m_gameBtnAdultOff, instant);
m_btnMgr.hide(m_gameBtnCategories, instant);
for(u8 i = 0; i < ARRAY_SIZE(m_gameLblUser); ++i)
if(m_gameLblUser[i] != -1)
m_btnMgr.hide(m_gameLblUser[i], instant);
@ -542,29 +541,6 @@ void CMenu::_game(bool launch)
coverFlipped = false;
m_banner.SetShowBanner(true);
}
/* if B on favorites btn goto game categories */
else if(m_btnMgr.selected(m_gameBtnFavoriteOn) || m_btnMgr.selected(m_gameBtnFavoriteOff))
{
_hideGame();
if(m_locked)
{
m_banner.SetShowBanner(false);
error(_t("errgame15", L"WiiFlow locked! Unlock WiiFlow to use this feature."));
m_banner.SetShowBanner(true);
}
else
{
// the mainloop handles drawing banner while in settings
m_banner.ToggleZoom();//zoom to full
m_banner.ToggleGameSettings();// dim brightness
_CategorySettings(true);
m_banner.ToggleGameSettings();//reset brightness
m_banner.ToggleZoom();//de zoom to small
}
_showGame();
if(m_newGame)
startGameSound = -10;
}
/* exit game selected menu */
else
{
@ -661,8 +637,6 @@ void CMenu::_game(bool launch)
m_banner.ToggleZoom();//de zoom to small
}
_showGame();
if(m_newGame)
startGameSound = -10;
}
else if(m_btnMgr.selected(m_gameBtnFavoriteOn) || m_btnMgr.selected(m_gameBtnFavoriteOff))
{
@ -673,24 +647,27 @@ void CMenu::_game(bool launch)
if(m_favorites)
m_refreshGameList = true;
}
else if(m_btnMgr.selected(m_gameBtnAdultOn) || m_btnMgr.selected(m_gameBtnAdultOff))
else if(m_btnMgr.selected(m_gameBtnCategories))
{
if(m_locked)
{
m_banner.SetShowBanner(false);
error(_t("errgame15", L"WiiFlow locked! Unlock WiiFlow to use this feature."));
m_banner.SetShowBanner(true);
_showGame();
}
else
{
if(hdr->type == TYPE_PLUGIN)
m_gcfg1.setBool("ADULTONLY_PLUGINS", id, !m_gcfg1.getBool("ADULTONLY_PLUGINS", id, false));
else
m_gcfg1.setBool("ADULTONLY", id, !m_gcfg1.getBool("ADULTONLY", id, false));
if(m_locked)
m_refreshGameList = true;
_hideGame();
// the mainloop handles drawing banner while in settings
m_banner.ToggleZoom();//zoom to full
m_banner.ToggleGameSettings();// dim brightness
_CategorySettings(true);
m_banner.ToggleGameSettings();//reset brightness
m_banner.ToggleZoom();//de zoom to small
}
_showGame();
if(m_newGame)
startGameSound = -10;
}
else if(m_btnMgr.selected(m_gameBtnBack) || m_btnMgr.selected(m_gameBtnBackFull))
{
@ -879,6 +856,7 @@ void CMenu::_game(bool launch)
m_btnMgr.show(m_gameBtnBack);
m_btnMgr.show(m_gameBtnSettings);
m_btnMgr.show(m_gameBtnDelete);
m_btnMgr.show(m_gameBtnCategories);
bool b;
if(hdr->type == TYPE_PLUGIN)
b = m_gcfg1.getBool("FAVORITES_PLUGINS", id, false);
@ -886,12 +864,6 @@ void CMenu::_game(bool launch)
b = m_gcfg1.getBool("FAVORITES", id, false);
m_btnMgr.show(b ? m_gameBtnFavoriteOn : m_gameBtnFavoriteOff);
m_btnMgr.hide(b ? m_gameBtnFavoriteOff : m_gameBtnFavoriteOn);
if(hdr->type == TYPE_PLUGIN)
b = m_gcfg1.getBool("ADULTONLY_PLUGINS", id, false);
else
b = m_gcfg1.getBool("ADULTONLY", id, false);
m_btnMgr.show(b ? m_gameBtnAdultOn : m_gameBtnAdultOff);
m_btnMgr.hide(b ? m_gameBtnAdultOff : m_gameBtnAdultOn);
for(u8 i = 0; i < ARRAY_SIZE(m_gameLblUser) - 2; ++i)// #4 is used for banner frame
if(m_gameLblUser[i] != -1)
m_btnMgr.show(m_gameLblUser[i]);
@ -900,8 +872,7 @@ void CMenu::_game(bool launch)
{
m_btnMgr.hide(m_gameBtnFavoriteOn);
m_btnMgr.hide(m_gameBtnFavoriteOff);
m_btnMgr.hide(m_gameBtnAdultOn);
m_btnMgr.hide(m_gameBtnAdultOff);
m_btnMgr.hide(m_gameBtnCategories);
m_btnMgr.hide(m_gameBtnSettings);
m_btnMgr.hide(m_gameBtnDelete);
m_btnMgr.hide(m_gameBtnPlay);
@ -936,8 +907,7 @@ void CMenu::_game(bool launch)
m_btnMgr.hide(m_gameBtnFavoriteOn);
m_btnMgr.hide(m_gameBtnFavoriteOff);
m_btnMgr.hide(m_gameBtnAdultOn);
m_btnMgr.hide(m_gameBtnAdultOff);
m_btnMgr.hide(m_gameBtnCategories);
m_btnMgr.hide(m_gameBtnSettings);
m_btnMgr.hide(m_gameBtnDelete);
m_btnMgr.hide(m_gameBtnPlay);
@ -963,6 +933,7 @@ void CMenu::_game(bool launch)
m_btnMgr.show(m_gameBtnBack);
m_btnMgr.show(m_gameBtnSettings);
m_btnMgr.show(m_gameBtnDelete);
m_btnMgr.show(m_gameBtnCategories);
bool b;
if(hdr->type == TYPE_PLUGIN)
b = m_gcfg1.getBool("FAVORITES_PLUGINS", id, false);
@ -970,12 +941,6 @@ void CMenu::_game(bool launch)
b = m_gcfg1.getBool("FAVORITES", id, false);
m_btnMgr.show(b ? m_gameBtnFavoriteOn : m_gameBtnFavoriteOff);
m_btnMgr.hide(b ? m_gameBtnFavoriteOff : m_gameBtnFavoriteOn);
if(hdr->type == TYPE_PLUGIN)
b = m_gcfg1.getBool("ADULTONLY_PLUGINS", id, false);
else
b = m_gcfg1.getBool("ADULTONLY", id, false);
m_btnMgr.show(b ? m_gameBtnAdultOn : m_gameBtnAdultOff);
m_btnMgr.hide(b ? m_gameBtnAdultOff : m_gameBtnAdultOn);
for(u8 i = 0; i < ARRAY_SIZE(m_gameLblUser) - 2; ++i)// don't include small banner frame
if(m_gameLblUser[i] != -1)
m_btnMgr.show(m_gameLblUser[i]);
@ -984,8 +949,7 @@ void CMenu::_game(bool launch)
{
m_btnMgr.hide(m_gameBtnFavoriteOn);
m_btnMgr.hide(m_gameBtnFavoriteOff);
m_btnMgr.hide(m_gameBtnAdultOn);
m_btnMgr.hide(m_gameBtnAdultOff);
m_btnMgr.hide(m_gameBtnCategories);
m_btnMgr.hide(m_gameBtnSettings);
m_btnMgr.hide(m_gameBtnDelete);
m_btnMgr.hide(m_gameBtnPlay);
@ -2035,10 +1999,8 @@ void CMenu::_initGameMenu()
TexData texGameFavOnSel;
TexData texGameFavOff;
TexData texGameFavOffSel;
TexData texAdultOn;
TexData texAdultOnSel;
TexData texAdultOff;
TexData texAdultOffSel;
TexData texCategories;
TexData texCategoriesSel;
TexData texDelete;
TexData texDeleteSel;
TexData texSettings;
@ -2050,14 +2012,12 @@ void CMenu::_initGameMenu()
TexHandle.fromImageFile(texGameFavOnSel, fmt("%s/gamefavons.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texGameFavOff, fmt("%s/gamefavoff.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texGameFavOffSel, fmt("%s/gamefavoffs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texAdultOn, fmt("%s/stopkidon.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texAdultOnSel, fmt("%s/stopkidons.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texAdultOff, fmt("%s/stopkidoff.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texAdultOffSel, fmt("%s/stopkidoffs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texCategories, fmt("%s/btncat.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texCategoriesSel, fmt("%s/btncats.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texDelete, fmt("%s/delete.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texDeleteSel, fmt("%s/deletes.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texSettings, fmt("%s/btngamecfg.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texSettingsSel, fmt("%s/btngamecfgs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texSettings, fmt("%s/btnconfig.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texSettingsSel, fmt("%s/btnconfigs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texToggleBanner, fmt("%s/blank.png", m_imgsDir.c_str()));
_addUserLabels(m_gameLblUser, ARRAY_SIZE(m_gameLblUser), "GAME");
@ -2069,8 +2029,7 @@ void CMenu::_initGameMenu()
m_gameBtnBack = _addButton("GAME/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 48, theme.btnFontColor);
m_gameBtnFavoriteOn = _addPicButton("GAME/FAVORITE_ON", texGameFavOn, texGameFavOnSel, 460, 200, 48, 48);
m_gameBtnFavoriteOff = _addPicButton("GAME/FAVORITE_OFF", texGameFavOff, texGameFavOffSel, 460, 200, 48, 48);
m_gameBtnAdultOn = _addPicButton("GAME/ADULTONLY_ON", texAdultOn, texAdultOnSel, 532, 200, 48, 48);
m_gameBtnAdultOff = _addPicButton("GAME/ADULTONLY_OFF", texAdultOff, texAdultOffSel, 532, 200, 48, 48);
m_gameBtnCategories = _addPicButton("GAME/CATEGORIES_BTN", texCategories, texCategoriesSel, 532, 200, 48, 48);
m_gameBtnSettings = _addPicButton("GAME/SETTINGS_BTN", texSettings, texSettingsSel, 460, 272, 48, 48);
m_gameBtnDelete = _addPicButton("GAME/DELETE_BTN", texDelete, texDeleteSel, 532, 272, 48, 48);
m_gameBtnBackFull = _addButton("GAME/BACK_FULL_BTN", theme.btnFont, L"", 100, 390, 200, 56, theme.btnFontColor);
@ -2088,8 +2047,7 @@ void CMenu::_initGameMenu()
_setHideAnim(m_gameBtnBack, "GAME/BACK_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnFavoriteOn, "GAME/FAVORITE_ON", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnFavoriteOff, "GAME/FAVORITE_OFF", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnAdultOn, "GAME/ADULTONLY_ON", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnAdultOff, "GAME/ADULTONLY_OFF", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnCategories, "GAME/CATEGORIES_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnSettings, "GAME/SETTINGS_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnDelete, "GAME/DELETE_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnPlayFull, "GAME/PLAY_FULL_BTN", 0, 0, 1.f, 0.f);

View File

@ -23,6 +23,7 @@ void CMenu::_hideMain(bool instant)
{
m_btnMgr.hide(m_mainBtnNext, instant);
m_btnMgr.hide(m_mainBtnPrev, instant);
m_btnMgr.hide(m_mainBtnCategories, instant);
m_btnMgr.hide(m_mainBtnConfig, instant);
m_btnMgr.hide(m_mainBtnHome, instant);
m_btnMgr.hide(m_mainBtnHomebrew, instant);
@ -281,6 +282,7 @@ int CMenu::main(void)
bool show_channel = !m_cfg.getBool(CHANNEL_DOMAIN, "disable", false);
bool show_plugin = !m_cfg.getBool(PLUGIN_DOMAIN, "disable", false);
bool show_gamecube = !m_cfg.getBool(GC_DOMAIN, "disable", false);
bool show_homebrew = !m_cfg.getBool(HOMEBREW_DOMAIN, "disable", false);
m_multisource = m_cfg.getBool("GENERAL", "multisource", false);
bool m_source_on_start = m_cfg.getBool("GENERAL", "source_on_start", false);
bool bheld = false;// bheld to indicate btn b was pressed or held
@ -292,7 +294,7 @@ int CMenu::main(void)
m_prev_view = 0;
m_current_view = m_cfg.getUInt("GENERAL", "sources", COVERFLOW_WII);
m_source_cnt = 0;
for(u8 i = 1; i < 16; i <<= 1)//not including coverflow_homebrew
for(u8 i = 1; i < 32; i <<= 1)
if(m_current_view & i)
m_source_cnt++;
@ -396,24 +398,16 @@ int CMenu::main(void)
}
_showMain();
}
/* homebrew flow config menu */
else if(m_current_view == COVERFLOW_HOMEBREW)
{
_CfgHB();
if(BTN_B_HELD)
{
bheld = true;
bUsed = true;
}
_showMain();
}
/* Home menu */
else
{
if(_Home())
break;// exit wiiflow
if(BTN_B_HELD)
{
bheld = true;
bUsed = true;
}
_showMain();
}
}
@ -436,16 +430,20 @@ int CMenu::main(void)
}
_showMain();
}
else if(m_btnMgr.selected(m_mainBtnChannel) || m_btnMgr.selected(m_mainBtnWii) || m_btnMgr.selected(m_mainBtnGamecube) || m_btnMgr.selected(m_mainBtnPlugin))
else if(m_btnMgr.selected(m_mainBtnChannel) || m_btnMgr.selected(m_mainBtnWii) || m_btnMgr.selected(m_mainBtnGamecube)
|| m_btnMgr.selected(m_mainBtnPlugin) || m_btnMgr.selected(m_mainBtnHomebrew))
{
/* change source via view button on main menu */
if(m_current_view == COVERFLOW_WII)
m_current_view = show_gamecube ? COVERFLOW_GAMECUBE : (show_channel ? COVERFLOW_CHANNEL : (show_plugin ? COVERFLOW_PLUGIN : COVERFLOW_WII));
m_current_view = show_gamecube ? COVERFLOW_GAMECUBE : (show_channel ? COVERFLOW_CHANNEL :
(show_plugin ? COVERFLOW_PLUGIN : (show_homebrew ? COVERFLOW_HOMEBREW : COVERFLOW_WII)));
else if(m_current_view == COVERFLOW_GAMECUBE)
m_current_view = show_channel ? COVERFLOW_CHANNEL : (show_plugin ? COVERFLOW_PLUGIN : COVERFLOW_WII);
m_current_view = show_channel ? COVERFLOW_CHANNEL : (show_plugin ? COVERFLOW_PLUGIN : (show_homebrew ? COVERFLOW_HOMEBREW : COVERFLOW_WII));
else if(m_current_view == COVERFLOW_CHANNEL)
m_current_view = show_plugin ? COVERFLOW_PLUGIN : COVERFLOW_WII;
else if(m_current_view == COVERFLOW_PLUGIN || m_source_cnt > 1)
m_current_view = show_plugin ? COVERFLOW_PLUGIN : (show_homebrew ? COVERFLOW_HOMEBREW : COVERFLOW_WII);
else if(m_current_view == COVERFLOW_PLUGIN)
m_current_view = show_homebrew ? COVERFLOW_HOMEBREW : COVERFLOW_WII;
else if(m_current_view == COVERFLOW_HOMEBREW || m_source_cnt > 1)
m_current_view = COVERFLOW_WII;
m_source_cnt = 1;
m_cfg.setUInt("GENERAL", "sources", m_current_view);
@ -476,12 +474,44 @@ int CMenu::main(void)
show_gamecube = !m_cfg.getBool(GC_DOMAIN, "disable", false);
_showMain();
}
else if(m_btnMgr.selected(m_mainBtnHomebrew))
else if(m_btnMgr.selected(m_mainBtnCategories))
{
/* launch homebrew flow */
if(m_locked && m_cfg.getBool(HOMEBREW_DOMAIN, "parental", false))
_hideMain();
_CategorySettings();
if(BTN_B_HELD)// returned using the b btn
{
error(_t("errgame15", L"WiiFlow locked! Unlock WiiFlow to use this feature."));
bheld = true;
bUsed = true;
}
_setMainBg();
if(m_refreshGameList)
{
m_refreshGameList = false;
_initCF();
}
}
else if(m_btnMgr.selected(m_mainBtnDVD))
{
if(disc_check & 0x2)
{
/* Boot DVD in drive */
_hideMain(true);
/* Create Fake Header */
dir_discHdr hdr;
memset(&hdr, 0, sizeof(dir_discHdr));
memcpy(&hdr.id, "dvddvd", 6);//this must be set for neek2o
/* Boot the Disc */
_launchGame(&hdr, true, BTN_B_HELD);
if(BTN_B_HELD)
{
bheld = true;
bUsed = true;
}
_showCF(false);
}
else
{
error(_t("main8", L"No disc in drive!"));
if(BTN_B_HELD)
{
bheld = true;
@ -489,29 +519,6 @@ int CMenu::main(void)
}
_showMain();
}
else
{
m_prev_view = m_current_view;
m_current_view = COVERFLOW_HOMEBREW;
_showCF(true);
}
}
else if(m_btnMgr.selected(m_mainBtnDVD))
{
/* Boot DVD in drive */
_hideMain(true);
/* Create Fake Header */
dir_discHdr hdr;
memset(&hdr, 0, sizeof(dir_discHdr));
memcpy(&hdr.id, "dvddvd", 6);//this must be set for neek2o
/* Boot the Disc */
_launchGame(&hdr, true, BTN_B_HELD);
if(BTN_B_HELD)
{
bheld = true;
bUsed = true;
}
_showCF(false);
}
else if(m_btnMgr.selected(m_mainBtnFavoritesOn) || m_btnMgr.selected(m_mainBtnFavoritesOff))
{
@ -533,7 +540,7 @@ int CMenu::main(void)
}
else
{
_game(BTN_B_HELD || m_current_view == COVERFLOW_HOMEBREW);
_game(BTN_B_HELD);
if(m_exit)
break;
if(BTN_B_HELD)
@ -556,26 +563,7 @@ int CMenu::main(void)
else if(BTN_B_PRESSED)
{
bheld = true;
/* Show Categories */
if(m_btnMgr.selected(m_mainBtnFavoritesOn) || m_btnMgr.selected(m_mainBtnFavoritesOff))
{
_hideMain();
_CategorySettings();
if(BTN_B_HELD)// returned using the b btn
{
bheld = true;
bUsed = true;
}
else
bheld = false;
_setMainBg();
if(m_refreshGameList)
{
m_refreshGameList = false;
_initCF();
}
}
else if(m_btnMgr.selected(m_mainBtnNext) || m_btnMgr.selected(m_mainBtnPrev))
if(m_btnMgr.selected(m_mainBtnNext) || m_btnMgr.selected(m_mainBtnPrev))
{
bUsed = true;
const char *domain = _domainFromView();
@ -792,21 +780,21 @@ int CMenu::main(void)
}
}
/*zones, showing and hiding buttons */
if(!m_gameList.empty() && m_show_zone_prev && !m_sourceflow && m_current_view != COVERFLOW_HOMEBREW)
if(!m_gameList.empty() && m_show_zone_prev && !m_sourceflow)
m_btnMgr.show(m_mainBtnPrev);
else
m_btnMgr.hide(m_mainBtnPrev);
if(!m_gameList.empty() && m_show_zone_next && !m_sourceflow && m_current_view != COVERFLOW_HOMEBREW)
if(!m_gameList.empty() && m_show_zone_next && !m_sourceflow)
m_btnMgr.show(m_mainBtnNext);
else
m_btnMgr.hide(m_mainBtnNext);
if(m_show_zone_main && !m_sourceflow && m_current_view != COVERFLOW_HOMEBREW)
if(m_show_zone_main && !m_sourceflow)
{
m_btnMgr.show(m_mainLblUser[0]);
m_btnMgr.show(m_mainLblUser[1]);
m_btnMgr.show(m_mainBtnHomebrew);
m_btnMgr.show(m_mainBtnCategories);
m_btnMgr.show(m_mainBtnConfig);
m_btnMgr.show(m_mainBtnHome);
static bool change = m_favorites;
@ -819,12 +807,12 @@ int CMenu::main(void)
m_btnMgr.hide(m_mainLblUser[0]);
m_btnMgr.hide(m_mainLblUser[1]);
m_btnMgr.hide(m_mainBtnConfig);
m_btnMgr.hide(m_mainBtnHomebrew);
m_btnMgr.hide(m_mainBtnCategories);
m_btnMgr.hide(m_mainBtnHome);
m_btnMgr.hide(m_mainBtnFavoritesOn);
m_btnMgr.hide(m_mainBtnFavoritesOff);
}
if(!m_cfg.getBool("GENERAL", "hideviews", false) && m_show_zone_main2 && !m_sourceflow && m_current_view != COVERFLOW_HOMEBREW)
if(!m_cfg.getBool("GENERAL", "hideviews", false) && m_show_zone_main2 && !m_sourceflow)
{
switch(m_current_view)
{
@ -835,6 +823,8 @@ int CMenu::main(void)
m_btnMgr.show(m_mainBtnChannel);
else if(show_plugin)
m_btnMgr.show(m_mainBtnPlugin);
else if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else
m_btnMgr.show(m_mainBtnWii);
break;
@ -843,12 +833,22 @@ int CMenu::main(void)
m_btnMgr.show(m_mainBtnChannel);
else if(show_plugin)
m_btnMgr.show(m_mainBtnPlugin);
else if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else
m_btnMgr.show(m_mainBtnWii);
break;
case COVERFLOW_CHANNEL:
if(show_plugin)
m_btnMgr.show(m_mainBtnPlugin);
else if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else
m_btnMgr.show(m_mainBtnWii);
break;
case COVERFLOW_PLUGIN:
if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else
m_btnMgr.show(m_mainBtnWii);
break;
@ -865,10 +865,11 @@ int CMenu::main(void)
m_btnMgr.hide(m_mainBtnWii);
m_btnMgr.hide(m_mainBtnGamecube);
m_btnMgr.hide(m_mainBtnPlugin);
m_btnMgr.hide(m_mainBtnHomebrew);
m_btnMgr.hide(m_mainLblUser[2]);
m_btnMgr.hide(m_mainLblUser[3]);
}
if((disc_check & 0x2) && m_show_zone_main3 && !m_sourceflow && m_current_view != COVERFLOW_HOMEBREW)
if(m_show_zone_main3 && !m_sourceflow)
{
m_btnMgr.show(m_mainBtnDVD);
m_btnMgr.show(m_mainLblUser[4]);
@ -906,6 +907,8 @@ int CMenu::main(void)
void CMenu::_initMainMenu()
{
TexData texCategories;
TexData texCategoriesS;
TexData texHome;
TexData texHomeS;
TexData texConfig;
@ -937,7 +940,9 @@ void CMenu::_initMainMenu()
if(m_theme.loaded() && TexHandle.fromImageFile(bgLQ, fmt("%s/%s", m_themeDataDir.c_str(), m_theme.getString("MAIN/BG", "texture").c_str()), GX_TF_CMPR, 64, 64) == TE_OK)
m_mainBgLQ = bgLQ;
TexHandle.fromImageFile(texHome, fmt("%s/btnquit.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texCategories, fmt("%s/btncat.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texCategoriesS, fmt("%s/btncats.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texHome, fmt("%s/btnquit.png", m_imgsDir.c_str()));// home button
TexHandle.fromImageFile(texHomeS, fmt("%s/btnquits.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texConfig, fmt("%s/btnconfig.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texConfigS, fmt("%s/btnconfigs.png", m_imgsDir.c_str()));
@ -957,29 +962,32 @@ void CMenu::_initMainMenu()
TexHandle.fromImageFile(texPrevS, fmt("%s/btnprevs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texNext, fmt("%s/btnnext.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texNextS, fmt("%s/btnnexts.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texFavOn, fmt("%s/favoriteson.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texFavOnS, fmt("%s/favoritesons.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texFavOff, fmt("%s/favoritesoff.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texFavOffS, fmt("%s/favoritesoffs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texFavOn, fmt("%s/gamefavon.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texFavOnS, fmt("%s/gamefavons.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texFavOff, fmt("%s/gamefavoff.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texFavOffS, fmt("%s/gamefavoffs.png", m_imgsDir.c_str()));
_addUserLabels(m_mainLblUser, ARRAY_SIZE(m_mainLblUser), "MAIN");
m_mainBtnConfig = _addPicButton("MAIN/CONFIG_BTN", texConfig, texConfigS, 70, 400, 48, 48);
m_mainBtnHome = _addPicButton("MAIN/QUIT_BTN", texHome, texHomeS, 570, 400, 48, 48);
m_mainBtnChannel = _addPicButton("MAIN/CHANNEL_BTN", texChannel, texChannels, 520, 400, 48, 48);
m_mainBtnHomebrew = _addPicButton("MAIN/HOMEBREW_BTN", texHomebrew, texHomebrews, 20, 400, 48, 48);
m_mainBtnWii = _addPicButton("MAIN/USB_BTN", texWii, texWiis, 520, 400, 48, 48);
m_mainBtnGamecube = _addPicButton("MAIN/DML_BTN", texGamecube, texGamecubes, 520, 400, 48, 48);
m_mainBtnPlugin = _addPicButton("MAIN/EMU_BTN", texPlugin, texPlugins, 520, 400, 48, 48);
m_mainBtnDVD = _addPicButton("MAIN/DVD_BTN", texDVD, texDVDs, 470, 400, 48, 48);
m_mainBtnCategories = _addPicButton("MAIN/CATEGORIES_BTN", texCategories, texCategoriesS, 126, 400, 48, 48);
m_mainBtnFavoritesOn = _addPicButton("MAIN/FAVORITES_ON", texFavOn, texFavOnS, 194, 400, 48, 48);
m_mainBtnFavoritesOff = _addPicButton("MAIN/FAVORITES_OFF", texFavOff, texFavOffS, 194, 400, 48, 48);
m_mainBtnConfig = _addPicButton("MAIN/CONFIG_BTN", texConfig, texConfigS, 262, 400, 48, 48);
m_mainBtnHome = _addPicButton("MAIN/QUIT_BTN", texHome, texHomeS, 330, 400, 48, 48);
m_mainBtnChannel = _addPicButton("MAIN/CHANNEL_BTN", texChannel, texChannels,398, 400, 48, 48);
m_mainBtnHomebrew = _addPicButton("MAIN/HOMEBREW_BTN", texHomebrew, texHomebrews, 398, 400, 48, 48);
m_mainBtnWii = _addPicButton("MAIN/USB_BTN", texWii, texWiis, 398, 400, 48, 48);
m_mainBtnGamecube = _addPicButton("MAIN/DML_BTN", texGamecube, texGamecubes, 398, 400, 48, 48);
m_mainBtnPlugin = _addPicButton("MAIN/EMU_BTN", texPlugin, texPlugins, 398, 400, 48, 48);
m_mainBtnDVD = _addPicButton("MAIN/DVD_BTN", texDVD, texDVDs, 466, 400, 48, 48);
m_mainBtnNext = _addPicButton("MAIN/NEXT_BTN", texNext, texNextS, 540, 146, 80, 80);
m_mainBtnPrev = _addPicButton("MAIN/PREV_BTN", texPrev, texPrevS, 20, 146, 80, 80);
m_mainBtnFavoritesOn = _addPicButton("MAIN/FAVORITES_ON", texFavOn, texFavOnS, 288, 400, 64, 64);
m_mainBtnFavoritesOff = _addPicButton("MAIN/FAVORITES_OFF", texFavOff, texFavOffS, 288, 400, 64, 64);
m_mainLblMessage = _addLabel("MAIN/MESSAGE", theme.lblFont, L"", 40, 40, 560, 140, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_mainLblLetter = _addLabel("MAIN/LETTER", theme.titleFont, L"", 540, 40, 80, 80, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, emptyTex);
m_mainLblNotice = _addLabel("MAIN/NOTICE", theme.txtFont, L"", 340, 40, 280, 80, theme.titleFontColor, FTGX_JUSTIFY_RIGHT | FTGX_ALIGN_MIDDLE);
m_mainLblCurMusic = _addLabel("MAIN/MUSIC", theme.btnFont, L"", 0, 40, 640, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_mainLblCurMusic = _addLabel("MAIN/MUSIC", theme.txtFont, L"", 0, 10, 640, 32, theme.txtFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
//#ifdef SHOWMEM
m_mem1FreeSize = _addLabel("MEM1", theme.btnFont, L"", 40, 300, 480, 56, theme.btnFontColor, FTGX_JUSTIFY_LEFT, emptyTex);
m_mem2FreeSize = _addLabel("MEM2", theme.btnFont, L"", 40, 356, 480, 56, theme.btnFontColor, FTGX_JUSTIFY_LEFT, emptyTex);
@ -1017,6 +1025,7 @@ void CMenu::_initMainMenu()
//
_setHideAnim(m_mainBtnNext, "MAIN/NEXT_BTN", 0, 0, 0.f, 0.f);
_setHideAnim(m_mainBtnPrev, "MAIN/PREV_BTN", 0, 0, 0.f, 0.f);
_setHideAnim(m_mainBtnCategories, "MAIN/CATEGORIES_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnConfig, "MAIN/CONFIG_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnHome, "MAIN/QUIT_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnChannel, "MAIN/CHANNEL_BTN", 0, 40, 0.f, 0.f);

View File

@ -60,17 +60,7 @@ void CMenu::_sourceFlow()
m_current_view = COVERFLOW_CHANNEL;
}
else if(source == "homebrew")
{
if(m_locked && m_cfg.getBool(HOMEBREW_DOMAIN, "parental", false))
{
error(_t("errsource1", L"Homebrew locked!"));
m_current_view = COVERFLOW_WII;// or return
}
else
{
m_current_view = COVERFLOW_HOMEBREW;
}
}
m_current_view = COVERFLOW_HOMEBREW;
else if(source == "allplugins")
{
strncpy(single_sourcebtn, btn_selected, 16);
@ -421,7 +411,7 @@ bool CMenu::_Source()
m_cfg.setUInt("GENERAL", "sources", m_current_view);
m_source_cnt = 0;
for(i = 1; i < 16; i <<= 1)//not including coverflow_homebrew
for(i = 1; i < 32; i <<= 1)
if(m_current_view & i)
m_source_cnt++;
break;
@ -499,19 +489,8 @@ bool CMenu::_Source()
}
else if(source == "homebrew")
{
if(m_locked && m_cfg.getBool(HOMEBREW_DOMAIN, "parental", false))
{
_hideSource();
error(_t("errsource1", L"Homebrew locked!"));
exitSource = false;
_showSource();
_updateSourceBtns();
}
else
{
m_current_view = COVERFLOW_HOMEBREW;
_setSrcOptions();
}
m_current_view = COVERFLOW_HOMEBREW;
_setSrcOptions();
}
else if(source == "allplugins")
{
@ -634,13 +613,7 @@ bool CMenu::_Source()
m_current_view |= COVERFLOW_CHANNEL;
}
else if(source == "homebrew")
{
_hideSource();
error(_t("errsource2", L"Homebrew in multisource not allowed!"));
updateSource = false;
_showSource();
_updateSourceBtns();
}
m_current_view ^= COVERFLOW_HOMEBREW;
else if(source == "allplugins")
{
m_plugin.GetEnabledPlugins(m_cfg, &enabledPluginsCount);

View File

@ -154,6 +154,7 @@ cfgg54=Video Width
cfgg55=Video Position
cfgg56=Patch PAL50
cfgg57=Not allowed for disc!
cfgg58=Adult only
cfgg4=Patch country strings
cfgg5=Ocarina
cfgg6=
@ -226,7 +227,7 @@ cfghb1=Homebrew Settings
cfghb2=Coverflow Smallbox
cfghb3=Homebrew Partition
cfghb4=Box Mode
cfghb5=Download Covers
cfghb5=Hide homebrew button
ChanReal=Real NAND
ChanEmu=Emu NAND
ChanBoth=Both
@ -393,6 +394,7 @@ main4=No apps found in
main5=No roms/items found.
main6=No plugins Selected.
main7=Total Games: %u
main8=No disc in drive!
mastersystem=Sega Master System
menu=System Menu
NANDfull=Full