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:
parent
4a1e8ba30a
commit
ff6023df27
|
@ -73,6 +73,8 @@
|
||||||
#include "State.h"
|
#include "State.h"
|
||||||
#include "Movie.h"
|
#include "Movie.h"
|
||||||
|
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
// TODO: ugly, remove
|
// TODO: ugly, remove
|
||||||
bool g_aspect_wide;
|
bool g_aspect_wide;
|
||||||
|
|
||||||
|
@ -129,11 +131,18 @@ void DisplayMessage(const char *message, int time_in_ms)
|
||||||
SCoreStartupParameter& _CoreParameter =
|
SCoreStartupParameter& _CoreParameter =
|
||||||
SConfig::GetInstance().m_LocalCoreStartupParameter;
|
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);
|
g_video_backend->Video_AddMessage(message, time_in_ms);
|
||||||
|
|
||||||
if (_CoreParameter.bRenderToMain &&
|
if (_CoreParameter.bRenderToMain &&
|
||||||
SConfig::GetInstance().m_InterfaceStatusbar) {
|
SConfig::GetInstance().m_InterfaceStatusbar)
|
||||||
|
{
|
||||||
Host_UpdateStatusBar(message);
|
Host_UpdateStatusBar(message);
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
Host_UpdateTitle(message);
|
Host_UpdateTitle(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -632,12 +632,12 @@ void CFrame::BootGame(const std::string& filename)
|
||||||
bootfile = m_GameListCtrl->GetSelectedISO()->GetFileName();
|
bootfile = m_GameListCtrl->GetSelectedISO()->GetFileName();
|
||||||
}
|
}
|
||||||
else if (!StartUp.m_strDefaultGCM.empty()
|
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;
|
bootfile = StartUp.m_strDefaultGCM;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!SConfig::GetInstance().m_LastFilename.empty()
|
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;
|
bootfile = SConfig::GetInstance().m_LastFilename;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1646,7 +1646,7 @@ void CFrame::UpdateGUI()
|
||||||
}
|
}
|
||||||
// Prepare to load last selected file, enable play button
|
// Prepare to load last selected file, enable play button
|
||||||
else if (!SConfig::GetInstance().m_LastFilename.empty()
|
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)
|
if (m_ToolBar)
|
||||||
m_ToolBar->EnableTool(IDM_PLAY, true);
|
m_ToolBar->EnableTool(IDM_PLAY, true);
|
||||||
|
|
Loading…
Reference in New Issue