fixed some code dumps from the coverwall and the xml stuff.

This commit is contained in:
giantpune 2009-06-11 08:13:08 +00:00
parent 6abaf293d8
commit d31a034d18
12 changed files with 467 additions and 402 deletions

File diff suppressed because one or more lines are too long

View File

@ -13,6 +13,8 @@
#include "getentries.h" #include "getentries.h"
#include "SettingsPrompts.h" #include "SettingsPrompts.h"
#define MAXOPTIONS 11
/*** Extern functions ***/ /*** Extern functions ***/
extern void ResumeGui(); extern void ResumeGui();
extern void HaltGui(); extern void HaltGui();
@ -225,7 +227,7 @@ int MenuSettings()
MainButton4.SetEffectGrow(); MainButton4.SetEffectGrow();
MainButton4.SetTrigger(&trigA); MainButton4.SetTrigger(&trigA);
customOptionList options2(10); customOptionList options2(MAXOPTIONS);
GuiCustomOptionBrowser optionBrowser2(396, 280, &options2, CFG.theme_path, "bg_options_settings.png", bg_options_settings_png, 0, 150); GuiCustomOptionBrowser optionBrowser2(396, 280, &options2, CFG.theme_path, "bg_options_settings.png", 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);
@ -461,6 +463,7 @@ int MenuSettings()
w.Remove(&MainButton4); w.Remove(&MainButton4);
titleTxt.SetText(LANGUAGE.GUISettings); titleTxt.SetText(LANGUAGE.GUISettings);
exit = false; exit = false;
for(int i = 0; i <= MAXOPTIONS; i++) options2.SetName(i, NULL);
options2.SetName(0, "%s",LANGUAGE.AppLanguage); options2.SetName(0, "%s",LANGUAGE.AppLanguage);
options2.SetName(1, "%s",LANGUAGE.Display); options2.SetName(1, "%s",LANGUAGE.Display);
options2.SetName(2, "%s",LANGUAGE.Clock); options2.SetName(2, "%s",LANGUAGE.Clock);
@ -471,7 +474,8 @@ int MenuSettings()
options2.SetName(7, "%s",LANGUAGE.Wiilight); options2.SetName(7, "%s",LANGUAGE.Wiilight);
options2.SetName(8, "%s",LANGUAGE.Rumble); options2.SetName(8, "%s",LANGUAGE.Rumble);
options2.SetName(9, "%s",LANGUAGE.Unicodefix); options2.SetName(9, "%s",LANGUAGE.Unicodefix);
for(int i = 0; i < 10; i++) options2.SetValue(i, NULL); options2.SetName(10, "%s",LANGUAGE.XMLTitles);
for(int i = 0; i <= MAXOPTIONS; i++) options2.SetValue(i, NULL);
optionBrowser2.SetScrollbar(1); optionBrowser2.SetScrollbar(1);
w.Append(&optionBrowser2); w.Append(&optionBrowser2);
optionBrowser2.SetClickable(true); optionBrowser2.SetClickable(true);
@ -509,7 +513,8 @@ int MenuSettings()
Settings.rumble = 0; //RUMBLE Settings.rumble = 0; //RUMBLE
if ( Settings.unicodefix > 2 ) if ( Settings.unicodefix > 2 )
Settings.unicodefix = 0; Settings.unicodefix = 0;
if(Settings.titlesOverride >= 2)
Settings.titlesOverride = 0;
if(!strcmp("notset", Settings.language_path)) if(!strcmp("notset", Settings.language_path))
options2.SetValue(0, "%s", LANGUAGE.Default); options2.SetValue(0, "%s", LANGUAGE.Default);
else else
@ -552,11 +557,14 @@ int MenuSettings()
else if (Settings.unicodefix == 1) options2.SetValue(9,"%s",LANGUAGE.TChinese); else if (Settings.unicodefix == 1) options2.SetValue(9,"%s",LANGUAGE.TChinese);
else if (Settings.unicodefix == 2) options2.SetValue(9,"%s",LANGUAGE.SChinese); else if (Settings.unicodefix == 2) options2.SetValue(9,"%s",LANGUAGE.SChinese);
if(backBtn.GetState() == STATE_CLICKED) if (Settings.titlesOverride == 0) options2.SetValue(10,"%s",LANGUAGE.OFF);
else if (Settings.titlesOverride == 1) options2.SetValue(10,"%s",LANGUAGE.ON);
if(backBtn.GetState() == STATE_CLICKED)
{ {
backBtn.ResetState(); backBtn.ResetState();
exit = true; exit = true;
break; break;
} }
if(shutdown == 1) if(shutdown == 1)
@ -657,6 +665,16 @@ int MenuSettings()
case 9: case 9:
Settings.unicodefix++; Settings.unicodefix++;
break; break;
case 10:
//HaltGui(); this isn't done on the fly yet. you have to restart the loader for it to take effect
Settings.titlesOverride++;
//if(isInserted(bootDevice)) {
//cfg_save_global();
//}
//CFG_Load();
//__Menu_GetEntries();
//ResumeGui();
break;
} }
} }
optionBrowser2.SetEffect(EFFECT_FADE, -20); optionBrowser2.SetEffect(EFFECT_FADE, -20);
@ -686,6 +704,7 @@ int MenuSettings()
w.Remove(&MainButton4); w.Remove(&MainButton4);
titleTxt.SetText(LANGUAGE.Gameload); titleTxt.SetText(LANGUAGE.Gameload);
exit = false; exit = false;
for(int i = 0; i <= MAXOPTIONS; i++) options2.SetName(i, NULL);
options2.SetName(0, "%s",LANGUAGE.VideoMode); options2.SetName(0, "%s",LANGUAGE.VideoMode);
options2.SetName(1, "%s",LANGUAGE.VIDTVPatch); options2.SetName(1, "%s",LANGUAGE.VIDTVPatch);
options2.SetName(2, "%s",LANGUAGE.Language); options2.SetName(2, "%s",LANGUAGE.Language);
@ -693,10 +712,7 @@ int MenuSettings()
options2.SetName(4, "Ocarina"); options2.SetName(4, "Ocarina");
options2.SetName(5,"%s", LANGUAGE.BootStandard); options2.SetName(5,"%s", LANGUAGE.BootStandard);
options2.SetName(6, "%s",LANGUAGE.QuickBoot); options2.SetName(6, "%s",LANGUAGE.QuickBoot);
options2.SetName(7, NULL); for(int i = 0; i <= MAXOPTIONS; i++) options2.SetValue(i, NULL);
options2.SetName(8, NULL);
options2.SetName(9, NULL);
for(int i = 0; i < 10; i++) options2.SetValue(i, NULL);
w.Append(&optionBrowser2); w.Append(&optionBrowser2);
optionBrowser2.SetClickable(true); optionBrowser2.SetClickable(true);
ResumeGui(); ResumeGui();
@ -849,17 +865,11 @@ int MenuSettings()
w.Remove(&MainButton4); w.Remove(&MainButton4);
titleTxt.SetText(LANGUAGE.Parentalcontrol); titleTxt.SetText(LANGUAGE.Parentalcontrol);
exit = false; exit = false;
for(int i = 0; i <= MAXOPTIONS; i++) options2.SetName(i, NULL);
options2.SetName(0, "Console"); options2.SetName(0, "Console");
options2.SetName(1, "%s", LANGUAGE.Password); options2.SetName(1, "%s", LANGUAGE.Password);
options2.SetName(2, "%s",LANGUAGE.Controllevel); options2.SetName(2, "%s",LANGUAGE.Controllevel);
options2.SetName(3, NULL); for(int i = 0; i <= MAXOPTIONS; i++) options2.SetValue(i, NULL);
options2.SetName(4, NULL);
options2.SetName(5, NULL);
options2.SetName(6, NULL);
options2.SetName(7, NULL);
options2.SetName(8, NULL);
options2.SetName(9, NULL);
for(int i = 0; i < 10; i++) options2.SetValue(i, NULL);
w.Append(&optionBrowser2); w.Append(&optionBrowser2);
optionBrowser2.SetClickable(true); optionBrowser2.SetClickable(true);
ResumeGui(); ResumeGui();
@ -1016,17 +1026,11 @@ int MenuSettings()
w.Remove(&MainButton4); w.Remove(&MainButton4);
titleTxt.SetText(LANGUAGE.Sound); titleTxt.SetText(LANGUAGE.Sound);
exit = false; exit = false;
for(int i = 0; i <= MAXOPTIONS; i++) options2.SetName(i, NULL);
options2.SetName(0, "%s",LANGUAGE.Backgroundmusic); options2.SetName(0, "%s",LANGUAGE.Backgroundmusic);
options2.SetName(1, "%s",LANGUAGE.Volume); options2.SetName(1, "%s",LANGUAGE.Volume);
options2.SetName(2, "%s",LANGUAGE.SFXVolume); options2.SetName(2, "%s",LANGUAGE.SFXVolume);
options2.SetName(3, NULL); for(int i = 0; i <= MAXOPTIONS; i++) options2.SetValue(i, NULL);
options2.SetName(4, NULL);
options2.SetName(5, NULL);
options2.SetName(6, NULL);
options2.SetName(7, NULL);
options2.SetName(8, NULL);
options2.SetName(9, NULL);
for(int i = 0; i < 10; i++) options2.SetValue(i, NULL);
w.Append(&optionBrowser2); w.Append(&optionBrowser2);
optionBrowser2.SetClickable(true); optionBrowser2.SetClickable(true);
ResumeGui(); ResumeGui();
@ -1164,6 +1168,7 @@ int MenuSettings()
w.Remove(&MainButton4); w.Remove(&MainButton4);
titleTxt.SetText(LANGUAGE.Custompaths); titleTxt.SetText(LANGUAGE.Custompaths);
exit = false; exit = false;
for(int i = 0; i <= MAXOPTIONS; i++) options2.SetName(i, NULL);
if(Settings.godmode) if(Settings.godmode)
options2.SetName(0, "%s", LANGUAGE.CoverPath); options2.SetName(0, "%s", LANGUAGE.CoverPath);
options2.SetName(1, "%s", LANGUAGE.DiscimagePath); options2.SetName(1, "%s", LANGUAGE.DiscimagePath);
@ -1171,11 +1176,7 @@ int MenuSettings()
options2.SetName(3, "%s", LANGUAGE.Titlestxtpath); options2.SetName(3, "%s", LANGUAGE.Titlestxtpath);
options2.SetName(4, "%s", LANGUAGE.Updatepath); options2.SetName(4, "%s", LANGUAGE.Updatepath);
options2.SetName(5, "%s", LANGUAGE.Cheatcodespath); options2.SetName(5, "%s", LANGUAGE.Cheatcodespath);
options2.SetName(6, NULL); for(int i = 0; i <= MAXOPTIONS; i++) options2.SetValue(i, NULL);
options2.SetName(7, NULL);
options2.SetName(8, NULL);
options2.SetName(9, NULL);
for(int i = 0; i < 10; i++) options2.SetValue(i, NULL);
w.Append(&optionBrowser2); w.Append(&optionBrowser2);
optionBrowser2.SetClickable(true); optionBrowser2.SetClickable(true);
ResumeGui(); ResumeGui();

View File

