WiiFlow_Lite/source/menu/menu_paths.cpp
fledge68 45b39c2be0 -Made a BOLD move and removed all DML and NMM stuff. To play GameCube games you must use Devolution or Nintendont. To play GameCube Disc you must use Nintendont. The only advantage to DML was the screenshot feature and cheats work better. If you really want to use DML then use Dios Mios Booter or USBLoader GX like I will.
-Readded the code to paths to be able to change the path where Wii and GC games are kept. But they really should just be kept in dev:/wbfs and dev:/games.
-wiiflow_lite.ini changes under [GAMECUBE] are:
removed video_setting= - was used to tell wiiflow when using DML or Nintendont to set cfg args for video mode. not needed anymore.
dir_usb_games= - is now - gc_games_dir= with default of %s:/games similar to wii_games_dir
dm_widescreen= - is now - widescreen=
screenshot= is removed. was used for DML
wiiu_widescreen= is added. but only used if on a Wii U
-gameconfig2.ini changes as well.
-NMM and DML is still used in theme ini files. may change in a commit soon but that means all themes have to be modified, a big pain in the butt.
-language and help files will need to be updated to remove all DML and NMM crap.
-and default names of images for some icons and btns need to be changed but for now left them as they are.
-other minor changes. Most of it untested so I hope it all works, if not then repair commits will follow.
2016-04-03 00:31:02 +00:00

294 lines
10 KiB
C++

