- fixes for issues #54, #55, #56, #57

This commit is contained in:
Fledge68 2019-01-09 06:28:59 -06:00
parent e679f9356b
commit 47e0b9a6e0
3 changed files with 81 additions and 15 deletions

View File

@ -560,7 +560,7 @@ void CMenu::_Theme_Cleanup(void)
theme.texSet.clear(); theme.texSet.clear();
theme.fontSet.clear(); theme.fontSet.clear();
theme.soundSet.clear(); theme.soundSet.clear();
//m_theme.unload(); m_theme.unload();
m_coverflow.unload(); m_coverflow.unload();
} }
@ -1245,7 +1245,6 @@ void CMenu::_buildMenus(void)
_initPathsMenu(); _initPathsMenu();
_loadCFCfg(); _loadCFCfg();
m_theme.unload();// done with theme.ini so lets unload it from mem
} }
typedef struct typedef struct
@ -2649,8 +2648,8 @@ const char *CMenu::getBlankCoverPath(const dir_discHdr *element)
default: default:
blankCoverKey = "wii"; blankCoverKey = "wii";
} }
//return fmt("%s/%s", m_boxPicDir.c_str(), m_theme.getString("BLANK_COVERS", blankCoverKey, fmt("%s.jpg", blankCoverKey)).c_str()); return fmt("%s/%s", m_boxPicDir.c_str(), m_theme.getString("BLANK_COVERS", blankCoverKey, fmt("%s.jpg", blankCoverKey)).c_str());
return fmt("%s/%s.jpg", m_boxPicDir.c_str(), blankCoverKey); //return fmt("%s/%s.jpg", m_boxPicDir.c_str(), blankCoverKey);
} }
const char *CMenu::getBoxPath(const dir_discHdr *element) const char *CMenu::getBoxPath(const dir_discHdr *element)

View File

