mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-04 18:45:05 +01:00
* Changed the favorite icon to 5 stars, which can be used as a ranking system. The more stars are selected, the higher the game will show up in the favorites list. Games without stars are not shown in the favorite list.
* Changed credit screen.
This commit is contained in:
parent
fc8f4c2c7a
commit
62163b6512
File diff suppressed because one or more lines are too long
2
gui.pnps
2
gui.pnps
@ -1 +1 @@
|
||||
<pd><ViewState><e p="gui\source\mload" x="false"></e><e p="gui\source\settings" x="false"></e><e p="gui\source\images" x="false"></e><e p="gui\source\prompts" x="true"></e><e p="gui\source\banner" x="false"></e><e p="gui\source\cheats" x="false"></e><e p="gui\source\network" x="true"></e><e p="gui\source\unzip" x="false"></e><e p="gui\source\usbloader" x="false"></e><e p="gui\source\xml" x="false"></e><e p="gui\source\fonts" x="false"></e><e p="gui\source\ramdisc" x="false"></e><e p="gui\source\sounds" x="false"></e><e p="gui\source\wad" x="false"></e><e p="gui" x="true"></e><e p="gui\source\homebrewboot" x="false"></e><e p="gui\source\language" x="false"></e><e p="gui\source" x="true"></e><e p="gui\source\libwbfs" x="false"></e><e p="gui\source\libwiigui" x="true"></e><e p="gui\source\patches" x="false"></e></ViewState></pd>
|
||||
<pd><ViewState><e p="gui\source\mload" x="false"></e><e p="gui\source\settings" x="false"></e><e p="gui\source\sysmenu" x="false"></e><e p="gui\source\images" x="false"></e><e p="gui\source\prompts" x="false"></e><e p="gui\source\banner" x="false"></e><e p="gui\source\cheats" x="false"></e><e p="gui\source\network" x="false"></e><e p="gui\source\unzip" x="false"></e><e p="gui\source\usbloader" x="false"></e><e p="gui\source\xml" x="false"></e><e p="gui\source\fonts" x="false"></e><e p="gui\source\ramdisc" x="false"></e><e p="gui\source\sounds" x="false"></e><e p="gui\source\wad" x="false"></e><e p="gui" x="true"></e><e p="gui\source\homebrewboot" x="false"></e><e p="gui\source\language" x="false"></e><e p="gui\source" x="true"></e><e p="gui\source\libwbfs" x="false"></e><e p="gui\source\libwiigui" x="false"></e><e p="gui\source\patches" x="false"></e></ViewState></pd>
|
@ -344,6 +344,9 @@ extern const u32 searchIcon_png_size;
|
||||
extern const u8 abcIcon_png[];
|
||||
extern const u32 abcIcon_png_size;
|
||||
|
||||
extern const u8 rankIcon_png[];
|
||||
extern const u32 rankIcon_png_size;
|
||||
|
||||
extern const u8 playCountIcon_png[];
|
||||
extern const u32 playCountIcon_png_size;
|
||||
|
||||
|
BIN
source/images/rankIcon.png
Normal file
BIN
source/images/rankIcon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
@ -417,6 +417,10 @@ int MenuDiscList() {
|
||||
GuiImageData imgabcIcon(imgPath, abcIcon_png);
|
||||
snprintf(imgPath, sizeof(imgPath), "%sabcIcon_gray.png", CFG.theme_path);
|
||||
GuiImageData imgabcIcon_gray(imgPath, NULL);
|
||||
snprintf(imgPath, sizeof(imgPath), "%srankIcon.png", CFG.theme_path);
|
||||
GuiImageData imgrankIcon(imgPath, rankIcon_png);
|
||||
snprintf(imgPath, sizeof(imgPath), "%srankIcon_gray.png", CFG.theme_path);
|
||||
GuiImageData imgrankIcon_gray(imgPath, NULL);
|
||||
snprintf(imgPath, sizeof(imgPath), "%splayCountIcon.png", CFG.theme_path);
|
||||
GuiImageData imgplayCountIcon(imgPath, playCountIcon_png);
|
||||
snprintf(imgPath, sizeof(imgPath), "%splayCountIcon_gray.png", CFG.theme_path);
|
||||
@ -568,14 +572,14 @@ int MenuDiscList() {
|
||||
GuiButton searchBtn(&searchBtnImg_g,&searchBtnImg_g, ALIGN_LEFT, ALIGN_TOP, THEME.gamelist_search_x, THEME.gamelist_search_y, &trigA, &btnSoundOver, &btnClick,1, &searchBtnTT, -15, 52, 0, 3);
|
||||
searchBtn.SetAlpha(180);
|
||||
|
||||
GuiTooltip abcBtnTT(tr("Sort alphabetically"));
|
||||
GuiTooltip abcBtnTT(Settings.fave ? tr("Sort by rank") : tr("Sort alphabetically"));
|
||||
if (Settings.wsprompt == yes)
|
||||
abcBtnTT.SetWidescreen(CFG.widescreen);
|
||||
abcBtnTT.SetAlpha(THEME.tooltipAlpha);
|
||||
GuiImage abcBtnImg(&imgabcIcon);
|
||||
GuiImage abcBtnImg(Settings.fave ? &imgrankIcon : &imgabcIcon);
|
||||
abcBtnImg.SetWidescreen(CFG.widescreen);
|
||||
// GuiImage abcBtnImg_g(abcBtnImg); abcBtnImg_g.SetGrayscale();
|
||||
GuiImage abcBtnImg_g(&imgabcIcon_gray);
|
||||
GuiImage abcBtnImg_g(Settings.fave ? &imgrankIcon_gray : &imgabcIcon_gray);
|
||||
if(abcBtnImg_g.GetImage() == NULL) { abcBtnImg_g = abcBtnImg; abcBtnImg_g.SetGrayscale();}
|
||||
abcBtnImg_g.SetWidescreen(CFG.widescreen);
|
||||
GuiButton abcBtn(&abcBtnImg_g,&abcBtnImg_g, ALIGN_LEFT, ALIGN_TOP, THEME.gamelist_abc_x, THEME.gamelist_abc_y, &trigA, &btnSoundOver, &btnClick,1,&abcBtnTT, -15, 52, 0, 3);
|
||||
|
@ -222,28 +222,35 @@ void WindowCredits() {
|
||||
txt[i]->SetPosition(70,y);
|
||||
i++;
|
||||
|
||||
txt[i] = new GuiText("dimok / nIxx");
|
||||
txt[i] = new GuiText("nIxx / giantpune");
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(220,y);
|
||||
i++;
|
||||
y+=24;
|
||||
y+=22;
|
||||
|
||||
txt[i] = new GuiText("giantpune / ardi");
|
||||
txt[i] = new GuiText("ardi / lustar");
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(220,y);
|
||||
i++;
|
||||
y+=24;
|
||||
y+=22;
|
||||
|
||||
txt[i] = new GuiText("r-win");
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(220,y);
|
||||
i++;
|
||||
y+=22;
|
||||
|
||||
char text[100];
|
||||
|
||||
sprintf(text, "hungyip84 / DrayX7 %s", tr("(both retired)"));
|
||||
sprintf(text, "hungyip84 / DrayX7 %s", tr("(retired)"));
|
||||
txt[i] = new GuiText(text);
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(220,y);
|
||||
i++;
|
||||
y+=24;
|
||||
y+=22;
|
||||
|
||||
txt[i] = new GuiText("lustar");
|
||||
sprintf(text, "dimok %s", tr("(retired)"));
|
||||
txt[i] = new GuiText(text);
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(220,y);
|
||||
i++;
|
||||
@ -276,20 +283,20 @@ void WindowCredits() {
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(220,y);
|
||||
i++;
|
||||
y+=24;
|
||||
y+=22;
|
||||
|
||||
sprintf(text, "CorneliousJD %s", tr("for hosting the update files"));
|
||||
txt[i] = new GuiText(text);
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(220,y);
|
||||
i++;
|
||||
y+=30;
|
||||
y+=22;
|
||||
|
||||
txt[i] = new GuiText(tr("Special thanks to:"));
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(70,y);
|
||||
i++;
|
||||
y+=24;
|
||||
y+=22;
|
||||
|
||||
sprintf(text, "Waninkoko, Kwiirk & Hermes %s", tr("for the USB Loader source"));
|
||||
txt[i] = new GuiText(text);
|
||||
@ -980,6 +987,41 @@ WindowExitPrompt(const char *title, const char *msg, const char *btn1Label,
|
||||
return choice;
|
||||
}
|
||||
|
||||
void SetupFavoriteButton(GuiButton *btnFavorite, int xPos, GuiImage *img, GuiSound *sndOver, GuiSound *sndClick, GuiTrigger *trig)
|
||||
{
|
||||
btnFavorite->SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE);
|
||||
btnFavorite->SetPosition(xPos, -60);
|
||||
btnFavorite->SetImage(img);
|
||||
btnFavorite->SetSoundOver(sndOver);
|
||||
btnFavorite->SetSoundClick(sndClick);
|
||||
btnFavorite->SetTrigger(trig);
|
||||
btnFavorite->SetEffectGrow();
|
||||
}
|
||||
|
||||
u8 SetFavorite(GuiButton *fav1, GuiButton *fav2, GuiButton *fav3, GuiButton *fav4, GuiButton *fav5, u8* gameId, u8 favorite)
|
||||
{
|
||||
struct Game_NUM * game_num = CFG_get_game_num(gameId);
|
||||
if (game_num) {
|
||||
favoritevar = game_num->favorite;
|
||||
playcount = game_num->count;
|
||||
} else {
|
||||
favoritevar = 0;
|
||||
playcount = 0;
|
||||
}
|
||||
favoritevar = (favorite == favoritevar) ? 0 : favorite; // Press the current rank to reset the rank
|
||||
CFG_save_game_num(gameId);
|
||||
return favoritevar;
|
||||
}
|
||||
|
||||
void SetFavoriteImages(GuiImage *b1, GuiImage *b2, GuiImage *b3, GuiImage *b4, GuiImage *b5, GuiImageData *on, GuiImageData *off)
|
||||
{
|
||||
b1->SetImage(favoritevar >= 1 ? on : off);
|
||||
b2->SetImage(favoritevar >= 2 ? on : off);
|
||||
b3->SetImage(favoritevar >= 3 ? on : off);
|
||||
b4->SetImage(favoritevar >= 4 ? on : off);
|
||||
b5->SetImage(favoritevar >= 5 ? on : off);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* GameWindowPrompt
|
||||
*
|
||||
@ -1111,17 +1153,29 @@ int GameWindowPrompt() {
|
||||
GuiButton btn3(&btn3Img,&btn3Img, 0, 4, 50, -40, &trigA, &btnSoundOver, &btnClick,1);
|
||||
btn3.SetLabel(&btn3Txt);
|
||||
|
||||
GuiImage btnFavoriteImg;
|
||||
btnFavoriteImg.SetWidescreen(CFG.widescreen);
|
||||
GuiImage btnFavoriteImg1;
|
||||
btnFavoriteImg1.SetWidescreen(CFG.widescreen);
|
||||
GuiImage btnFavoriteImg2;
|
||||
btnFavoriteImg2.SetWidescreen(CFG.widescreen);
|
||||
GuiImage btnFavoriteImg3;
|
||||
btnFavoriteImg3.SetWidescreen(CFG.widescreen);
|
||||
GuiImage btnFavoriteImg4;
|
||||
btnFavoriteImg4.SetWidescreen(CFG.widescreen);
|
||||
GuiImage btnFavoriteImg5;
|
||||
btnFavoriteImg5.SetWidescreen(CFG.widescreen);
|
||||
|
||||
//GuiButton btnFavorite(&btnFavoriteImg,&btnFavoriteImg, 2, 5, -125, -60, &trigA, &btnSoundOver, &btnClick,1);
|
||||
GuiButton btnFavorite(imgFavorite.GetWidth(), imgFavorite.GetHeight());
|
||||
btnFavorite.SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE);
|
||||
btnFavorite.SetPosition(-125, -60);
|
||||
btnFavorite.SetImage(&btnFavoriteImg);
|
||||
btnFavorite.SetSoundOver(&btnSoundOver);
|
||||
btnFavorite.SetSoundClick(&btnClick);
|
||||
btnFavorite.SetTrigger(&trigA);
|
||||
btnFavorite.SetEffectGrow();
|
||||
GuiButton btnFavorite1(imgFavorite.GetWidth(), imgFavorite.GetHeight());
|
||||
GuiButton btnFavorite2(imgFavorite.GetWidth(), imgFavorite.GetHeight());
|
||||
GuiButton btnFavorite3(imgFavorite.GetWidth(), imgFavorite.GetHeight());
|
||||
GuiButton btnFavorite4(imgFavorite.GetWidth(), imgFavorite.GetHeight());
|
||||
GuiButton btnFavorite5(imgFavorite.GetWidth(), imgFavorite.GetHeight());
|
||||
|
||||
SetupFavoriteButton(&btnFavorite1, -198, &btnFavoriteImg1, &btnSoundOver, &btnClick, &trigA);
|
||||
SetupFavoriteButton(&btnFavorite2, -171, &btnFavoriteImg2, &btnSoundOver, &btnClick, &trigA);
|
||||
SetupFavoriteButton(&btnFavorite3, -144, &btnFavoriteImg3, &btnSoundOver, &btnClick, &trigA);
|
||||
SetupFavoriteButton(&btnFavorite4, -117, &btnFavoriteImg4, &btnSoundOver, &btnClick, &trigA);
|
||||
SetupFavoriteButton(&btnFavorite5, -90, &btnFavoriteImg5, &btnSoundOver, &btnClick, &trigA);
|
||||
|
||||
GuiImage btnLeftImg(&imgLeft);
|
||||
if (Settings.wsprompt == yes) {
|
||||
@ -1148,7 +1202,11 @@ int GameWindowPrompt() {
|
||||
promptWindow.Append(&sizeTxt);
|
||||
promptWindow.Append(&btnLeft);
|
||||
promptWindow.Append(&btnRight);
|
||||
promptWindow.Append(&btnFavorite);
|
||||
promptWindow.Append(&btnFavorite1);
|
||||
promptWindow.Append(&btnFavorite2);
|
||||
promptWindow.Append(&btnFavorite3);
|
||||
promptWindow.Append(&btnFavorite4);
|
||||
promptWindow.Append(&btnFavorite5);
|
||||
}
|
||||
|
||||
//check if unlocked
|
||||
@ -1277,7 +1335,7 @@ int GameWindowPrompt() {
|
||||
favoritevar = 0;
|
||||
}
|
||||
playcntTxt.SetTextf("%s: %i",tr("Play Count"), playcount);
|
||||
btnFavoriteImg.SetImage(favoritevar ? &imgFavorite : &imgNotFavorite);
|
||||
SetFavoriteImages(&btnFavoriteImg1, &btnFavoriteImg2, &btnFavoriteImg3, &btnFavoriteImg4, &btnFavoriteImg5, &imgFavorite, &imgNotFavorite);
|
||||
|
||||
nameTxt.SetPosition(0, 1);
|
||||
|
||||
@ -1340,25 +1398,46 @@ int GameWindowPrompt() {
|
||||
choice = 3;
|
||||
promptWindow.SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 50);
|
||||
}
|
||||
|
||||
else if (btnFavorite.GetState() == STATE_CLICKED) {//switch favorite
|
||||
else if (btnFavorite1.GetState() == STATE_CLICKED) {//switch favorite
|
||||
//if(isSdInserted()) {
|
||||
if (isInserted(bootDevice)) {
|
||||
struct Game_NUM * game_num = CFG_get_game_num(header->id);
|
||||
if (game_num) {
|
||||
playcount = game_num->count;
|
||||
favoritevar = game_num->favorite;
|
||||
} else {
|
||||
playcount = 0;
|
||||
favoritevar = 0;
|
||||
}
|
||||
favoritevar = (favoritevar + 1) % 2;
|
||||
CFG_save_game_num(header->id);
|
||||
btnFavoriteImg.SetImage(favoritevar ? &imgFavorite : &imgNotFavorite);
|
||||
SetFavorite(&btnFavorite1, &btnFavorite2, &btnFavorite3, &btnFavorite4, &btnFavorite5, header->id, 1);
|
||||
SetFavoriteImages(&btnFavoriteImg1, &btnFavoriteImg2, &btnFavoriteImg3, &btnFavoriteImg4, &btnFavoriteImg5, &imgFavorite, &imgNotFavorite);
|
||||
}
|
||||
btnFavorite.ResetState();
|
||||
btnFavorite1.ResetState();
|
||||
}
|
||||
else if (btnFavorite2.GetState() == STATE_CLICKED) {//switch favorite
|
||||
//if(isSdInserted()) {
|
||||
if (isInserted(bootDevice)) {
|
||||
SetFavorite(&btnFavorite1, &btnFavorite2, &btnFavorite3, &btnFavorite4, &btnFavorite5, header->id, 2);
|
||||
SetFavoriteImages(&btnFavoriteImg1, &btnFavoriteImg2, &btnFavoriteImg3, &btnFavoriteImg4, &btnFavoriteImg5, &imgFavorite, &imgNotFavorite);
|
||||
}
|
||||
btnFavorite2.ResetState();
|
||||
}
|
||||
else if (btnFavorite3.GetState() == STATE_CLICKED) {//switch favorite
|
||||
//if(isSdInserted()) {
|
||||
if (isInserted(bootDevice)) {
|
||||
SetFavorite(&btnFavorite1, &btnFavorite2, &btnFavorite3, &btnFavorite4, &btnFavorite5, header->id, 3);
|
||||
SetFavoriteImages(&btnFavoriteImg1, &btnFavoriteImg2, &btnFavoriteImg3, &btnFavoriteImg4, &btnFavoriteImg5, &imgFavorite, &imgNotFavorite);
|
||||
}
|
||||
btnFavorite3.ResetState();
|
||||
}
|
||||
else if (btnFavorite4.GetState() == STATE_CLICKED) {//switch favorite
|
||||
//if(isSdInserted()) {
|
||||
if (isInserted(bootDevice)) {
|
||||
SetFavorite(&btnFavorite1, &btnFavorite2, &btnFavorite3, &btnFavorite4, &btnFavorite5, header->id, 4);
|
||||
SetFavoriteImages(&btnFavoriteImg1, &btnFavoriteImg2, &btnFavoriteImg3, &btnFavoriteImg4, &btnFavoriteImg5, &imgFavorite, &imgNotFavorite);
|
||||
}
|
||||
btnFavorite4.ResetState();
|
||||
}
|
||||
else if (btnFavorite5.GetState() == STATE_CLICKED) {//switch favorite
|
||||
//if(isSdInserted()) {
|
||||
if (isInserted(bootDevice)) {
|
||||
SetFavorite(&btnFavorite1, &btnFavorite2, &btnFavorite3, &btnFavorite4, &btnFavorite5, header->id, 5);
|
||||
SetFavoriteImages(&btnFavoriteImg1, &btnFavoriteImg2, &btnFavoriteImg3, &btnFavoriteImg4, &btnFavoriteImg5, &imgFavorite, &imgNotFavorite);
|
||||
}
|
||||
btnFavorite5.ResetState();
|
||||
}
|
||||
|
||||
// this next part is long because nobody could agree on what the left/right buttons should do
|
||||
else if ((btnRight.GetState() == STATE_CLICKED) && (Settings.xflip == no)) {//next game
|
||||
promptWindow.SetEffect(EFFECT_SLIDE_RIGHT | EFFECT_SLIDE_OUT, 50);
|
||||
|
@ -96,6 +96,28 @@ s32 __Menu_EntryCmpCount(const void *a, const void *b) {
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 __Menu_EntryCmpFavorite(const void *a, const void *b) {
|
||||
s32 ret;
|
||||
|
||||
struct discHdr *hdr1 = (struct discHdr *)a;
|
||||
|
||||
struct discHdr *hdr2 = (struct discHdr *)b;
|
||||
|
||||
/* Compare Favorite (rank) */
|
||||
u16 fav1 = 0;
|
||||
u16 fav2 = 0;
|
||||
struct Game_NUM* game_num1 = CFG_get_game_num(hdr1->id);
|
||||
struct Game_NUM* game_num2 = CFG_get_game_num(hdr2->id);
|
||||
|
||||
if (game_num1) fav1 = game_num1->favorite;
|
||||
if (game_num2) fav2 = game_num2->favorite;
|
||||
|
||||
ret = (s32) (fav2-fav1);
|
||||
if (ret == 0) return stricmp(get_title(hdr1), get_title(hdr2));
|
||||
|
||||
return ret;
|
||||
}
|
||||
/****************************************************************************
|
||||
* Get PrevFilter
|
||||
***************************************************************************/
|
||||
@ -396,6 +418,8 @@ int buildTitleList(int t, wchar_t* gameFilter, discHdr ** PgameList, u32 *PgameC
|
||||
|
||||
if (Settings.sort==pcount) {
|
||||
qsort(buffer, cnt, sizeof(struct discHdr), __Menu_EntryCmpCount);
|
||||
} else if (Settings.fave) {
|
||||
qsort(buffer, cnt, sizeof(struct discHdr), __Menu_EntryCmpFavorite);
|
||||
} else {
|
||||
qsort(buffer, cnt, sizeof(struct discHdr), __Menu_EntryCmp);
|
||||
}
|
||||
@ -481,6 +505,8 @@ int __Menu_GetGameList(int t, wchar_t* gameFilter, discHdr ** PgameList, u32 *Pg
|
||||
|
||||
if (Settings.sort==pcount) {
|
||||
qsort(buffer, cnt, sizeof(struct discHdr), __Menu_EntryCmpCount);
|
||||
} else if (Settings.fave) {
|
||||
qsort(buffer, cnt, sizeof(struct discHdr), __Menu_EntryCmpFavorite);
|
||||
} else {
|
||||
qsort(buffer, cnt, sizeof(struct discHdr), __Menu_EntryCmp);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user