mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2025-01-23 01:01:12 +01:00
- added option to have separate plugin categories and normal (Wii) categories in categories_lite ini. Normal categories go under [GENERAL] and plugin categories go under [PLUGINS]. Plugin categories will show when viewing plugin games and normal categories will show when not viewing plugin games. The only problem is when you combine normal games with plugin games ... the categories menu will show plugin categories only. I haven't got a solution to that issue yet. If you have your plugin games currently working with the normal categories then don't worry they will still work. you don't have to copy the [GENERAL] section and rename it to [PLUGINS].
This commit is contained in:
parent
33859d443b
commit
27cbbbf8c0
BIN
out/boot.dol
BIN
out/boot.dol
Binary file not shown.
Before Width: | Height: | Size: 3.6 MiB After Width: | Height: | Size: 3.6 MiB |
@ -1993,18 +1993,18 @@ void CMenu::_initCF(void)
|
|||||||
CoverFlow.clear();
|
CoverFlow.clear();
|
||||||
CoverFlow.reserve(m_gameList.size());
|
CoverFlow.reserve(m_gameList.size());
|
||||||
|
|
||||||
string requiredCats = m_cat.getString("GENERAL", "required_categories", "");
|
string requiredCats;
|
||||||
string selectedCats = m_cat.getString("GENERAL", "selected_categories", "");
|
string selectedCats;
|
||||||
string hiddenCats = m_cat.getString("GENERAL", "hidden_categories", "");
|
string hiddenCats;
|
||||||
u8 numReqCats = requiredCats.length();
|
|
||||||
u8 numSelCats = selectedCats.length();
|
|
||||||
u8 numHidCats = hiddenCats.length();
|
|
||||||
|
|
||||||
char id[74];
|
char id[74];
|
||||||
char catID[64];
|
char catID[64];
|
||||||
|
|
||||||
for(vector<dir_discHdr>::iterator hdr = m_gameList.begin(); hdr != m_gameList.end(); ++hdr)
|
for(vector<dir_discHdr>::iterator hdr = m_gameList.begin(); hdr != m_gameList.end(); ++hdr)
|
||||||
{
|
{
|
||||||
|
requiredCats = m_cat.getString("GENERAL", "required_categories", "");
|
||||||
|
selectedCats = m_cat.getString("GENERAL", "selected_categories", "");
|
||||||
|
hiddenCats = m_cat.getString("GENERAL", "hidden_categories", "");
|
||||||
|
|
||||||
const char *favDomain = "FAVORITES";
|
const char *favDomain = "FAVORITES";
|
||||||
const char *adultDomain = "ADULTONLY";
|
const char *adultDomain = "ADULTONLY";
|
||||||
|
|
||||||
@ -2027,6 +2027,13 @@ void CMenu::_initCF(void)
|
|||||||
}
|
}
|
||||||
else if(hdr->type == TYPE_PLUGIN)
|
else if(hdr->type == TYPE_PLUGIN)
|
||||||
{
|
{
|
||||||
|
if(m_cat.hasDomain("PLUGINS"))// if using new style categories_lite.ini
|
||||||
|
{
|
||||||
|
requiredCats = m_cat.getString("PLUGINS", "required_categories", "");
|
||||||
|
selectedCats = m_cat.getString("PLUGINS", "selected_categories", "");
|
||||||
|
hiddenCats = m_cat.getString("PLUGINS", "hidden_categories", "");
|
||||||
|
}
|
||||||
|
|
||||||
strncpy(m_plugin.PluginMagicWord, fmt("%08x", hdr->settings[0]), 8);
|
strncpy(m_plugin.PluginMagicWord, fmt("%08x", hdr->settings[0]), 8);
|
||||||
if(strrchr(hdr->path, '/') != NULL)
|
if(strrchr(hdr->path, '/') != NULL)
|
||||||
wcstombs(catID, hdr->title, 63);
|
wcstombs(catID, hdr->title, 63);
|
||||||
@ -2043,6 +2050,10 @@ void CMenu::_initCF(void)
|
|||||||
strcpy(catID, id);
|
strcpy(catID, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u8 numReqCats = requiredCats.length();
|
||||||
|
u8 numSelCats = selectedCats.length();
|
||||||
|
u8 numHidCats = hiddenCats.length();
|
||||||
|
|
||||||
if((!m_favorites || m_gcfg1.getBool(favDomain, id, false))
|
if((!m_favorites || m_gcfg1.getBool(favDomain, id, false))
|
||||||
&& (!m_locked || !m_gcfg1.getBool(adultDomain, id, false)))
|
&& (!m_locked || !m_gcfg1.getBool(adultDomain, id, false)))
|
||||||
{
|
{
|
||||||
@ -2289,7 +2300,7 @@ void CMenu::_initCF(void)
|
|||||||
else if(strncasecmp(m_plugin.PluginMagicWord, "454E414E", 8) == 0)//EMUNAND
|
else if(strncasecmp(m_plugin.PluginMagicWord, "454E414E", 8) == 0)//EMUNAND
|
||||||
ID = m_cfg.getString("plugin_item", m_plugin.PluginMagicWord, "");
|
ID = m_cfg.getString("plugin_item", m_plugin.PluginMagicWord, "");
|
||||||
else
|
else
|
||||||
filename = m_cfg.getString("plugin_item", m_plugin.PluginMagicWord, "");
|
filename = m_cfg.getString("plugin_item", m_plugin.PluginMagicWord, "");// homebrew and plugins
|
||||||
}
|
}
|
||||||
else if(m_sourceflow && sm_numbers.size() > 0)
|
else if(m_sourceflow && sm_numbers.size() > 0)
|
||||||
sourceNumber = stoi(sm_numbers[sm_numbers.size() - 1]);
|
sourceNumber = stoi(sm_numbers[sm_numbers.size() - 1]);
|
||||||
|
@ -1065,6 +1065,7 @@ private:
|
|||||||
void _updateCheckboxes(void);
|
void _updateCheckboxes(void);
|
||||||
void _getGameCategories(void);
|
void _getGameCategories(void);
|
||||||
void _setGameCategories(void);
|
void _setGameCategories(void);
|
||||||
|
void _setCatGenDomain(void);
|
||||||
void _getCustomBgTex(void);
|
void _getCustomBgTex(void);
|
||||||
void _setMainBg(void);
|
void _setMainBg(void);
|
||||||
void _setBg(const TexData &bgTex, const TexData &bglqTex);
|
void _setBg(const TexData &bgTex, const TexData &bglqTex);
|
||||||
|
@ -22,6 +22,7 @@ u8 lastBtn;
|
|||||||
char id[64];
|
char id[64];
|
||||||
const char *catDomain = NULL;
|
const char *catDomain = NULL;
|
||||||
bool gameSet;
|
bool gameSet;
|
||||||
|
string genDomain;
|
||||||
|
|
||||||
void CMenu::_hideCategorySettings(bool instant)
|
void CMenu::_hideCategorySettings(bool instant)
|
||||||
{
|
{
|
||||||
@ -59,6 +60,40 @@ void CMenu::_showCategorySettings(void)
|
|||||||
_updateCheckboxes();
|
_updateCheckboxes();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CMenu::_setCatGenDomain()
|
||||||
|
{
|
||||||
|
genDomain = "GENERAL";
|
||||||
|
if(!m_cat.hasDomain("PLUGINS"))// if still using old style categories_lite.ini set as "GENERAL" and return
|
||||||
|
return;
|
||||||
|
if(gameSet)
|
||||||
|
{
|
||||||
|
const dir_discHdr *hdr = CoverFlow.getHdr();
|
||||||
|
if(hdr->type == TYPE_PLUGIN)
|
||||||
|
genDomain = "PLUGINS";
|
||||||
|
}
|
||||||
|
else if(m_current_view & COVERFLOW_PLUGIN)
|
||||||
|
{
|
||||||
|
for(u8 i = 0; m_plugin.PluginExist(i); ++i)// only set "PLUGINS" for real plugins
|
||||||
|
{
|
||||||
|
if(m_plugin.GetEnableStatus(m_cfg, m_plugin.getPluginMagic(i)))
|
||||||
|
{
|
||||||
|
if(strncasecmp(m_plugin.PluginMagicWord, "4E47434D", 8) == 0)//NGCM
|
||||||
|
continue;
|
||||||
|
else if(strncasecmp(m_plugin.PluginMagicWord, "4E574949", 8) == 0)//NWII
|
||||||
|
continue;
|
||||||
|
else if(strncasecmp(m_plugin.PluginMagicWord, "4E414E44", 8) == 0)//NAND
|
||||||
|
continue;
|
||||||
|
else if(strncasecmp(m_plugin.PluginMagicWord, "454E414E", 8) == 0)//EMUNAND
|
||||||
|
continue;
|
||||||
|
else if(strncasecmp(m_plugin.PluginMagicWord, "48425257", 8) == 0)//HBRW
|
||||||
|
continue;
|
||||||
|
else
|
||||||
|
genDomain = "PLUGINS";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CMenu::_updateCheckboxes(void)
|
void CMenu::_updateCheckboxes(void)
|
||||||
{
|
{
|
||||||
for(u8 i = 1; i < 11; ++i)
|
for(u8 i = 1; i < 11; ++i)
|
||||||
@ -77,6 +112,7 @@ void CMenu::_updateCheckboxes(void)
|
|||||||
m_btnMgr.show(m_categoryBtnPageM);
|
m_btnMgr.show(m_categoryBtnPageM);
|
||||||
m_btnMgr.show(m_categoryBtnPageP);
|
m_btnMgr.show(m_categoryBtnPageP);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(u8 i = 1; i < 11; ++i)
|
for(u8 i = 1; i < 11; ++i)
|
||||||
{
|
{
|
||||||
int j = i + ((curPage - 1) * 10);
|
int j = i + ((curPage - 1) * 10);
|
||||||
@ -96,7 +132,7 @@ void CMenu::_updateCheckboxes(void)
|
|||||||
default:
|
default:
|
||||||
m_btnMgr.show(m_categoryBtnCatReq[i]);
|
m_btnMgr.show(m_categoryBtnCatReq[i]);
|
||||||
}
|
}
|
||||||
m_btnMgr.setText(m_categoryLblCat[i], m_cat.getWString("GENERAL", fmt("cat%d",j), wfmt(L"Category %i",j).c_str()));
|
m_btnMgr.setText(m_categoryLblCat[i], m_cat.getWString(genDomain, fmt("cat%d",j), wfmt(L"Category %i",j).c_str()));
|
||||||
m_btnMgr.show(m_categoryLblCat[i]);
|
m_btnMgr.show(m_categoryLblCat[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -174,8 +210,10 @@ void CMenu::_CategorySettings(bool fromGameSet)
|
|||||||
|
|
||||||
if(m_source.loaded() && m_catStartPage > 0)
|
if(m_source.loaded() && m_catStartPage > 0)
|
||||||
curPage = m_catStartPage;
|
curPage = m_catStartPage;
|
||||||
|
|
||||||
|
_setCatGenDomain();
|
||||||
|
|
||||||
m_max_categories = m_cat.getInt("GENERAL", "numcategories", 6);
|
m_max_categories = m_cat.getInt(genDomain, "numcategories", 6);
|
||||||
if(curPage < 1 || curPage > (((m_max_categories - 2)/ 10) + 1))
|
if(curPage < 1 || curPage > (((m_max_categories - 2)/ 10) + 1))
|
||||||
curPage = 1;
|
curPage = 1;
|
||||||
m_categories.resize(m_max_categories, '0');
|
m_categories.resize(m_max_categories, '0');
|
||||||
@ -187,9 +225,9 @@ void CMenu::_CategorySettings(bool fromGameSet)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
string requiredCats = m_cat.getString("GENERAL", "required_categories", "");
|
string requiredCats = m_cat.getString(genDomain, "required_categories", "");
|
||||||
string selectedCats = m_cat.getString("GENERAL", "selected_categories", "");
|
string selectedCats = m_cat.getString(genDomain, "selected_categories", "");
|
||||||
string hiddenCats = m_cat.getString("GENERAL", "hidden_categories", "");
|
string hiddenCats = m_cat.getString(genDomain, "hidden_categories", "");
|
||||||
u8 numReqCats = requiredCats.length();
|
u8 numReqCats = requiredCats.length();
|
||||||
u8 numSelCats = selectedCats.length();
|
u8 numSelCats = selectedCats.length();
|
||||||
u8 numHidCats = hiddenCats.length();
|
u8 numHidCats = hiddenCats.length();
|
||||||
@ -254,9 +292,9 @@ void CMenu::_CategorySettings(bool fromGameSet)
|
|||||||
newReqCats = newReqCats + cCh;
|
newReqCats = newReqCats + cCh;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_cat.setString("GENERAL", "selected_categories", newSelCats);
|
m_cat.setString(genDomain, "selected_categories", newSelCats);
|
||||||
m_cat.setString("GENERAL", "hidden_categories", newHidCats);
|
m_cat.setString(genDomain, "hidden_categories", newHidCats);
|
||||||
m_cat.setString("GENERAL", "required_categories", newReqCats);
|
m_cat.setString(genDomain, "required_categories", newReqCats);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -254,9 +254,17 @@ void CMenu::_showCF(bool refreshList)
|
|||||||
/* setup categories and favorites for filtering the game list below */
|
/* setup categories and favorites for filtering the game list below */
|
||||||
if(m_clearCats)// false on boot up and if a source menu button selects a category
|
if(m_clearCats)// false on boot up and if a source menu button selects a category
|
||||||
{
|
{
|
||||||
// do not clear hidden categories to keep games hidden
|
if(m_autoboot_hdr.type == TYPE_PLUGIN && m_cat.hasDomain("PLUGINS"))
|
||||||
m_cat.remove("GENERAL", "selected_categories");
|
{
|
||||||
m_cat.remove("GENERAL", "required_categories");
|
m_cat.remove("PLUGINS", "selected_categories");
|
||||||
|
m_cat.remove("PLUGINS", "required_categories");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// do not clear hidden categories to keep games hidden
|
||||||
|
m_cat.remove("GENERAL", "selected_categories");
|
||||||
|
m_cat.remove("GENERAL", "required_categories");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
m_clearCats = true;// set to true for next source
|
m_clearCats = true;// set to true for next source
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user