@ -1615,6 +1615,8 @@ int CMenu::_loadIOS(u8 gameIOS, int userIOS, string id, bool RealNAND_Channels)
void CMenu::_launchChannel(dir_discHdr *hdr) void CMenu::_launchChannel(dir_discHdr *hdr)
{ {
NANDemuView = hdr->type == TYPE_EMUCHANNEL;
/* clear coverflow, start wiiflow wait animation, set exit handler */ /* clear coverflow, start wiiflow wait animation, set exit handler */
_launchShutdown(); _launchShutdown();
string id = string(hdr->id); string id = string(hdr->id);

View File

@ -27,6 +27,7 @@ char btn_selected[16];
char current_btn[16]; char current_btn[16];
int curflow = 1; int curflow = 1;
bool sm_tier = false; bool sm_tier = false;
int channels_type;
void CMenu::_sourceFlow() void CMenu::_sourceFlow()
{ {
@ -45,10 +46,17 @@ void CMenu::_sourceFlow()
m_current_view = COVERFLOW_GAMECUBE; m_current_view = COVERFLOW_GAMECUBE;
else if(source == "emunand") else if(source == "emunand")
{ {
m_cfg.setInt(CHANNEL_DOMAIN, "channels_type", CHANNELS_EMU);
m_current_view = COVERFLOW_CHANNEL; m_current_view = COVERFLOW_CHANNEL;
} }
else if(source == "realnand") else if(source == "realnand")
{ {
m_cfg.setInt(CHANNEL_DOMAIN, "channels_type", CHANNELS_REAL);
m_current_view = COVERFLOW_CHANNEL;
}
else if(source == "bothnand")
{
m_cfg.setInt(CHANNEL_DOMAIN, "channels_type", CHANNELS_BOTH);
m_current_view = COVERFLOW_CHANNEL; m_current_view = COVERFLOW_CHANNEL;
} }
else if(source == "homebrew") else if(source == "homebrew")
@ -293,14 +301,23 @@ void CMenu::_updateSourceBtns(void)
} }
} }
} }
else if(btnSource == "realnand" || btnSource == "emunand") else if(btnSource == "realnand" && (m_current_view & COVERFLOW_CHANNEL) && (channels_type & CHANNELS_REAL))
{
if(m_current_view & COVERFLOW_CHANNEL)
{ {
sourceBtn = i; sourceBtn = i;
selectedBtns++; selectedBtns++;
src_selected = true; src_selected = true;
} }
else if(btnSource == "emunand" && (m_current_view & COVERFLOW_CHANNEL) && (channels_type & CHANNELS_EMU))
{
sourceBtn = i;
selectedBtns++;
src_selected = true;
}
else if(btnSource == "bothnand" && (m_current_view & COVERFLOW_CHANNEL) && (channels_type & CHANNELS_BOTH))
{
sourceBtn = i;
selectedBtns++;
src_selected = true;
} }
else if(btnSource == "dml" || btnSource == "homebrew" || btnSource == "wii") else if(btnSource == "dml" || btnSource == "homebrew" || btnSource == "wii")
{ {
@ -347,6 +364,7 @@ bool CMenu::_Source()
exitSource = false; exitSource = false;
curPage = 1; curPage = 1;
numPages = (m_max_source_btn / 12) + 1; numPages = (m_max_source_btn / 12) + 1;
channels_type = m_cfg.getInt(CHANNEL_DOMAIN, "channels_type", CHANNELS_REAL);
SetupInput(); SetupInput();
_showSource(); _showSource();
@ -463,8 +481,14 @@ bool CMenu::_Source()
m_current_view = COVERFLOW_GAMECUBE; m_current_view = COVERFLOW_GAMECUBE;
_setSrcOptions(); _setSrcOptions();
} }
else if(source == "emunand" || source == "realnand") else if(source == "emunand" || source == "realnand" || source == "bothnand")
{ {
if(source == "emunand")
channels_type = CHANNELS_EMU;
else if(source == "realnand")
channels_type = CHANNELS_REAL;
else if(source == "bothnand")
channels_type = CHANNELS_BOTH;
m_current_view = COVERFLOW_CHANNEL; m_current_view = COVERFLOW_CHANNEL;
_setSrcOptions(); _setSrcOptions();
} }
@ -562,8 +586,48 @@ bool CMenu::_Source()
m_current_view ^= COVERFLOW_WII;// toggle on/off m_current_view ^= COVERFLOW_WII;// toggle on/off
else if(source == "dml") else if(source == "dml")
m_current_view ^= COVERFLOW_GAMECUBE; m_current_view ^= COVERFLOW_GAMECUBE;
else if(source == "emunand" || source == "realnand") else if(source == "emunand")
m_current_view ^= COVERFLOW_CHANNEL; {
if(m_current_view & COVERFLOW_CHANNEL)// if cf channel on then swith only emu type
channels_type ^= CHANNELS_EMU;
else
channels_type = CHANNELS_EMU;// if cf channel off then set to only emu type
if(channels_type == 0)// if cf channel on and type is set to nothing
{
channels_type = CHANNELS_REAL;// make sure channels type is set to default REAL
m_current_view &= ~COVERFLOW_CHANNEL;// turn off coverflow channels
}
else
m_current_view |= COVERFLOW_CHANNEL;// turn on coverflow channels
}
else if(source == "realnand")
{
if(m_current_view & COVERFLOW_CHANNEL)
channels_type ^= CHANNELS_REAL;
else
channels_type = CHANNELS_REAL;
if(channels_type == 0)
{
channels_type = CHANNELS_REAL;
m_current_view &= ~COVERFLOW_CHANNEL;
}
else
m_current_view |= COVERFLOW_CHANNEL;
}
else if(source == "bothnand")
{
if(m_current_view & COVERFLOW_CHANNEL)
channels_type ^= CHANNELS_BOTH;
else
channels_type = CHANNELS_BOTH;
if(channels_type == 0)
{
channels_type = CHANNELS_REAL;
m_current_view &= ~COVERFLOW_CHANNEL;
}
else
m_current_view |= COVERFLOW_CHANNEL;
}
else if(source == "homebrew") else if(source == "homebrew")
{ {
_hideSource(); _hideSource();
@ -652,6 +716,7 @@ bool CMenu::_Source()
_updateSourceBtns(); _updateSourceBtns();
} }
} }
m_cfg.setInt(CHANNEL_DOMAIN, "channels_type", channels_type);
_hideSource(true); _hideSource(true);
return newSource; return newSource;
} }
@ -696,7 +761,7 @@ bool CMenu::_shortCover(const char *magic)
{ {
if(magic == NULL) if(magic == NULL)
return false; return false;
for(i = 0; i < ARRAY_SIZE(sideCovers); i++) for(i = 0; i < ARRAY_SIZE(shortCovers); i++)
{ {
if((shortCovers[i][6] == 'x' && strncasecmp(magic, shortCovers[i], 6) == 0) || strncasecmp(magic, shortCovers[i], 8) == 0) if((shortCovers[i][6] == 'x' && strncasecmp(magic, shortCovers[i], 6) == 0) || strncasecmp(magic, shortCovers[i], 8) == 0)
return true; return true;