-SYNC with the 4.2 final release with the best rev number possibe

-changed revision to Beta 4.2.1 (this rev is still 4.2 final but last time I forgot to rename the revision so)
-fixed text view sometimes not working properly
-fixed source menu didnt set the plugin partitions right
-added deletion of channels on emu nand
-added support for ftp clients request full path directory creations
-updated english.ini
This commit is contained in:
fix94.1 2013-09-08 18:29:54 +00:00
parent d2d56b201e
commit 885be72218
8 changed files with 67 additions and 21 deletions

View File

@ -1,5 +1,5 @@
#define APP_NAME "WiiFlow" #define APP_NAME "WiiFlow"
#define APP_VERSION "Beta 4.1.4" #define APP_VERSION "Beta 4.2.1"
#define APPDATA_DIR "wiiflow" #define APPDATA_DIR "wiiflow"
#define APPDATA_DIR2 "apps/wiiflow" #define APPDATA_DIR2 "apps/wiiflow"

View File

@ -118,6 +118,8 @@ void CMenu::_textAbout(void)
char *txt_mem = (char*)fsop_ReadFile(m_txt_path, &txt_size); char *txt_mem = (char*)fsop_ReadFile(m_txt_path, &txt_size);
if(txt_mem != NULL) if(txt_mem != NULL)
{ {
if(*(txt_mem+txt_size) != '\0')
*(txt_mem+txt_size) = '\0';
txt_file_content.fromUTF8(txt_mem); txt_file_content.fromUTF8(txt_mem);
m_btnMgr.setText(m_aboutLblInfo, txt_file_content); m_btnMgr.setText(m_aboutLblInfo, txt_file_content);
free(txt_mem); free(txt_mem);
@ -129,22 +131,19 @@ void CMenu::_textAbout(void)
{ {
m_btnMgr.setText(m_aboutLblTitle, _t("about10", L"Help Guide")); m_btnMgr.setText(m_aboutLblTitle, _t("about10", L"Help Guide"));
wstringEx help_text; wstringEx help_text;
FILE *f = fopen(fmt("%s/%s.txt", m_helpDir.c_str(), lowerCase(m_curLanguage).c_str()), "r"); u32 txt_size = 0;
if(f) char *txt_mem = (char*)fsop_ReadFile(fmt("%s/%s.txt", m_helpDir.c_str(), lowerCase(m_curLanguage).c_str()), &txt_size);
if(txt_mem != NULL)
{ {
fseek(f, 0, SEEK_END); if(*(txt_mem+txt_size) != '\0')
u32 fsize = ftell(f); *(txt_mem+txt_size) = '\0';
char *help = (char*)MEM2_alloc(fsize+1); //+1 for null character help_text.fromUTF8(txt_mem);
fseek(f, 0, SEEK_SET);
fread(help, 1, fsize, f);
help[fsize] = '\0';
help_text.fromUTF8(help);
MEM2_free(help);
fclose(f);
m_btnMgr.setText(m_aboutLblInfo, help_text); m_btnMgr.setText(m_aboutLblInfo, help_text);
free(txt_mem);
} }
else else
m_btnMgr.setText(m_aboutLblInfo, ENGLISH_TXT_W); m_btnMgr.setText(m_aboutLblInfo, ENGLISH_TXT_W);
txt_mem = NULL;
} }
else else
{ {

View File

@ -679,7 +679,8 @@ void CMenu::_game(bool launch)
m_btnMgr.hide(b ? m_gameBtnAdultOff : m_gameBtnAdultOn); m_btnMgr.hide(b ? m_gameBtnAdultOff : m_gameBtnAdultOn);
m_btnMgr.show(m_gameBtnSettings); m_btnMgr.show(m_gameBtnSettings);
} }
if ((CoverFlow.getHdr()->type != TYPE_HOMEBREW && CoverFlow.getHdr()->type != TYPE_CHANNEL) && !m_locked) if((CoverFlow.getHdr()->type != TYPE_HOMEBREW && (CoverFlow.getHdr()->type != TYPE_CHANNEL ||
(!m_cfg.getBool(CHANNEL_DOMAIN, "disable", true) && CoverFlow.getHdr()->type == TYPE_CHANNEL))) && !m_locked)
m_btnMgr.show(m_gameBtnDelete); m_btnMgr.show(m_gameBtnDelete);
} }
else else

