mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-25 20:56:53 +01:00
*homebrew xml fix
*replaced all OptionsLists with the one from WiiXplorer *some other crap i don't remember
This commit is contained in:
parent
2570d6dae8
commit
bed86339f7
@ -2,8 +2,8 @@
|
|||||||
<app version="1">
|
<app version="1">
|
||||||
<name> USB Loader GX</name>
|
<name> USB Loader GX</name>
|
||||||
<coder>USB Loader GX Team</coder>
|
<coder>USB Loader GX Team</coder>
|
||||||
<version>1.0 r993</version>
|
<version>1.0 r994</version>
|
||||||
<release_date>201010280642</release_date>
|
<release_date>201010280947</release_date>
|
||||||
<short_description>Loads games from USB-devices</short_description>
|
<short_description>Loads games from USB-devices</short_description>
|
||||||
<long_description>USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times.
|
<long_description>USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times.
|
||||||
The interactive GUI is completely controllable with WiiMote, Classic Controller or GC Controller.
|
The interactive GUI is completely controllable with WiiMote, Classic Controller or GC Controller.
|
||||||
|
File diff suppressed because one or more lines are too long
@ -79,14 +79,13 @@ int CheatMenu(const char * gameID)
|
|||||||
else break;
|
else break;
|
||||||
case 1:
|
case 1:
|
||||||
int cntcheats = c.getCnt();
|
int cntcheats = c.getCnt();
|
||||||
customOptionList cheatslst(cntcheats);
|
OptionList cheatslst;
|
||||||
GuiCustomOptionBrowser chtBrowser(400, 280, &cheatslst, "bg_options_settings.png", 1, 90);
|
GuiCustomOptionBrowser chtBrowser(400, 280, &cheatslst, "bg_options_settings.png", 1, 90);
|
||||||
chtBrowser.SetPosition(0, 90);
|
chtBrowser.SetPosition(0, 90);
|
||||||
chtBrowser.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
chtBrowser.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
chtBrowser.SetClickable(true);
|
chtBrowser.SetClickable(true);
|
||||||
|
|
||||||
GuiText titleTxt(c.getGameName().c_str(), 28, ( GXColor )
|
GuiText titleTxt(c.getGameName().c_str(), 28, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
titleTxt.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
titleTxt.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
titleTxt.SetMaxWidth(350, SCROLL_HORIZONTAL);
|
titleTxt.SetMaxWidth(350, SCROLL_HORIZONTAL);
|
||||||
titleTxt.SetPosition(12, 40);
|
titleTxt.SetPosition(12, 40);
|
||||||
|
@ -212,18 +212,15 @@ int MenuHomebrewBrowse()
|
|||||||
|
|
||||||
GuiImage MainButton2Img(&MainButtonImgData);
|
GuiImage MainButton2Img(&MainButtonImgData);
|
||||||
GuiImage MainButton2ImgOver(&MainButtonImgOverData);
|
GuiImage MainButton2ImgOver(&MainButtonImgOverData);
|
||||||
GuiText MainButton2Txt(MainButtonText, 18, ( GXColor )
|
GuiText MainButton2Txt(MainButtonText, 18, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
MainButton2Txt.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
MainButton2Txt.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
||||||
MainButton2Txt.SetPosition(148, -12);
|
MainButton2Txt.SetPosition(148, -12);
|
||||||
MainButton2Txt.SetMaxWidth(MainButton2Img.GetWidth() - 150, DOTTED);
|
MainButton2Txt.SetMaxWidth(MainButton2Img.GetWidth() - 150, DOTTED);
|
||||||
GuiText MainButton2DescTxt(MainButtonText, 18, ( GXColor )
|
GuiText MainButton2DescTxt(MainButtonText, 18, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
MainButton2DescTxt.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
MainButton2DescTxt.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
||||||
MainButton2DescTxt.SetPosition(148, 15);
|
MainButton2DescTxt.SetPosition(148, 15);
|
||||||
MainButton2DescTxt.SetMaxWidth(MainButton2Img.GetWidth() - 150, DOTTED);
|
MainButton2DescTxt.SetMaxWidth(MainButton2Img.GetWidth() - 150, DOTTED);
|
||||||
GuiText MainButton2DescOverTxt(MainButtonText, 18, ( GXColor )
|
GuiText MainButton2DescOverTxt(MainButtonText, 18, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
MainButton2DescOverTxt.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
MainButton2DescOverTxt.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
||||||
MainButton2DescOverTxt.SetPosition(148, 15);
|
MainButton2DescOverTxt.SetPosition(148, 15);
|
||||||
MainButton2DescOverTxt.SetMaxWidth(MainButton2Img.GetWidth() - 150, SCROLL_HORIZONTAL);
|
MainButton2DescOverTxt.SetMaxWidth(MainButton2Img.GetWidth() - 150, SCROLL_HORIZONTAL);
|
||||||
@ -242,18 +239,15 @@ int MenuHomebrewBrowse()
|
|||||||
|
|
||||||
GuiImage MainButton3Img(&MainButtonImgData);
|
GuiImage MainButton3Img(&MainButtonImgData);
|
||||||
GuiImage MainButton3ImgOver(&MainButtonImgOverData);
|
GuiImage MainButton3ImgOver(&MainButtonImgOverData);
|
||||||
GuiText MainButton3Txt(MainButtonText, 18, ( GXColor )
|
GuiText MainButton3Txt(MainButtonText, 18, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
MainButton3Txt.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
MainButton3Txt.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
||||||
MainButton3Txt.SetPosition(148, -12);
|
MainButton3Txt.SetPosition(148, -12);
|
||||||
MainButton3Txt.SetMaxWidth(MainButton3Img.GetWidth() - 150, DOTTED);
|
MainButton3Txt.SetMaxWidth(MainButton3Img.GetWidth() - 150, DOTTED);
|
||||||
GuiText MainButton3DescTxt(MainButtonText, 18, ( GXColor )
|
GuiText MainButton3DescTxt(MainButtonText, 18, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
MainButton3DescTxt.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
MainButton3DescTxt.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
||||||
MainButton3DescTxt.SetPosition(148, 15);
|
MainButton3DescTxt.SetPosition(148, 15);
|
||||||
MainButton3DescTxt.SetMaxWidth(MainButton3Img.GetWidth() - 150, DOTTED);
|
MainButton3DescTxt.SetMaxWidth(MainButton3Img.GetWidth() - 150, DOTTED);
|
||||||
GuiText MainButton3DescOverTxt(MainButtonText, 18, ( GXColor )
|
GuiText MainButton3DescOverTxt(MainButtonText, 18, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
MainButton3DescOverTxt.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
MainButton3DescOverTxt.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
||||||
MainButton3DescOverTxt.SetPosition(148, 15);
|
MainButton3DescOverTxt.SetPosition(148, 15);
|
||||||
MainButton3DescOverTxt.SetMaxWidth(MainButton3Img.GetWidth() - 150, SCROLL_HORIZONTAL);
|
MainButton3DescOverTxt.SetMaxWidth(MainButton3Img.GetWidth() - 150, SCROLL_HORIZONTAL);
|
||||||
@ -436,11 +430,9 @@ int MenuHomebrewBrowse()
|
|||||||
snprintf(temp, sizeof(temp), "%smeta.xml", HomebrewFiles.GetFilepath(fileoffset));
|
snprintf(temp, sizeof(temp), "%smeta.xml", HomebrewFiles.GetFilepath(fileoffset));
|
||||||
if (XMLInfo[0].LoadHomebrewXMLData(temp) > 0)
|
if (XMLInfo[0].LoadHomebrewXMLData(temp) > 0)
|
||||||
{
|
{
|
||||||
snprintf(MainButtonText, sizeof(MainButtonText), "%s", XMLInfo[0].GetName());
|
MainButton1Txt.SetText(XMLInfo[0].GetName());
|
||||||
MainButton1Txt.SetText(MainButtonText);
|
MainButton1DescTxt.SetText(XMLInfo[0].GetShortDescription());
|
||||||
snprintf(MainButtonText, sizeof(MainButtonText), "%s", XMLInfo[0].GetShortDescription());
|
MainButton1DescOverTxt.SetText(XMLInfo[0].GetShortDescription());
|
||||||
MainButton1DescTxt.SetText(MainButtonText);
|
|
||||||
MainButton1DescOverTxt.SetText(MainButtonText);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -462,11 +454,9 @@ int MenuHomebrewBrowse()
|
|||||||
snprintf(temp, sizeof(temp), "%smeta.xml", HomebrewFiles.GetFilepath(fileoffset + 1));
|
snprintf(temp, sizeof(temp), "%smeta.xml", HomebrewFiles.GetFilepath(fileoffset + 1));
|
||||||
if (XMLInfo[1].LoadHomebrewXMLData(temp) > 0)
|
if (XMLInfo[1].LoadHomebrewXMLData(temp) > 0)
|
||||||
{
|
{
|
||||||
snprintf(MainButtonText, sizeof(MainButtonText), "%s", XMLInfo[1].GetName());
|
MainButton2Txt.SetText(XMLInfo[1].GetName());
|
||||||
MainButton2Txt.SetText(MainButtonText);
|
MainButton2DescTxt.SetText(XMLInfo[1].GetShortDescription());
|
||||||
snprintf(MainButtonText, sizeof(MainButtonText), "%s", XMLInfo[1].GetShortDescription());
|
MainButton2DescOverTxt.SetText(XMLInfo[1].GetShortDescription());
|
||||||
MainButton2DescTxt.SetText(MainButtonText);
|
|
||||||
MainButton2DescOverTxt.SetText(MainButtonText);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -486,13 +476,11 @@ int MenuHomebrewBrowse()
|
|||||||
if (buttonsleft > 2)
|
if (buttonsleft > 2)
|
||||||
{
|
{
|
||||||
snprintf(temp, sizeof(temp), "%smeta.xml", HomebrewFiles.GetFilepath(fileoffset + 2));
|
snprintf(temp, sizeof(temp), "%smeta.xml", HomebrewFiles.GetFilepath(fileoffset + 2));
|
||||||
if (XMLInfo[3].LoadHomebrewXMLData(temp) > 0)
|
if (XMLInfo[2].LoadHomebrewXMLData(temp) > 0)
|
||||||
{
|
{
|
||||||
snprintf(MainButtonText, sizeof(MainButtonText), "%s", XMLInfo[3].GetName());
|
MainButton3Txt.SetText(XMLInfo[2].GetName());
|
||||||
MainButton3Txt.SetText(MainButtonText);
|
MainButton3DescTxt.SetText(XMLInfo[2].GetShortDescription());
|
||||||
snprintf(MainButtonText, sizeof(MainButtonText), "%s", XMLInfo[3].GetShortDescription());
|
MainButton3DescOverTxt.SetText(XMLInfo[2].GetShortDescription());
|
||||||
MainButton3DescTxt.SetText(MainButtonText);
|
|
||||||
MainButton3DescOverTxt.SetText(MainButtonText);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -514,11 +502,9 @@ int MenuHomebrewBrowse()
|
|||||||
snprintf(temp, sizeof(temp), "%smeta.xml", HomebrewFiles.GetFilepath(fileoffset + 3));
|
snprintf(temp, sizeof(temp), "%smeta.xml", HomebrewFiles.GetFilepath(fileoffset + 3));
|
||||||
if (XMLInfo[3].LoadHomebrewXMLData(temp) > 0)
|
if (XMLInfo[3].LoadHomebrewXMLData(temp) > 0)
|
||||||
{
|
{
|
||||||
snprintf(MainButtonText, sizeof(MainButtonText), "%s", XMLInfo[3].GetName());
|
MainButton4Txt.SetText(XMLInfo[3].GetName());
|
||||||
MainButton4Txt.SetText(MainButtonText);
|
MainButton4DescTxt.SetText(XMLInfo[3].GetShortDescription());
|
||||||
snprintf(MainButtonText, sizeof(MainButtonText), "%s", XMLInfo[3].GetShortDescription());
|
MainButton4DescOverTxt.SetText(XMLInfo[3].GetShortDescription());
|
||||||
MainButton4DescTxt.SetText(MainButtonText);
|
|
||||||
MainButton4DescOverTxt.SetText(MainButtonText);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -592,11 +578,11 @@ int MenuHomebrewBrowse()
|
|||||||
w.Append(&MainButton2);
|
w.Append(&MainButton2);
|
||||||
|
|
||||||
snprintf(temp, sizeof(temp), "%smeta.xml", HomebrewFiles.GetFilepath(fileoffset + 2));
|
snprintf(temp, sizeof(temp), "%smeta.xml", HomebrewFiles.GetFilepath(fileoffset + 2));
|
||||||
if (XMLInfo[3].LoadHomebrewXMLData(temp) > 0)
|
if (XMLInfo[2].LoadHomebrewXMLData(temp) > 0)
|
||||||
{
|
{
|
||||||
snprintf(MainButtonText, sizeof(MainButtonText), "%s", XMLInfo[3].GetName());
|
snprintf(MainButtonText, sizeof(MainButtonText), "%s", XMLInfo[2].GetName());
|
||||||
MainButton3Txt.SetText(MainButtonText);
|
MainButton3Txt.SetText(MainButtonText);
|
||||||
snprintf(MainButtonText, sizeof(MainButtonText), "%s", XMLInfo[3].GetShortDescription());
|
snprintf(MainButtonText, sizeof(MainButtonText), "%s", XMLInfo[2].GetShortDescription());
|
||||||
MainButton3DescTxt.SetText(MainButtonText);
|
MainButton3DescTxt.SetText(MainButtonText);
|
||||||
MainButton3DescOverTxt.SetText(MainButtonText);
|
MainButton3DescOverTxt.SetText(MainButtonText);
|
||||||
}
|
}
|
||||||
|
137
source/libwiigui/OptionList.cpp
Normal file
137
source/libwiigui/OptionList.cpp
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
* Copyright (C) 2010
|
||||||
|
* by Dimok
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any
|
||||||
|
* damages arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any
|
||||||
|
* purpose, including commercial applications, and to alter it and
|
||||||
|
* redistribute it freely, subject to the following restrictions:
|
||||||
|
*
|
||||||
|
* 1. The origin of this software must not be misrepresented; you
|
||||||
|
* must not claim that you wrote the original software. If you use
|
||||||
|
* this software in a product, an acknowledgment in the product
|
||||||
|
* documentation would be appreciated but is not required.
|
||||||
|
*
|
||||||
|
* 2. Altered source versions must be plainly marked as such, and
|
||||||
|
* must not be misrepresented as being the original software.
|
||||||
|
*
|
||||||
|
* 3. This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* for WiiXplorer 2010
|
||||||
|
***************************************************************************/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <gctypes.h>
|
||||||
|
#include "OptionList.hpp"
|
||||||
|
|
||||||
|
OptionList::OptionList()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
OptionList::~OptionList()
|
||||||
|
{
|
||||||
|
ClearList();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionList::SetName(int i, const char *format, ...)
|
||||||
|
{
|
||||||
|
if(i < (int) name.size())
|
||||||
|
name[i].clear();
|
||||||
|
|
||||||
|
if(!format)
|
||||||
|
return;
|
||||||
|
|
||||||
|
char *tmp=0;
|
||||||
|
va_list va;
|
||||||
|
va_start(va, format);
|
||||||
|
if((vasprintf(&tmp, format, va)>=0) && tmp)
|
||||||
|
{
|
||||||
|
if(i >= (int) name.size())
|
||||||
|
{
|
||||||
|
Resize(i+1);
|
||||||
|
}
|
||||||
|
|
||||||
|
name[i].assign(tmp);
|
||||||
|
|
||||||
|
listChanged = true;
|
||||||
|
}
|
||||||
|
va_end(va);
|
||||||
|
|
||||||
|
if(tmp)
|
||||||
|
free(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionList::SetValue(int i, const char *format, ...)
|
||||||
|
{
|
||||||
|
if(i < (int) value.size())
|
||||||
|
value[i].clear();
|
||||||
|
|
||||||
|
char *tmp=0;
|
||||||
|
va_list va;
|
||||||
|
va_start(va, format);
|
||||||
|
if((vasprintf(&tmp, format, va)>=0) && tmp)
|
||||||
|
{
|
||||||
|
if(i >= (int) value.size())
|
||||||
|
{
|
||||||
|
Resize(i+1);
|
||||||
|
}
|
||||||
|
|
||||||
|
value[i].assign(tmp);
|
||||||
|
|
||||||
|
listChanged = true;
|
||||||
|
}
|
||||||
|
va_end(va);
|
||||||
|
|
||||||
|
if(tmp)
|
||||||
|
free(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
const char * OptionList::GetName(int i)
|
||||||
|
{
|
||||||
|
if(i < 0 || i >= (int) name.size())
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return name.at(i).c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
const char * OptionList::GetValue(int i)
|
||||||
|
{
|
||||||
|
if(i < 0 || i >= (int) value.size())
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return value.at(i).c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionList::Resize(int size)
|
||||||
|
{
|
||||||
|
while(size < (int) name.size())
|
||||||
|
RemoveOption(name.size()-1);
|
||||||
|
|
||||||
|
int oldsize = name.size();
|
||||||
|
|
||||||
|
name.resize(oldsize+1);
|
||||||
|
value.resize(oldsize+1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionList::RemoveOption(int i)
|
||||||
|
{
|
||||||
|
if(i < 0 || i >= (int) name.size())
|
||||||
|
return;
|
||||||
|
|
||||||
|
name.erase(name.begin()+i);
|
||||||
|
value.erase(value.begin()+i);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionList::ClearList()
|
||||||
|
{
|
||||||
|
name.clear();
|
||||||
|
value.clear();
|
||||||
|
std::vector<std::string>().swap(name);
|
||||||
|
std::vector<std::string>().swap(value);
|
||||||
|
}
|
53
source/libwiigui/OptionList.hpp
Normal file
53
source/libwiigui/OptionList.hpp
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
* Copyright (C) 2010
|
||||||
|
* by Dimok
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any
|
||||||
|
* damages arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any
|
||||||
|
* purpose, including commercial applications, and to alter it and
|
||||||
|
* redistribute it freely, subject to the following restrictions:
|
||||||
|
*
|
||||||
|
* 1. The origin of this software must not be misrepresented; you
|
||||||
|
* must not claim that you wrote the original software. If you use
|
||||||
|
* this software in a product, an acknowledgment in the product
|
||||||
|
* documentation would be appreciated but is not required.
|
||||||
|
*
|
||||||
|
* 2. Altered source versions must be plainly marked as such, and
|
||||||
|
* must not be misrepresented as being the original software.
|
||||||
|
*
|
||||||
|
* 3. This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* for WiiXplorer 2010
|
||||||
|
***************************************************************************/
|
||||||
|
#ifndef OPTIONLIST_HPP_
|
||||||
|
#define OPTIONLIST_HPP_
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
class OptionList
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
OptionList();
|
||||||
|
~OptionList();
|
||||||
|
void SetName(int i, const char *format, ...) __attribute__((format (printf, 3, 4)));
|
||||||
|
void SetValue(int i, const char *format, ...) __attribute__((format (printf, 3, 4)));
|
||||||
|
const char * GetName(int i);
|
||||||
|
const char * GetValue(int i);
|
||||||
|
void Resize(int size);
|
||||||
|
int GetLength() { return name.size(); }
|
||||||
|
bool IsChanged() { bool ret = listChanged; listChanged = false; return ret;}
|
||||||
|
void RemoveOption(int i);
|
||||||
|
void ClearList();
|
||||||
|
private:
|
||||||
|
std::vector<std::string> name;
|
||||||
|
std::vector<std::string> value;
|
||||||
|
bool listChanged;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -45,6 +45,7 @@
|
|||||||
#include "video.h"
|
#include "video.h"
|
||||||
#include "filelist.h"
|
#include "filelist.h"
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
|
#include "OptionList.hpp"
|
||||||
|
|
||||||
extern FreeTypeGX *fontSystem;
|
extern FreeTypeGX *fontSystem;
|
||||||
|
|
||||||
@ -1032,13 +1033,6 @@ class GuiNumpad: public GuiWindow
|
|||||||
GuiTrigger * trigB;
|
GuiTrigger * trigB;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct _optionlist
|
|
||||||
{
|
|
||||||
int length;
|
|
||||||
char name[MAX_OPTIONS][60];
|
|
||||||
char value[MAX_OPTIONS][30];
|
|
||||||
} OptionList;
|
|
||||||
|
|
||||||
//!Display a list of menu options
|
//!Display a list of menu options
|
||||||
class GuiOptionBrowser: public GuiElement
|
class GuiOptionBrowser: public GuiElement
|
||||||
{
|
{
|
||||||
|
@ -17,131 +17,11 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#define GAMESELECTSIZE 30
|
#define GAMESELECTSIZE 30
|
||||||
#define OPTION_LIST_PADDING PAGESIZE
|
|
||||||
|
|
||||||
customOptionList::customOptionList(int Size)
|
|
||||||
{
|
|
||||||
name = value = NULL;
|
|
||||||
size = 0;
|
|
||||||
SetSize(Size == 0 ? PAGESIZE : Size);
|
|
||||||
length = Size;
|
|
||||||
changed = false;
|
|
||||||
}
|
|
||||||
customOptionList::~customOptionList()
|
|
||||||
{
|
|
||||||
for (int i = 0; i < size; i++)
|
|
||||||
{
|
|
||||||
free(name[i]);
|
|
||||||
free(value[i]);
|
|
||||||
}
|
|
||||||
delete[] name;
|
|
||||||
delete[] value;
|
|
||||||
}
|
|
||||||
void customOptionList::SetLength(int Length) //set number of lines
|
|
||||||
{
|
|
||||||
if (Length < 0 || Length == length) return;
|
|
||||||
|
|
||||||
if (Length > size) SetSize(Length + OPTION_LIST_PADDING);
|
|
||||||
if (Length < length)
|
|
||||||
{
|
|
||||||
for (int i = Length; i < length; i++)
|
|
||||||
{
|
|
||||||
free(name[i]); // clear unused
|
|
||||||
name[i] = NULL;
|
|
||||||
free(value[i]);
|
|
||||||
value[i] = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
length = Length;
|
|
||||||
changed = true;
|
|
||||||
}
|
|
||||||
void customOptionList::SetSize(int Size) //set number of lines
|
|
||||||
{
|
|
||||||
if (Size < 0 || Size == size) return;
|
|
||||||
|
|
||||||
if (Size > size)
|
|
||||||
{
|
|
||||||
char **newName = new char *[Size];
|
|
||||||
char **newValue = new char *[Size];
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < size; i++)
|
|
||||||
{
|
|
||||||
newName[i] = name[i]; // copy
|
|
||||||
newValue[i] = value[i];
|
|
||||||
}
|
|
||||||
for (; i < Size; i++)
|
|
||||||
{
|
|
||||||
newName[i] = NULL; // fill rest with NULL
|
|
||||||
newValue[i] = NULL;
|
|
||||||
}
|
|
||||||
delete[] name;
|
|
||||||
name = newName; // set new
|
|
||||||
delete[] value;
|
|
||||||
value = newValue;
|
|
||||||
size = Size;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void customOptionList::SetName(int i, const char *format, ...)
|
|
||||||
{
|
|
||||||
if (i >= length) SetLength(i + 1);
|
|
||||||
|
|
||||||
if (i >= 0 && i < length)
|
|
||||||
{
|
|
||||||
if (name[i]) free(name[i]);
|
|
||||||
name[i] = 0;
|
|
||||||
va_list va;
|
|
||||||
va_start( va, format );
|
|
||||||
vasprintf(&name[i], format, va);
|
|
||||||
va_end( va );
|
|
||||||
changed = true;
|
|
||||||
}
|
|
||||||
//gprintf("customOptionList::SetName( %d, %s )\n", i, name[i] );
|
|
||||||
}
|
|
||||||
void customOptionList::SetValue(int i, const char *format, ...)
|
|
||||||
{
|
|
||||||
if (i >= length) SetLength(i + 1);
|
|
||||||
|
|
||||||
if (i >= 0 && i < length)
|
|
||||||
{
|
|
||||||
char *tmp = 0;
|
|
||||||
va_list va;
|
|
||||||
va_start( va, format );
|
|
||||||
vasprintf(&tmp, format, va);
|
|
||||||
va_end( va );
|
|
||||||
|
|
||||||
if (tmp)
|
|
||||||
{
|
|
||||||
if (value[i] && !strcmp(tmp, value[i]))
|
|
||||||
free(tmp);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
free(value[i]);
|
|
||||||
value[i] = tmp;
|
|
||||||
changed = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//gprintf("customOptionList::SetValue( %d, %s )\n", i, value[i] );
|
|
||||||
}
|
|
||||||
void customOptionList::Clear(bool OnlyValue/*=false*/)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < size; i++)
|
|
||||||
{
|
|
||||||
if (!OnlyValue)
|
|
||||||
{
|
|
||||||
free(name[i]);
|
|
||||||
name[i] = NULL;
|
|
||||||
}
|
|
||||||
free(value[i]);
|
|
||||||
value[i] = NULL;
|
|
||||||
}
|
|
||||||
changed = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for the GuiCustomOptionBrowser class.
|
* Constructor for the GuiCustomOptionBrowser class.
|
||||||
*/
|
*/
|
||||||
GuiCustomOptionBrowser::GuiCustomOptionBrowser(int w, int h, customOptionList * l, const char * custombg, int scrollon, int col2)
|
GuiCustomOptionBrowser::GuiCustomOptionBrowser(int w, int h, OptionList * l, const char * custombg, int scrollon, int col2)
|
||||||
{
|
{
|
||||||
width = w;
|
width = w;
|
||||||
height = h;
|
height = h;
|
||||||
|
@ -1,50 +1,10 @@
|
|||||||
#include "gui.h"
|
#include "gui.h"
|
||||||
|
|
||||||
class customOptionList
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
customOptionList(int Size);
|
|
||||||
~customOptionList();
|
|
||||||
void SetLength(int Length);
|
|
||||||
void SetName(int i, const char *format, ...) __attribute__( ( format ( printf, 3, 4 ) ) );
|
|
||||||
const char *GetName(int i)
|
|
||||||
{
|
|
||||||
if (i >= 0 && i < length && name[i])
|
|
||||||
return name[i];
|
|
||||||
else return "";
|
|
||||||
}
|
|
||||||
void SetValue(int i, const char *format, ...) __attribute__( ( format ( printf, 3, 4 ) ) );
|
|
||||||
const char *GetValue(int i)
|
|
||||||
{
|
|
||||||
if (i >= 0 && i < length && value[i])
|
|
||||||
return value[i];
|
|
||||||
else return "";
|
|
||||||
}
|
|
||||||
void Clear(bool OnlyValue = false);
|
|
||||||
int GetLength()
|
|
||||||
{
|
|
||||||
return length;
|
|
||||||
}
|
|
||||||
bool IsChanged()
|
|
||||||
{
|
|
||||||
bool ret = changed;
|
|
||||||
changed = false;
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
private:
|
|
||||||
void SetSize(int Size);
|
|
||||||
int size;
|
|
||||||
char ** name;
|
|
||||||
char ** value;
|
|
||||||
int length;
|
|
||||||
bool changed;
|
|
||||||
};
|
|
||||||
|
|
||||||
//!Display a list of menu options
|
//!Display a list of menu options
|
||||||
class GuiCustomOptionBrowser: public GuiElement
|
class GuiCustomOptionBrowser: public GuiElement
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GuiCustomOptionBrowser(int w, int h, customOptionList * l, const char * background, int scrollbar, int col2);
|
GuiCustomOptionBrowser(int w, int h, OptionList * l, const char * background, int scrollbar, int col2);
|
||||||
~GuiCustomOptionBrowser();
|
~GuiCustomOptionBrowser();
|
||||||
int FindMenuItem(int c, int d);
|
int FindMenuItem(int c, int d);
|
||||||
int GetClickedOption();
|
int GetClickedOption();
|
||||||
@ -64,7 +24,7 @@ class GuiCustomOptionBrowser: public GuiElement
|
|||||||
int coL2;
|
int coL2;
|
||||||
int scrollbaron;
|
int scrollbaron;
|
||||||
|
|
||||||
customOptionList * options;
|
OptionList * options;
|
||||||
int * optionIndex;
|
int * optionIndex;
|
||||||
GuiButton ** optionBtn;
|
GuiButton ** optionBtn;
|
||||||
GuiText ** optionTxt;
|
GuiText ** optionTxt;
|
||||||
|
@ -223,8 +223,7 @@ GuiOptionBrowser::GuiOptionBrowser(int w, int h, OptionList * l, const char *ima
|
|||||||
// optionBg = new GuiImage(bgOptionsEntry);
|
// optionBg = new GuiImage(bgOptionsEntry);
|
||||||
for (int i = 0; i < PAGESIZE; i++)
|
for (int i = 0; i < PAGESIZE; i++)
|
||||||
{
|
{
|
||||||
optionTxt[i] = new GuiText(options->name[i], 20, ( GXColor )
|
optionTxt[i] = new GuiText(options->GetName(i), 20, ( GXColor ) {0, 0, 0, 0xff});
|
||||||
{ 0, 0, 0, 0xff});
|
|
||||||
optionTxt[i]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
optionTxt[i]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
||||||
optionTxt[i]->SetPosition(24, 0);
|
optionTxt[i]->SetPosition(24, 0);
|
||||||
|
|
||||||
@ -362,11 +361,12 @@ int GuiOptionBrowser::FindMenuItem(int currentItem, int direction)
|
|||||||
{
|
{
|
||||||
int nextItem = currentItem + direction;
|
int nextItem = currentItem + direction;
|
||||||
|
|
||||||
if (nextItem < 0 || nextItem >= options->length) return -1;
|
if (nextItem < 0 || nextItem >= options->GetLength()) return -1;
|
||||||
|
|
||||||
if (strlen(options->name[nextItem]) > 0)
|
if (options->GetName(nextItem) && strlen(options->GetName(nextItem)) > 0)
|
||||||
return nextItem;
|
return nextItem;
|
||||||
else return FindMenuItem(nextItem, direction);
|
else
|
||||||
|
return FindMenuItem(nextItem, direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -409,7 +409,7 @@ void GuiOptionBrowser::TriggerUpdate()
|
|||||||
void GuiOptionBrowser::Update(GuiTrigger * t)
|
void GuiOptionBrowser::Update(GuiTrigger * t)
|
||||||
{
|
{
|
||||||
LOCK( this );
|
LOCK( this );
|
||||||
int next, prev, lang = options->length;
|
int next, prev, lang = options->GetLength();
|
||||||
|
|
||||||
//go to the last game selected
|
//go to the last game selected
|
||||||
if ((loaded == 0) && (startat > 0))
|
if ((loaded == 0) && (startat > 0))
|
||||||
@ -465,8 +465,8 @@ void GuiOptionBrowser::Update(GuiTrigger * t)
|
|||||||
optionBtn[i]->SetState(STATE_DEFAULT);
|
optionBtn[i]->SetState(STATE_DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
||||||
optionTxt[i]->SetText(options->name[next]);
|
optionTxt[i]->SetText(options->GetName(next));
|
||||||
optionVal[i]->SetText(options->value[next]);
|
optionVal[i]->SetText(options->GetValue(next));
|
||||||
optionIndex[i] = next;
|
optionIndex[i] = next;
|
||||||
next = this->FindMenuItem(next, 1);
|
next = this->FindMenuItem(next, 1);
|
||||||
}
|
}
|
||||||
@ -579,7 +579,7 @@ void GuiOptionBrowser::Update(GuiTrigger * t)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (scrollbarBoxBtn->GetState() == STATE_HELD && scrollbarBoxBtn->GetStateChan() == t->chan && t->wpad.ir.valid
|
if (scrollbarBoxBtn->GetState() == STATE_HELD && scrollbarBoxBtn->GetStateChan() == t->chan && t->wpad.ir.valid
|
||||||
&& options->length > PAGESIZE)
|
&& options->GetLength() > PAGESIZE)
|
||||||
{
|
{
|
||||||
scrollbarBoxBtn->SetPosition(width / 2 - 18 + 7, 0);
|
scrollbarBoxBtn->SetPosition(width / 2 - 18 + 7, 0);
|
||||||
int position = t->wpad.ir.y - 50 - scrollbarBoxBtn->GetTop();
|
int position = t->wpad.ir.y - 50 - scrollbarBoxBtn->GetTop();
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
#include "libwiigui/gui_gamecarousel.h"
|
#include "libwiigui/gui_gamecarousel.h"
|
||||||
#include "libwiigui/gui_searchbar.h"
|
#include "libwiigui/gui_searchbar.h"
|
||||||
|
|
||||||
#define MAX_CHARACTERS 38
|
|
||||||
extern u8 * gameScreenTex;
|
extern u8 * gameScreenTex;
|
||||||
extern struct discHdr *dvdheader;
|
extern struct discHdr *dvdheader;
|
||||||
extern u8 mountMethod;
|
extern u8 mountMethod;
|
||||||
@ -53,7 +52,6 @@ static u32 startat = 0;
|
|||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
int MenuDiscList()
|
int MenuDiscList()
|
||||||
{
|
{
|
||||||
|
|
||||||
gprintf("MenuDiscList()\n");
|
gprintf("MenuDiscList()\n");
|
||||||
gameList.FilterList();
|
gameList.FilterList();
|
||||||
int offset = MIN( ( int )startat, gameList.size() - 1 );
|
int offset = MIN( ( int )startat, gameList.size() - 1 );
|
||||||
@ -79,7 +77,6 @@ int MenuDiscList()
|
|||||||
int menu = MENU_NONE;
|
int menu = MENU_NONE;
|
||||||
|
|
||||||
u32 nolist;
|
u32 nolist;
|
||||||
char text[MAX_CHARACTERS + 4];
|
|
||||||
int choice = 0, selectedold = 100;
|
int choice = 0, selectedold = 100;
|
||||||
s32 ret;
|
s32 ret;
|
||||||
|
|
||||||
@ -1403,16 +1400,6 @@ int MenuDiscList()
|
|||||||
if (!mountMethod)//only get this stuff it we are booting a game from USB
|
if (!mountMethod)//only get this stuff it we are booting a game from USB
|
||||||
{
|
{
|
||||||
WBFS_GameSize(header->id, &size);
|
WBFS_GameSize(header->id, &size);
|
||||||
if (strlen(GameTitles.GetTitle(header)) < (MAX_CHARACTERS + 3))
|
|
||||||
{
|
|
||||||
sprintf(text, "%s", GameTitles.GetTitle(header));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
strncpy(text, GameTitles.GetTitle(header), MAX_CHARACTERS);
|
|
||||||
text[MAX_CHARACTERS] = '\0';
|
|
||||||
strncat(text, "...", 3);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//check if alt Dol and gct file is present
|
//check if alt Dol and gct file is present
|
||||||
|
@ -39,131 +39,104 @@ int MenuInstall()
|
|||||||
|
|
||||||
ResumeGui();
|
ResumeGui();
|
||||||
|
|
||||||
while (menu == MENU_NONE)
|
ret = DiscWait(tr( "Insert Disk" ), tr( "Waiting..." ), tr( "Cancel" ), 0, 0);
|
||||||
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
VIDEO_WaitVSync();
|
WindowPrompt(tr( "Error reading Disc" ), 0, tr( "Back" ));
|
||||||
|
menu = MENU_DISCLIST;
|
||||||
|
}
|
||||||
|
ret = Disc_Open();
|
||||||
|
if (ret < 0)
|
||||||
|
{
|
||||||
|
WindowPrompt(tr( "Could not open Disc" ), 0, tr( "Back" ));
|
||||||
|
menu = MENU_DISCLIST;
|
||||||
|
}
|
||||||
|
|
||||||
ret = DiscWait(tr( "Insert Disk" ), tr( "Waiting..." ), tr( "Cancel" ), 0, 0);
|
ret = Disc_IsWii();
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
WindowPrompt(tr( "Error reading Disc" ), 0, tr( "Back" ));
|
choice = WindowPrompt(tr( "Not a Wii Disc" ), tr( "Insert a Wii Disc!" ), tr( "OK" ), tr( "Back" ));
|
||||||
menu = MENU_DISCLIST;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
ret = Disc_Open();
|
|
||||||
if (ret < 0)
|
|
||||||
{
|
|
||||||
WindowPrompt(tr( "Could not open Disc" ), 0, tr( "Back" ));
|
|
||||||
menu = MENU_DISCLIST;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = Disc_IsWii();
|
|
||||||
if (ret < 0)
|
|
||||||
{
|
|
||||||
choice = WindowPrompt(tr( "Not a Wii Disc" ), tr( "Insert a Wii Disc!" ), tr( "OK" ), tr( "Back" ));
|
|
||||||
|
|
||||||
if (choice == 1)
|
|
||||||
{
|
|
||||||
menu = MENU_INSTALL;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else menu = MENU_DISCLIST;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
Disc_ReadHeader(&headerdisc);
|
|
||||||
snprintf(name, sizeof(name), "%s", headerdisc.title);
|
|
||||||
|
|
||||||
ret = WBFS_CheckGame(headerdisc.id);
|
|
||||||
if (ret)
|
|
||||||
{
|
|
||||||
WindowPrompt(tr( "Game is already installed:" ), name, tr( "Back" ));
|
|
||||||
menu = MENU_DISCLIST;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
f32 freespace, used;
|
|
||||||
|
|
||||||
WBFS_DiskSpace(&used, &freespace);
|
|
||||||
gamesize = WBFS_EstimeGameSize() / GB_SIZE;
|
|
||||||
|
|
||||||
char gametxt[50];
|
|
||||||
|
|
||||||
sprintf(gametxt, "%s : %.2fGB", name, gamesize);
|
|
||||||
|
|
||||||
wiilight(1);
|
|
||||||
choice = WindowPrompt(tr( "Continue to install game?" ), gametxt, tr( "OK" ), tr( "Cancel" ));
|
|
||||||
|
|
||||||
if (choice == 1)
|
if (choice == 1)
|
||||||
{
|
{
|
||||||
|
menu = MENU_INSTALL;
|
||||||
|
}
|
||||||
|
else menu = MENU_DISCLIST;
|
||||||
|
}
|
||||||
|
|
||||||
sprintf(gametxt, "%s", tr( "Installing game:" ));
|
Disc_ReadHeader(&headerdisc);
|
||||||
|
snprintf(name, sizeof(name), "%s", headerdisc.title);
|
||||||
|
|
||||||
if (gamesize > freespace)
|
ret = WBFS_CheckGame(headerdisc.id);
|
||||||
{
|
if (ret)
|
||||||
char errortxt[50];
|
{
|
||||||
sprintf(errortxt, "%s: %.2fGB, %s: %.2fGB", tr( "Game Size" ), gamesize, tr( "Free Space" ), freespace);
|
WindowPrompt(tr( "Game is already installed:" ), name, tr( "Back" ));
|
||||||
WindowPrompt(tr( "Not enough free space!" ), errortxt, tr( "OK" ));
|
menu = MENU_DISCLIST;
|
||||||
menu = MENU_DISCLIST;
|
}
|
||||||
break;
|
|
||||||
}
|
f32 freespace, used;
|
||||||
else
|
|
||||||
{
|
WBFS_DiskSpace(&used, &freespace);
|
||||||
USBStorage2_Watchdog(0);
|
gamesize = WBFS_EstimeGameSize() / GB_SIZE;
|
||||||
SetupGameInstallProgress(gametxt, name);
|
|
||||||
ret = WBFS_AddGame();
|
char gametxt[50];
|
||||||
ProgressStop();
|
|
||||||
USBStorage2_Watchdog(1);
|
sprintf(gametxt, "%s : %.2fGB", name, gamesize);
|
||||||
wiilight(0);
|
|
||||||
if (ret != 0)
|
wiilight(1);
|
||||||
{
|
choice = WindowPrompt(tr( "Continue to install game?" ), gametxt, tr( "OK" ), tr( "Cancel" ));
|
||||||
WindowPrompt(tr( "Install Error!" ), 0, tr( "Back" ));
|
|
||||||
menu = MENU_DISCLIST;
|
if (choice == 1)
|
||||||
break;
|
{
|
||||||
}
|
sprintf(gametxt, "%s", tr( "Installing game:" ));
|
||||||
else
|
|
||||||
{
|
if (gamesize > freespace)
|
||||||
gameList.ReadGameList(); //get the entries again
|
{
|
||||||
gameList.FilterList();
|
char errortxt[50];
|
||||||
GuiSound * instsuccess = NULL;
|
sprintf(errortxt, "%s: %.2fGB, %s: %.2fGB", tr( "Game Size" ), gamesize, tr( "Free Space" ), freespace);
|
||||||
bgMusic->Pause();
|
WindowPrompt(tr( "Not enough free space!" ), errortxt, tr( "OK" ));
|
||||||
instsuccess = new GuiSound(success_ogg, success_ogg_size, Settings.sfxvolume);
|
menu = MENU_DISCLIST;
|
||||||
instsuccess->SetVolume(Settings.sfxvolume);
|
|
||||||
instsuccess->SetLoop(0);
|
|
||||||
instsuccess->Play();
|
|
||||||
WindowPrompt(tr( "Successfully installed:" ), name, tr( "OK" ));
|
|
||||||
instsuccess->Stop();
|
|
||||||
delete instsuccess;
|
|
||||||
bgMusic->Resume();
|
|
||||||
menu = MENU_DISCLIST;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
menu = MENU_DISCLIST;
|
USBStorage2_Watchdog(0);
|
||||||
break;
|
SetupGameInstallProgress(gametxt, name);
|
||||||
}
|
ret = WBFS_AddGame();
|
||||||
|
ProgressStop();
|
||||||
if (shutdown == 1)
|
USBStorage2_Watchdog(1);
|
||||||
{
|
|
||||||
wiilight(0);
|
wiilight(0);
|
||||||
Sys_Shutdown();
|
if (ret != 0)
|
||||||
}
|
{
|
||||||
if (reset == 1)
|
WindowPrompt(tr( "Install Error!" ), 0, tr( "Back" ));
|
||||||
{
|
menu = MENU_DISCLIST;
|
||||||
wiilight(0);
|
}
|
||||||
Sys_Reboot();
|
else
|
||||||
|
{
|
||||||
|
gameList.ReadGameList(); //get the entries again
|
||||||
|
gameList.FilterList();
|
||||||
|
GuiSound * instsuccess = NULL;
|
||||||
|
bgMusic->Pause();
|
||||||
|
instsuccess = new GuiSound(success_ogg, success_ogg_size, Settings.sfxvolume);
|
||||||
|
instsuccess->SetVolume(Settings.sfxvolume);
|
||||||
|
instsuccess->SetLoop(0);
|
||||||
|
instsuccess->Play();
|
||||||
|
WindowPrompt(tr( "Successfully installed:" ), name, tr( "OK" ));
|
||||||
|
instsuccess->Stop();
|
||||||
|
delete instsuccess;
|
||||||
|
bgMusic->Resume();
|
||||||
|
menu = MENU_DISCLIST;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
menu = MENU_DISCLIST;
|
||||||
|
}
|
||||||
|
|
||||||
//Turn off the WiiLight
|
//Turn off the WiiLight
|
||||||
wiilight(0);
|
wiilight(0);
|
||||||
|
|
||||||
HaltGui();
|
HaltGui();
|
||||||
|
|
||||||
mainWindow->Remove(&w);
|
mainWindow->Remove(&w);
|
||||||
ResumeGui();
|
ResumeGui();
|
||||||
return menu;
|
return menu;
|
||||||
|
@ -16,7 +16,7 @@ extern PartList partitions;
|
|||||||
int SelectPartitionMenu()
|
int SelectPartitionMenu()
|
||||||
{
|
{
|
||||||
bool ExitSelect = false;
|
bool ExitSelect = false;
|
||||||
customOptionList options(MAX_PARTITIONS_EX);
|
OptionList options;
|
||||||
|
|
||||||
u32 cnt, counter = 0;
|
u32 cnt, counter = 0;
|
||||||
int choice = -1;
|
int choice = -1;
|
||||||
|
@ -75,7 +75,7 @@ int DiscBrowse(struct discHdr * header, char * alternatedname, int alternatednam
|
|||||||
u32 discfilecount = fstbuffer[0].filelen;
|
u32 discfilecount = fstbuffer[0].filelen;
|
||||||
u32 dolfilecount = 0;
|
u32 dolfilecount = 0;
|
||||||
|
|
||||||
customOptionList options3(discfilecount);
|
OptionList options3;
|
||||||
|
|
||||||
for (u32 i = 0; i < discfilecount; i++)
|
for (u32 i = 0; i < discfilecount; i++)
|
||||||
{
|
{
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include "prompts/PromptWindows.h"
|
#include "prompts/PromptWindows.h"
|
||||||
#include "prompts/gameinfo.h"
|
#include "prompts/gameinfo.h"
|
||||||
#include "themes/CTheme.h"
|
#include "themes/CTheme.h"
|
||||||
|
#include "utils/StringTools.h"
|
||||||
#include "mload/mload.h"
|
#include "mload/mload.h"
|
||||||
#include "fatmounter.h"
|
#include "fatmounter.h"
|
||||||
#include "FileOperations/fileops.h"
|
#include "FileOperations/fileops.h"
|
||||||
@ -3811,12 +3812,8 @@ int HBCWindowPrompt(const char *name, const char *coder, const char *version, co
|
|||||||
bool iconExist = CheckFile(imgPath);
|
bool iconExist = CheckFile(imgPath);
|
||||||
if (iconExist)
|
if (iconExist)
|
||||||
{
|
{
|
||||||
|
//! This does not crash even if there is no file
|
||||||
iconData = new GuiImageData(imgPath);
|
iconData = new GuiImageData(imgPath);
|
||||||
if(!iconData->GetImage())
|
|
||||||
{
|
|
||||||
delete iconData;
|
|
||||||
iconData = new GuiImageData(Resources::GetFile("dialogue_box.png"), Resources::GetFileSize("dialogue_box.png"));
|
|
||||||
}
|
|
||||||
iconImg = new GuiImage(iconData);
|
iconImg = new GuiImage(iconData);
|
||||||
iconImg->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
iconImg->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||||
iconImg->SetPosition(45, 10);
|
iconImg->SetPosition(45, 10);
|
||||||
@ -3829,31 +3826,22 @@ int HBCWindowPrompt(const char *name, const char *coder, const char *version, co
|
|||||||
whiteBoxImg.SetPosition(0, 110);
|
whiteBoxImg.SetPosition(0, 110);
|
||||||
whiteBoxImg.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
whiteBoxImg.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
whiteBoxImg.SetSkew(0, 0, 0, 0, 0, -120, 0, -120);
|
whiteBoxImg.SetSkew(0, 0, 0, 0, 0, -120, 0, -120);
|
||||||
/*if (Settings.wsprompt){
|
|
||||||
dialogBoxImg.SetWidescreen(Settings.widescreen);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
char tmp[510];
|
|
||||||
|
|
||||||
GuiText nameTxt(name, 30, Theme.prompttext);
|
GuiText nameTxt(name, 30, Theme.prompttext);
|
||||||
nameTxt.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
nameTxt.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
nameTxt.SetPosition(0, -15);
|
nameTxt.SetPosition(0, -15);
|
||||||
nameTxt.SetMaxWidth(430, SCROLL_HORIZONTAL);
|
nameTxt.SetMaxWidth(430, SCROLL_HORIZONTAL);
|
||||||
|
|
||||||
if (strcmp(coder, "")) snprintf(tmp, sizeof(tmp), tr( "Coded by: %s" ), coder);
|
GuiText coderTxt(fmt(tr( "Coded by: %s" ), coder), 16, Theme.prompttext);
|
||||||
GuiText coderTxt(tmp, 16, Theme.prompttext);
|
|
||||||
coderTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
coderTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||||
coderTxt.SetPosition(180, 30);
|
coderTxt.SetPosition(180, 30);
|
||||||
coderTxt.SetMaxWidth(280);
|
coderTxt.SetMaxWidth(280);
|
||||||
|
|
||||||
if (strcmp(version, "")) snprintf(tmp, sizeof(tmp), tr( "Version: %s" ), version);
|
GuiText versionTxt(fmt(tr( "Version: %s" ), version), 16, Theme.prompttext);
|
||||||
GuiText versionTxt(tmp, 16, Theme.prompttext);
|
|
||||||
versionTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
versionTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||||
versionTxt.SetPosition(40, 65);
|
versionTxt.SetPosition(40, 65);
|
||||||
versionTxt.SetMaxWidth(430);
|
versionTxt.SetMaxWidth(430);
|
||||||
|
|
||||||
//if (release_date)
|
|
||||||
//snprintf(tmp, sizeof(tmp), tr("Released: %s"),release_date);
|
|
||||||
GuiText release_dateTxt(release_date, 16, Theme.prompttext);
|
GuiText release_dateTxt(release_date, 16, Theme.prompttext);
|
||||||
release_dateTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
release_dateTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||||
release_dateTxt.SetPosition(40, 85);
|
release_dateTxt.SetPosition(40, 85);
|
||||||
@ -3868,30 +3856,14 @@ int HBCWindowPrompt(const char *name, const char *coder, const char *version, co
|
|||||||
long_descriptionTxt.Refresh();
|
long_descriptionTxt.Refresh();
|
||||||
|
|
||||||
//convert filesize from u64 to char and put unit of measurement after it
|
//convert filesize from u64 to char and put unit of measurement after it
|
||||||
char temp2[7];
|
|
||||||
char filesizeCH[15];
|
char filesizeCH[15];
|
||||||
f32 sizeAdjusted;
|
|
||||||
if (filesize <= 1024.0)
|
if (filesize <= 1024.0)
|
||||||
{
|
snprintf(filesizeCH, sizeof(filesizeCH), "%lld B", filesize);
|
||||||
sizeAdjusted = filesize;
|
|
||||||
snprintf(temp2, sizeof(temp2), "%.2f", sizeAdjusted);
|
|
||||||
snprintf(filesizeCH, sizeof(filesizeCH), "%s B", temp2);
|
|
||||||
|
|
||||||
}
|
|
||||||
if (filesize > 1024.0)
|
if (filesize > 1024.0)
|
||||||
{
|
snprintf(filesizeCH, sizeof(filesizeCH), "%0.2f KB", filesize / 1024.0);
|
||||||
sizeAdjusted = filesize / 1024.0;
|
|
||||||
snprintf(temp2, sizeof(temp2), "%.2f", sizeAdjusted);
|
|
||||||
snprintf(filesizeCH, sizeof(filesizeCH), "%s KB", temp2);
|
|
||||||
|
|
||||||
}
|
|
||||||
if (filesize > 1048576.0)
|
if (filesize > 1048576.0)
|
||||||
{
|
snprintf(filesizeCH, sizeof(filesizeCH), "%0.2f MB", filesize / 1048576.0);
|
||||||
sizeAdjusted = filesize / 1048576.0;
|
|
||||||
snprintf(temp2, sizeof(temp2), "%.2f", sizeAdjusted);
|
|
||||||
snprintf(filesizeCH, sizeof(filesizeCH), "%s MB", temp2);
|
|
||||||
|
|
||||||
}
|
|
||||||
GuiText filesizeTxt(filesizeCH, 16, Theme.prompttext);
|
GuiText filesizeTxt(filesizeCH, 16, Theme.prompttext);
|
||||||
filesizeTxt.SetAlignment(ALIGN_RIGHT, ALIGN_TOP);
|
filesizeTxt.SetAlignment(ALIGN_RIGHT, ALIGN_TOP);
|
||||||
filesizeTxt.SetPosition(-40, 12);
|
filesizeTxt.SetPosition(-40, 12);
|
||||||
@ -3933,18 +3905,18 @@ int HBCWindowPrompt(const char *name, const char *coder, const char *version, co
|
|||||||
promptWindow.Append(&screenShotBtn);
|
promptWindow.Append(&screenShotBtn);
|
||||||
|
|
||||||
promptWindow.Append(&dialogBoxImg);
|
promptWindow.Append(&dialogBoxImg);
|
||||||
if (strcmp(long_description, "")) promptWindow.Append(&whiteBoxImg);
|
promptWindow.Append(&whiteBoxImg);
|
||||||
if (strcmp(long_description, "")) promptWindow.Append(&scrollbarImg);
|
promptWindow.Append(&scrollbarImg);
|
||||||
if (strcmp(long_description, "")) promptWindow.Append(&arrowDownBtn);
|
promptWindow.Append(&arrowDownBtn);
|
||||||
if (strcmp(long_description, "")) promptWindow.Append(&arrowUpBtn);
|
promptWindow.Append(&arrowUpBtn);
|
||||||
|
|
||||||
if (strcmp(name, "")) promptWindow.Append(&nameTxt);
|
if(strcmp(name, "") != 0) promptWindow.Append(&nameTxt);
|
||||||
if (strcmp(version, "")) promptWindow.Append(&versionTxt);
|
if(strcmp(version, "") != 0) promptWindow.Append(&versionTxt);
|
||||||
if (strcmp(coder, "")) promptWindow.Append(&coderTxt);
|
if(strcmp(coder, "") != 0) promptWindow.Append(&coderTxt);
|
||||||
if (strcmp(release_date, "")) promptWindow.Append(&release_dateTxt);
|
if(strcmp(release_date, "") != 0) promptWindow.Append(&release_dateTxt);
|
||||||
if (strcmp(long_description, "")) promptWindow.Append(&long_descriptionTxt);
|
if(strcmp(long_description, "") != 0) promptWindow.Append(&long_descriptionTxt);
|
||||||
promptWindow.Append(&filesizeTxt);
|
promptWindow.Append(&filesizeTxt);
|
||||||
if (iconExist) promptWindow.Append(iconImg);
|
promptWindow.Append(iconImg);
|
||||||
promptWindow.Append(&btn1);
|
promptWindow.Append(&btn1);
|
||||||
promptWindow.Append(&btn2);
|
promptWindow.Append(&btn2);
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ bool TitleSelector(char output[])
|
|||||||
gprintf("TitleLister(): out of memory!\n");
|
gprintf("TitleLister(): out of memory!\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
customOptionList options4(num_titles + 1);
|
OptionList options4;
|
||||||
//write the titles on the option browser
|
//write the titles on the option browser
|
||||||
|
|
||||||
s32 i = 0;
|
s32 i = 0;
|
||||||
@ -280,7 +280,7 @@ int TitleBrowser()
|
|||||||
gprintf("TitleBrowser(): out of memory!\n");
|
gprintf("TitleBrowser(): out of memory!\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
customOptionList options3(num_titles + num_sys_titles + 1);
|
OptionList options3;
|
||||||
//write the titles on the option browser
|
//write the titles on the option browser
|
||||||
|
|
||||||
u32 i = 0;
|
u32 i = 0;
|
||||||
|
@ -142,8 +142,7 @@ int MenuSettings()
|
|||||||
GuiTrigger trigPlus;
|
GuiTrigger trigPlus;
|
||||||
trigPlus.SetButtonOnlyTrigger(-1, WPAD_BUTTON_PLUS | WPAD_CLASSIC_BUTTON_PLUS, 0);
|
trigPlus.SetButtonOnlyTrigger(-1, WPAD_BUTTON_PLUS | WPAD_CLASSIC_BUTTON_PLUS, 0);
|
||||||
|
|
||||||
GuiText titleTxt(tr( "Settings" ), 28, ( GXColor )
|
GuiText titleTxt(tr( "Settings" ), 28, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
titleTxt.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
titleTxt.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
titleTxt.SetPosition(0, 40);
|
titleTxt.SetPosition(0, 40);
|
||||||
|
|
||||||
@ -165,8 +164,7 @@ int MenuSettings()
|
|||||||
homo.SetTrigger(&trigHome);
|
homo.SetTrigger(&trigHome);
|
||||||
|
|
||||||
GuiImage PageindicatorImg1(&PageindicatorImgData);
|
GuiImage PageindicatorImg1(&PageindicatorImgData);
|
||||||
GuiText PageindicatorTxt1("1", 22, ( GXColor )
|
GuiText PageindicatorTxt1("1", 22, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
GuiButton PageIndicatorBtn1(PageindicatorImg1.GetWidth(), PageindicatorImg1.GetHeight());
|
GuiButton PageIndicatorBtn1(PageindicatorImg1.GetWidth(), PageindicatorImg1.GetHeight());
|
||||||
PageIndicatorBtn1.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
PageIndicatorBtn1.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
PageIndicatorBtn1.SetPosition(165, 400);
|
PageIndicatorBtn1.SetPosition(165, 400);
|
||||||
@ -178,8 +176,7 @@ int MenuSettings()
|
|||||||
PageIndicatorBtn1.SetEffectGrow();
|
PageIndicatorBtn1.SetEffectGrow();
|
||||||
|
|
||||||
GuiImage PageindicatorImg2(&PageindicatorImgData);
|
GuiImage PageindicatorImg2(&PageindicatorImgData);
|
||||||
GuiText PageindicatorTxt2("2", 22, ( GXColor )
|
GuiText PageindicatorTxt2("2", 22, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
GuiButton PageIndicatorBtn2(PageindicatorImg2.GetWidth(), PageindicatorImg2.GetHeight());
|
GuiButton PageIndicatorBtn2(PageindicatorImg2.GetWidth(), PageindicatorImg2.GetHeight());
|
||||||
PageIndicatorBtn2.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
PageIndicatorBtn2.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
PageIndicatorBtn2.SetPosition(200, 400);
|
PageIndicatorBtn2.SetPosition(200, 400);
|
||||||
@ -191,8 +188,7 @@ int MenuSettings()
|
|||||||
PageIndicatorBtn2.SetEffectGrow();
|
PageIndicatorBtn2.SetEffectGrow();
|
||||||
|
|
||||||
GuiImage PageindicatorImg3(&PageindicatorImgData);
|
GuiImage PageindicatorImg3(&PageindicatorImgData);
|
||||||
GuiText PageindicatorTxt3("3", 22, ( GXColor )
|
GuiText PageindicatorTxt3("3", 22, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
GuiButton PageIndicatorBtn3(PageindicatorImg3.GetWidth(), PageindicatorImg3.GetHeight());
|
GuiButton PageIndicatorBtn3(PageindicatorImg3.GetWidth(), PageindicatorImg3.GetHeight());
|
||||||
PageIndicatorBtn3.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
PageIndicatorBtn3.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
PageIndicatorBtn3.SetPosition(235, 400);
|
PageIndicatorBtn3.SetPosition(235, 400);
|
||||||
@ -232,8 +228,7 @@ int MenuSettings()
|
|||||||
|
|
||||||
GuiImage MainButton1Img(&MainButtonImgData);
|
GuiImage MainButton1Img(&MainButtonImgData);
|
||||||
GuiImage MainButton1ImgOver(&MainButtonImgOverData);
|
GuiImage MainButton1ImgOver(&MainButtonImgOverData);
|
||||||
GuiText MainButton1Txt(MainButtonText, 22, ( GXColor )
|
GuiText MainButton1Txt(MainButtonText, 22, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
MainButton1Txt.SetMaxWidth(MainButton1Img.GetWidth());
|
MainButton1Txt.SetMaxWidth(MainButton1Img.GetWidth());
|
||||||
GuiButton MainButton1(MainButton1Img.GetWidth(), MainButton1Img.GetHeight());
|
GuiButton MainButton1(MainButton1Img.GetWidth(), MainButton1Img.GetHeight());
|
||||||
MainButton1.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
MainButton1.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
@ -248,8 +243,7 @@ int MenuSettings()
|
|||||||
|
|
||||||
GuiImage MainButton2Img(&MainButtonImgData);
|
GuiImage MainButton2Img(&MainButtonImgData);
|
||||||
GuiImage MainButton2ImgOver(&MainButtonImgOverData);
|
GuiImage MainButton2ImgOver(&MainButtonImgOverData);
|
||||||
GuiText MainButton2Txt(MainButtonText, 22, ( GXColor )
|
GuiText MainButton2Txt(MainButtonText, 22, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
MainButton2Txt.SetMaxWidth(MainButton2Img.GetWidth());
|
MainButton2Txt.SetMaxWidth(MainButton2Img.GetWidth());
|
||||||
GuiButton MainButton2(MainButton2Img.GetWidth(), MainButton2Img.GetHeight());
|
GuiButton MainButton2(MainButton2Img.GetWidth(), MainButton2Img.GetHeight());
|
||||||
MainButton2.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
MainButton2.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
@ -264,8 +258,7 @@ int MenuSettings()
|
|||||||
|
|
||||||
GuiImage MainButton3Img(&MainButtonImgData);
|
GuiImage MainButton3Img(&MainButtonImgData);
|
||||||
GuiImage MainButton3ImgOver(&MainButtonImgOverData);
|
GuiImage MainButton3ImgOver(&MainButtonImgOverData);
|
||||||
GuiText MainButton3Txt(MainButtonText, 22, ( GXColor )
|
GuiText MainButton3Txt(MainButtonText, 22, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
MainButton3Txt.SetMaxWidth(MainButton3Img.GetWidth());
|
MainButton3Txt.SetMaxWidth(MainButton3Img.GetWidth());
|
||||||
GuiButton MainButton3(MainButton3Img.GetWidth(), MainButton3Img.GetHeight());
|
GuiButton MainButton3(MainButton3Img.GetWidth(), MainButton3Img.GetHeight());
|
||||||
MainButton3.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
MainButton3.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
@ -280,8 +273,7 @@ int MenuSettings()
|
|||||||
|
|
||||||
GuiImage MainButton4Img(&MainButtonImgData);
|
GuiImage MainButton4Img(&MainButtonImgData);
|
||||||
GuiImage MainButton4ImgOver(&MainButtonImgOverData);
|
GuiImage MainButton4ImgOver(&MainButtonImgOverData);
|
||||||
GuiText MainButton4Txt(MainButtonText, 22, ( GXColor )
|
GuiText MainButton4Txt(MainButtonText, 22, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
MainButton4Txt.SetMaxWidth(MainButton4Img.GetWidth());
|
MainButton4Txt.SetMaxWidth(MainButton4Img.GetWidth());
|
||||||
GuiButton MainButton4(MainButton4Img.GetWidth(), MainButton4Img.GetHeight());
|
GuiButton MainButton4(MainButton4Img.GetWidth(), MainButton4Img.GetHeight());
|
||||||
MainButton4.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
MainButton4.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
@ -294,7 +286,7 @@ int MenuSettings()
|
|||||||
MainButton4.SetEffectGrow();
|
MainButton4.SetEffectGrow();
|
||||||
MainButton4.SetTrigger(&trigA);
|
MainButton4.SetTrigger(&trigA);
|
||||||
|
|
||||||
customOptionList options2(MAXOPTIONS);
|
OptionList options2;
|
||||||
GuiCustomOptionBrowser optionBrowser2(396, 280, &options2, "bg_options_settings.png", 0, 150);
|
GuiCustomOptionBrowser optionBrowser2(396, 280, &options2, "bg_options_settings.png", 0, 150);
|
||||||
optionBrowser2.SetPosition(0, 90);
|
optionBrowser2.SetPosition(0, 90);
|
||||||
optionBrowser2.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
optionBrowser2.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
@ -657,7 +649,7 @@ int MenuSettings()
|
|||||||
w.Remove(&MainButton4);
|
w.Remove(&MainButton4);
|
||||||
titleTxt.SetText(tr( "GUI Settings" ));
|
titleTxt.SetText(tr( "GUI Settings" ));
|
||||||
exit = false;
|
exit = false;
|
||||||
options2.SetLength(0);
|
options2.ClearList();
|
||||||
// optionBrowser2.SetScrollbar(1);
|
// optionBrowser2.SetScrollbar(1);
|
||||||
w.Append(&optionBrowser2);
|
w.Append(&optionBrowser2);
|
||||||
optionBrowser2.SetClickable(true);
|
optionBrowser2.SetClickable(true);
|
||||||
@ -929,7 +921,7 @@ int MenuSettings()
|
|||||||
w.Remove(&MainButton4);
|
w.Remove(&MainButton4);
|
||||||
titleTxt.SetText(tr( "Game Load" ));
|
titleTxt.SetText(tr( "Game Load" ));
|
||||||
exit = false;
|
exit = false;
|
||||||
options2.SetLength(0);
|
options2.ClearList();
|
||||||
w.Append(&optionBrowser2);
|
w.Append(&optionBrowser2);
|
||||||
optionBrowser2.SetClickable(true);
|
optionBrowser2.SetClickable(true);
|
||||||
ResumeGui();
|
ResumeGui();
|
||||||
@ -1161,7 +1153,7 @@ int MenuSettings()
|
|||||||
w.Remove(&MainButton4);
|
w.Remove(&MainButton4);
|
||||||
titleTxt.SetText(tr( "Parental Control" ));
|
titleTxt.SetText(tr( "Parental Control" ));
|
||||||
exit = false;
|
exit = false;
|
||||||
options2.SetLength(0);
|
options2.ClearList();
|
||||||
w.Append(&optionBrowser2);
|
w.Append(&optionBrowser2);
|
||||||
optionBrowser2.SetClickable(true);
|
optionBrowser2.SetClickable(true);
|
||||||
ResumeGui();
|
ResumeGui();
|
||||||
@ -1352,7 +1344,7 @@ int MenuSettings()
|
|||||||
w.Remove(&MainButton4);
|
w.Remove(&MainButton4);
|
||||||
titleTxt.SetText(tr( "Sound" ));
|
titleTxt.SetText(tr( "Sound" ));
|
||||||
exit = false;
|
exit = false;
|
||||||
options2.SetLength(0);
|
options2.ClearList();
|
||||||
w.Append(&optionBrowser2);
|
w.Append(&optionBrowser2);
|
||||||
optionBrowser2.SetClickable(true);
|
optionBrowser2.SetClickable(true);
|
||||||
ResumeGui();
|
ResumeGui();
|
||||||
@ -1564,7 +1556,7 @@ int MenuSettings()
|
|||||||
w.Remove(&MainButton4);
|
w.Remove(&MainButton4);
|
||||||
titleTxt.SetText(tr( "Custom Paths" ));
|
titleTxt.SetText(tr( "Custom Paths" ));
|
||||||
exit = false;
|
exit = false;
|
||||||
options2.SetLength(0);
|
options2.ClearList();
|
||||||
// optionBrowser2.SetScrollbar(1);
|
// optionBrowser2.SetScrollbar(1);
|
||||||
w.Append(&optionBrowser2);
|
w.Append(&optionBrowser2);
|
||||||
optionBrowser2.SetClickable(true);
|
optionBrowser2.SetClickable(true);
|
||||||
@ -2389,8 +2381,7 @@ int MenuGameSettings(struct discHdr * header)
|
|||||||
|
|
||||||
GuiImage MainButton4Img(&MainButtonImgData);
|
GuiImage MainButton4Img(&MainButtonImgData);
|
||||||
GuiImage MainButton4ImgOver(&MainButtonImgOverData);
|
GuiImage MainButton4ImgOver(&MainButtonImgOverData);
|
||||||
GuiText MainButton4Txt(MainButtonText, 22, ( GXColor )
|
GuiText MainButton4Txt(MainButtonText, 22, ( GXColor ) {0, 0, 0, 255});
|
||||||
{ 0, 0, 0, 255});
|
|
||||||
MainButton4Txt.SetMaxWidth(MainButton4Img.GetWidth());
|
MainButton4Txt.SetMaxWidth(MainButton4Img.GetWidth());
|
||||||
GuiButton MainButton4(MainButton4Img.GetWidth(), MainButton4Img.GetHeight());
|
GuiButton MainButton4(MainButton4Img.GetWidth(), MainButton4Img.GetHeight());
|
||||||
MainButton4.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
MainButton4.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
@ -2403,7 +2394,7 @@ int MenuGameSettings(struct discHdr * header)
|
|||||||
MainButton4.SetEffectGrow();
|
MainButton4.SetEffectGrow();
|
||||||
MainButton4.SetTrigger(&trigA);
|
MainButton4.SetTrigger(&trigA);
|
||||||
|
|
||||||
customOptionList options2(MAXOPTIONS);
|
OptionList options2;
|
||||||
GuiCustomOptionBrowser optionBrowser2(396, 280, &options2, "bg_options_settings.png", 0, 150);
|
GuiCustomOptionBrowser optionBrowser2(396, 280, &options2, "bg_options_settings.png", 0, 150);
|
||||||
optionBrowser2.SetPosition(0, 90);
|
optionBrowser2.SetPosition(0, 90);
|
||||||
optionBrowser2.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
optionBrowser2.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
|
||||||
@ -2523,7 +2514,7 @@ int MenuGameSettings(struct discHdr * header)
|
|||||||
w.Remove(&MainButton3);
|
w.Remove(&MainButton3);
|
||||||
w.Remove(&MainButton4);
|
w.Remove(&MainButton4);
|
||||||
exit = false;
|
exit = false;
|
||||||
options2.SetLength(0);
|
options2.ClearList();
|
||||||
w.Append(&optionBrowser2);
|
w.Append(&optionBrowser2);
|
||||||
optionBrowser2.SetClickable(true);
|
optionBrowser2.SetClickable(true);
|
||||||
ResumeGui();
|
ResumeGui();
|
||||||
@ -2705,7 +2696,7 @@ int MenuGameSettings(struct discHdr * header)
|
|||||||
if (last_alternatedol != 1)
|
if (last_alternatedol != 1)
|
||||||
{
|
{
|
||||||
firstRun = true; // force re-init follow Entries
|
firstRun = true; // force re-init follow Entries
|
||||||
options2.SetLength(Idx + 1);
|
options2.Resize(Idx + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2779,7 +2770,7 @@ int MenuGameSettings(struct discHdr * header)
|
|||||||
if (game_cfg.loadalternatedol == 0)
|
if (game_cfg.loadalternatedol == 0)
|
||||||
{
|
{
|
||||||
firstRun = true; // force re-init follow Entries
|
firstRun = true; // force re-init follow Entries
|
||||||
options2.SetLength(Idx--); // remove this Entry
|
options2.Resize(Idx--); // remove this Entry
|
||||||
options2.SetValue(Idx, "%s", tr( "Default" )); // re-set prev Entry
|
options2.SetValue(Idx, "%s", tr( "Default" )); // re-set prev Entry
|
||||||
}
|
}
|
||||||
else options2.SetValue(Idx, alternatedname);
|
else options2.SetValue(Idx, alternatedname);
|
||||||
@ -2835,7 +2826,7 @@ int MenuGameSettings(struct discHdr * header)
|
|||||||
w.Remove(&MainButton3);
|
w.Remove(&MainButton3);
|
||||||
w.Remove(&MainButton4);
|
w.Remove(&MainButton4);
|
||||||
exit = false;
|
exit = false;
|
||||||
options2.SetLength(0);
|
options2.ClearList();
|
||||||
w.Append(&optionBrowser2);
|
w.Append(&optionBrowser2);
|
||||||
optionBrowser2.SetClickable(true);
|
optionBrowser2.SetClickable(true);
|
||||||
ResumeGui();
|
ResumeGui();
|
||||||
|
@ -191,7 +191,7 @@ int MenuLanguageSelect()
|
|||||||
updateBtn.SetTrigger( &trigA );
|
updateBtn.SetTrigger( &trigA );
|
||||||
updateBtn.SetEffectGrow();
|
updateBtn.SetEffectGrow();
|
||||||
|
|
||||||
customOptionList options2( Dir.GetFilecount() );
|
OptionList options2;
|
||||||
|
|
||||||
for ( cnt = 0; cnt < Dir.GetFilecount(); cnt++ )
|
for ( cnt = 0; cnt < Dir.GetFilecount(); cnt++ )
|
||||||
{
|
{
|
||||||
|
@ -44,6 +44,8 @@ GameList::GameList()
|
|||||||
|
|
||||||
void GameList::clear()
|
void GameList::clear()
|
||||||
{
|
{
|
||||||
|
GameFilter.clear();
|
||||||
|
AvailableSearchChars.clear();
|
||||||
FullGameList.clear();
|
FullGameList.clear();
|
||||||
FilteredList.clear();
|
FilteredList.clear();
|
||||||
//! Clear memory of the vector completely
|
//! Clear memory of the vector completely
|
||||||
@ -71,8 +73,8 @@ struct discHdr * GameList::GetDiscHeader(const char * gameID)
|
|||||||
|
|
||||||
int GameList::ReadGameList()
|
int GameList::ReadGameList()
|
||||||
{
|
{
|
||||||
FullGameList.clear();
|
// Clear list
|
||||||
FilteredList.clear();
|
clear();
|
||||||
|
|
||||||
// Retrieve all stuff from WBFS
|
// Retrieve all stuff from WBFS
|
||||||
u32 cnt;
|
u32 cnt;
|
||||||
@ -80,6 +82,10 @@ int GameList::ReadGameList()
|
|||||||
int ret = WBFS_GetCount(&cnt);
|
int ret = WBFS_GetCount(&cnt);
|
||||||
if (ret < 0) return -1;
|
if (ret < 0) return -1;
|
||||||
|
|
||||||
|
// We are done here if no games are there
|
||||||
|
if(cnt == 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* Buffer length */
|
/* Buffer length */
|
||||||
u32 len = sizeof(struct discHdr) * cnt;
|
u32 len = sizeof(struct discHdr) * cnt;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user