@ -355,6 +355,7 @@ void Global_Default(void)
Settings.unicodefix = 0; Settings.unicodefix = 0;
Settings.wiilight = 1; Settings.wiilight = 1;
Settings.patchcountrystrings = 0; Settings.patchcountrystrings = 0;
Settings.titlesOverride = 0;
} }
@ -980,6 +981,13 @@ void global_cfg_set(char *name, char *val)
} }
return; return;
} }
else if (strcmp(name, "titlesOverride") == 0) {
int i;
if (sscanf(val, "%d", &i) == 1) {
Settings.titlesOverride = i;
}
return;
}
else if (strcmp(name, "gameDisplay") == 0) { else if (strcmp(name, "gameDisplay") == 0) {
int i; int i;
if (sscanf(val, "%d", &i) == 1) { if (sscanf(val, "%d", &i) == 1) {
@ -1216,6 +1224,7 @@ bool cfg_save_global()// save global settings
fprintf(f, "gameDisplay = %d\n ", Settings.gameDisplay); fprintf(f, "gameDisplay = %d\n ", Settings.gameDisplay);
fprintf(f, "update_path = %s\n ", Settings.update_path); fprintf(f, "update_path = %s\n ", Settings.update_path);
fprintf(f, "Cheatcodespath = %s\n ", Settings.Cheatcodespath); fprintf(f, "Cheatcodespath = %s\n ", Settings.Cheatcodespath);
fprintf(f, "titlesOverride = %d\n ", Settings.titlesOverride);
fprintf(f, "patchcountrystrings = %d\n ", Settings.patchcountrystrings); fprintf(f, "patchcountrystrings = %d\n ", Settings.patchcountrystrings);
fclose(f); fclose(f);
return true; return true;
@ -1492,6 +1501,7 @@ bool cfg_load_global()
} }
Settings.volume = 80; Settings.volume = 80;
Settings.sfxvolume = 80; Settings.sfxvolume = 80;
Settings.titlesOverride = 0;
return cfg_parsefile(GXGlobal_cfg, &global_cfg_set); return cfg_parsefile(GXGlobal_cfg, &global_cfg_set);
} }
@ -1551,6 +1561,16 @@ bool CFG_forget_game_opt(u8 *id)
return cfg_save_games(); return cfg_save_games();
} }
void CFG_LoadXml()
{
char pathname[200];
/* load renamed titles from proper names and game info XML, needs to be after cfg_load_games - Lustar */
snprintf(pathname, sizeof(pathname), "%s%s", Settings.titlestxt_path, "wiitdb.xml");
OpenXMLFile(pathname);
LoadTitlesFromXML("English", false); // options can be added to set force title language to any language and force Japanese title to English
}
void CFG_Load(void) void CFG_Load(void)
{ {
char pathname[200]; char pathname[200];
@ -1582,11 +1602,8 @@ void CFG_Load(void)
cfg_load_games(); cfg_load_games();
cfg_load_game_num(); cfg_load_game_num();
/* load renamed titles from proper names and game info XML, needs to be after cfg_load_games - Lustar */ if (Settings.titlesOverride==1)CFG_LoadXml();
//snprintf(pathname, sizeof(pathname), "%s%s", Settings.titlestxt_path, "wiitdb.zip");
//OpenXMLFile(pathname);
//LoadTitlesFromXML("English", false); // options can be added to set force title language to any language and force Japanese title to English
Global_Default(); //global default depends on theme information Global_Default(); //global default depends on theme information
CFG_LoadGlobal(); CFG_LoadGlobal();

View File

@ -329,10 +329,12 @@ struct SSettings {
char ogg_path[150]; char ogg_path[150];
char update_path[150]; char update_path[150];
char Cheatcodespath[100]; char Cheatcodespath[100];
int titlesOverride;
}; };
void CFG_LoadGlobal(void); void CFG_LoadGlobal(void);
bool cfg_save_global(void); bool cfg_save_global(void);
void CFG_LoadXml();
//Astidof - End of modification //Astidof - End of modification
char *get_title(struct discHdr *header); char *get_title(struct discHdr *header);

View File

@ -20,61 +20,6 @@
#include "xml.h" #include "xml.h"
GuiText * debugTxt = NULL;
int cnt;
GuiImageData * playersImgData = NULL;
GuiImage * playersImg = NULL;
GuiImageData * wifiplayersImgData = NULL;
GuiImage * wifiplayersImg = NULL;
GuiImage * ratingImg = NULL;
GuiImage * classiccontrollerImg;
GuiImage * nunchuckImg;
GuiImage * guitarImg;
GuiImage * drumsImg;
GuiImage * dancepadImg;
GuiImage * motionplusImg;
GuiImage * wheelImg;
GuiImage * balanceboardImg;
GuiImage * microphoneImg;
GuiImage * gcImg;
GuiImage * dialogBoxImg1;
GuiImage * dialogBoxImg2;
GuiImage * dialogBoxImg3;
GuiImage * dialogBoxImg4;
GuiImage * dialogBoxImg11;
GuiImage * dialogBoxImg22;
GuiImage * dialogBoxImg33;
GuiImage * dialogBoxImg44;
GuiImage * coverImg;
GuiImage * coverImg2;
GuiImageData * classiccontrollerImgData = NULL;
GuiImageData * nunchuckImgData = NULL;
GuiImageData * guitarImgData = NULL;
GuiImageData * drumsImgData = NULL;
GuiImageData * motionplusImgData = NULL;
GuiImageData * wheelImgData = NULL;
GuiImageData * balanceboardImgData = NULL;
GuiImageData * dancepadImgData = NULL;
GuiImageData * microphoneImgData = NULL;
GuiImageData * gamecubeImgData = NULL;
GuiImageData * ratingImgData = NULL;
GuiImageData * cover = NULL;
GuiText * releasedTxt = NULL;
GuiText * publisherTxt = NULL;
GuiText * developerTxt = NULL;
GuiText * titleTxt = NULL;
GuiText * synopsisTxt = NULL;
GuiText * genreTxt = NULL;
GuiText * betaTxt = NULL;
GuiText * beta1Txt = NULL;
GuiText ** wifiTxt = NULL;
/*** Extern variables ***/ /*** Extern variables ***/
extern GuiWindow * mainWindow; extern GuiWindow * mainWindow;
extern GuiSound * bgMusic; extern GuiSound * bgMusic;
@ -85,61 +30,6 @@ extern u8 reset;
extern void ResumeGui(); extern void ResumeGui();
extern void HaltGui(); extern void HaltGui();
void eatADick()
{
// use this to display variables on the window GuiText * debugTxt = NULL;
playersImgData = NULL;
playersImg = NULL;
wifiplayersImgData = NULL;
wifiplayersImg = NULL;
ratingImg = NULL;
classiccontrollerImg = NULL;
nunchuckImg = NULL;
guitarImg = NULL;
drumsImg = NULL;
dancepadImg = NULL;
motionplusImg = NULL;
wheelImg = NULL;
balanceboardImg = NULL;
microphoneImg = NULL;
gcImg = NULL;
dialogBoxImg1 = NULL;
dialogBoxImg2 = NULL;
dialogBoxImg3 = NULL;
dialogBoxImg4 = NULL;
dialogBoxImg11 = NULL;
dialogBoxImg22 = NULL;
dialogBoxImg33 = NULL;
dialogBoxImg44 = NULL;
coverImg = NULL;
coverImg2 = NULL;
classiccontrollerImgData = NULL;
nunchuckImgData = NULL;
guitarImgData = NULL;
drumsImgData = NULL;
motionplusImgData = NULL;
wheelImgData = NULL;
balanceboardImgData = NULL;
dancepadImgData = NULL;
microphoneImgData = NULL;
gamecubeImgData = NULL;
ratingImgData = NULL;
cover = NULL;
releasedTxt = NULL;
publisherTxt = NULL;
developerTxt = NULL;
titleTxt = NULL;
synopsisTxt = NULL;
genreTxt = NULL;
betaTxt = NULL;
beta1Txt = NULL;
}
/**************************************************************************** /****************************************************************************
* gameinfo * gameinfo
@ -147,6 +37,19 @@ beta1Txt = NULL;
int int
showGameInfo(char *ID, u8 *headerID) showGameInfo(char *ID, u8 *headerID)
{ {
u8 nodata=1;
//load the xml shit
char pathname[100];
snprintf(pathname, sizeof(pathname), "%s%s", Settings.titlestxt_path, "wiitdb.zip");
bool fileexists = OpenXMLFile(pathname);
if(!fileexists) {
snprintf(pathname, sizeof(pathname), "%s%s", Settings.titlestxt_path, "wiitdb.xml");
fileexists = OpenXMLFile(pathname);
}
if(fileexists) {
snprintf(pathname, sizeof(pathname), "English");
if (Settings.titlesOverride==1)LoadTitlesFromXML(pathname, false); // options can be added to set force title language to any language and force Japanese title to English
int choice = -1; int choice = -1;
//int i = 0; //int i = 0;
int y = 0, y1 = 32; int y = 0, y1 = 32;
@ -164,6 +67,58 @@ showGameInfo(char *ID, u8 *headerID)
int newline=1; int newline=1;
u8 page =1; u8 page =1;
// GuiText * debugTxt = NULL;
GuiImageData * playersImgData = NULL;
GuiImage * playersImg = NULL;
GuiImageData * wifiplayersImgData = NULL;
GuiImage * wifiplayersImg = NULL;
GuiImage * ratingImg = NULL;
GuiImage * classiccontrollerImg = NULL;
GuiImage * nunchuckImg = NULL;
GuiImage * guitarImg = NULL;
GuiImage * drumsImg = NULL;
GuiImage * dancepadImg = NULL;
GuiImage * motionplusImg = NULL;
GuiImage * wheelImg = NULL;
GuiImage * balanceboardImg = NULL;
GuiImage * microphoneImg = NULL;
GuiImage * gcImg = NULL;
GuiImage * dialogBoxImg1 = NULL;
GuiImage * dialogBoxImg2 = NULL;
GuiImage * dialogBoxImg3 = NULL;
GuiImage * dialogBoxImg4 = NULL;
GuiImage * dialogBoxImg11 = NULL;
GuiImage * dialogBoxImg22 = NULL;
GuiImage * dialogBoxImg33 = NULL;
GuiImage * dialogBoxImg44 = NULL;
GuiImage * coverImg = NULL;
GuiImage * coverImg2 = NULL;
GuiImageData * classiccontrollerImgData = NULL;
GuiImageData * nunchuckImgData = NULL;
GuiImageData * guitarImgData = NULL;
GuiImageData * drumsImgData = NULL;
GuiImageData * motionplusImgData = NULL;
GuiImageData * wheelImgData = NULL;
GuiImageData * balanceboardImgData = NULL;
GuiImageData * dancepadImgData = NULL;
GuiImageData * microphoneImgData = NULL;
GuiImageData * gamecubeImgData = NULL;
GuiImageData * ratingImgData = NULL;
GuiImageData * cover = NULL;
GuiText * releasedTxt = NULL;
GuiText * publisherTxt = NULL;
GuiText * developerTxt = NULL;
GuiText * titleTxt = NULL;
GuiText * synopsisTxt = NULL;
GuiText * genreTxt = NULL;
GuiText * betaTxt = NULL;
GuiText * beta1Txt = NULL;
GuiWindow gameinfoWindow(600,308); GuiWindow gameinfoWindow(600,308);
gameinfoWindow.SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE); gameinfoWindow.SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE);
gameinfoWindow.SetPosition(0, -50); gameinfoWindow.SetPosition(0, -50);
@ -190,31 +145,23 @@ showGameInfo(char *ID, u8 *headerID)
GuiImageData dialogBox3(imgPath, gameinfo2_png); GuiImageData dialogBox3(imgPath, gameinfo2_png);
snprintf(imgPath, sizeof(imgPath), "%sgameinfo2a_png.png", CFG.theme_path); snprintf(imgPath, sizeof(imgPath), "%sgameinfo2a_png.png", CFG.theme_path);
GuiImageData dialogBox4(imgPath, gameinfo2a_png); GuiImageData dialogBox4(imgPath, gameinfo2a_png);
GuiTrigger trigA; GuiTrigger trigA;
trigA.SetButtonOnlyTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A); trigA.SetButtonOnlyTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
GuiTrigger trigB; GuiTrigger trigB;
trigB.SetButtonOnlyTrigger(-1, WPAD_BUTTON_B | WPAD_CLASSIC_BUTTON_B, PAD_BUTTON_B); trigB.SetButtonOnlyTrigger(-1, WPAD_BUTTON_B | WPAD_CLASSIC_BUTTON_B, PAD_BUTTON_B);
GuiButton backBtn(0,0); GuiButton backBtn(0,0);
backBtn.SetPosition(-20,-20); backBtn.SetPosition(-20,-20);
backBtn.SetTrigger(&trigB); backBtn.SetTrigger(&trigB);
gameinfoWindow.Append(&backBtn); gameinfoWindow.Append(&backBtn);
GuiButton nextBtn(0,0); GuiButton nextBtn(0,0);
nextBtn.SetPosition(20,20); nextBtn.SetPosition(20,20);
nextBtn.SetTrigger(&trigA); nextBtn.SetTrigger(&trigA);
gameinfoWindow.Append(&nextBtn); gameinfoWindow.Append(&nextBtn);
//load the xml shit
char pathname[100];
snprintf(pathname, sizeof(pathname), "%s%s", Settings.titlestxt_path, "wiitdb.zip");
OpenXMLFile(pathname);
snprintf(pathname, sizeof(pathname), "English");
LoadTitlesFromXML(pathname, false); // options can be added to set force title language to any language and force Japanese title to English
/*struct Game_CFG *game_cfg = NULL; /*struct Game_CFG *game_cfg = NULL;
int opt_lang; int opt_lang;
char langtexttmp[11][22] = char langtexttmp[11][22] =
@ -235,95 +182,95 @@ showGameInfo(char *ID, u8 *headerID)
} else { } else {
opt_lang = Settings.language; opt_lang = Settings.language;
}*/ }*/
LoadGameInfoFromXML(ID,pathname); if (LoadGameInfoFromXML(ID,pathname))nodata=0;
//LoadGameInfoFromXML(ID,langtexttmp[opt_lang]); //LoadGameInfoFromXML(ID,langtexttmp[opt_lang]);
char linebuf[1000] = ""; char linebuf[1000] = "";
char linebuf2[100] = ""; char linebuf2[100] = "";
// set images for required input // set images for required input
for (int i=0;strcmp(gameinfo.accessories_required[i+1],"") != 0;i++) for (int i=0;strcmp(gameinfo.accessories_required[i+1],"") != 0;i++)
{ {
if (strcmp(gameinfo.accessories_required[i+1],"nunchuk")==0) if (strcmp(gameinfo.accessories_required[i+1],"nunchuk")==0)
{nunchuckImgData = new GuiImageData(nunchuckR_png);nunchuk=1;} {nunchuckImgData = new GuiImageData(nunchuckR_png);nunchuk=1;}
else else
nunchuckImgData = new GuiImageData(nunchuck_png); nunchuckImgData = new GuiImageData(nunchuck_png);
if (strcmp(gameinfo.accessories_required[i+1],"classiccontroller")==0) if (strcmp(gameinfo.accessories_required[i+1],"classiccontroller")==0)
{classiccontrollerImgData = new GuiImageData(classiccontrollerR_png);classiccontroller=1;} {classiccontrollerImgData = new GuiImageData(classiccontrollerR_png);classiccontroller=1;}
else else
classiccontrollerImgData = new GuiImageData(classiccontroller_png); classiccontrollerImgData = new GuiImageData(classiccontroller_png);
if (strcmp(gameinfo.accessories_required[i+1],"guitar")==0) if (strcmp(gameinfo.accessories_required[i+1],"guitar")==0)
{guitarImgData = new GuiImageData(guitarR_png);guitar=1;} {guitarImgData = new GuiImageData(guitarR_png);guitar=1;}
else else
guitarImgData = new GuiImageData(guitar_png); guitarImgData = new GuiImageData(guitar_png);
if (strcmp(gameinfo.accessories_required[i+1],"gamecube")==0) if (strcmp(gameinfo.accessories_required[i+1],"gamecube")==0)
{gamecubeImgData = new GuiImageData(gcncontrollerR_png);gamecube=1;} {gamecubeImgData = new GuiImageData(gcncontrollerR_png);gamecube=1;}
else else
gamecubeImgData = new GuiImageData(gcncontroller_png); gamecubeImgData = new GuiImageData(gcncontroller_png);
if (strcmp(gameinfo.accessories_required[i+1],"wheel")==0) if (strcmp(gameinfo.accessories_required[i+1],"wheel")==0)
{wheelImgData = new GuiImageData(wheelR_png);wheel=1;} {wheelImgData = new GuiImageData(wheelR_png);wheel=1;}
else else
wheelImgData = new GuiImageData(wheel_png); wheelImgData = new GuiImageData(wheel_png);
if (strcmp(gameinfo.accessories_required[i+1],"motionplus")==0) if (strcmp(gameinfo.accessories_required[i+1],"motionplus")==0)
{motionplusImgData = new GuiImageData(motionplusR_png);motionplus=1;} {motionplusImgData = new GuiImageData(motionplusR_png);motionplus=1;}
else else
motionplusImgData = new GuiImageData(motionplus_png); motionplusImgData = new GuiImageData(motionplus_png);
if (strcmp(gameinfo.accessories_required[i+1],"drums")==0) if (strcmp(gameinfo.accessories_required[i+1],"drums")==0)
{drumsImgData = new GuiImageData(drumsR_png);drums=1;} {drumsImgData = new GuiImageData(drumsR_png);drums=1;}
else else
drumsImgData = new GuiImageData(drums_png); drumsImgData = new GuiImageData(drums_png);
if (strcmp(gameinfo.accessories_required[i+1],"microphone")==0) if (strcmp(gameinfo.accessories_required[i+1],"microphone")==0)
{microphoneImgData = new GuiImageData(microphoneR_png);microphone=1;} {microphoneImgData = new GuiImageData(microphoneR_png);microphone=1;}
else else
microphoneImgData = new GuiImageData(microphone_png); microphoneImgData = new GuiImageData(microphone_png);
if (strcmp(gameinfo.accessories_required[i+1],"balanceboard")==0) if (strcmp(gameinfo.accessories_required[i+1],"balanceboard")==0)
{balanceboardImgData = new GuiImageData(balanceboardR_png);balanceboard=1;} {balanceboardImgData = new GuiImageData(balanceboardR_png);balanceboard=1;}
else else
balanceboardImgData = new GuiImageData(balanceboard_png); balanceboardImgData = new GuiImageData(balanceboard_png);
if (strcmp(gameinfo.accessories_required[i+1],"dancepad")==0) if (strcmp(gameinfo.accessories_required[i+1],"dancepad")==0)
{dancepadImgData = new GuiImageData(dancepadR_png);dancepad=1;} {dancepadImgData = new GuiImageData(dancepadR_png);dancepad=1;}
else else
dancepadImgData = new GuiImageData(dancepad_png); dancepadImgData = new GuiImageData(dancepad_png);
} }
for (int i=0;strcmp(gameinfo.accessories[i+1],"") != 0;i++) for (int i=0;strcmp(gameinfo.accessories[i+1],"") != 0;i++)
{ {
if (strcmp(gameinfo.accessories_required[i],"classiccontroller")==0) if (strcmp(gameinfo.accessories_required[i],"classiccontroller")==0)
classiccontroller=1; classiccontroller=1;
if (strcmp(gameinfo.accessories[i+1],"nunchuk")==0) if (strcmp(gameinfo.accessories[i+1],"nunchuk")==0)
{nunchuk=1;} {nunchuk=1;}
if (strcmp(gameinfo.accessories[i+1],"guitar")==0) if (strcmp(gameinfo.accessories[i+1],"guitar")==0)
guitar=1; guitar=1;
if (strcmp(gameinfo.accessories_required[i],"drums")==0) if (strcmp(gameinfo.accessories_required[i],"drums")==0)
drums=1; drums=1;
if (strcmp(gameinfo.accessories_required[i],"dancepad")==0) if (strcmp(gameinfo.accessories_required[i],"dancepad")==0)
dancepad=1; dancepad=1;
if (strcmp(gameinfo.accessories_required[i],"motionplus")==0) if (strcmp(gameinfo.accessories_required[i],"motionplus")==0)
motionplus=1; motionplus=1;
if (strcmp(gameinfo.accessories_required[i],"wheel")==0) if (strcmp(gameinfo.accessories_required[i],"wheel")==0)
wheel=1; wheel=1;
if (strcmp(gameinfo.accessories_required[i],"balanceboard")==0) if (strcmp(gameinfo.accessories_required[i],"balanceboard")==0)
balanceboard=1; balanceboard=1;
if (strcmp(gameinfo.accessories_required[i],"microphone")==0) if (strcmp(gameinfo.accessories_required[i],"microphone")==0)
microphone=1; microphone=1;
if (strcmp(gameinfo.accessories_required[i],"gamecube")==0) if (strcmp(gameinfo.accessories_required[i],"gamecube")==0)
gamecube=1; gamecube=1;
} }
@ -334,20 +281,20 @@ showGameInfo(char *ID, u8 *headerID)
dialogBoxImg1 = new GuiImage(&dialogBox1); dialogBoxImg1 = new GuiImage(&dialogBox1);
dialogBoxImg1->SetAlignment(0,3); dialogBoxImg1->SetAlignment(0,3);
dialogBoxImg1->SetPosition(-9,0); dialogBoxImg1->SetPosition(-9,0);
dialogBoxImg2 = new GuiImage(&dialogBox2); dialogBoxImg2 = new GuiImage(&dialogBox2);
dialogBoxImg2->SetAlignment(0,3); dialogBoxImg2->SetAlignment(0,3);
dialogBoxImg2->SetPosition(145,0); dialogBoxImg2->SetPosition(145,0);
dialogBoxImg3 = new GuiImage(&dialogBox3); dialogBoxImg3 = new GuiImage(&dialogBox3);
dialogBoxImg3->SetAlignment(0,3); dialogBoxImg3->SetAlignment(0,3);
dialogBoxImg3->SetPosition(301,0); dialogBoxImg3->SetPosition(301,0);
dialogBoxImg4 = new GuiImage(&dialogBox4); dialogBoxImg4 = new GuiImage(&dialogBox4);
dialogBoxImg4->SetAlignment(0,3); dialogBoxImg4->SetAlignment(0,3);
dialogBoxImg4->SetPosition(457,0); dialogBoxImg4->SetPosition(457,0);
gameinfoWindow.Append(dialogBoxImg1); gameinfoWindow.Append(dialogBoxImg1);
gameinfoWindow.Append(dialogBoxImg2); gameinfoWindow.Append(dialogBoxImg2);
gameinfoWindow.Append(dialogBoxImg3); gameinfoWindow.Append(dialogBoxImg3);
@ -368,7 +315,7 @@ showGameInfo(char *ID, u8 *headerID)
coverImg->SetWidescreen(CFG.widescreen); coverImg->SetWidescreen(CFG.widescreen);
coverImg->SetPosition(15,30); coverImg->SetPosition(15,30);
gameinfoWindow.Append(coverImg); gameinfoWindow.Append(coverImg);
// # of players // # of players
if (strcmp(gameinfo.players,"") != 0) { if (strcmp(gameinfo.players,"") != 0) {
playersImgData = new GuiImageData(Wiimote1_png); playersImgData = new GuiImageData(Wiimote1_png);
@ -376,7 +323,7 @@ showGameInfo(char *ID, u8 *headerID)
playersImgData= new GuiImageData(Wiimote2_png);} playersImgData= new GuiImageData(Wiimote2_png);}
if (atoi(gameinfo.players)>2){ if (atoi(gameinfo.players)>2){
playersImgData= new GuiImageData(Wiimote4_png);} playersImgData= new GuiImageData(Wiimote4_png);}
playersImg = new GuiImage(playersImgData); playersImg = new GuiImage(playersImgData);
playersImg->SetWidescreen(CFG.widescreen); playersImg->SetWidescreen(CFG.widescreen);
playersImg->SetPosition(intputX , inputY); playersImg->SetPosition(intputX , inputY);
@ -384,7 +331,7 @@ showGameInfo(char *ID, u8 *headerID)
gameinfoWindow.Append(playersImg); gameinfoWindow.Append(playersImg);
intputX += (CFG.widescreen ? playersImg->GetWidth() * .8 : playersImg->GetWidth())+5; intputX += (CFG.widescreen ? playersImg->GetWidth() * .8 : playersImg->GetWidth())+5;
} }
//draw the inupt types for this game //draw the inupt types for this game
if (nunchuk==1){ if (nunchuk==1){
nunchuckImg = new GuiImage(nunchuckImgData); nunchuckImg = new GuiImage(nunchuckImgData);
@ -393,7 +340,7 @@ showGameInfo(char *ID, u8 *headerID)
nunchuckImg->SetAlignment(0,4); nunchuckImg->SetAlignment(0,4);
gameinfoWindow.Append(nunchuckImg); gameinfoWindow.Append(nunchuckImg);
intputX += (CFG.widescreen ? nunchuckImg->GetWidth() * .8 : nunchuckImg->GetWidth())+5;} intputX += (CFG.widescreen ? nunchuckImg->GetWidth() * .8 : nunchuckImg->GetWidth())+5;}
if (classiccontroller==1){ if (classiccontroller==1){
classiccontrollerImg = new GuiImage(classiccontrollerImgData); classiccontrollerImg = new GuiImage(classiccontrollerImgData);
classiccontrollerImg->SetWidescreen(CFG.widescreen); classiccontrollerImg->SetWidescreen(CFG.widescreen);
@ -401,7 +348,7 @@ showGameInfo(char *ID, u8 *headerID)
classiccontrollerImg->SetAlignment(0,4); classiccontrollerImg->SetAlignment(0,4);
gameinfoWindow.Append(classiccontrollerImg); gameinfoWindow.Append(classiccontrollerImg);
intputX += (CFG.widescreen ? classiccontrollerImg->GetWidth() * .8 : classiccontrollerImg->GetWidth())+5;} intputX += (CFG.widescreen ? classiccontrollerImg->GetWidth() * .8 : classiccontrollerImg->GetWidth())+5;}
if (gamecube==1){ if (gamecube==1){
gcImg = new GuiImage(gamecubeImgData); gcImg = new GuiImage(gamecubeImgData);
gcImg->SetWidescreen(CFG.widescreen); gcImg->SetWidescreen(CFG.widescreen);
@ -409,7 +356,7 @@ showGameInfo(char *ID, u8 *headerID)
gcImg->SetAlignment(0,4); gcImg->SetAlignment(0,4);
gameinfoWindow.Append(gcImg); gameinfoWindow.Append(gcImg);
intputX += (CFG.widescreen ? gcImg->GetWidth() * .8 : gcImg->GetWidth())+5;} intputX += (CFG.widescreen ? gcImg->GetWidth() * .8 : gcImg->GetWidth())+5;}
if (wheel==1){ if (wheel==1){
wheelImg = new GuiImage(wheelImgData); wheelImg = new GuiImage(wheelImgData);
wheelImg->SetWidescreen(CFG.widescreen); wheelImg->SetWidescreen(CFG.widescreen);
@ -417,7 +364,7 @@ showGameInfo(char *ID, u8 *headerID)
wheelImg->SetAlignment(0,4); wheelImg->SetAlignment(0,4);
gameinfoWindow.Append(wheelImg); gameinfoWindow.Append(wheelImg);
intputX += (CFG.widescreen ? wheelImg->GetWidth() * .8 : wheelImg->GetWidth())+5;} intputX += (CFG.widescreen ? wheelImg->GetWidth() * .8 : wheelImg->GetWidth())+5;}
if (guitar==1){ if (guitar==1){
guitarImg = new GuiImage(guitarImgData); guitarImg = new GuiImage(guitarImgData);
guitarImg->SetWidescreen(CFG.widescreen); guitarImg->SetWidescreen(CFG.widescreen);
@ -425,7 +372,7 @@ showGameInfo(char *ID, u8 *headerID)
guitarImg->SetAlignment(0,4); guitarImg->SetAlignment(0,4);
gameinfoWindow.Append(guitarImg); gameinfoWindow.Append(guitarImg);
intputX += (CFG.widescreen ? guitarImg->GetWidth() * .8 : guitarImg->GetWidth())+5;} intputX += (CFG.widescreen ? guitarImg->GetWidth() * .8 : guitarImg->GetWidth())+5;}
if (drums==1){ if (drums==1){
drumsImg = new GuiImage(drumsImgData); drumsImg = new GuiImage(drumsImgData);
drumsImg->SetWidescreen(CFG.widescreen); drumsImg->SetWidescreen(CFG.widescreen);
@ -433,7 +380,7 @@ showGameInfo(char *ID, u8 *headerID)
drumsImg->SetAlignment(0,4); drumsImg->SetAlignment(0,4);
gameinfoWindow.Append(drumsImg); gameinfoWindow.Append(drumsImg);
intputX += (CFG.widescreen ? drumsImg->GetWidth() * .8 : drumsImg->GetWidth())+5;} intputX += (CFG.widescreen ? drumsImg->GetWidth() * .8 : drumsImg->GetWidth())+5;}
if (microphone==1){ if (microphone==1){
microphoneImg = new GuiImage(microphoneImgData); microphoneImg = new GuiImage(microphoneImgData);
microphoneImg->SetWidescreen(CFG.widescreen); microphoneImg->SetWidescreen(CFG.widescreen);
@ -441,7 +388,7 @@ showGameInfo(char *ID, u8 *headerID)
microphoneImg->SetAlignment(0,4); microphoneImg->SetAlignment(0,4);
gameinfoWindow.Append(microphoneImg); gameinfoWindow.Append(microphoneImg);
intputX += (CFG.widescreen ? microphoneImg->GetWidth() * .8 : microphoneImg->GetWidth())+5;} intputX += (CFG.widescreen ? microphoneImg->GetWidth() * .8 : microphoneImg->GetWidth())+5;}
if (dancepad==1){ if (dancepad==1){
dancepadImg = new GuiImage(dancepadImgData); dancepadImg = new GuiImage(dancepadImgData);
dancepadImg->SetWidescreen(CFG.widescreen); dancepadImg->SetWidescreen(CFG.widescreen);
@ -449,7 +396,7 @@ showGameInfo(char *ID, u8 *headerID)
dancepadImg->SetAlignment(0,4); dancepadImg->SetAlignment(0,4);
gameinfoWindow.Append(dancepadImg); gameinfoWindow.Append(dancepadImg);
intputX += (CFG.widescreen ? dancepadImg->GetWidth() * .8 : dancepadImg->GetWidth())+5;} intputX += (CFG.widescreen ? dancepadImg->GetWidth() * .8 : dancepadImg->GetWidth())+5;}
if (motionplus==1){ if (motionplus==1){
motionplusImg = new GuiImage(motionplusImgData); motionplusImg = new GuiImage(motionplusImgData);
motionplusImg->SetWidescreen(CFG.widescreen); motionplusImg->SetWidescreen(CFG.widescreen);
@ -458,20 +405,18 @@ showGameInfo(char *ID, u8 *headerID)
gameinfoWindow.Append(motionplusImg); gameinfoWindow.Append(motionplusImg);
intputX += (CFG.widescreen ? motionplusImg->GetWidth() * .8 : motionplusImg->GetWidth())+5;} intputX += (CFG.widescreen ? motionplusImg->GetWidth() * .8 : motionplusImg->GetWidth())+5;}
// # online players // # online players
if (strcmp(gameinfo.wifiplayers,"") != 0) { if ((strcmp(gameinfo.wifiplayers,"") != 0) && (strcmp(gameinfo.wifiplayers,"0") != 0)){
wifiplayersImgData = new GuiImageData(wifi1_png); wifiplayersImgData = new GuiImageData(wifi1_png);
if (atoi(gameinfo.wifiplayers)>1){ if (atoi(gameinfo.wifiplayers)>1){
wifiplayersImgData= new GuiImageData(wifi2_png);} wifiplayersImgData= new GuiImageData(wifi2_png);}
if (atoi(gameinfo.wifiplayers)>2){ if (atoi(gameinfo.wifiplayers)>2){
wifiplayersImgData= new GuiImageData(wifi4_png);} wifiplayersImgData= new GuiImageData(wifi4_png);}
if (atoi(gameinfo.wifiplayers)>4){ if (atoi(gameinfo.wifiplayers)>4){
wifiplayersImgData= new GuiImageData(wifi8_png);} wifiplayersImgData= new GuiImageData(wifi8_png);}
wifiplayersImg = new GuiImage(wifiplayersImgData); wifiplayersImg = new GuiImage(wifiplayersImgData);
wifiplayersImg->SetWidescreen(CFG.widescreen); wifiplayersImg->SetWidescreen(CFG.widescreen);
wifiplayersImg->SetPosition(intputX , inputY); wifiplayersImg->SetPosition(intputX , inputY);
@ -480,23 +425,23 @@ showGameInfo(char *ID, u8 *headerID)
intputX += (CFG.widescreen ? wifiplayersImg->GetWidth() * .8 : wifiplayersImg->GetWidth())+5; intputX += (CFG.widescreen ? wifiplayersImg->GetWidth() * .8 : wifiplayersImg->GetWidth())+5;
} }
// ratings // ratings
if (strcmp(gameinfo.ratingtype,"") !=0){ if (strcmp(gameinfo.ratingtype,"") !=0){
if (strcmp(gameinfo.ratingtype,"ESRB")==0) { if (strcmp(gameinfo.ratingtype,"ESRB")==0) {
if (strcmp(gameinfo.ratingvalueESRB,"EC")==0) if (strcmp(gameinfo.ratingvalueESRB,"EC")==0)
ratingImgData = new GuiImageData(esrb_ec_png); ratingImgData = new GuiImageData(esrb_ec_png);
else if (strcmp(gameinfo.ratingvalueESRB,"E")==0) else if (strcmp(gameinfo.ratingvalueESRB,"E")==0)
ratingImgData = new GuiImageData(esrb_e_png); ratingImgData = new GuiImageData(esrb_e_png);
else if (strcmp(gameinfo.ratingvalueESRB,"E10+")==0) else if (strcmp(gameinfo.ratingvalueESRB,"E10+")==0)
ratingImgData = new GuiImageData(esrb_eten_png); ratingImgData = new GuiImageData(esrb_eten_png);
else if (strcmp(gameinfo.ratingvalueESRB,"T")==0) else if (strcmp(gameinfo.ratingvalueESRB,"T")==0)
ratingImgData = new GuiImageData(esrb_t_png); ratingImgData = new GuiImageData(esrb_t_png);
else if (strcmp(gameinfo.ratingvalueESRB,"M")==0) else if (strcmp(gameinfo.ratingvalueESRB,"M")==0)
ratingImgData = new GuiImageData(esrb_m_png); ratingImgData = new GuiImageData(esrb_m_png);
else if (strcmp(gameinfo.ratingvalueESRB,"AO")==0) else if (strcmp(gameinfo.ratingvalueESRB,"AO")==0)
ratingImgData = new GuiImageData(esrb_ao_png); ratingImgData = new GuiImageData(esrb_ao_png);
else {ratingImgData = new GuiImageData(norating_png);} else {ratingImgData = new GuiImageData(norating_png);}
} //there are 2 values here cause some countries are stupid and } //there are 2 values here cause some countries are stupid and
else if (strcmp(gameinfo.ratingtype,"PEGI")==0) {//can't use the same as everybody else else if (strcmp(gameinfo.ratingtype,"PEGI")==0) {//can't use the same as everybody else
if ((strcmp(gameinfo.ratingvaluePEGI,"3")==0)||(strcmp(gameinfo.ratingvaluePEGI,"4")==0)) if ((strcmp(gameinfo.ratingvaluePEGI,"3")==0)||(strcmp(gameinfo.ratingvaluePEGI,"4")==0))
ratingImgData = new GuiImageData(pegi_3_png); ratingImgData = new GuiImageData(pegi_3_png);
@ -510,7 +455,7 @@ showGameInfo(char *ID, u8 *headerID)
ratingImgData = new GuiImageData(pegi_18_png); ratingImgData = new GuiImageData(pegi_18_png);
else {ratingImgData = new GuiImageData(norating_png);} else {ratingImgData = new GuiImageData(norating_png);}
} }
else if (strcmp(gameinfo.ratingtype,"CERO")==0) { else if (strcmp(gameinfo.ratingtype,"CERO")==0) {
if (strcmp(gameinfo.ratingvalueCERO,"A")==0) if (strcmp(gameinfo.ratingvalueCERO,"A")==0)
ratingImgData = new GuiImageData(cero_a_png); ratingImgData = new GuiImageData(cero_a_png);
@ -533,30 +478,30 @@ showGameInfo(char *ID, u8 *headerID)
ratingImg->SetAlignment(1,4); ratingImg->SetAlignment(1,4);
gameinfoWindow.Append(ratingImg); gameinfoWindow.Append(ratingImg);
intputX += (CFG.widescreen ? ratingImg->GetWidth() * .8 : ratingImg->GetWidth())+5; intputX += (CFG.widescreen ? ratingImg->GetWidth() * .8 : ratingImg->GetWidth())+5;
} }
//////////debugging line //////////debugging line
/* snprintf(linebuf, sizeof(linebuf), "%s %s %s %s %i %s",gameinfo.ratingtype ,gameinfo.ratingvalueESRB,gameinfo.ratingvaluePEGI,gameinfo.ratingvalueCERO, ass,LANGUAGE.released); /* snprintf(linebuf, sizeof(linebuf), "%s %s %s %s %i %s",gameinfo.ratingtype ,gameinfo.ratingvalueESRB,gameinfo.ratingvaluePEGI,gameinfo.ratingvalueCERO, ass,LANGUAGE.released);
for (int i=0;strcmp(gameinfo.accessories_required[i+1],"") != 0;i++) for (int i=0;strcmp(gameinfo.accessories_required[i+1],"") != 0;i++)
{ {
snprintf(linebuf, sizeof(linebuf), "%s %s",linebuf, gameinfo.accessories_required[i+1]); snprintf(linebuf, sizeof(linebuf), "%s %s",linebuf, gameinfo.accessories_required[i+1]);
} }
debugTxt = new GuiText(linebuf, 18, (GXColor){0,0,0, 255}); debugTxt = new GuiText(linebuf, 18, (GXColor){0,0,0, 255});
debugTxt->SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); debugTxt->SetPosition(0,0); debugTxt->SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); debugTxt->SetPosition(0,0);
gameinfoWindow.Append(debugTxt);*/ gameinfoWindow.Append(debugTxt);*/
if (strcmp(gameinfo.title,"") != 0) if (strcmp(gameinfo.title,"") != 0)
{snprintf(linebuf, sizeof(linebuf), "%s",gameinfo.title); {snprintf(linebuf, sizeof(linebuf), "%s",gameinfo.title);
titleTxt = new GuiText(linebuf, 22, (GXColor){0,0,0, 255}); titleTxt = new GuiText(linebuf, 22, (GXColor){0,0,0, 255});
if (titleTxt->GetWidth()>300)titleTxt->SetFontSize(18); if (titleTxt->GetWidth()>300)titleTxt->SetFontSize(18);
titleTxt->SetAlignment(ALIGN_CENTRE, ALIGN_TOP); titleTxt->SetPosition(txtXOffset,12+y); y+=24; titleTxt->SetAlignment(ALIGN_CENTRE, ALIGN_TOP); titleTxt->SetPosition(txtXOffset,12+y); y+=24;
gameinfoWindow.Append(titleTxt);} gameinfoWindow.Append(titleTxt);}
//date //date
snprintf(linebuf2, sizeof(linebuf2), " "); snprintf(linebuf2, sizeof(linebuf2), " ");
if (strcmp(gameinfo.day,"") != 0) if (strcmp(gameinfo.day,"") != 0)
@ -601,9 +546,9 @@ debugTxt = new GuiText(linebuf, 18, (GXColor){0,0,0, 255});
snprintf(linebuf2, sizeof(linebuf2), "%s%s ", linebuf2, LANGUAGE.december); snprintf(linebuf2, sizeof(linebuf2), "%s%s ", linebuf2, LANGUAGE.december);
break; break;
} }
} }
if (strcmp(gameinfo.year,"") != 0)newline=1; if (strcmp(gameinfo.year,"") != 0){newline=1;
{snprintf(linebuf, sizeof(linebuf), "%s : %s%s", LANGUAGE.released, linebuf2, gameinfo.year); snprintf(linebuf, sizeof(linebuf), "%s : %s%s", LANGUAGE.released, linebuf2, gameinfo.year);
releasedTxt = new GuiText(linebuf, 16, (GXColor){0,0,0, 255}); releasedTxt = new GuiText(linebuf, 16, (GXColor){0,0,0, 255});
if (releasedTxt->GetWidth()>300) newline=2; if (releasedTxt->GetWidth()>300) newline=2;
releasedTxt->SetAlignment(ALIGN_RIGHT, ALIGN_TOP); releasedTxt->SetPosition(-17,12+y); y+=(20 * newline);newline=1; releasedTxt->SetAlignment(ALIGN_RIGHT, ALIGN_TOP); releasedTxt->SetPosition(-17,12+y); y+=(20 * newline);newline=1;
@ -615,7 +560,7 @@ debugTxt = new GuiText(linebuf, 18, (GXColor){0,0,0, 255});
if (genreTxt->GetWidth()>300) newline=2; if (genreTxt->GetWidth()>300) newline=2;
genreTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP); genreTxt->SetPosition(205,12+y1); y1+=(25 * newline);newline=1; genreTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP); genreTxt->SetPosition(205,12+y1); y1+=(25 * newline);newline=1;
gameinfoWindow.Append(genreTxt);} gameinfoWindow.Append(genreTxt);}
//developer //developer
if (strcmp(gameinfo.developer,"") != 0 && strcmp(gameinfo.developer,gameinfo.publisher) != 0) if (strcmp(gameinfo.developer,"") != 0 && strcmp(gameinfo.developer,gameinfo.publisher) != 0)
{snprintf(linebuf, sizeof(linebuf), "%s %s", LANGUAGE.developedby, gameinfo.developer); {snprintf(linebuf, sizeof(linebuf), "%s %s", LANGUAGE.developedby, gameinfo.developer);
@ -633,58 +578,58 @@ debugTxt = new GuiText(linebuf, 18, (GXColor){0,0,0, 255});
publisherTxt->SetMaxWidth(250,GuiText::WRAP); publisherTxt->SetMaxWidth(250,GuiText::WRAP);
publisherTxt->SetAlignment(ALIGN_RIGHT, ALIGN_TOP); publisherTxt->SetPosition(-17,12+y); y+=(20 * newline);newline=1; publisherTxt->SetAlignment(ALIGN_RIGHT, ALIGN_TOP); publisherTxt->SetPosition(-17,12+y); y+=(20 * newline);newline=1;
gameinfoWindow.Append(publisherTxt);} gameinfoWindow.Append(publisherTxt);}
//don't bother us txt //don't bother us txt
snprintf(linebuf, sizeof(linebuf), "Don't bother the USB Loader GX Team about errors in this file."); snprintf(linebuf, sizeof(linebuf), "Don't bother the USB Loader GX Team about errors in this file.");
betaTxt = new GuiText(linebuf, 14, (GXColor){0,0,0, 255}); betaTxt = new GuiText(linebuf, 14, (GXColor){0,0,0, 255});
betaTxt->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); betaTxt->SetPosition(-17,-20);// betaTxt->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); betaTxt->SetPosition(-17,-20);//
gameinfoWindow.Append(betaTxt); gameinfoWindow.Append(betaTxt);
snprintf(linebuf, sizeof(linebuf), "A site will be available in the near nuture to submit changes."); snprintf(linebuf, sizeof(linebuf), "A site will be available in the near nuture to submit changes.");
beta1Txt = new GuiText(linebuf, 14, (GXColor){0,0,0, 255}); beta1Txt = new GuiText(linebuf, 14, (GXColor){0,0,0, 255});
beta1Txt->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); beta1Txt->SetPosition(-17,-10); beta1Txt->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); beta1Txt->SetPosition(-17,-10);
gameinfoWindow.Append(beta1Txt); gameinfoWindow.Append(beta1Txt);
// WiFi Shit commented out cause it has a code dump in it still // WiFi Shit commented out cause it has a code dump in it still
/*if (strcmp(gameinfo.wififeatures[0],"") != 0){ /*if (strcmp(gameinfo.wififeatures[0],"") != 0){
snprintf(linebuf, sizeof(linebuf), "%s:",LANGUAGE.wififeatures); snprintf(linebuf, sizeof(linebuf), "%s:",LANGUAGE.wififeatures);
wifiTxt[0] = new GuiText(linebuf, 16, (GXColor){0,0,0, 255}); wifiTxt = new GuiText(linebuf, 16, (GXColor){0,0,0, 255});
wifiTxt[0]->SetAlignment(ALIGN_LEFT, ALIGN_TOP); wifiTxt[0]->SetPosition(205,12+y); y+=(20 * newline); wifiTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP); wifiTxt->SetPosition(205,12+y); y+=(20 * newline);
gameinfoWindow.Append(wifiTxt[0]);} gameinfoWindow.Append(wifiTxt);}
for (int i=1;strcmp(gameinfo.wififeatures[i],"") != 0;i++) for (int i=1;strcmp(gameinfo.wififeatures[i],"") != 0;i++)
{ {
snprintf(linebuf, sizeof(linebuf), "%s",gameinfo.wififeatures[i]); snprintf(linebuf, sizeof(linebuf), "%s",gameinfo.wififeatures[i]);
wifiTxt[i] = new GuiText(linebuf, 16, (GXColor){0,0,0, 255}); wifiTxt[i] = new GuiText(linebuf, 16, (GXColor){0,0,0, 255});
wifiTxt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP); wifiTxt[i]->SetPosition(210,12+y); y+=(20 * newline); wifiTxt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP); wifiTxt[i]->SetPosition(210,12+y); y+=(20 * newline);
gameinfoWindow.Append(wifiTxt[i]);}*/ gameinfoWindow.Append(wifiTxt[i]);}*/
//synopsis //synopsis
if (strcmp(gameinfo.synopsis,"") != 0) if (strcmp(gameinfo.synopsis,"") != 0)
{snprintf(linebuf, sizeof(linebuf), "%s", gameinfo.synopsis); {snprintf(linebuf, sizeof(linebuf), "%s", gameinfo.synopsis);
synopsisTxt = new GuiText(linebuf, 16, (GXColor){0,0,0, 255}); synopsisTxt = new GuiText(linebuf, 16, (GXColor){0,0,0, 255});
synopsisTxt->SetMaxWidth(350,GuiText::WRAP); synopsisTxt->SetMaxWidth(350,GuiText::WRAP);
synopsisTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP); synopsisTxt->SetPosition(0,0); synopsisTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP); synopsisTxt->SetPosition(0,0);
dialogBoxImg11 = new GuiImage(&dialogBox1); dialogBoxImg11 = new GuiImage(&dialogBox1);
dialogBoxImg11->SetAlignment(0,3); dialogBoxImg11->SetAlignment(0,3);
dialogBoxImg11->SetPosition(-9,0); dialogBoxImg11->SetPosition(-9,0);
dialogBoxImg22 = new GuiImage(&dialogBox2); dialogBoxImg22 = new GuiImage(&dialogBox2);
dialogBoxImg22->SetAlignment(0,3); dialogBoxImg22->SetAlignment(0,3);
dialogBoxImg22->SetPosition(145,0); dialogBoxImg22->SetPosition(145,0);
dialogBoxImg33 = new GuiImage(&dialogBox3); dialogBoxImg33 = new GuiImage(&dialogBox3);
dialogBoxImg33->SetAlignment(0,3); dialogBoxImg33->SetAlignment(0,3);
dialogBoxImg33->SetPosition(301,0); dialogBoxImg33->SetPosition(301,0);
dialogBoxImg44 = new GuiImage(&dialogBox4); dialogBoxImg44 = new GuiImage(&dialogBox4);
dialogBoxImg44->SetAlignment(0,3); dialogBoxImg44->SetAlignment(0,3);
dialogBoxImg44->SetPosition(457,0); dialogBoxImg44->SetPosition(457,0);
gameinfoWindow2.Append(dialogBoxImg11); gameinfoWindow2.Append(dialogBoxImg11);
gameinfoWindow2.Append(dialogBoxImg22); gameinfoWindow2.Append(dialogBoxImg22);
gameinfoWindow2.Append(dialogBoxImg33); gameinfoWindow2.Append(dialogBoxImg33);
gameinfoWindow2.Append(dialogBoxImg44); gameinfoWindow2.Append(dialogBoxImg44);
txtWindow.Append(synopsisTxt); txtWindow.Append(synopsisTxt);
coverImg2 = new GuiImage(cover); coverImg2 = new GuiImage(cover);
coverImg2->SetWidescreen(CFG.widescreen); coverImg2->SetWidescreen(CFG.widescreen);
@ -693,7 +638,7 @@ debugTxt = new GuiText(linebuf, 18, (GXColor){0,0,0, 255});
gameinfoWindow2.Append(&txtWindow); gameinfoWindow2.Append(&txtWindow);
} }
gameinfoWindow.SetEffect(EFFECT_SLIDE_LEFT | EFFECT_SLIDE_IN, 50); gameinfoWindow.SetEffect(EFFECT_SLIDE_LEFT | EFFECT_SLIDE_IN, 50);
HaltGui(); HaltGui();
@ -701,7 +646,7 @@ debugTxt = new GuiText(linebuf, 18, (GXColor){0,0,0, 255});
mainWindow->Append(&gameinfoWindow); mainWindow->Append(&gameinfoWindow);
mainWindow->ChangeFocus(&gameinfoWindow); mainWindow->ChangeFocus(&gameinfoWindow);
ResumeGui(); ResumeGui();
while(choice == -1) while(choice == -1)
{ {
VIDEO_WaitVSync(); VIDEO_WaitVSync();
@ -712,23 +657,23 @@ debugTxt = new GuiText(linebuf, 18, (GXColor){0,0,0, 255});
} }
if(reset == 1) if(reset == 1)
Sys_Reboot(); Sys_Reboot();
if ((backBtn.GetState()==STATE_CLICKED)||(backBtn.GetState()==STATE_HELD)){ if ((backBtn.GetState()==STATE_CLICKED)||(backBtn.GetState()==STATE_HELD)){
choice=1; choice=1;
synopsisTxt = NULL; synopsisTxt = NULL;
break;} break;}
else if (((nextBtn.GetState()==STATE_CLICKED)||(nextBtn.GetState()==STATE_HELD))&& else if (((nextBtn.GetState()==STATE_CLICKED)||(nextBtn.GetState()==STATE_HELD))&&
(strcmp(gameinfo.synopsis,"") != 0)){ (strcmp(gameinfo.synopsis,"") != 0)){
if (page==1){ if (page==1){
nextBtn.ResetState(); nextBtn.ResetState();
HaltGui(); HaltGui();
gameinfoWindow.SetVisible(false); gameinfoWindow.SetVisible(false);
gameinfoWindow2.SetVisible(true); gameinfoWindow2.SetVisible(true);
coverImg->SetPosition(15,30); coverImg->SetPosition(15,30);
backBtn.SetClickable(false); backBtn.SetClickable(false);
gameinfoWindow2.Append(&nextBtn); gameinfoWindow2.Append(&nextBtn);
mainWindow->Append(&gameinfoWindow2); mainWindow->Append(&gameinfoWindow2);
@ -756,7 +701,64 @@ debugTxt = new GuiText(linebuf, 18, (GXColor){0,0,0, 255});
HaltGui(); HaltGui();
mainWindow->Remove(&gameinfoWindow); mainWindow->Remove(&gameinfoWindow);
mainWindow->SetState(STATE_DEFAULT); mainWindow->SetState(STATE_DEFAULT);
eatADick();
// use this to display variables on the window GuiText * debugTxt = NULL;
delete playersImgData;
delete playersImg;
delete wifiplayersImgData;
delete wifiplayersImg;
delete ratingImg;
delete classiccontrollerImg;
delete nunchuckImg;
delete guitarImg;
delete drumsImg;
delete dancepadImg;
delete motionplusImg;
delete wheelImg;
delete balanceboardImg;
delete microphoneImg;
delete gcImg;
delete dialogBoxImg1;
delete dialogBoxImg2;
delete dialogBoxImg3;
delete dialogBoxImg4;
delete dialogBoxImg11;
delete dialogBoxImg22;
delete dialogBoxImg33;
delete dialogBoxImg44;
delete coverImg;
delete coverImg2;
delete classiccontrollerImgData;
delete nunchuckImgData;
delete guitarImgData;
delete drumsImgData;
delete motionplusImgData;
delete wheelImgData;
delete balanceboardImgData;
delete dancepadImgData;
delete microphoneImgData;
delete gamecubeImgData;
delete ratingImgData;
delete cover;
delete releasedTxt;
delete publisherTxt;
delete developerTxt;
delete titleTxt;
delete synopsisTxt;
delete genreTxt;
delete betaTxt;
delete beta1Txt;
if (nodata==0)FreeXMLMemory();
//void FreeXMLDeletePart();
/*
nodeid
<dimok> nodefound
*/
ResumeGui();} ResumeGui();}
else { else {
gameinfoWindow2.SetEffect(EFFECT_SLIDE_LEFT | EFFECT_SLIDE_OUT, 50); gameinfoWindow2.SetEffect(EFFECT_SLIDE_LEFT | EFFECT_SLIDE_OUT, 50);
@ -765,6 +767,12 @@ debugTxt = new GuiText(linebuf, 18, (GXColor){0,0,0, 255});
mainWindow->Remove(&gameinfoWindow2); mainWindow->Remove(&gameinfoWindow2);
mainWindow->SetState(STATE_DEFAULT); mainWindow->SetState(STATE_DEFAULT);
ResumeGui();} ResumeGui();}
//FreeXMLMemory();
return choice; return choice;
/* File not found */
} else {
return -1;
}
} }

