- added 'use plugin database titles" option to pg 13 of main settings. defaults to YES. set to NO if you do not want to use titles from the plugin database files. All cached lists will be deleted to be remade with the new titles.

- added 'covers box mode' option to pg 13 of main settings. defaults to ON. set to OFF if you want to use only flat covers. does not apply to sourceflow, homebrew flow, and plugins with box mode set.
- fixed text size of category names on right half of categories menu. They were too small. strangely no one noticed or reported it.
- cleaned up create game list code a little.
- upped to beta 15.
This commit is contained in:
Fledge68 2019-11-27 07:28:54 -06:00
parent e18c3569a6
commit 0d59191da9
15 changed files with 59 additions and 27 deletions

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 MiB

After

Width:  |  Height:  |  Size: 3.6 MiB

View File

@ -6,7 +6,7 @@
#else
#define APP_NAME "WiiFlow Lite"
#endif
#define APP_VERSION "5.3.0 beta 14"
#define APP_VERSION "5.3.0 beta 15"
#define APP_DATA_DIR "wiiflow"
#ifdef APP_WIIFLOW

View File

@ -25,14 +25,14 @@
#include "gui/text.hpp"
#include "loader/sys.h"
ListGenerator m_cacheList;
ListGenerator m_cacheList;// needed by the static void functions since they are not part of ListGenerator class.
dir_discHdr ListElement;
Config CustomTitles;
GameTDB gameTDB;
Config romNamesDB;
string platformName;
string pluginsDataDir;
dir_discHdr ListElement;
void ListGenerator::Init(const char *settingsDir, const char *Language, const char *plgnsDataDir)
{
if(settingsDir != NULL)
@ -209,7 +209,7 @@ static void Add_Homebrew_Dol(char *FullPath)
/* create channel list from nand or emu nand */
Channel *chan = NULL;
static void Create_Channel_List(bool realNAND)
static void Create_Channel_List()
{
for(u32 i = 0; i < ChannelHandle.Count(); i++)
{
@ -244,7 +244,7 @@ static void Create_Channel_List(bool realNAND)
mbstowcs(ListElement.title, gameTDB_Title, 63);
else
wcsncpy(ListElement.title, chan->name, 64);
if(realNAND)
if(!NANDemuView)
ListElement.type = TYPE_CHANNEL;
else
ListElement.type = TYPE_EMUCHANNEL;
@ -283,7 +283,7 @@ static void Add_Plugin_Game(char *FullPath)
string customTitle = CustomTitles.getString(m_plugin.PluginMagicWord, RomFilename, "");
const char *gameTDB_Title = NULL;
if(gameTDB.IsLoaded() && customTitle.empty())
if(gameTDB.IsLoaded() && customTitle.empty() && m_cacheList.usePluginDBTitles)
gameTDB.GetTitle(ListElement.id, gameTDB_Title, true);
/* set the roms title */
@ -349,7 +349,7 @@ void ListGenerator::CreateRomList(Config &platform_cfg, const string& romsDir, c
CCache(*this, DBName, SAVE);
}
void ListGenerator::CreateList(u32 Flow, u32 Device, const string& Path, const vector<string>& FileTypes,
void ListGenerator::CreateList(u32 Flow, const string& Path, const vector<string>& FileTypes,
const string& DBName, bool UpdateCache)
{
Clear();
@ -366,6 +366,7 @@ void ListGenerator::CreateList(u32 Flow, u32 Device, const string& Path, const v
}
}
OpenConfigs();
u32 Device = DeviceHandle.PathToDriveType(Path.c_str());
if(Flow == COVERFLOW_WII)
{
if(DeviceHandle.GetFSType(Device) == PART_FS_WBFS)
@ -376,10 +377,7 @@ void ListGenerator::CreateList(u32 Flow, u32 Device, const string& Path, const v
else if(Flow == COVERFLOW_CHANNEL)
{
ChannelHandle.Init(gameTDB_Language);
if(Device == 9)
Create_Channel_List(true);
else
Create_Channel_List(false);
Create_Channel_List();
}
else if(DeviceHandle.GetFSType(Device) != PART_FS_WBFS)
{

View File

@ -38,10 +38,10 @@ public:
void Init(const char *settingsDir, const char *Language, const char *plgnsDataDir);
void Clear();
void CreateRomList(Config &platform_cfg, const string& romsDir, const vector<string>& FileTypes, const string& DBName, bool UpdateCache);
void CreateList(u32 Flow, u32 Device, const string& Path, const vector<string>& FileTypes,
const string& DBName, bool UpdateCache);
void CreateList(u32 Flow, const string& Path, const vector<string>& FileTypes, const string& DBName, bool UpdateCache);
u32 Color;
u32 Magic;
bool usePluginDBTitles;
private:
void OpenConfigs();
void CloseConfigs();

View File

@ -2364,7 +2364,7 @@ bool CMenu::_loadWiiList(void)
bool updateCache = m_cfg.getBool(WII_DOMAIN, "update_cache");
if(updateCache || !fsop_FileExist(cacheDir.c_str()))
cacheCovers = true;
m_cacheList.CreateList(COVERFLOW_WII, currentPartition, gameDir, stringToVector(".wbfs|.iso", '|'), cacheDir, updateCache);
m_cacheList.CreateList(COVERFLOW_WII, gameDir, stringToVector(".wbfs|.iso", '|'), cacheDir, updateCache);
WBFS_Close();
m_cfg.remove(WII_DOMAIN, "update_cache");
for(vector<dir_discHdr>::iterator tmp_itr = m_cacheList.begin(); tmp_itr != m_cacheList.end(); tmp_itr++)
@ -2384,7 +2384,7 @@ bool CMenu::_loadHomebrewList(const char *HB_Dir)
bool updateCache = m_cfg.getBool(HOMEBREW_DOMAIN, "update_cache");
if(updateCache || !fsop_FileExist(cacheDir.c_str()))
cacheCovers = true;
m_cacheList.CreateList(COVERFLOW_HOMEBREW, currentPartition, gameDir, stringToVector(".dol|.elf", '|'), cacheDir, updateCache);
m_cacheList.CreateList(COVERFLOW_HOMEBREW, gameDir, stringToVector(".dol|.elf", '|'), cacheDir, updateCache);
m_cfg.remove(HOMEBREW_DOMAIN, "update_cache");
for(vector<dir_discHdr>::iterator tmp_itr = m_cacheList.begin(); tmp_itr != m_cacheList.end(); tmp_itr++)
m_gameList.push_back(*tmp_itr);
@ -2403,7 +2403,7 @@ bool CMenu::_loadGamecubeList()
bool updateCache = m_cfg.getBool(GC_DOMAIN, "update_cache");
if(updateCache || !fsop_FileExist(cacheDir.c_str()))
cacheCovers = true;
m_cacheList.CreateList(COVERFLOW_GAMECUBE, currentPartition, gameDir, stringToVector(".iso|.gcm|.ciso|root", '|'), cacheDir, updateCache);
m_cacheList.CreateList(COVERFLOW_GAMECUBE, gameDir, stringToVector(".iso|.gcm|.ciso|root", '|'), cacheDir, updateCache);
m_cfg.remove(GC_DOMAIN, "update_cache");
for(vector<dir_discHdr>::iterator tmp_itr = m_cacheList.begin(); tmp_itr != m_cacheList.end(); tmp_itr++)
m_gameList.push_back(*tmp_itr);
@ -2423,7 +2423,7 @@ bool CMenu::_loadChannelList(void)
{
gprintf("Adding real nand list\n");
NANDemuView = false;
m_cacheList.CreateList(COVERFLOW_CHANNEL, 9, std::string(), NullVector, std::string(), false);
m_cacheList.CreateList(COVERFLOW_CHANNEL, std::string(), NullVector, std::string(), false);
for(vector<dir_discHdr>::iterator tmp_itr = m_cacheList.begin(); tmp_itr != m_cacheList.end(); tmp_itr++)
m_gameList.push_back(*tmp_itr);
}
@ -2439,7 +2439,7 @@ bool CMenu::_loadChannelList(void)
bool updateCache = m_cfg.getBool(CHANNEL_DOMAIN, "update_cache");
if(updateCache || !fsop_FileExist(cacheDir.c_str()))
cacheCovers = true;
m_cacheList.CreateList(COVERFLOW_CHANNEL, currentPartition, std::string(), NullVector, cacheDir, updateCache);
m_cacheList.CreateList(COVERFLOW_CHANNEL, std::string(), NullVector, cacheDir, updateCache);
m_cfg.remove(CHANNEL_DOMAIN, "update_cache");
for(vector<dir_discHdr>::iterator tmp_itr = m_cacheList.begin(); tmp_itr != m_cacheList.end(); tmp_itr++)
m_gameList.push_back(*tmp_itr);
@ -2508,6 +2508,7 @@ bool CMenu::_loadPluginList()
vector<string> FileTypes = stringToVector(m_plugin.GetFileTypes(i), '|');
m_cacheList.Color = m_plugin.GetCaseColor(i);
m_cacheList.Magic = Magic;
m_cacheList.usePluginDBTitles = m_cfg.getBool(PLUGIN_DOMAIN, "database_titles", true);
m_cacheList.CreateRomList(m_platform, romsDir, FileTypes, cachedListFile, updateCache);
for(vector<dir_discHdr>::iterator tmp_itr = m_cacheList.begin(); tmp_itr != m_cacheList.end(); tmp_itr++)
m_gameList.push_back(*tmp_itr);

View File

@ -417,7 +417,7 @@ void CMenu::_initCategorySettingsMenu()
m_categoryBtnCats[i+5] = _addPicButton(fmt("CATEGORY/CAT_%i_BTNS", i+5), theme.checkboxon, theme.checkboxons, 325, (39+i*58), 44, 48);
m_categoryBtnCatHid[i+5] = _addPicButton(fmt("CATEGORY/CAT_%i_BTNHID", i+5), theme.checkboxHid, theme.checkboxHids, 325, (39+i*58), 44, 48);
m_categoryBtnCatReq[i+5] = _addPicButton(fmt("CATEGORY/CAT_%i_BTNREQ", i+5), theme.checkboxReq, theme.checkboxReqs, 325, (39+i*58), 44, 48);
m_categoryLblCat[i+5] = _addLabel(fmt("CATEGORY/CAT_%i", i+5), theme.txtFont, L"", 380, (42+i*58), 230, 48, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_categoryLblCat[i+5] = _addLabel(fmt("CATEGORY/CAT_%i", i+5), theme.lblFont, L"", 380, (42+i*58), 230, 48, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
}
_setHideAnim(m_categoryLblTitle, "CATEGORY/TITLE", 0, 0, -2.f, 0.f);
_setHideAnim(m_categoryLblPage, "CATEGORY/PAGE_BTN", 0, 0, 1.f, -1.f);

View File

@ -70,10 +70,10 @@ void CMenu::_showConfig7(int curPage)
{
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_config7Lbl2);
m_btnMgr.show(m_config7Btn2);
m_btnMgr.show(m_config7Lbl3);
m_btnMgr.show(m_config7Btn3);
}
else
{
@ -165,6 +165,10 @@ void CMenu::_showConfig7(int curPage)
{
m_btnMgr.setText(m_config7Lbl1, _t("cfgg49", L"480p Pixel Patch"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool(WII_DOMAIN, "fix480p", false) ? _t("on", L"On") : _t("off", L"Off"));
m_btnMgr.setText(m_config7Lbl2, _t("cfg726", L"Covers Box Mode"));
m_btnMgr.setText(m_config7Btn2, m_cfg.getBool("general", "box_mode", false) ? _t("on", L"On") : _t("off", L"Off"));
m_btnMgr.setText(m_config7Lbl3, _t("cfg727", L"Use Plugin Database Titles"));
m_btnMgr.setText(m_config7Btn3, m_cfg.getBool(PLUGIN_DOMAIN, "database_titles", true) ? _t("yes", L"Yes") : _t("no", L"No"));
}
}
@ -172,6 +176,8 @@ int CMenu::_config7(int curPage)
{
bool rand_music = m_cfg.getBool("GENERAL", "randomize_music");
bool hq_covers = m_cfg.getBool("GENERAL", "cover_use_hq");
bool box_mode = m_cfg.getBool("GENERAL", "box_mode", true);
bool db_titles = m_cfg.getBool(PLUGIN_DOMAIN, "database_titles", true);
int change = CONFIG_PAGE_NO_CHANGE;
_showConfig7(curPage);
@ -349,12 +355,30 @@ int CMenu::_config7(int curPage)
m_cfg.setBool(WII_DOMAIN, "fix480p", val);
m_btnMgr.setText(m_config7Btn1, val ? _t("on", L"On") : _t("off", L"Off"));
}
if(m_btnMgr.selected(m_config7Btn2))
{
bool val = !m_cfg.getBool("general", "box_mode");
m_cfg.setBool("general", "box_mode", val);
m_btnMgr.setText(m_config7Btn2, val ? _t("on", L"On") : _t("off", L"Off"));
}
if(m_btnMgr.selected(m_config7Btn3))
{
bool val = !m_cfg.getBool(PLUGIN_DOMAIN, "database_titles");
m_cfg.setBool(PLUGIN_DOMAIN, "database_titles", val);
m_btnMgr.setText(m_config7Btn3, val ? _t("yes", L"Yes") : _t("no", L"No"));
}
}
}
}
if(rand_music != m_cfg.getBool("GENERAL", "randomize_music"))
MusicPlayer.Init(m_cfg, m_musicDir, fmt("%s/music", m_themeDataDir.c_str()));
if(hq_covers != m_cfg.getBool("GENERAL", "cover_use_hq"))
if(db_titles != m_cfg.getBool(PLUGIN_DOMAIN, "database_titles"))
{
fsop_deleteFolder(m_listCacheDir.c_str());
fsop_MakeFolder(m_listCacheDir.c_str());
m_refreshGameList = true;
}
if(!m_refreshGameList && (hq_covers != m_cfg.getBool("GENERAL", "cover_use_hq") || box_mode != m_cfg.getBool("general", "box_mode")))
_initCF();
_hideConfig7();
return change;

View File

@ -1726,7 +1726,7 @@ int CMenu::_bannerDownloader()
currentPartition = m_cfg.getInt(GC_DOMAIN, "partition", USB1);
string gameDir(fmt(gc_games_dir, DeviceName[currentPartition]));
string cacheDir(fmt("%s/%s_gamecube.db", m_listCacheDir.c_str(), DeviceName[currentPartition]));
m_cacheList.CreateList(COVERFLOW_GAMECUBE, currentPartition, gameDir, stringToVector(".iso|.ciso|root", '|'), cacheDir, false);
m_cacheList.CreateList(COVERFLOW_GAMECUBE, gameDir, stringToVector(".iso|.ciso|root", '|'), cacheDir, false);
for(u32 i = 0; i < m_cacheList.size(); ++i)
{

View File

@ -65,8 +65,7 @@ void CMenu::directlaunch(const char *GameID)// from boot arg for wii game only
DeviceHandle.OpenWBFS(currentPartition);
string gameDir(fmt(wii_games_dir, DeviceName[currentPartition]));
string cacheDir(fmt("%s/%s_wii.db", m_listCacheDir.c_str(), DeviceName[currentPartition]));
m_cacheList.CreateList(COVERFLOW_WII, currentPartition, gameDir,
stringToVector(".wbfs|.iso", '|'), cacheDir, false);
m_cacheList.CreateList(COVERFLOW_WII, gameDir, stringToVector(".wbfs|.iso", '|'), cacheDir, false);
WBFS_Close();
for(u32 i = 0; i < m_cacheList.size(); i++)
{

View File

@ -67,6 +67,8 @@ cfg722=Homebrew settings
cfg723=Source menu settings
cfg724=Lock coverflow layouts
cfg725=Shutdown to idle standby
cfg726=Covers Box Mode
cfg727=Use Plugin Database Titles
cfga2=Install game
cfga3=Install
cfga6=Language

View File

@ -67,6 +67,8 @@ cfg722=Homebrew-Einstellungen
cfg723=Source-Menü-Einstellungen
cfg724=Coverflow-Layouts sperren
cfg725=In Standby-Modus heruntefahren
cfg726=Covers Box Mode
cfg727=Use Plugin Database Titles
cfga2=Spiel installieren
cfga3=Installieren
cfga6=Sprache

View File

@ -66,6 +66,8 @@ cfg722=Impostazioni Homebrew
cfg723=Impostazioni Source menu
cfg724=Blocca disposizione coverflow
cfg725=Spegni in modalità Standby inattivo
cfg726=Covers Box Mode
cfg727=Use Plugin Database Titles
cfga2=Installa gioco
cfga3=Installa
cfga6=Lingua

View File

@ -67,6 +67,8 @@ cfg722=홈브류 설정
cfg723=소스 메뉴 설정
cfg724=커버플로우 레이아웃 잠금
cfg725=유휴 대기 모드로 종료
cfg726=Covers Box Mode
cfg727=Use Plugin Database Titles
cfga2=게임 설치
cfga3=설치
cfga6=언어

View File

@ -67,6 +67,8 @@ cfg722=Ajustes de Homebrew
cfg723=Ajustes del menú de fuentes
cfg724=Bloquear diseños de Coverflow
cfg725=Apagar en modo de espera
cfg726=Covers Box Mode
cfg727=Use Plugin Database Titles
cfga2=Instalar juego
cfga3=Instalar
cfga6=Idioma