mirror of
https://github.com/libretro/ppsspp.git
synced 2024-11-23 16:19:44 +00:00
Add basic TextureReplacement UI options.
This commit is contained in:
parent
2bd0567448
commit
8b17793c9f
@ -1084,6 +1084,12 @@ void DeveloperToolsScreen::CreateViews() {
|
||||
list->Add(new ItemHeader(dev->T("Language")));
|
||||
list->Add(new Choice(dev->T("Load language ini")))->OnClick.Handle(this, &DeveloperToolsScreen::OnLoadLanguageIni);
|
||||
list->Add(new Choice(dev->T("Save language ini")))->OnClick.Handle(this, &DeveloperToolsScreen::OnSaveLanguageIni);
|
||||
list->Add(new ItemHeader(dev->T("Texture Replacement")));
|
||||
list->Add(new CheckBox(&g_Config.bSaveNewTextures, dev->T("Save new textures")));
|
||||
list->Add(new CheckBox(&g_Config.bReplaceTextures, dev->T("Replace textures")));
|
||||
#if !defined(MOBILE_DEVICE)
|
||||
list->Add(new Choice(dev->T("Create/Open textures.ini file for current game")))->OnClick.Handle(this, &DeveloperToolsScreen::OnOpenTexturesIniFile);
|
||||
#endif
|
||||
list->Add(new ItemHeader(""));
|
||||
list->Add(new Choice(di->T("Back")))->OnClick.Handle<UIScreen>(this, &UIScreen::OnBack);
|
||||
}
|
||||
@ -1137,6 +1143,74 @@ UI::EventReturn DeveloperToolsScreen::OnLoadLanguageIni(UI::EventParams &e) {
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn DeveloperToolsScreen::OnOpenTexturesIniFile(UI::EventParams &e) {
|
||||
std::string gameID = g_paramSFO.GetValueString("DISC_ID");
|
||||
std::string texturesDirectory = GetSysDirectory(DIRECTORY_TEXTURES) + gameID + "/";
|
||||
bool enabled_ = !gameID.empty();
|
||||
if (enabled_) {
|
||||
if (!File::Exists(texturesDirectory)) {
|
||||
File::CreateFullPath(texturesDirectory);
|
||||
}
|
||||
if (!File::Exists(texturesDirectory + "textures.ini")) {
|
||||
FILE *f = File::OpenCFile(texturesDirectory + "textures.ini", "wb");
|
||||
if (f) {
|
||||
fwrite("\xEF\xBB\xBF", 0, 3, f);
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
enabled_ = File::Exists(texturesDirectory + "textures.ini");
|
||||
}
|
||||
if (enabled_) {
|
||||
std::string texturesIniFile;
|
||||
#if defined(_WIN32)
|
||||
texturesIniFile = texturesDirectory + "textures.ini";
|
||||
// Can't rely on a .txt file extension to auto-open in the right editor,
|
||||
// so let's find notepad
|
||||
wchar_t notepad_path[MAX_PATH + 1];
|
||||
GetSystemDirectory(notepad_path, MAX_PATH);
|
||||
wcscat(notepad_path, L"\\notepad.exe");
|
||||
|
||||
wchar_t ini_path[MAX_PATH + 1] = { 0 };
|
||||
wcsncpy(ini_path, ConvertUTF8ToWString(texturesIniFile).c_str(), MAX_PATH);
|
||||
// Flip any slashes...
|
||||
for (size_t i = 0; i < wcslen(ini_path); i++) {
|
||||
if (ini_path[i] == '/')
|
||||
ini_path[i] = '\\';
|
||||
}
|
||||
|
||||
// One for the space, one for the null.
|
||||
wchar_t command_line[MAX_PATH * 2 + 1 + 1];
|
||||
wsprintf(command_line, L"%s %s", notepad_path, ini_path);
|
||||
|
||||
STARTUPINFO si;
|
||||
memset(&si, 0, sizeof(si));
|
||||
si.cb = sizeof(si);
|
||||
si.wShowWindow = SW_SHOW;
|
||||
PROCESS_INFORMATION pi;
|
||||
memset(&pi, 0, sizeof(pi));
|
||||
UINT retval = CreateProcess(0, command_line, 0, 0, 0, 0, 0, 0, &si, &pi);
|
||||
if (!retval) {
|
||||
ERROR_LOG(COMMON, "Failed creating notepad process");
|
||||
}
|
||||
CloseHandle(pi.hThread);
|
||||
CloseHandle(pi.hProcess);
|
||||
#elif !defined(MOBILE_DEVICE)
|
||||
#if defined(__APPLE__)
|
||||
texturesIniFile = "open ";
|
||||
#else
|
||||
texturesIniFile = "xdg-open ";
|
||||
#endif
|
||||
texturesIniFile.append(texturesDirectory + "textures.ini");
|
||||
NOTICE_LOG(BOOT, "Launching %s", texturesIniFile.c_str());
|
||||
int retval = system(texturesIniFile.c_str());
|
||||
if (retval != 0) {
|
||||
ERROR_LOG(COMMON, "Failed to launch textures.ini file");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return UI::EVENT_DONE;
|
||||
}
|
||||
|
||||
UI::EventReturn DeveloperToolsScreen::OnLogConfig(UI::EventParams &e) {
|
||||
screenManager()->push(new LogConfigScreen());
|
||||
return UI::EVENT_DONE;
|
||||
|
@ -127,6 +127,7 @@ private:
|
||||
UI::EventReturn OnLoggingChanged(UI::EventParams &e);
|
||||
UI::EventReturn OnLoadLanguageIni(UI::EventParams &e);
|
||||
UI::EventReturn OnSaveLanguageIni(UI::EventParams &e);
|
||||
UI::EventReturn OnOpenTexturesIniFile(UI::EventParams &e);
|
||||
UI::EventReturn OnLogConfig(UI::EventParams &e);
|
||||
UI::EventReturn OnJitAffectingSetting(UI::EventParams &e);
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user