Change wxString(<string>, wxConvUTF8) method of creating unicode from filenames to wxSafeConvertMB2WX()

(Just applied to FrameTools.cpp for now)
Allows one to properly restart Pokémon by hitting play :P

Ignore non-ASCII strings passed to DisplayMessage(). These strings would end up going to renderer display and statusbar/titlebar, which can't handle them properly.
This commit is contained in:
Shawn Hoffman 2012-03-19 10:37:15 -07:00
parent 4a1e8ba30a
commit ff6023df27
2 changed files with 15 additions and 6 deletions

View File

@ -73,6 +73,8 @@
#include "State.h"
#include "Movie.h"
#include <ctype.h>
// TODO: ugly, remove
bool g_aspect_wide;
@ -129,11 +131,18 @@ void DisplayMessage(const char *message, int time_in_ms)
SCoreStartupParameter& _CoreParameter =
SConfig::GetInstance().m_LocalCoreStartupParameter;
// Actually displaying non-ASCII could cause things to go pear-shaped
if (!isascii(message))
return;
g_video_backend->Video_AddMessage(message, time_in_ms);
if (_CoreParameter.bRenderToMain &&
SConfig::GetInstance().m_InterfaceStatusbar) {
Host_UpdateStatusBar(message);
} else
SConfig::GetInstance().m_InterfaceStatusbar)
{
Host_UpdateStatusBar(message);
}
else
Host_UpdateTitle(message);
}

View File

@ -632,12 +632,12 @@ void CFrame::BootGame(const std::string& filename)
bootfile = m_GameListCtrl->GetSelectedISO()->GetFileName();
}
else if (!StartUp.m_strDefaultGCM.empty()
&& wxFileExists(wxString(StartUp.m_strDefaultGCM.c_str(), wxConvUTF8)))
&& wxFileExists(wxSafeConvertMB2WX(StartUp.m_strDefaultGCM.c_str())))
bootfile = StartUp.m_strDefaultGCM;
else
{
if (!SConfig::GetInstance().m_LastFilename.empty()
&& wxFileExists(wxString(SConfig::GetInstance().m_LastFilename.c_str(), wxConvUTF8)))
&& wxFileExists(wxSafeConvertMB2WX(SConfig::GetInstance().m_LastFilename.c_str())))
bootfile = SConfig::GetInstance().m_LastFilename;
else
{
@ -1646,7 +1646,7 @@ void CFrame::UpdateGUI()
}
// Prepare to load last selected file, enable play button
else if (!SConfig::GetInstance().m_LastFilename.empty()
&& wxFileExists(wxString(SConfig::GetInstance().m_LastFilename.c_str(), wxConvUTF8)))
&& wxFileExists(wxSafeConvertMB2WX(SConfig::GetInstance().m_LastFilename.c_str())))
{
if (m_ToolBar)
m_ToolBar->EnableTool(IDM_PLAY, true);