View File

@ -5,6 +5,7 @@
#include "main.h" #include "main.h"
struct discHdr * gameList; struct discHdr * gameList;
u32 gameCnt; u32 gameCnt;
s32 gameSelected, gameStart; s32 gameSelected, gameStart;

View File

@ -273,6 +273,8 @@ snprintf(LANGUAGE.december, sizeof(LANGUAGE.december), "Dec");
snprintf(LANGUAGE.developedby, sizeof(LANGUAGE.developedby), "Developed by"); snprintf(LANGUAGE.developedby, sizeof(LANGUAGE.developedby), "Developed by");
snprintf(LANGUAGE.publishedby, sizeof(LANGUAGE.publishedby), "Published by"); snprintf(LANGUAGE.publishedby, sizeof(LANGUAGE.publishedby), "Published by");
snprintf(LANGUAGE.wififeatures, sizeof(LANGUAGE.wififeatures), "WiFi Features"); snprintf(LANGUAGE.wififeatures, sizeof(LANGUAGE.wififeatures), "WiFi Features");
snprintf(LANGUAGE.XMLTitles, sizeof(LANGUAGE.XMLTitles), "Titles from XML");
}; };

View File

@ -26,6 +26,7 @@ struct LANGUAGE
char october[15]; char october[15];
char november[15]; char november[15];
char december[15]; char december[15];
char XMLTitles[15];
char wififeatures[20]; char wififeatures[20];