View File

@ -335,7 +335,8 @@ bool CMenu::_Source()
} }
if(m_btnMgr.selected(m_sourceBtnDML)) if(m_btnMgr.selected(m_sourceBtnDML))
{ {
if(!m_show_dml && !m_devo_installed) _showSourceNotice(); if(!m_show_dml && !m_devo_installed)
_showSourceNotice();
else else
{ {
_clearSources(); _clearSources();
@ -345,7 +346,8 @@ bool CMenu::_Source()
} }
if(m_btnMgr.selected(m_sourceBtnChannel)) if(m_btnMgr.selected(m_sourceBtnChannel))
{ {
if(!show_channel) _showSourceNotice(); if(!show_channel)
_showSourceNotice();
else else
{ {
_clearSources(); _clearSources();
@ -355,7 +357,8 @@ bool CMenu::_Source()
} }
if(m_btnMgr.selected(m_sourceBtnHomebrew)) if(m_btnMgr.selected(m_sourceBtnHomebrew))
{ {
if(!show_homebrew || (!parental_homebrew && m_locked)) _showSourceNotice(); if(!show_homebrew || (!parental_homebrew && m_locked))
_showSourceNotice();
else else
{ {
_clearSources(); _clearSources();
@ -365,7 +368,8 @@ bool CMenu::_Source()
} }
if(m_btnMgr.selected(m_sourceBtnEmu)) if(m_btnMgr.selected(m_sourceBtnEmu))
{ {
if(!show_emu) _showSourceNotice(); if(!show_emu)
_showSourceNotice();
else else
{ {
_clearSources(); _clearSources();
@ -458,7 +462,8 @@ bool CMenu::_Source()
{ {
magicNums.clear(); magicNums.clear();
magicNums = m_source.getStrings(btn_selected, "magic", ','); magicNums = m_source.getStrings(btn_selected, "magic", ',');
if(!magicNums.empty()) u32 plugin_magic_nums = magicNums.size();
if(plugin_magic_nums != 0)
{ {
m_cfg.setBool(PLUGIN_DOMAIN, "source", true); m_cfg.setBool(PLUGIN_DOMAIN, "source", true);
for(k = 0; k < numPlugins; ++k) for(k = 0; k < numPlugins; ++k)
@ -467,7 +472,14 @@ bool CMenu::_Source()
{ {
s8 exist = m_plugin.GetPluginPosition(strtoul(itr->c_str(), NULL, 16)); s8 exist = m_plugin.GetPluginPosition(strtoul(itr->c_str(), NULL, 16));
if(exist >= 0) if(exist >= 0)
{
m_plugin.SetEnablePlugin(m_cfg, exist, 2); m_plugin.SetEnablePlugin(m_cfg, exist, 2);
if(plugin_magic_nums == 1)
{
currentPartition = m_cfg.getInt("PLUGINS/PARTITION", itr->c_str(), 1);
m_cfg.setInt(PLUGIN_DOMAIN, "partition", currentPartition);
}
}
} }
} }
m_catStartPage = m_source.getInt(btn_selected, "cat_page", 1); m_catStartPage = m_source.getInt(btn_selected, "cat_page", 1);

View File

@ -268,6 +268,7 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
bool upd_usb = false; bool upd_usb = false;
bool upd_dml = false; bool upd_dml = false;
bool upd_emu = false; bool upd_emu = false;
bool upd_chan = false;
bool out = false; bool out = false;
const dir_discHdr *CF_Hdr = CoverFlow.getHdr(); const dir_discHdr *CF_Hdr = CoverFlow.getHdr();
char cfPos[7]; char cfPos[7];
@ -414,6 +415,26 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
WBFS_Close(); WBFS_Close();
upd_usb = true; upd_usb = true;
} }
else if(CF_Hdr->type == TYPE_CHANNEL && !m_cfg.getBool(CHANNEL_DOMAIN, "disable", true))
{
if(CF_Hdr->settings[0] != 0x00010001)
{
error(_t("wbfsoperr5", L"Deleting this Channel is not allowed!"));
done = true;
out = true;
break;
}
const char *nand_base = NandHandle.GetPath();
fsop_deleteFolder(fmt("%s/title/%08x/%08x", nand_base, CF_Hdr->settings[0], CF_Hdr->settings[1]));
fsop_deleteFile(fmt("%s/ticket/%08x/%08x.tik", nand_base, CF_Hdr->settings[0], CF_Hdr->settings[1]));
upd_chan = true;
}
else /*who knows how but just block it*/
{
done = true;
out = true;
break;
}
if(m_cfg.getBool("GENERAL", "delete_cover_and_game", false)) if(m_cfg.getBool("GENERAL", "delete_cover_and_game", false))
RemoveCover(CF_Hdr->id); RemoveCover(CF_Hdr->id);
m_btnMgr.show(m_wbfsPBar); m_btnMgr.show(m_wbfsPBar);
@ -493,6 +514,8 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
UpdateCache(COVERFLOW_USB); UpdateCache(COVERFLOW_USB);
if(upd_emu) if(upd_emu)
UpdateCache(COVERFLOW_PLUGIN); UpdateCache(COVERFLOW_PLUGIN);
if(upd_chan)
UpdateCache(COVERFLOW_CHANNEL);
_loadList(); _loadList();
_initCF(); _initCF();
CoverFlow.findId(cfPos, true); CoverFlow.findId(cfPos, true);

View File

@ -174,6 +174,16 @@ int ftp_changedir(char *path)
int ftp_makedir(char *path) int ftp_makedir(char *path)
{ {
int ret = -1; int ret = -1;
if(strchr(path, '/') != NULL)
{
char *real_path = strrchr(path, '/') + 1;
if(real_path != '\0')
{
*strrchr(path, '/') = '\0';
ftp_changedir(path);
path = real_path;
}
}
if(main_path[1] != '\0') if(main_path[1] != '\0')
{ {
char *new_dir = fmt("%s%s", real_path, path); char *new_dir = fmt("%s%s", real_path, path);

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<app version="4.1"> <app version="4.2">
<name> WiiFlow</name> <name> WiiFlow</name>
<coder>OverjoY, FIX94</coder> <coder>OverjoY, FIX94</coder>
<version>4.1</version> <version>4.2</version>
<release_date>TBD</release_date> <release_date>20130908000000</release_date>
<short_description>USB Loader / Nand Emulator</short_description> <short_description>USB Loader / Nand Emulator</short_description>
<long_description> <long_description>
WiiFlow is a Wii Game, Channel, Wiiware, Virtual Console, and Savegame Emulator intended for use with legal backups. WiiFlow is a Wii Game, Channel, Wiiware, Virtual Console, and Savegame Emulator intended for use with legal backups.

View File

@ -389,6 +389,7 @@ wbfsoperr1=Disc_Wait failed
wbfsoperr2=Disc_Open failed wbfsoperr2=Disc_Open failed
wbfsoperr3=This is not a Wii disc! wbfsoperr3=This is not a Wii disc!
wbfsoperr4=Game already installed wbfsoperr4=Game already installed
wbfsoperr5=Deleting this Channel is not allowed!
wbfsprogress=%i%% wbfsprogress=%i%%
wbfsremdlg=To permanently remove the game : %s, click on Go. wbfsremdlg=To permanently remove the game : %s, click on Go.
wifiplayers= Wifi Players wifiplayers= Wifi Players