diff --git a/out/boot.dol b/out/boot.dol index 089b16bc..6ea4b629 100644 Binary files a/out/boot.dol and b/out/boot.dol differ diff --git a/source/menu/menu.hpp b/source/menu/menu.hpp index f82cddf8..7ffe0d63 100644 --- a/source/menu/menu.hpp +++ b/source/menu/menu.hpp @@ -1117,7 +1117,7 @@ public: /* general thread updating stuff */ u64 m_thrdTotal; - void update_pThread(u64 added); + void update_pThread(u64 amount, bool add = true); private: void _cleanupBanner(bool gamechange = false); void _cleanupVideo(); diff --git a/source/menu/menu_game.cpp b/source/menu/menu_game.cpp index c06da727..a849e53a 100644 --- a/source/menu/menu_game.cpp +++ b/source/menu/menu_game.cpp @@ -1824,6 +1824,7 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd, bool disc_cfg) u32 returnTo = 0; const char *rtrn = m_cfg.getString("GENERAL", "returnto").c_str(); + /* this if is done in case "returnto" is set to disabled in which case rtrn would point to nothing */ if(strlen(rtrn) == 4) returnTo = rtrn[0] << 24 | rtrn[1] << 16 | rtrn[2] << 8 | rtrn[3]; diff --git a/source/menu/menu_home.cpp b/source/menu/menu_home.cpp index 15d33156..b0716b11 100644 --- a/source/menu/menu_home.cpp +++ b/source/menu/menu_home.cpp @@ -426,7 +426,7 @@ int CMenu::_cacheCovers() for(vector::iterator hdr = m_gameList.begin(); hdr != m_gameList.end(); ++hdr) { index++; - update_pThread(1); + update_pThread(index, false); m_thrdMessage = wfmt(_fmt("dlmsg31", L"converting cover %i of %i"), index, total); m_thrdMessageAdded = true; diff --git a/source/menu/menu_wad.cpp b/source/menu/menu_wad.cpp index e840e02a..0a39b8f4 100644 --- a/source/menu/menu_wad.cpp +++ b/source/menu/menu_wad.cpp @@ -402,12 +402,15 @@ void CMenu::_stop_pThread(void) m_btnMgr.setText(m_wbfsLblMessage, L"100%"); } -void CMenu::update_pThread(u64 added) +void CMenu::update_pThread(u64 amount, bool add) { if(m_thrdDone) { m_thrdDone = false; - m_thrdWritten += added; + if(add) + m_thrdWritten += amount; + else + m_thrdWritten = amount; m_thrdUpdated = true; } }