View File

@ -773,6 +773,17 @@ void GuiGameGrid::Update(GuiTrigger * t)
if (goback==1)mover2= (mover2<0? mover2+1:mover2-1); if (goback==1)mover2= (mover2<0? mover2+1:mover2-1);
if (mover2==0)goback=0; if (mover2==0)goback=0;
/*u16 buttons = ButtonsHold();
if(buttons & WPAD_BUTTON_B) {
int x = t->wpad.ir.x;
int center = this->GetWidth()/2;
if (x<center)goLeft=12;
else if (x>center)goRight=12;
usleep(x<center? x*250:((center*2 - x)*250));
for(int i=0; i<pagesize; i++) {game[i]->Draw();}
//return;
}*/
// navigation // navigation
if(!focus || gameCnt <= pagesize || (game[bob[0]]->GetEffect() && game[bob[pagesize-1]]->GetEffect())) if(!focus || gameCnt <= pagesize || (game[bob[0]]->GetEffect() && game[bob[pagesize-1]]->GetEffect()))
@ -1047,6 +1058,7 @@ void GuiGameGrid::Update(GuiTrigger * t)
if (goRight>0){ if (goRight>0){
if (mover<11){ if (mover<11){
//int offset1 = listOffset-1, offset2 = listOffset-2; //int offset1 = listOffset-1, offset2 = listOffset-2;
for (int i=1; i<(rows+1); i++){ for (int i=1; i<(rows+1); i++){
@ -1288,8 +1300,8 @@ void GuiGameGrid::Update(GuiTrigger * t)
} }
if (btnRowUp->GetState() == STATE_CLICKED) { if (btnRowUp->GetState() == STATE_CLICKED) {
if (rows==1)this->ChangeRows(2); if ((rows==1)&&(gameCnt>=16))this->ChangeRows(2);
else if (rows==2)this->ChangeRows(3); else if ((rows==2)&&(gameCnt>=42))this->ChangeRows(3);
btnRowUp->ResetState(); btnRowUp->ResetState();
return; return;
} }
@ -1316,7 +1328,7 @@ void GuiGameGrid::Reload(struct discHdr * l, int count)
delete cover[i]; delete cover[i];
} }
delete [] bob; //delete [] bob;
delete [] game; delete [] game;
delete [] coverImg; delete [] coverImg;
delete [] cover; delete [] cover;
@ -1330,24 +1342,27 @@ void GuiGameGrid::Reload(struct discHdr * l, int count)
focus = 1; // allow focus focus = 1; // allow focus
firstPic = 0; firstPic = 0;
clickedItem = -1; clickedItem = -1;
speed = SHIFT_SPEED; gameCnt=count;
//speed = SHIFT_SPEED;
char imgPath[100]; char imgPath[100];
if ((count<42)&&(rows==3))rows=2; if (count<42)rows=2;
if ((count<16)&&(rows==2))rows=1; if (count<16)rows=1;
//rows=1;
if (rows==1)pagesize = 6; if (rows==1)pagesize = 6;
else if (rows==2)pagesize = 16; else if (rows==2)pagesize = 16;
else if (rows==3)pagesize = 42; else if (rows==3)pagesize = 42;
//gameIndex = new int[pagesize];
game = new GuiButton * [pagesize]; game = new GuiButton * [pagesize];
bob = new int[pagesize]; //bob = new int[pagesize];
coverImg = new GuiImage * [gameCnt]; coverImg = new GuiImage * [gameCnt];
cover = new GuiImageData * [gameCnt]; cover = new GuiImageData * [gameCnt];
for(int i=0; i<pagesize; i++) { for(int i=0; i<pagesize; i++) {
bob[i]=i; bob[i]=i;
} }
firstPic=0;
char ID[4]; char ID[4];
char IDfull[7]; char IDfull[7];
@ -1402,159 +1417,159 @@ void GuiGameGrid::Reload(struct discHdr * l, int count)
if (rows==1) if (rows==1)
{ {
game[0]->SetPosition(-70,74); game[bob[0]]->SetPosition(-70,74);
game[1]->SetPosition(88,74); game[bob[1]]->SetPosition(88,74);
game[2]->SetPosition(239,74); game[bob[2]]->SetPosition(239,74);
game[3]->SetPosition(390,74); game[bob[3]]->SetPosition(390,74);
game[4]->SetPosition(550,74); game[bob[4]]->SetPosition(550,74);
game[0]->SetSkew(-10,-44,10,-26,10,26,-10,44); game[bob[0]]->SetSkew(-10,-44,10,-26,10,26,-10,44);
game[1]->SetSkew(-6,-22,6,-14,6,14,-6,22); game[bob[1]]->SetSkew(-6,-22,6,-14,6,14,-6,22);
game[2]->SetSkew(0,-11,0,-11,0,11,0,11); game[bob[2]]->SetSkew(0,-11,0,-11,0,11,0,11);
game[3]->SetSkew(-6,-14,6,-22,6,22,-6,14); game[bob[3]]->SetSkew(-6,-14,6,-22,6,22,-6,14);
game[4]->SetSkew(-10,-26,10,-44,10,44,-10,26); game[bob[4]]->SetSkew(-10,-26,10,-44,10,44,-10,26);
} }
else if (rows ==2) else if (rows ==2)
{ {
game[0]->SetPosition(3,50); game[bob[0]]->SetPosition(3,50);
game[1]->SetPosition(3,193); game[bob[1]]->SetPosition(3,193);
game[2]->SetPosition(97,50); game[bob[2]]->SetPosition(97,50);
game[3]->SetPosition(97,193); game[bob[3]]->SetPosition(97,193);
game[4]->SetPosition(187,50); game[bob[4]]->SetPosition(187,50);
game[5]->SetPosition(187,193); game[bob[5]]->SetPosition(187,193);
game[6]->SetPosition(272,50); game[bob[6]]->SetPosition(272,50);
game[7]->SetPosition(272,193); game[bob[7]]->SetPosition(272,193);
game[8]->SetPosition(358,50); game[bob[8]]->SetPosition(358,50);
game[9]->SetPosition(358,193); game[bob[9]]->SetPosition(358,193);
game[10]->SetPosition(449,50); game[bob[10]]->SetPosition(449,50);
game[11]->SetPosition(449,193); game[bob[11]]->SetPosition(449,193);
game[12]->SetPosition(545,50); game[bob[12]]->SetPosition(545,50);
game[13]->SetPosition(545,193); game[bob[13]]->SetPosition(545,193);
game[14]->SetPosition(700,0); game[bob[14]]->SetPosition(700,0);
game[15]->SetPosition(700,0); game[bob[15]]->SetPosition(700,0);
game[0]->SetSkew(-4.5,-49,4.5,-27,4.5,0,-4.5,0); game[bob[0]]->SetSkew(-4.5,-49,4.5,-27,4.5,0,-4.5,0);
game[1]->SetSkew(-4.5,0,4.5,0,4.5,27,-4.5,49); game[bob[1]]->SetSkew(-4.5,0,4.5,0,4.5,27,-4.5,49);
game[2]->SetSkew(-4,-22,4,-14,4,0,-4,0); game[bob[2]]->SetSkew(-4,-22,4,-14,4,0,-4,0);
game[3]->SetSkew(-4,0,4,0,4,14,-4,22); game[bob[3]]->SetSkew(-4,0,4,0,4,14,-4,22);
game[4]->SetSkew(0,-9,0,-5,0,0,0,0); game[bob[4]]->SetSkew(0,-9,0,-5,0,0,0,0);
game[5]->SetSkew(0,0,0,0,0,5,0,9); game[bob[5]]->SetSkew(0,0,0,0,0,5,0,9);
game[6]->SetSkew(0,0,0,0,0,0,0,0); game[bob[6]]->SetSkew(0,0,0,0,0,0,0,0);
game[7]->SetSkew(0,0,0,0,0,0,0,0); game[bob[7]]->SetSkew(0,0,0,0,0,0,0,0);
game[8]->SetSkew(0,-5,0,-9,0,0,0,0); game[bob[8]]->SetSkew(0,-5,0,-9,0,0,0,0);
game[9]->SetSkew(0,0,0,0,0,9,0,5); game[bob[9]]->SetSkew(0,0,0,0,0,9,0,5);
game[10]->SetSkew(-4,-14,4,-22,4,0,-4,0); game[bob[10]]->SetSkew(-4,-14,4,-22,4,0,-4,0);
game[11]->SetSkew(-4,0,4,0,4,22,-4,14); game[bob[11]]->SetSkew(-4,0,4,0,4,22,-4,14);
game[12]->SetSkew(-4.5,-27,4.5,-49,4.5,0,-4.5,0); game[bob[12]]->SetSkew(-4.5,-27,4.5,-49,4.5,0,-4.5,0);
game[13]->SetSkew(-4.5,0,4.5,0,4.5,49,-4.5,27); game[bob[13]]->SetSkew(-4.5,0,4.5,0,4.5,49,-4.5,27);
} }
else if (rows==3) else if (rows==3)
{ {
game[0]->SetPosition(13,58); game[bob[0]]->SetPosition(13,58);
game[1]->SetPosition(13,153); game[bob[1]]->SetPosition(13,153);
game[2]->SetPosition(13,250); game[bob[2]]->SetPosition(13,250);
game[3]->SetPosition(68,67); game[bob[3]]->SetPosition(68,67);
game[4]->SetPosition(68,153); game[bob[4]]->SetPosition(68,153);
game[5]->SetPosition(68,239); game[bob[5]]->SetPosition(68,239);
game[6]->SetPosition(120,74); game[bob[6]]->SetPosition(120,74);
game[7]->SetPosition(120,153); game[bob[7]]->SetPosition(120,153);
game[8]->SetPosition(120,232); game[bob[8]]->SetPosition(120,232);
game[9]->SetPosition(170,78); game[bob[9]]->SetPosition(170,78);
game[10]->SetPosition(170,153); game[bob[10]]->SetPosition(170,153);
game[11]->SetPosition(170,228); game[bob[11]]->SetPosition(170,228);
game[12]->SetPosition(214,80); game[bob[12]]->SetPosition(214,80);
game[13]->SetPosition(214,153); game[bob[13]]->SetPosition(214,153);
game[14]->SetPosition(214,226); game[bob[14]]->SetPosition(214,226);
game[15]->SetPosition(258,81); game[bob[15]]->SetPosition(258,81);
game[16]->SetPosition(258,153); game[bob[16]]->SetPosition(258,153);
game[17]->SetPosition(258,224); game[bob[17]]->SetPosition(258,224);
game[18]->SetPosition(302,81); game[bob[18]]->SetPosition(302,81);
game[19]->SetPosition(302,153); game[bob[19]]->SetPosition(302,153);
game[20]->SetPosition(302,223); game[bob[20]]->SetPosition(302,223);
game[21]->SetPosition(346,81); game[bob[21]]->SetPosition(346,81);
game[22]->SetPosition(346,153); game[bob[22]]->SetPosition(346,153);
game[23]->SetPosition(346,223); game[bob[23]]->SetPosition(346,223);
game[24]->SetPosition(390,80); game[bob[24]]->SetPosition(390,80);
game[25]->SetPosition(390,153); game[bob[25]]->SetPosition(390,153);
game[26]->SetPosition(390,225); game[bob[26]]->SetPosition(390,225);
game[27]->SetPosition(434,77); game[bob[27]]->SetPosition(434,77);
game[28]->SetPosition(434,153); game[bob[28]]->SetPosition(434,153);
game[29]->SetPosition(434,227); game[bob[29]]->SetPosition(434,227);
game[30]->SetPosition(484,73); game[bob[30]]->SetPosition(484,73);
game[31]->SetPosition(484,153); game[bob[31]]->SetPosition(484,153);
game[32]->SetPosition(484,231); game[bob[32]]->SetPosition(484,231);
game[33]->SetPosition(537,67); game[bob[33]]->SetPosition(537,67);
game[34]->SetPosition(537,153); game[bob[34]]->SetPosition(537,153);
game[35]->SetPosition(537,239); game[bob[35]]->SetPosition(537,239);
game[36]->SetPosition(591,58); game[bob[36]]->SetPosition(591,58);
game[37]->SetPosition(591,153); game[bob[37]]->SetPosition(591,153);
game[38]->SetPosition(591,250); game[bob[38]]->SetPosition(591,250);
game[0]->SetSkew(-38,-110,15,-42,15,65,-38,32); game[bob[0]]->SetSkew(-38,-110,15,-42,15,65,-38,32);
game[1]->SetSkew(-38,-75,15,-48,15,45,-38,72); game[bob[1]]->SetSkew(-38,-75,15,-48,15,45,-38,72);
game[2]->SetSkew(-38,-52,15,-70,15,27,-38,100); game[bob[2]]->SetSkew(-38,-52,15,-70,15,27,-38,100);
game[3]->SetSkew(-38,-70,15,-24,15,40,-38,27); game[bob[3]]->SetSkew(-38,-70,15,-24,15,40,-38,27);
game[4]->SetSkew(-38,-50,15,-35,15,40,-38,50); game[bob[4]]->SetSkew(-38,-50,15,-35,15,40,-38,50);
game[5]->SetSkew(-38,-34,15,-47,15,24,-38,58); game[bob[5]]->SetSkew(-38,-34,15,-47,15,24,-38,58);
game[6]->SetSkew(-27,-55,19,-22,19,30,-27,22); game[bob[6]]->SetSkew(-27,-55,19,-22,19,30,-27,22);
game[7]->SetSkew(-27,-40,19,-30,19,30,-27,40); game[bob[7]]->SetSkew(-27,-40,19,-30,19,30,-27,40);
game[8]->SetSkew(-27,-20,19,-30,19,20,-27,50); game[bob[8]]->SetSkew(-27,-20,19,-30,19,20,-27,50);
game[9]->SetSkew(-19,-28,0,-17,0,15,-19,10); game[bob[9]]->SetSkew(-19,-28,0,-17,0,15,-19,10);
game[10]->SetSkew(-19,-30,0,-20,0,12,-19,30); game[bob[10]]->SetSkew(-19,-30,0,-20,0,12,-19,30);
game[11]->SetSkew(-19,-15,0,-20,0,10,-19,24); game[bob[11]]->SetSkew(-19,-15,0,-20,0,10,-19,24);
game[12]->SetSkew(-10,-20,3,-13,3,14,-10,10); game[bob[12]]->SetSkew(-10,-20,3,-13,3,14,-10,10);
game[13]->SetSkew(-10,-20,3,-18,3,18,-10,20); game[bob[13]]->SetSkew(-10,-20,3,-18,3,18,-10,20);
game[14]->SetSkew(-10,-10,3,-10,3,0,-10,10); game[bob[14]]->SetSkew(-10,-10,3,-10,3,0,-10,10);
game[15]->SetSkew(-10,-15,3,-12,3,13,-10,13); game[bob[15]]->SetSkew(-10,-15,3,-12,3,13,-10,13);
game[16]->SetSkew(-10,-17,3,-10,3,10,-10,17); game[bob[16]]->SetSkew(-10,-17,3,-10,3,10,-10,17);
game[17]->SetSkew(-10,-10,3,-15,3,10,-10,10); game[bob[17]]->SetSkew(-10,-10,3,-15,3,10,-10,10);
game[18]->SetSkew(-10,-10,3,-10,3,14,-10,14); game[bob[18]]->SetSkew(-10,-10,3,-10,3,14,-10,14);
game[19]->SetSkew(-10,-10,3,-10,3,10,-10,10);//middle game[bob[19]]->SetSkew(-10,-10,3,-10,3,10,-10,10);//middle
game[20]->SetSkew(-10,-10,3,-10,3,10,-10,10); game[bob[20]]->SetSkew(-10,-10,3,-10,3,10,-10,10);
game[21]->SetSkew(-14,-10,4,-20,3,10,-14,10); game[bob[21]]->SetSkew(-14,-10,4,-20,3,10,-14,10);
game[22]->SetSkew(-14,-10,4,-17,3,17,-14,10); game[bob[22]]->SetSkew(-14,-10,4,-17,3,17,-14,10);
game[23]->SetSkew(-14,-10,4,-10,3,10,-14,10); game[bob[23]]->SetSkew(-14,-10,4,-10,3,10,-14,10);
game[24]->SetSkew(-10,-13,3,-20,3,14,-10,10); game[bob[24]]->SetSkew(-10,-13,3,-20,3,14,-10,10);
game[25]->SetSkew(-10,-18,3,-20,3,20,-10,18); game[bob[25]]->SetSkew(-10,-18,3,-20,3,20,-10,18);
game[26]->SetSkew(-10,-10,3,-10,3,20,-10,5); game[bob[26]]->SetSkew(-10,-10,3,-10,3,20,-10,5);
game[27]->SetSkew(-19,-17,0,-28,0,10,-19,15); game[bob[27]]->SetSkew(-19,-17,0,-28,0,10,-19,15);
game[28]->SetSkew(-19,-20,0,-30,0,30,-19,12); game[bob[28]]->SetSkew(-19,-20,0,-30,0,30,-19,12);
game[29]->SetSkew(-19,-20,0,-15,0,30,-19,10); game[bob[29]]->SetSkew(-19,-20,0,-15,0,30,-19,10);
game[30]->SetSkew(-27,-22,19,-55,19,22,-27,30); game[bob[30]]->SetSkew(-27,-22,19,-55,19,22,-27,30);
game[31]->SetSkew(-27,-30,19,-40,19,40,-27,30); game[bob[31]]->SetSkew(-27,-30,19,-40,19,40,-27,30);
game[32]->SetSkew(-27,-30,19,-20,19,55,-27,20); game[bob[32]]->SetSkew(-27,-30,19,-20,19,55,-27,20);
game[33]->SetSkew(-38,-24,15,-70,15,27,-38,40); game[bob[33]]->SetSkew(-38,-24,15,-70,15,27,-38,40);
game[34]->SetSkew(-38,-35,15,-50,15,50,-38,40); game[bob[34]]->SetSkew(-38,-35,15,-50,15,50,-38,40);
game[35]->SetSkew(-38,-47,15,-34,15,58,-38,24); game[bob[35]]->SetSkew(-38,-47,15,-34,15,58,-38,24);
game[36]->SetSkew(-38,-42,15,-110,15,32,-38,60); game[bob[36]]->SetSkew(-38,-42,15,-110,15,32,-38,60);
game[37]->SetSkew(-38,-48,15,-75,15,70,-38,45); game[bob[37]]->SetSkew(-38,-48,15,-75,15,70,-38,45);
game[38]->SetSkew(-38,-70,15,-52,15,100,-38,27); game[bob[38]]->SetSkew(-38,-70,15,-52,15,100,-38,27);
} }

View File

@ -298,6 +298,7 @@ void Menu_DrawImg(f32 xpos, f32 ypos, f32 zpos, f32 width, f32 height, u8 data[]
GX_SetVtxDesc (GX_VA_TEX0, GX_NONE); GX_SetVtxDesc (GX_VA_TEX0, GX_NONE);
} }
/**************************************************************************** /****************************************************************************
* Menu_DrawRectangle * Menu_DrawRectangle
* *

View File

@ -11,12 +11,12 @@ Load game information from XML - Lustar
#include "unzip/unzip.h" #include "unzip/unzip.h"
bool xmldebug = false; static bool xmldebug = false;
extern struct SSettings Settings; // for loader GX extern struct SSettings Settings; // for loader GX
char langlist[11][22] = static char langlist[11][22] =
{{"Console Default"}, {{"Console Default"},
{"Japanese"}, {"Japanese"},
{"English"}, {"English"},
@ -29,7 +29,7 @@ char langlist[11][22] =
{"T. Chinese"}, {"T. Chinese"},
{"Korean"}}; {"Korean"}};
char langcodes[11][22] = static char langcodes[11][22] =
{{""}, {{""},
{"JA"}, {"JA"},
{"EN"}, {"EN"},
@ -42,18 +42,30 @@ char langcodes[11][22] =
{"ZH"}, {"ZH"},
{"KO"}}; {"KO"}};
char element_text[5000]; static char element_text[5000];
mxml_node_t *nodetree; static mxml_node_t *nodetree=NULL;
mxml_node_t *nodedata; static mxml_node_t *nodedata=NULL;
mxml_node_t *nodeid; static mxml_node_t *nodeid=NULL;
mxml_node_t *nodeidtmp; static mxml_node_t *nodeidtmp=NULL;
mxml_node_t *nodefound; static mxml_node_t *nodefound=NULL;
mxml_index_t *nodeindex; static mxml_index_t *nodeindex=NULL;
mxml_index_t *nodeindextmp; static mxml_index_t *nodeindextmp=NULL;
int xmlloadtime = 0; int xmlloadtime = 0;
void FreeXMLDeletePart()
{
/* free memory */
mxmlIndexDelete(nodeindex);
mxmlIndexDelete(nodeindextmp);
mxmlDelete(nodeid);
mxmlDelete(nodeidtmp);
mxmlDelete(nodefound);
mxmlDelete(nodedata);
mxmlDelete(nodetree);
}
/* get_text() taken as is from mini-mxml example mxmldoc.c */ /* get_text() taken as is from mini-mxml example mxmldoc.c */
/* get_text() - Get the text for a node. */ /* get_text() - Get the text for a node. */
@ -255,9 +267,10 @@ void ConvertRating(char *ratingvalue, char *fromrating, char *torating, char *de
void LoadTitlesFromXML(char *langtxt, bool forcejptoen) void LoadTitlesFromXML(char *langtxt, bool forcejptoen)
/* langtxt: set to "English","French","German", to force language for all titles, or "" to load title depending on each game's setting */ /* langtxt: set to "English","French","German", to force language for all titles, or "" to load title depending on each game's setting */
/* forcejptoen: set to true to load English title instead of Japanese title when game is set to Japanese */ /* forcejptoen: set to true to load English title instead of Japanese title when game is set to Japanese */
{ {
if (nodeindex == NULL) if (nodeindex == NULL)
return; return ;
bool forcelang = false; bool forcelang = false;
if (strcmp(langtxt,"")) if (strcmp(langtxt,""))
@ -305,11 +318,13 @@ void LoadTitlesFromXML(char *langtxt, bool forcejptoen)
/* load title from nodes */ /* load title from nodes */
nodefound = mxmlFindElement(nodeid, nodedata, "locale", "lang", "EN", MXML_NO_DESCEND); nodefound = mxmlFindElement(nodeid, nodedata, "locale", "lang", "EN", MXML_NO_DESCEND);
if (nodefound != NULL) { if (nodefound != NULL){// &&(Settings.titlesOverride==1)){
GetTextFromNode(nodefound, nodedata, "title", NULL, NULL, MXML_DESCEND, title_text_EN); GetTextFromNode(nodefound, nodedata, "title", NULL, NULL, MXML_DESCEND, title_text_EN);
} }
nodefound = mxmlFindElement(nodeid, nodedata, "locale", "lang", langcode, MXML_NO_DESCEND); nodefound = mxmlFindElement(nodeid, nodedata, "locale", "lang", langcode, MXML_NO_DESCEND);
if (nodefound != NULL) { if (nodefound != NULL) {
GetTextFromNode(nodefound, nodedata, "title", NULL, NULL, MXML_DESCEND, title_text); GetTextFromNode(nodefound, nodedata, "title", NULL, NULL, MXML_DESCEND, title_text);
} }
/* fall back to English title if prefered language was not found */ /* fall back to English title if prefered language was not found */
@ -355,12 +370,12 @@ void GetPublisherFromGameid(char *idtxt, char *dest)
} }
void LoadGameInfoFromXML(char* gameid, char* langtxt) bool LoadGameInfoFromXML(char* gameid, char* langtxt)
/* gameid: full game id */ /* gameid: full game id */
/* langcode: "English","French","German" */ /* langcode: "English","French","German" */
{ { bool exist=false;
if (nodeindex == NULL) if (nodeindex == NULL)
return; return exist;
/* convert language text into ISO 639 two-letter language codes */ /* convert language text into ISO 639 two-letter language codes */
char langcode[100] = ""; char langcode[100] = "";
@ -375,7 +390,7 @@ void LoadGameInfoFromXML(char* gameid, char* langtxt)
/* search for game matching gameid */ /* search for game matching gameid */
while (strcmp(element_text,gameid) != 0) while (strcmp(element_text,gameid) != 0)
{ { exist=true;
nodeid = mxmlIndexFind(nodeindex,"id", NULL); nodeid = mxmlIndexFind(nodeindex,"id", NULL);
if (nodeid != NULL) { if (nodeid != NULL) {
get_text(nodeid, element_text, sizeof(element_text)); get_text(nodeid, element_text, sizeof(element_text));
@ -411,12 +426,13 @@ void LoadGameInfoFromXML(char* gameid, char* langtxt)
/* text from child elements */ /* text from child elements */
nodefound = mxmlFindElement(nodeid, nodedata, "locale", "lang", "EN", MXML_NO_DESCEND); nodefound = mxmlFindElement(nodeid, nodedata, "locale", "lang", "EN", MXML_NO_DESCEND);
if (nodefound != NULL) { if (nodefound != NULL) {
//if (Settings.titlesOverride==1)
GetTextFromNode(nodefound, nodedata, "title", NULL, NULL, MXML_DESCEND, gameinfo.title_EN); GetTextFromNode(nodefound, nodedata, "title", NULL, NULL, MXML_DESCEND, gameinfo.title_EN);
GetTextFromNode(nodefound, nodedata, "synopsis", NULL, NULL, MXML_DESCEND, gameinfo.synopsis_EN); GetTextFromNode(nodefound, nodedata, "synopsis", NULL, NULL, MXML_DESCEND, gameinfo.synopsis_EN);
} }
nodefound = mxmlFindElement(nodeid, nodedata, "locale", "lang", langcode, MXML_NO_DESCEND); nodefound = mxmlFindElement(nodeid, nodedata, "locale", "lang", langcode, MXML_NO_DESCEND);
if (nodefound != NULL) { if (nodefound != NULL) {
GetTextFromNode(nodefound, nodedata, "title", NULL, NULL, MXML_DESCEND, gameinfo.title); //GetTextFromNode(nodefound, nodedata, "title", NULL, NULL, MXML_DESCEND, gameinfo.title);
GetTextFromNode(nodefound, nodedata, "synopsis", NULL, NULL, MXML_DESCEND, gameinfo.synopsis); GetTextFromNode(nodefound, nodedata, "synopsis", NULL, NULL, MXML_DESCEND, gameinfo.synopsis);
} }
// fall back to English title and synopsis if prefered language was not found // fall back to English title and synopsis if prefered language was not found
@ -509,10 +525,10 @@ void LoadGameInfoFromXML(char* gameid, char* langtxt)
ConvertRating(gameinfo.ratingvalue, gameinfo.ratingtype, "PEGI",gameinfo.ratingvaluePEGI); ConvertRating(gameinfo.ratingvalue, gameinfo.ratingtype, "PEGI",gameinfo.ratingvaluePEGI);
//PrintGameInfo(); //PrintGameInfo();
exist=true;
} else { } else {exist=false;
/*game not found */ /*game not found */
} }return exist;
} }

View File

@ -50,13 +50,14 @@ struct gameXMLinfo gameinfo;
struct gameXMLinfo gameinfo_reset; struct gameXMLinfo gameinfo_reset;
bool OpenXMLFile(char* filename); bool OpenXMLFile(char* filename);
void LoadGameInfoFromXML(char* gameid, char* langcode); bool LoadGameInfoFromXML(char* gameid, char* langcode);
void LoadTitlesFromXML(char *langcode, bool forcejptoen); void LoadTitlesFromXML(char *langcode, bool forcejptoen);
void GetPublisherFromGameid(char *idtxt, char *dest); void GetPublisherFromGameid(char *idtxt, char *dest);
char *ConvertLangTextToCode(char *langtext); char *ConvertLangTextToCode(char *langtext);
void ConvertRating(char *ratingvalue, char *fromrating, char *torating, char *destvalue); void ConvertRating(char *ratingvalue, char *fromrating, char *torating, char *destvalue);
void PrintGameInfo(bool showfullinfo); void PrintGameInfo(bool showfullinfo);
void FreeXMLMemory(); void FreeXMLMemory();
void FreeXMLDeletePart();
void title_set(char *id, char *title); void title_set(char *id, char *title);