#include "menu.hpp"
using namespace std;
s16 m_pathsLblTitle;
s16 m_pathsLblPage;
s16 m_pathsBtnPageM;
s16 m_pathsBtnPageP;
s16 m_pathsBtnBack;
s16 m_pathsLbl1;
s16 m_pathsLbl2;
s16 m_pathsLbl3;
s16 m_pathsLbl4;
s16 m_pathsBtn1;
s16 m_pathsBtn2;
s16 m_pathsBtn3;
s16 m_pathsBtn4;
s16 m_pathsLblUser[4];
TexData m_pathsBg;
u8 paths_curPage = 1;
u8 paths_Pages = 2;
void CMenu::_hidePaths(bool instant)
{
m_btnMgr.hide(m_pathsLblTitle, instant);
m_btnMgr.hide(m_pathsBtnBack, instant);
m_btnMgr.hide(m_pathsLblPage, instant);
m_btnMgr.hide(m_pathsBtnPageM, instant);
m_btnMgr.hide(m_pathsBtnPageP, instant);
m_btnMgr.hide(m_pathsLbl1, instant);
m_btnMgr.hide(m_pathsBtn1, instant);
m_btnMgr.hide(m_pathsLbl2, instant);
m_btnMgr.hide(m_pathsBtn2, instant);
m_btnMgr.hide(m_pathsLbl3, instant);
m_btnMgr.hide(m_pathsBtn3, instant);
m_btnMgr.hide(m_pathsLbl4, instant);
m_btnMgr.hide(m_pathsBtn4, instant);
for(u8 i = 0; i < ARRAY_SIZE(m_pathsLblUser); ++i)
if(m_pathsLblUser[i] != -1)
m_btnMgr.hide(m_pathsLblUser[i], instant);
}
void CMenu::_showPaths(void)
{
m_btnMgr.hide(m_pathsLbl1, true);
m_btnMgr.hide(m_pathsBtn1, true);
m_btnMgr.hide(m_pathsLbl2, true);
m_btnMgr.hide(m_pathsBtn2, true);
m_btnMgr.hide(m_pathsLbl3, true);
m_btnMgr.hide(m_pathsBtn3, true);
m_btnMgr.hide(m_pathsLbl4, true);
m_btnMgr.hide(m_pathsBtn4, true);
_setBg(m_pathsBg, m_pathsBg);
m_btnMgr.show(m_pathsLblTitle);
m_btnMgr.show(m_pathsBtnBack);
m_btnMgr.show(m_pathsLblPage);
m_btnMgr.show(m_pathsBtnPageM);
m_btnMgr.show(m_pathsBtnPageP);
for(u32 i = 0; i < ARRAY_SIZE(m_pathsLblUser); ++i)
if(m_pathsLblUser[i] != -1)
m_btnMgr.show(m_pathsLblUser[i]);
m_btnMgr.setText(m_pathsLblPage, wfmt(L"%i / %i", paths_curPage, paths_Pages));
m_btnMgr.show(m_pathsLbl1);
m_btnMgr.show(m_pathsBtn1);
m_btnMgr.show(m_pathsLbl2);
m_btnMgr.show(m_pathsBtn2);
m_btnMgr.show(m_pathsLbl3);
m_btnMgr.show(m_pathsBtn3);
if(paths_curPage == 1)
{
m_btnMgr.show(m_pathsLbl4);
m_btnMgr.show(m_pathsBtn4);
m_btnMgr.setText(m_pathsLbl1, _t("cfgp8", L"Box Covers"));
m_btnMgr.setText(m_pathsLbl2, _t("cfgp2", L"Flat Covers"));
m_btnMgr.setText(m_pathsLbl3, _t("cfgp9", L"Custom Banners"));
m_btnMgr.setText(m_pathsLbl4, _t("cfgp4", L"Banners Cache"));
}
else
{
m_btnMgr.setText(m_pathsLbl1, _t("cfgp5", L"Wii Games"));
m_btnMgr.setText(m_pathsLbl2, _t("cfgp6", L"GameCube Games"));
m_btnMgr.setText(m_pathsLbl3, _t("cfgp7", L"Music"));
}
}
void CMenu::_Paths(void)
{
const char *path;
paths_curPage = 1;
SetupInput();
_showPaths();
while(!m_exit)
{
_mainLoopCommon();
if (BTN_HOME_PRESSED || BTN_B_PRESSED || (BTN_A_PRESSED && m_btnMgr.selected(m_pathsBtnBack)))
break;
else if (BTN_UP_PRESSED)
m_btnMgr.up();
else if (BTN_DOWN_PRESSED)
m_btnMgr.down();
else if (BTN_LEFT_PRESSED || BTN_MINUS_PRESSED || (BTN_A_PRESSED && m_btnMgr.selected(m_pathsBtnPageM)))
{
paths_curPage--;
if(paths_curPage == 0) paths_curPage = paths_Pages;
if(BTN_LEFT_PRESSED || BTN_MINUS_PRESSED)
m_btnMgr.click(m_pathsBtnPageM);
_showPaths();
}
else if (BTN_RIGHT_PRESSED || BTN_PLUS_PRESSED || (BTN_A_PRESSED && m_btnMgr.selected(m_pathsBtnPageP)))
{
paths_curPage++;
if(paths_curPage > paths_Pages) paths_curPage = 1;
if(BTN_RIGHT_PRESSED || BTN_PLUS_PRESSED) m_btnMgr.click(m_pathsBtnPageP);
_showPaths();
}
else if (BTN_A_PRESSED && paths_curPage == 1)
{
if (m_btnMgr.selected(m_pathsBtn1))
{
_hidePaths();
path = _FolderExplorer(m_cfg.getString("GENERAL", "dir_box_covers").c_str());
if(strlen(path) > 0)
{
m_cfg.setString("GENERAL", "dir_box_covers", path);
m_boxPicDir = path;
m_load_view = true;
}
_showPaths();
}
else if (m_btnMgr.selected(m_pathsBtn2))
{
_hidePaths();
path = _FolderExplorer(m_cfg.getString("GENERAL", "dir_flat_covers").c_str());
if(strlen(path) > 0)
{
m_cfg.setString("GENERAL", "dir_flat_covers", path);
m_picDir = path;
m_load_view = true;
}
_showPaths();
}
else if (m_btnMgr.selected(m_pathsBtn3))
{
_hidePaths();
path = _FolderExplorer(m_cfg.getString("GENERAL", "dir_custom_banners").c_str());
if(strlen(path) > 0)
{
m_cfg.setString("GENERAL", "dir_custom_banners", path);
m_customBnrDir = path;
}
_showPaths();
}
else if (m_btnMgr.selected(m_pathsBtn4))
{
_hidePaths();
path = _FolderExplorer(m_cfg.getString("GENERAL", "dir_banner_cache").c_str());
if(strlen(path) > 0)
{
m_cfg.setString("GENERAL", "dir_banner_cache", path);
m_bnrCacheDir = path;
}
_showPaths();
}
}
else if (BTN_A_PRESSED && paths_curPage == 2)
{
if (m_btnMgr.selected(m_pathsBtn1))
{
_hidePaths();
currentPartition = m_cfg.getInt(WII_DOMAIN, "partition", USB1);
string gameDir(fmt(wii_games_dir, DeviceName[currentPartition]));
path = _FolderExplorer(gameDir.c_str());
if(strlen(path) > 0)
{
if(strncmp(path, "sd:/", 4) == 0)
m_cfg.setInt(WII_DOMAIN, "partition", 0);
else
{
const char *partval = &path[3];
m_cfg.setInt(WII_DOMAIN, "partition", atoi(partval));
}
char tmpPath[MAX_FAT_PATH];
strcpy(tmpPath, "%s");
strcat(tmpPath, strchr(path, ':'));
m_cfg.setString(WII_DOMAIN, "wii_games_dir", tmpPath);
memset(wii_games_dir, 0, 64);
strncpy(wii_games_dir, tmpPath, 64);
m_cfg.setBool(WII_DOMAIN, "update_cache", true);
if(m_cfg.getBool(WII_DOMAIN, "source"))
m_load_view = true;
}
_showPaths();
}
else if (m_btnMgr.selected(m_pathsBtn2))
{
_hidePaths();
currentPartition = m_cfg.getInt(GC_DOMAIN, "partition", USB1);
string gameDir(fmt(gc_games_dir, DeviceName[currentPartition]));
path = _FolderExplorer(gameDir.c_str());
if(strlen(path) > 0)
{
if(strncmp(path, "sd:/", 4) == 0)
m_cfg.setInt(GC_DOMAIN, "partition", 0);
else
{
//might add error check to make sure its first partition and FAT only
const char *partval = &path[3];
m_cfg.setInt(GC_DOMAIN, "partition", atoi(partval));
}
char tmpPath[MAX_FAT_PATH];
strcpy(tmpPath, "%s");
strcat(tmpPath, strchr(path, ':'));
m_cfg.setString(GC_DOMAIN, "gc_games_dir", tmpPath);
memset(gc_games_dir, 0, 64);
strncpy(gc_games_dir, tmpPath, 64);
m_cfg.setBool(GC_DOMAIN, "update_cache", true);
if(m_cfg.getBool(GC_DOMAIN, "source"))
m_load_view = true;
}
_showPaths();
}
if (m_btnMgr.selected(m_pathsBtn3))
{
_hidePaths();
path = _FolderExplorer(m_cfg.getString("GENERAL", "dir_music").c_str());
if(strlen(path) > 0)
{
m_cfg.setString("GENERAL", "dir_music", path);
m_musicDir = path;
MusicPlayer.Init(m_cfg, m_musicDir, fmt("%s/music", m_themeDataDir.c_str()));
}
_showPaths();
}
}
}
_hidePaths();
}
void CMenu::_initPathsMenu()
{
_addUserLabels(m_pathsLblUser, ARRAY_SIZE(m_pathsLblUser), "PATHS");
m_pathsBg = _texture("PATHS/BG", "texture", theme.bg, false);
m_pathsLblTitle = _addTitle("PATHS/TITLE", theme.titleFont, L"", 0, 10, 640, 60, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE);
m_pathsLblPage = _addLabel("PATHS/PAGE_BTN", theme.btnFont, L"", 68, 400, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_pathsBtnPageM = _addPicButton("PATHS/PAGE_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 20, 400, 48, 48);
m_pathsBtnPageP = _addPicButton("PATHS/PAGE_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 172, 400, 48, 48);
m_pathsBtnBack = _addButton("PATHS/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 48, theme.btnFontColor);
m_pathsLbl1 = _addLabel("PATHS/DIR1", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_pathsBtn1 = _addButton("PATHS/DIR1_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
m_pathsLbl2 = _addLabel("PATHS/DIR2", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_pathsBtn2 = _addButton("PATHS/DIR2_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);
m_pathsLbl3 = _addLabel("PATHS/DIR3", theme.lblFont, L"", 20, 245, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_pathsBtn3 = _addButton("PATHS/DIR3_BTN", theme.btnFont, L"", 420, 250, 200, 48, theme.btnFontColor);
m_pathsLbl4 = _addLabel("PATHS/DIR4", theme.lblFont, L"", 20, 305, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_pathsBtn4 = _addButton("PATHS/DIR4_BTN", theme.btnFont, L"", 420, 310, 200, 48, theme.btnFontColor);
_setHideAnim(m_pathsLblTitle, "PATHS/TITLE", 0, 0, -2.f, 0.f);
_setHideAnim(m_pathsBtnBack, "PATHS/BACK_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_pathsLblPage, "PATHS/PAGE_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_pathsBtnPageM, "PATHS/PAGE_MINUS", 0, 0, 1.f, -1.f);
_setHideAnim(m_pathsBtnPageP, "PATHS/PAGE_PLUS", 0, 0, 1.f, -1.f);
_setHideAnim(m_pathsLbl1, "PATHS/DIR1", 50, 0, -2.f, 0.f);
_setHideAnim(m_pathsBtn1, "PATHS/DIR1_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_pathsLbl2, "PATHS/DIR2", 50, 0, -2.f, 0.f);
_setHideAnim(m_pathsBtn2, "PATHS/DIR2_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_pathsLbl3, "PATHS/DIR3", 50, 0, -2.f, 0.f);
_setHideAnim(m_pathsBtn3, "PATHS/DIR3_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_pathsLbl4, "PATHS/DIR4", 50, 0, -2.f, 0.f);
_setHideAnim(m_pathsBtn4, "PATHS/DIR4_BTN", -50, 0, 1.f, 0.f);
_hidePaths(true);
_textPaths();
}
void CMenu::_textPaths(void)
{
m_btnMgr.setText(m_pathsLblTitle, _t("cfgd4", L"Path Manager"));
m_btnMgr.setText(m_pathsBtnBack, _t("cfg10", L"Back"));
m_btnMgr.setText(m_pathsBtn1, _t("dl16", L"Set"));
m_btnMgr.setText(m_pathsBtn2, _t("dl16", L"Set"));
m_btnMgr.setText(m_pathsBtn3, _t("dl16", L"Set"));
m_btnMgr.setText(m_pathsBtn4, _t("dl16", L"Set"));
}