2009-10-01 01:10:58 +02:00
# include <gccore.h>
# include <stdio.h>
# include <unistd.h>
# include <stdlib.h>
# include <string.h>
# include <dirent.h>
# include "usbloader/wbfs.h"
# include "language/gettext.h"
# include "libwiigui/gui.h"
# include "../xml/xml.h"
# include "menu.h"
# include "filelist.h"
# include "sys.h"
# include "wpad.h"
# include "fatmounter.h"
# include "listfiles.h"
# include "prompts/PromptWindows.h"
# include "gameinfo.h"
# include "usbloader/getentries.h"
/*** Extern variables ***/
extern GuiWindow * mainWindow ;
extern GuiSound * bgMusic ;
extern u8 shutdown ;
extern u8 reset ;
extern struct gameXMLinfo gameinfo ;
extern struct gameXMLinfo gameinfo_reset ;
extern u32 gameCnt ;
extern struct discHdr * gameList ;
/*** Extern functions ***/
extern void ResumeGui ( ) ;
extern void HaltGui ( ) ;
/****************************************************************************
* gameinfo
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int showGameInfo ( char * ID ) {
HaltGui ( ) ; //put this first to try to get rid of the code dump caused by loading this window at the same time as loading images from the SD card
mainWindow - > SetState ( STATE_DISABLED ) ;
ResumeGui ( ) ;
//load the xml shit
bool databaseopened = true ;
//OpenXMLDatabase(Settings.titlestxt_path, Settings.db_language, Settings.db_JPtoEN, true, false, true); // open file, do not load titles, keep in memory
if ( databaseopened ) {
LoadGameInfoFromXML ( ID , Settings . db_language ) ;
//CloseXMLDatabase();
bool showmeminfo = false ;
int choice = - 1 ;
int titley = 10 ;
int marginY = titley + 40 ;
int indexy = marginY ;
int wifiY = 0 ;
int intputX = 200 , inputY = - 30 , txtXOffset = 90 ;
u8 nunchuk = 0 ,
classiccontroller = 0 ,
balanceboard = 0 ,
dancepad = 0 ,
guitar = 0 ,
gamecube = 0 ,
wheel = 0 ,
motionplus = 0 ,
drums = 0 ,
microphone = 0 ,
zapper = 0 ,
nintendods = 0 ,
//vitalitysensor=0,
wiispeak = 0 ;
int newline = 1 ;
u8 page = 1 ;
GuiImageData * playersImgData = NULL ;
GuiImage * playersImg = NULL ;
GuiImageData * wifiplayersImgData = NULL ;
GuiImage * wifiplayersImg = NULL ;
GuiImage * ratingImg = NULL ;
GuiImage * classiccontrollerImg = NULL ;
GuiImage * nunchukImg = NULL ;
GuiImage * guitarImg = NULL ;
GuiImage * drumsImg = NULL ;
GuiImage * dancepadImg = NULL ;
GuiImage * motionplusImg = NULL ;
GuiImage * wheelImg = NULL ;
GuiImage * balanceboardImg = NULL ;
GuiImage * microphoneImg = NULL ;
GuiImage * zapperImg = NULL ;
GuiImage * nintendodsImg = NULL ;
GuiImage * wiispeakImg = NULL ;
//GuiImage * vitalitysensorImg = 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 * nunchukImgData = NULL ;
GuiImageData * guitarImgData = NULL ;
GuiImageData * drumsImgData = NULL ;
GuiImageData * motionplusImgData = NULL ;
GuiImageData * wheelImgData = NULL ;
GuiImageData * balanceboardImgData = NULL ;
GuiImageData * dancepadImgData = NULL ;
GuiImageData * microphoneImgData = NULL ;
GuiImageData * zapperImgData = NULL ;
GuiImageData * nintendodsImgData = NULL ;
GuiImageData * wiispeakImgData = NULL ;
//GuiImageData * vitalitysensorImgData = 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 * * wifiTxt = NULL ;
GuiText * wiitdb1Txt = NULL ;
GuiText * wiitdb2Txt = NULL ;
GuiText * wiitdb3Txt = NULL ;
GuiText * memTxt = NULL ;
GuiWindow gameinfoWindow ( 600 , 308 ) ;
gameinfoWindow . SetAlignment ( ALIGN_CENTRE , ALIGN_MIDDLE ) ;
gameinfoWindow . SetPosition ( 0 , - 50 ) ;
GuiWindow gameinfoWindow2 ( 600 , 308 ) ;
gameinfoWindow2 . SetAlignment ( ALIGN_CENTRE , ALIGN_MIDDLE ) ;
gameinfoWindow2 . SetPosition ( 0 , - 50 ) ;
GuiWindow txtWindow ( 350 , 270 ) ;
txtWindow . SetAlignment ( ALIGN_CENTRE , ALIGN_RIGHT ) ;
txtWindow . SetPosition ( 95 , 55 ) ;
2009-11-10 00:03:13 +01:00
GuiSound btnSoundOver ( button_over_pcm , button_over_pcm_size , Settings . sfxvolume ) ;
GuiSound btnClick ( button_click2_pcm , button_click2_pcm_size , Settings . sfxvolume ) ;
2009-10-01 01:10:58 +02:00
char imgPath [ 100 ] ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sbutton_dialogue_box.png " , CFG . theme_path ) ;
GuiImageData btnOutline ( imgPath , button_dialogue_box_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sgameinfo1_png.png " , CFG . theme_path ) ;
GuiImageData dialogBox1 ( imgPath , gameinfo1_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sgameinfo1a_png.png " , CFG . theme_path ) ;
GuiImageData dialogBox2 ( imgPath , gameinfo1a_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sgameinfo2_png.png " , CFG . theme_path ) ;
GuiImageData dialogBox3 ( imgPath , gameinfo2_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sgameinfo2a_png.png " , CFG . theme_path ) ;
GuiImageData dialogBox4 ( imgPath , gameinfo2a_png ) ;
GuiTrigger trig1 ;
trig1 . SetButtonOnlyTrigger ( - 1 , WPAD_BUTTON_1 | WPAD_CLASSIC_BUTTON_X , 0 ) ;
GuiTrigger trigA ;
trigA . SetButtonOnlyTrigger ( - 1 , WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A , PAD_BUTTON_A ) ;
GuiTrigger trigB ;
trigB . SetButtonOnlyTrigger ( - 1 , WPAD_BUTTON_B | WPAD_CLASSIC_BUTTON_B , PAD_BUTTON_B ) ;
GuiTrigger trigU ;
trigU . SetButtonOnlyTrigger ( - 1 , WPAD_BUTTON_UP | WPAD_CLASSIC_BUTTON_UP , PAD_BUTTON_UP ) ;
GuiTrigger trigD ;
trigD . SetButtonOnlyTrigger ( - 1 , WPAD_BUTTON_DOWN | WPAD_CLASSIC_BUTTON_DOWN , PAD_BUTTON_DOWN ) ;
GuiTrigger trigH ;
trigH . SetButtonOnlyTrigger ( - 1 , WPAD_BUTTON_HOME | WPAD_CLASSIC_BUTTON_HOME , 0 ) ;
//buttons for changing between synopsis and other info
GuiButton backBtn ( 0 , 0 ) ;
backBtn . SetPosition ( - 20 , - 20 ) ;
backBtn . SetTrigger ( & trigB ) ;
gameinfoWindow . Append ( & backBtn ) ;
GuiButton nextBtn ( 0 , 0 ) ;
nextBtn . SetPosition ( 20 , 20 ) ;
nextBtn . SetTrigger ( & trigA ) ;
gameinfoWindow . Append ( & nextBtn ) ;
//buttons for scrolling the synopsis
GuiButton upBtn ( 0 , 0 ) ;
upBtn . SetPosition ( 0 , 0 ) ;
upBtn . SetTrigger ( & trigU ) ;
GuiButton dnBtn ( 0 , 0 ) ;
dnBtn . SetPosition ( 0 , 0 ) ;
dnBtn . SetTrigger ( & trigD ) ;
GuiButton homeBtn ( 0 , 0 ) ;
homeBtn . SetPosition ( 0 , 0 ) ;
homeBtn . SetTrigger ( & trigH ) ;
// button to save the url for the zip file for poor people without wifi
GuiButton urlBtn ( 0 , 0 ) ;
urlBtn . SetPosition ( 0 , 0 ) ;
urlBtn . SetTrigger ( & trig1 ) ;
gameinfoWindow . Append ( & urlBtn ) ;
char linebuf [ XML_SYNOPSISLEN ] = " " ;
char linebuf2 [ 100 ] = " " ;
// enable icons for required accessories
for ( int i = 1 ; i < = XML_ELEMMAX ; i + + ) {
if ( strcmp ( gameinfo . accessoriesReq [ i ] , " classiccontroller " ) = = 0 )
classiccontroller = 1 ;
if ( strcmp ( gameinfo . accessoriesReq [ i ] , " nunchuk " ) = = 0 )
nunchuk = 1 ;
if ( strcmp ( gameinfo . accessoriesReq [ i ] , " guitar " ) = = 0 )
guitar = 1 ;
if ( strcmp ( gameinfo . accessoriesReq [ i ] , " drums " ) = = 0 )
drums = 1 ;
if ( strcmp ( gameinfo . accessoriesReq [ i ] , " dancepad " ) = = 0 )
dancepad = 1 ;
if ( strcmp ( gameinfo . accessoriesReq [ i ] , " motionplus " ) = = 0 )
motionplus = 1 ;
if ( strcmp ( gameinfo . accessoriesReq [ i ] , " wheel " ) = = 0 )
wheel = 1 ;
if ( strcmp ( gameinfo . accessoriesReq [ i ] , " balanceboard " ) = = 0 )
balanceboard = 1 ;
if ( strcmp ( gameinfo . accessoriesReq [ i ] , " microphone " ) = = 0 )
microphone = 1 ;
if ( strcmp ( gameinfo . accessoriesReq [ i ] , " zapper " ) = = 0 )
zapper = 1 ;
if ( strcmp ( gameinfo . accessoriesReq [ i ] , " nintendods " ) = = 0 )
nintendods = 1 ;
if ( strcmp ( gameinfo . accessoriesReq [ i ] , " wiispeak " ) = = 0 )
wiispeak = 1 ;
//if (strcmp(gameinfo.accessoriesReq[i],"vitalitysensor")==0)
// vitalitysensor=1;
if ( strcmp ( gameinfo . accessoriesReq [ i ] , " gamecube " ) = = 0 )
gamecube = 1 ;
}
// switch icons
if ( nunchuk ) nunchukImgData = new GuiImageData ( nunchukR_png ) ;
else nunchukImgData = new GuiImageData ( nunchuk_png ) ;
if ( classiccontroller ) classiccontrollerImgData = new GuiImageData ( classiccontrollerR_png ) ;
else classiccontrollerImgData = new GuiImageData ( classiccontroller_png ) ;
if ( guitar ) guitarImgData = new GuiImageData ( guitarR_png ) ;
else guitarImgData = new GuiImageData ( guitar_png ) ;
if ( gamecube ) gamecubeImgData = new GuiImageData ( gcncontrollerR_png ) ;
else gamecubeImgData = new GuiImageData ( gcncontroller_png ) ;
if ( wheel ) wheelImgData = new GuiImageData ( wheelR_png ) ;
else wheelImgData = new GuiImageData ( wheel_png ) ;
if ( motionplus ) motionplusImgData = new GuiImageData ( motionplusR_png ) ;
else motionplusImgData = new GuiImageData ( motionplus_png ) ;
if ( drums ) drumsImgData = new GuiImageData ( drumsR_png ) ;
else drumsImgData = new GuiImageData ( drums_png ) ;
if ( microphone ) microphoneImgData = new GuiImageData ( microphoneR_png ) ;
else microphoneImgData = new GuiImageData ( microphone_png ) ;
if ( zapper ) zapperImgData = new GuiImageData ( zapperR_png ) ;
else zapperImgData = new GuiImageData ( zapper_png ) ;
2009-10-17 22:48:52 +02:00
2009-10-01 01:10:58 +02:00
if ( wiispeak ) wiispeakImgData = new GuiImageData ( wiispeakR_png ) ;
else wiispeakImgData = new GuiImageData ( wiispeak_png ) ;
2009-10-17 22:48:52 +02:00
2009-10-01 01:10:58 +02:00
if ( nintendods ) nintendodsImgData = new GuiImageData ( nintendodsR_png ) ;
else nintendodsImgData = new GuiImageData ( nintendods_png ) ;
2009-10-17 22:48:52 +02:00
2009-10-01 01:10:58 +02:00
//if (vitalitysensor) vitalitysensorImgData = new GuiImageData(vitalitysensorR_png);
//else vitalitysensorImgData = new GuiImageData(vitalitysensor_png);
if ( balanceboard ) balanceboardImgData = new GuiImageData ( balanceboardR_png ) ;
else balanceboardImgData = new GuiImageData ( balanceboard_png ) ;
if ( dancepad ) dancepadImgData = new GuiImageData ( dancepadR_png ) ;
else dancepadImgData = new GuiImageData ( dancepad_png ) ;
// look for optional accessories
for ( int i = 1 ; i < = XML_ELEMMAX ; i + + ) {
if ( strcmp ( gameinfo . accessories [ i ] , " classiccontroller " ) = = 0 )
classiccontroller = 1 ;
if ( strcmp ( gameinfo . accessories [ i ] , " nunchuk " ) = = 0 )
nunchuk = 1 ;
if ( strcmp ( gameinfo . accessories [ i ] , " guitar " ) = = 0 )
guitar = 1 ;
if ( strcmp ( gameinfo . accessories [ i ] , " drums " ) = = 0 )
drums = 1 ;
if ( strcmp ( gameinfo . accessories [ i ] , " dancepad " ) = = 0 )
dancepad = 1 ;
if ( strcmp ( gameinfo . accessories [ i ] , " motionplus " ) = = 0 )
motionplus = 1 ;
if ( strcmp ( gameinfo . accessories [ i ] , " wheel " ) = = 0 )
wheel = 1 ;
if ( strcmp ( gameinfo . accessories [ i ] , " balanceboard " ) = = 0 )
balanceboard = 1 ;
if ( strcmp ( gameinfo . accessories [ i ] , " microphone " ) = = 0 )
microphone = 1 ;
if ( strcmp ( gameinfo . accessories [ i ] , " zapper " ) = = 0 )
zapper = 1 ;
if ( strcmp ( gameinfo . accessories [ i ] , " nintendods " ) = = 0 )
nintendods = 1 ;
if ( strcmp ( gameinfo . accessories [ i ] , " wiispeak " ) = = 0 )
wiispeak = 1 ;
//if (strcmp(gameinfo.accessories[i],"vitalitysensor")==0)
// vitalitysensor=1;
if ( strcmp ( gameinfo . accessories [ i ] , " gamecube " ) = = 0 )
gamecube = 1 ;
}
dialogBoxImg1 = new GuiImage ( & dialogBox1 ) ;
dialogBoxImg1 - > SetAlignment ( 0 , 3 ) ;
dialogBoxImg1 - > SetPosition ( - 9 , 0 ) ;
dialogBoxImg2 = new GuiImage ( & dialogBox2 ) ;
dialogBoxImg2 - > SetAlignment ( 0 , 3 ) ;
dialogBoxImg2 - > SetPosition ( 145 , 0 ) ;
dialogBoxImg3 = new GuiImage ( & dialogBox3 ) ;
dialogBoxImg3 - > SetAlignment ( 0 , 3 ) ;
dialogBoxImg3 - > SetPosition ( 301 , 0 ) ;
dialogBoxImg4 = new GuiImage ( & dialogBox4 ) ;
dialogBoxImg4 - > SetAlignment ( 0 , 3 ) ;
dialogBoxImg4 - > SetPosition ( 457 , 0 ) ;
gameinfoWindow . Append ( dialogBoxImg1 ) ;
gameinfoWindow . Append ( dialogBoxImg2 ) ;
gameinfoWindow . Append ( dialogBoxImg3 ) ;
gameinfoWindow . Append ( dialogBoxImg4 ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %s%s.png " , Settings . covers_path , ID ) ;
cover = new GuiImageData ( imgPath , 0 ) ; //load full id image
if ( ! cover - > GetImage ( ) ) {
delete cover ;
snprintf ( imgPath , sizeof ( imgPath ) , " %snoimage.png " , Settings . covers_path ) ;
cover = new GuiImageData ( imgPath , nocover_png ) ; //load no image
}
delete coverImg ;
coverImg = NULL ;
coverImg = new GuiImage ( cover ) ;
coverImg - > SetWidescreen ( CFG . widescreen ) ;
coverImg - > SetPosition ( 15 , 30 ) ;
gameinfoWindow . Append ( coverImg ) ;
// # of players
if ( strcmp ( gameinfo . players , " " ) ! = 0 ) {
playersImgData = new GuiImageData ( Wiimote1_png ) ;
if ( atoi ( gameinfo . players ) > 1 ) {
playersImgData = new GuiImageData ( Wiimote2_png ) ;
}
if ( atoi ( gameinfo . players ) > 2 ) {
playersImgData = new GuiImageData ( Wiimote4_png ) ;
}
playersImg = new GuiImage ( playersImgData ) ;
playersImg - > SetWidescreen ( CFG . widescreen ) ;
playersImg - > SetPosition ( intputX , inputY ) ;
playersImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( playersImg ) ;
intputX + = ( CFG . widescreen ? playersImg - > GetWidth ( ) * .8 : playersImg - > GetWidth ( ) ) + 5 ;
}
//draw the input types for this game
if ( motionplus = = 1 ) {
motionplusImg = new GuiImage ( motionplusImgData ) ;
motionplusImg - > SetWidescreen ( CFG . widescreen ) ;
motionplusImg - > SetPosition ( intputX , inputY ) ;
motionplusImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( motionplusImg ) ;
intputX + = ( CFG . widescreen ? motionplusImg - > GetWidth ( ) * .8 : motionplusImg - > GetWidth ( ) ) + 5 ;
}
if ( nunchuk = = 1 ) {
nunchukImg = new GuiImage ( nunchukImgData ) ;
nunchukImg - > SetWidescreen ( CFG . widescreen ) ;
nunchukImg - > SetPosition ( intputX , inputY ) ;
nunchukImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( nunchukImg ) ;
intputX + = ( CFG . widescreen ? nunchukImg - > GetWidth ( ) * .8 : nunchukImg - > GetWidth ( ) ) + 5 ;
}
if ( classiccontroller = = 1 ) {
classiccontrollerImg = new GuiImage ( classiccontrollerImgData ) ;
classiccontrollerImg - > SetWidescreen ( CFG . widescreen ) ;
classiccontrollerImg - > SetPosition ( intputX , inputY ) ;
classiccontrollerImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( classiccontrollerImg ) ;
intputX + = ( CFG . widescreen ? classiccontrollerImg - > GetWidth ( ) * .8 : classiccontrollerImg - > GetWidth ( ) ) + 5 ;
}
if ( gamecube = = 1 ) {
gcImg = new GuiImage ( gamecubeImgData ) ;
gcImg - > SetWidescreen ( CFG . widescreen ) ;
gcImg - > SetPosition ( intputX , inputY ) ;
gcImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( gcImg ) ;
intputX + = ( CFG . widescreen ? gcImg - > GetWidth ( ) * .8 : gcImg - > GetWidth ( ) ) + 5 ;
}
if ( wheel = = 1 ) {
wheelImg = new GuiImage ( wheelImgData ) ;
wheelImg - > SetWidescreen ( CFG . widescreen ) ;
wheelImg - > SetPosition ( intputX , inputY ) ;
wheelImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( wheelImg ) ;
intputX + = ( CFG . widescreen ? wheelImg - > GetWidth ( ) * .8 : wheelImg - > GetWidth ( ) ) + 5 ;
}
if ( guitar = = 1 ) {
guitarImg = new GuiImage ( guitarImgData ) ;
guitarImg - > SetWidescreen ( CFG . widescreen ) ;
guitarImg - > SetPosition ( intputX , inputY ) ;
guitarImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( guitarImg ) ;
intputX + = ( CFG . widescreen ? guitarImg - > GetWidth ( ) * .8 : guitarImg - > GetWidth ( ) ) + 5 ;
}
if ( drums = = 1 ) {
drumsImg = new GuiImage ( drumsImgData ) ;
drumsImg - > SetWidescreen ( CFG . widescreen ) ;
drumsImg - > SetPosition ( intputX , inputY ) ;
drumsImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( drumsImg ) ;
intputX + = ( CFG . widescreen ? drumsImg - > GetWidth ( ) * .8 : drumsImg - > GetWidth ( ) ) + 5 ;
}
if ( microphone = = 1 ) {
microphoneImg = new GuiImage ( microphoneImgData ) ;
microphoneImg - > SetWidescreen ( CFG . widescreen ) ;
microphoneImg - > SetPosition ( intputX , inputY ) ;
microphoneImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( microphoneImg ) ;
intputX + = ( CFG . widescreen ? microphoneImg - > GetWidth ( ) * .8 : microphoneImg - > GetWidth ( ) ) + 5 ;
}
if ( zapper = = 1 ) {
zapperImg = new GuiImage ( zapperImgData ) ;
zapperImg - > SetWidescreen ( CFG . widescreen ) ;
zapperImg - > SetPosition ( intputX , inputY ) ;
zapperImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( zapperImg ) ;
intputX + = ( CFG . widescreen ? zapperImg - > GetWidth ( ) * .8 : zapperImg - > GetWidth ( ) ) + 5 ;
}
if ( wiispeak = = 1 ) {
wiispeakImg = new GuiImage ( wiispeakImgData ) ;
wiispeakImg - > SetWidescreen ( CFG . widescreen ) ;
wiispeakImg - > SetPosition ( intputX , inputY ) ;
wiispeakImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( wiispeakImg ) ;
intputX + = ( CFG . widescreen ? wiispeakImg - > GetWidth ( ) * .8 : wiispeakImg - > GetWidth ( ) ) + 5 ;
}
if ( nintendods = = 1 ) {
nintendodsImg = new GuiImage ( nintendodsImgData ) ;
nintendodsImg - > SetWidescreen ( CFG . widescreen ) ;
nintendodsImg - > SetPosition ( intputX , inputY ) ;
nintendodsImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( nintendodsImg ) ;
intputX + = ( CFG . widescreen ? nintendodsImg - > GetWidth ( ) * .8 : nintendodsImg - > GetWidth ( ) ) + 5 ;
}
/*
if ( vitalitysensor = = 1 ) {
vitalitysensorImg = new GuiImage ( vitalitysensorImgData ) ;
vitalitysensorImg - > SetWidescreen ( CFG . widescreen ) ;
vitalitysensorImg - > SetPosition ( intputX , inputY ) ;
vitalitysensorImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( vitalitysensorImg ) ;
intputX + = ( CFG . widescreen ? vitalitysensorImg - > GetWidth ( ) * .8 : vitalitysensorImg - > GetWidth ( ) ) + 5 ;
}
*/
if ( dancepad = = 1 ) {
dancepadImg = new GuiImage ( dancepadImgData ) ;
dancepadImg - > SetWidescreen ( CFG . widescreen ) ;
dancepadImg - > SetPosition ( intputX , inputY ) ;
dancepadImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( dancepadImg ) ;
intputX + = ( CFG . widescreen ? dancepadImg - > GetWidth ( ) * .8 : dancepadImg - > GetWidth ( ) ) + 5 ;
}
if ( balanceboard = = 1 ) {
balanceboardImg = new GuiImage ( balanceboardImgData ) ;
balanceboardImg - > SetWidescreen ( CFG . widescreen ) ;
balanceboardImg - > SetPosition ( intputX , inputY ) ;
balanceboardImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( balanceboardImg ) ;
intputX + = ( CFG . widescreen ? balanceboardImg - > GetWidth ( ) * .8 : balanceboardImg - > GetWidth ( ) ) + 5 ;
}
// # online players
if ( ( strcmp ( gameinfo . wifiplayers , " " ) ! = 0 ) & & ( strcmp ( gameinfo . wifiplayers , " 0 " ) ! = 0 ) ) {
wifiplayersImgData = new GuiImageData ( wifi1_png ) ;
if ( atoi ( gameinfo . wifiplayers ) > 1 ) {
wifiplayersImgData = new GuiImageData ( wifi2_png ) ;
}
if ( atoi ( gameinfo . wifiplayers ) > 2 ) {
wifiplayersImgData = new GuiImageData ( wifi4_png ) ;
}
if ( atoi ( gameinfo . wifiplayers ) > 4 ) {
//wifiplayersImgData= new GuiImageData(wifi6_png);
wifiplayersImgData = new GuiImageData ( wifi8_png ) ;
}
/*
if ( atoi ( gameinfo . wifiplayers ) > 6 ) {
wifiplayersImgData = new GuiImageData ( wifi8_png ) ;
}
*/
if ( atoi ( gameinfo . wifiplayers ) > 8 ) {
wifiplayersImgData = new GuiImageData ( wifi12_png ) ;
}
if ( atoi ( gameinfo . wifiplayers ) > 12 ) {
wifiplayersImgData = new GuiImageData ( wifi16_png ) ;
}
if ( atoi ( gameinfo . wifiplayers ) > 16 ) {
wifiplayersImgData = new GuiImageData ( wifi32_png ) ;
}
wifiplayersImg = new GuiImage ( wifiplayersImgData ) ;
wifiplayersImg - > SetWidescreen ( CFG . widescreen ) ;
wifiplayersImg - > SetPosition ( intputX , inputY ) ;
wifiplayersImg - > SetAlignment ( 0 , 4 ) ;
gameinfoWindow . Append ( wifiplayersImg ) ;
intputX + = ( CFG . widescreen ? wifiplayersImg - > GetWidth ( ) * .8 : wifiplayersImg - > GetWidth ( ) ) + 5 ;
}
// ratings
if ( strcmp ( gameinfo . ratingtype , " " ) ! = 0 ) {
if ( strcmp ( gameinfo . ratingtype , " ESRB " ) = = 0 ) {
if ( strcmp ( gameinfo . ratingvalueESRB , " EC " ) = = 0 )
ratingImgData = new GuiImageData ( esrb_ec_png ) ;
else if ( strcmp ( gameinfo . ratingvalueESRB , " E " ) = = 0 )
ratingImgData = new GuiImageData ( esrb_e_png ) ;
else if ( strcmp ( gameinfo . ratingvalueESRB , " E10+ " ) = = 0 )
ratingImgData = new GuiImageData ( esrb_eten_png ) ;
else if ( strcmp ( gameinfo . ratingvalueESRB , " T " ) = = 0 )
ratingImgData = new GuiImageData ( esrb_t_png ) ;
else if ( strcmp ( gameinfo . ratingvalueESRB , " M " ) = = 0 )
ratingImgData = new GuiImageData ( esrb_m_png ) ;
else if ( strcmp ( gameinfo . ratingvalueESRB , " AO " ) = = 0 )
ratingImgData = new GuiImageData ( esrb_ao_png ) ;
else {
ratingImgData = new GuiImageData ( norating_png ) ;
}
} //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
if ( ( strcmp ( gameinfo . ratingvaluePEGI , " 3 " ) = = 0 ) | | ( strcmp ( gameinfo . ratingvaluePEGI , " 4 " ) = = 0 ) )
ratingImgData = new GuiImageData ( pegi_3_png ) ;
else if ( ( strcmp ( gameinfo . ratingvaluePEGI , " 7 " ) = = 0 ) | | ( strcmp ( gameinfo . ratingvaluePEGI , " 7 " ) = = 0 ) )
ratingImgData = new GuiImageData ( pegi_7_png ) ;
else if ( strcmp ( gameinfo . ratingvaluePEGI , " 12 " ) = = 0 )
ratingImgData = new GuiImageData ( pegi_12_png ) ;
else if ( ( strcmp ( gameinfo . ratingvaluePEGI , " 16 " ) = = 0 ) | | ( strcmp ( gameinfo . ratingvaluePEGI , " 15 " ) = = 0 ) )
ratingImgData = new GuiImageData ( pegi_16_png ) ;
else if ( strcmp ( gameinfo . ratingvaluePEGI , " 18 " ) = = 0 )
ratingImgData = new GuiImageData ( pegi_18_png ) ;
else {
ratingImgData = new GuiImageData ( norating_png ) ;
}
} else if ( strcmp ( gameinfo . ratingtype , " CERO " ) = = 0 ) {
if ( strcmp ( gameinfo . ratingvalueCERO , " A " ) = = 0 )
ratingImgData = new GuiImageData ( cero_a_png ) ;
else if ( strcmp ( gameinfo . ratingvalueCERO , " B " ) = = 0 )
ratingImgData = new GuiImageData ( cero_b_png ) ;
else if ( strcmp ( gameinfo . ratingvalueCERO , " C " ) = = 0 )
ratingImgData = new GuiImageData ( cero_c_png ) ;
else if ( strcmp ( gameinfo . ratingvalueCERO , " D " ) = = 0 )
ratingImgData = new GuiImageData ( cero_d_png ) ;
else if ( strcmp ( gameinfo . ratingvalueCERO , " Z " ) = = 0 )
ratingImgData = new GuiImageData ( cero_z_png ) ;
else {
ratingImgData = new GuiImageData ( norating_png ) ;
}
}
else {
ratingImgData = new GuiImageData ( norating_png ) ;
}
ratingImg = new GuiImage ( ratingImgData ) ;
ratingImg - > SetWidescreen ( CFG . widescreen ) ;
ratingImg - > SetPosition ( - 25 , inputY ) ;
ratingImg - > SetAlignment ( 1 , 4 ) ;
gameinfoWindow . Append ( ratingImg ) ;
intputX + = ( CFG . widescreen ? ratingImg - > GetWidth ( ) * .8 : ratingImg - > GetWidth ( ) ) + 5 ;
}
// memory info
if ( showmeminfo ) {
char meminfotxt [ 200 ] ;
strlcpy ( meminfotxt , MemInfo ( ) , sizeof ( meminfotxt ) ) ;
snprintf ( linebuf , sizeof ( linebuf ) , " %s " , meminfotxt ) ;
memTxt = new GuiText ( linebuf , 18 , ( GXColor ) { 0 , 0 , 0 , 255 } ) ;
memTxt - > SetAlignment ( ALIGN_LEFT , ALIGN_TOP ) ;
memTxt - > SetPosition ( 0 , 0 ) ;
gameinfoWindow . Append ( memTxt ) ;
}
// title
int titlefontsize = 25 ;
if ( strcmp ( gameinfo . title , " " ) ! = 0 ) {
snprintf ( linebuf , sizeof ( linebuf ) , " %s " , gameinfo . title ) ;
titleTxt = new GuiText ( linebuf , titlefontsize , ( GXColor ) { 0 , 0 , 0 , 255 } ) ;
2009-10-19 22:34:54 +02:00
titleTxt - > SetMaxWidth ( 350 , GuiText : : SCROLL ) ;
2009-10-01 01:10:58 +02:00
//while (titleTxt->GetWidth()>250) { titleTxt->SetFontSize(titlefontsize-=2); }
titleTxt - > SetAlignment ( ALIGN_CENTRE , ALIGN_TOP ) ;
titleTxt - > SetPosition ( txtXOffset , 12 + titley ) ;
gameinfoWindow . Append ( titleTxt ) ;
}
//date
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " " ) ;
if ( strcmp ( gameinfo . day , " " ) ! = 0 ) {
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " %s " , gameinfo . day ) ;
}
if ( strcmp ( gameinfo . month , " " ) ! = 0 ) {
switch ( atoi ( gameinfo . month ) ) {
case 1 :
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " %s%s " , linebuf2 , tr ( " Jan " ) ) ;
break ;
case 2 :
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " %s%s " , linebuf2 , tr ( " Feb " ) ) ;
break ;
case 3 :
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " %s%s " , linebuf2 , tr ( " Mar " ) ) ;
break ;
case 4 :
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " %s%s " , linebuf2 , tr ( " Apr " ) ) ;
break ;
case 5 :
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " %s%s " , linebuf2 , tr ( " May " ) ) ;
break ;
case 6 :
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " %s%s " , linebuf2 , tr ( " June " ) ) ;
break ;
case 7 :
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " %s%s " , linebuf2 , tr ( " July " ) ) ;
break ;
case 8 :
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " %s%s " , linebuf2 , tr ( " Aug " ) ) ;
break ;
case 9 :
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " %s%s " , linebuf2 , tr ( " Sept " ) ) ;
break ;
case 10 :
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " %s%s " , linebuf2 , tr ( " Oct " ) ) ;
break ;
case 11 :
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " %s%s " , linebuf2 , tr ( " Nov " ) ) ;
break ;
case 12 :
snprintf ( linebuf2 , sizeof ( linebuf2 ) , " %s%s " , linebuf2 , tr ( " Dec " ) ) ;
break ;
}
}
if ( strcmp ( gameinfo . year , " " ) ! = 0 ) {
snprintf ( linebuf , sizeof ( linebuf ) , " %s : %s%s " , tr ( " Released " ) , linebuf2 , gameinfo . year ) ;
releasedTxt = new GuiText ( linebuf , 16 , ( GXColor ) { 0 , 0 , 0 , 255 } ) ;
if ( releasedTxt - > GetWidth ( ) > 300 ) newline = 2 ;
releasedTxt - > SetAlignment ( ALIGN_RIGHT , ALIGN_TOP ) ;
releasedTxt - > SetPosition ( - 17 , 12 + indexy ) ;
indexy + = ( 20 * newline ) ;
newline = 1 ;
gameinfoWindow . Append ( releasedTxt ) ;
}
//publisher
if ( strcmp ( gameinfo . publisher , " " ) ! = 0 ) {
snprintf ( linebuf , sizeof ( linebuf ) , " %s %s " , tr ( " Published by " ) , gameinfo . publisher ) ;
publisherTxt = new GuiText ( linebuf , 16 , ( GXColor ) { 0 , 0 , 0 , 255 } ) ;
if ( publisherTxt - > GetWidth ( ) > 250 ) newline = 2 ;
2009-10-19 22:34:54 +02:00
publisherTxt - > SetMaxWidth ( 250 , GuiText : : WRAP ) ;
2009-10-01 01:10:58 +02:00
publisherTxt - > SetAlignment ( ALIGN_RIGHT , ALIGN_TOP ) ;
publisherTxt - > SetPosition ( - 17 , 12 + indexy ) ;
indexy + = ( 20 * newline ) ;
newline = 1 ;
gameinfoWindow . Append ( publisherTxt ) ;
}
//developer
if ( strcmp ( gameinfo . developer , " " ) ! = 0 & & strcasecmp ( gameinfo . developer , gameinfo . publisher ) ! = 0 ) {
snprintf ( linebuf , sizeof ( linebuf ) , " %s %s " , tr ( " Developed by " ) , gameinfo . developer ) ;
developerTxt = new GuiText ( linebuf , 16 , ( GXColor ) { 0 , 0 , 0 , 255 } ) ;
if ( developerTxt - > GetWidth ( ) > 250 ) newline = 2 ;
2009-10-19 22:34:54 +02:00
developerTxt - > SetMaxWidth ( 250 , GuiText : : WRAP ) ;
2009-10-01 01:10:58 +02:00
developerTxt - > SetAlignment ( ALIGN_RIGHT , ALIGN_TOP ) ;
developerTxt - > SetPosition ( - 17 , 12 + indexy ) ;
indexy + = ( 20 * newline ) ;
newline = 1 ;
gameinfoWindow . Append ( developerTxt ) ;
}
//genre
int genreY = marginY ;
genreTxt = new GuiText * [ gameinfo . genreCnt + 1 ] ;
for ( int i = 1 ; i < = gameinfo . genreCnt ; i + + ) {
snprintf ( linebuf , sizeof ( linebuf ) , " %s " , gameinfo . genresplit [ i ] ) ;
genreTxt [ i ] = new GuiText ( linebuf , 16 , ( GXColor ) { 0 , 0 , 0 , 255 } ) ;
genreTxt [ i ] - > SetAlignment ( ALIGN_LEFT , ALIGN_TOP ) ;
genreTxt [ i ] - > SetPosition ( 205 , 12 + genreY ) ;
genreY + = 20 ;
gameinfoWindow . Append ( genreTxt [ i ] ) ;
}
//online
wifiTxt = new GuiText * [ gameinfo . wifiCnt + 1 ] ;
for ( int i = gameinfo . wifiCnt ; i > = 1 ; i - - ) {
if ( strcmp ( gameinfo . wififeatures [ i ] , " Nintendods " ) = = 0 ) {
snprintf ( linebuf , sizeof ( linebuf ) , " Nintendo DS " ) ;
} else {
snprintf ( linebuf , sizeof ( linebuf ) , " %s " , gameinfo . wififeatures [ i ] ) ;
}
wifiTxt [ i ] = new GuiText ( linebuf , 16 , ( GXColor ) { 0 , 0 , 0 , 255 } ) ;
wifiTxt [ i ] - > SetAlignment ( ALIGN_LEFT , ALIGN_TOP ) ;
wifiTxt [ i ] - > SetPosition ( 215 , 200 + wifiY ) ;
wifiY - = 20 ;
gameinfoWindow . Append ( wifiTxt [ i ] ) ;
}
if ( strcmp ( gameinfo . wififeatures [ 1 ] , " " ) ! = 0 ) {
snprintf ( linebuf , sizeof ( linebuf ) , " %s: " , tr ( " WiFi Features " ) ) ;
wifiTxt [ 0 ] = new GuiText ( linebuf , 16 , ( GXColor ) { 0 , 0 , 0 , 255 } ) ;
wifiTxt [ 0 ] - > SetAlignment ( ALIGN_LEFT , ALIGN_TOP ) ;
wifiTxt [ 0 ] - > SetPosition ( 205 , 200 + wifiY ) ;
gameinfoWindow . Append ( wifiTxt [ 0 ] ) ;
}
//synopsis
int pagesize = 12 ;
if ( strcmp ( gameinfo . synopsis , " " ) ! = 0 ) {
snprintf ( linebuf , sizeof ( linebuf ) , " %s " , gameinfo . synopsis ) ;
synopsisTxt = new GuiText ( linebuf , 16 , ( GXColor ) { 0 , 0 , 0 , 255 } ) ;
2009-10-19 22:34:54 +02:00
synopsisTxt - > SetMaxWidth ( 350 , GuiText : : WRAP ) ;
2009-10-01 01:10:58 +02:00
synopsisTxt - > SetAlignment ( ALIGN_LEFT , ALIGN_TOP ) ;
synopsisTxt - > SetPosition ( 0 , 0 ) ;
2009-10-19 22:34:54 +02:00
synopsisTxt - > SetNumLines ( pagesize ) ;
//synopsisTxt->SetFirstLine(12);
2009-10-01 01:10:58 +02:00
dialogBoxImg11 = new GuiImage ( & dialogBox1 ) ;
dialogBoxImg11 - > SetAlignment ( 0 , 3 ) ;
dialogBoxImg11 - > SetPosition ( - 9 , 0 ) ;
dialogBoxImg22 = new GuiImage ( & dialogBox2 ) ;
dialogBoxImg22 - > SetAlignment ( 0 , 3 ) ;
dialogBoxImg22 - > SetPosition ( 145 , 0 ) ;
dialogBoxImg33 = new GuiImage ( & dialogBox3 ) ;
dialogBoxImg33 - > SetAlignment ( 0 , 3 ) ;
dialogBoxImg33 - > SetPosition ( 301 , 0 ) ;
dialogBoxImg44 = new GuiImage ( & dialogBox4 ) ;
dialogBoxImg44 - > SetAlignment ( 0 , 3 ) ;
dialogBoxImg44 - > SetPosition ( 457 , 0 ) ;
gameinfoWindow2 . Append ( dialogBoxImg11 ) ;
gameinfoWindow2 . Append ( dialogBoxImg22 ) ;
gameinfoWindow2 . Append ( dialogBoxImg33 ) ;
gameinfoWindow2 . Append ( dialogBoxImg44 ) ;
txtWindow . Append ( synopsisTxt ) ;
txtWindow . Append ( & upBtn ) ;
txtWindow . Append ( & dnBtn ) ;
coverImg2 = new GuiImage ( cover ) ;
coverImg2 - > SetWidescreen ( CFG . widescreen ) ;
coverImg2 - > SetPosition ( 15 , 30 ) ;
gameinfoWindow2 . Append ( coverImg2 ) ;
gameinfoWindow2 . Append ( & txtWindow ) ;
}
snprintf ( linebuf , sizeof ( linebuf ) , " http://wiitdb.com " ) ;
//snprintf(linebuf, sizeof(linebuf), tr("Don't bother the USB Loader GX Team about errors in this file."));
wiitdb1Txt = new GuiText ( linebuf , 16 , ( GXColor ) { 0 , 0 , 0 , 255 } ) ;
wiitdb1Txt - > SetAlignment ( ALIGN_LEFT , ALIGN_BOTTOM ) ;
wiitdb1Txt - > SetPosition ( 40 , - 15 ) ;
gameinfoWindow . Append ( wiitdb1Txt ) ;
snprintf ( linebuf , sizeof ( linebuf ) , tr ( " If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip " ) ) ;
wiitdb2Txt = new GuiText ( linebuf , 14 , ( GXColor ) { 0 , 0 , 0 , 255 } ) ;
wiitdb2Txt - > SetAlignment ( ALIGN_LEFT , ALIGN_BOTTOM ) ;
wiitdb2Txt - > SetPosition ( 202 , - 15 ) ;
gameinfoWindow . Append ( wiitdb2Txt ) ;
snprintf ( linebuf , sizeof ( linebuf ) , " " ) ;
wiitdb3Txt = new GuiText ( linebuf , 14 , ( GXColor ) { 0 , 0 , 0 , 255 } ) ;
wiitdb3Txt - > SetAlignment ( ALIGN_LEFT , ALIGN_BOTTOM ) ;
wiitdb3Txt - > SetPosition ( 202 , - 4 ) ;
gameinfoWindow . Append ( wiitdb3Txt ) ;
gameinfoWindow . SetEffect ( EFFECT_SLIDE_LEFT | EFFECT_SLIDE_IN , 100 ) ;
HaltGui ( ) ;
//mainWindow->SetState(STATE_DISABLED);
mainWindow - > Append ( & gameinfoWindow ) ;
mainWindow - > ChangeFocus ( & gameinfoWindow ) ;
ResumeGui ( ) ;
2009-10-17 22:48:52 +02:00
2009-10-01 01:10:58 +02:00
bool savedURL = false ;
while ( choice = = - 1 ) {
VIDEO_WaitVSync ( ) ;
if ( shutdown = = 1 ) {
wiilight ( 0 ) ;
Sys_Shutdown ( ) ;
} else if ( reset = = 1 )
Sys_Reboot ( ) ;
else if ( ( backBtn . GetState ( ) = = STATE_CLICKED ) | | ( backBtn . GetState ( ) = = STATE_HELD ) ) {
2009-10-01 07:13:01 +02:00
backBtn . ResetState ( ) ;
2009-10-01 01:10:58 +02:00
if ( page = = 1 ) {
choice = 1 ;
synopsisTxt = NULL ;
break ;
} else if ( page = = 2 ) {
HaltGui ( ) ;
2009-10-01 07:13:01 +02:00
gameinfoWindow2 . Remove ( & nextBtn ) ;
gameinfoWindow2 . Remove ( & backBtn ) ;
gameinfoWindow2 . Remove ( & homeBtn ) ;
2009-10-01 01:10:58 +02:00
gameinfoWindow2 . SetVisible ( false ) ;
gameinfoWindow . SetVisible ( true ) ;
2009-10-01 07:13:01 +02:00
gameinfoWindow . Append ( & backBtn ) ;
gameinfoWindow . Append ( & nextBtn ) ;
gameinfoWindow . Append ( & homeBtn ) ;
2009-10-01 01:10:58 +02:00
mainWindow - > Remove ( & gameinfoWindow2 ) ;
ResumeGui ( ) ;
page = 1 ;
}
} else if ( ( ( nextBtn . GetState ( ) = = STATE_CLICKED ) | | ( nextBtn . GetState ( ) = = STATE_HELD ) ) & &
( strcmp ( gameinfo . synopsis , " " ) ! = 0 ) ) {
2009-10-01 07:13:01 +02:00
nextBtn . ResetState ( ) ;
2009-10-01 01:10:58 +02:00
if ( page = = 1 ) {
HaltGui ( ) ;
2009-10-01 07:13:01 +02:00
gameinfoWindow . Remove ( & nextBtn ) ;
gameinfoWindow . Remove ( & backBtn ) ;
gameinfoWindow . Remove ( & homeBtn ) ;
2009-10-01 01:10:58 +02:00
gameinfoWindow . SetVisible ( false ) ;
gameinfoWindow2 . SetVisible ( true ) ;
coverImg - > SetPosition ( 15 , 30 ) ;
gameinfoWindow2 . Append ( & nextBtn ) ;
gameinfoWindow2 . Append ( & backBtn ) ;
gameinfoWindow2 . Append ( & homeBtn ) ;
mainWindow - > Append ( & gameinfoWindow2 ) ;
ResumeGui ( ) ;
page = 2 ;
} else {
HaltGui ( ) ;
2009-10-01 07:13:01 +02:00
gameinfoWindow2 . Remove ( & nextBtn ) ;
gameinfoWindow2 . Remove ( & backBtn ) ;
gameinfoWindow2 . Remove ( & homeBtn ) ;
2009-10-01 01:10:58 +02:00
gameinfoWindow2 . SetVisible ( false ) ;
gameinfoWindow . SetVisible ( true ) ;
gameinfoWindow . Append ( & backBtn ) ;
gameinfoWindow . Append ( & nextBtn ) ;
gameinfoWindow . Append ( & homeBtn ) ;
mainWindow - > Remove ( & gameinfoWindow2 ) ;
ResumeGui ( ) ;
page = 1 ;
}
} else if ( ( upBtn . GetState ( ) = = STATE_CLICKED | | upBtn . GetState ( ) = = STATE_HELD ) & & page = = 2 ) {
2009-10-19 22:34:54 +02:00
//int l=synopsisTxt->GetFirstLine()-1;
if ( synopsisTxt - > GetFirstLine ( ) > 1 )
synopsisTxt - > SetFirstLine ( synopsisTxt - > GetFirstLine ( ) - 1 ) ;
usleep ( 60000 ) ;
2009-10-01 01:10:58 +02:00
if ( ! ( ( ButtonsHold ( ) & WPAD_BUTTON_UP ) | | ( ButtonsHold ( ) & PAD_BUTTON_UP ) ) )
upBtn . ResetState ( ) ;
2009-10-19 22:34:54 +02:00
} else if ( ( dnBtn . GetState ( ) = = STATE_CLICKED | | dnBtn . GetState ( ) = = STATE_HELD ) & & page = = 2
& & synopsisTxt - > GetTotalLines ( ) > pagesize
& & synopsisTxt - > GetFirstLine ( ) - 1 < synopsisTxt - > GetTotalLines ( ) - pagesize ) {
int l = 0 ;
//if(synopsisTxt->GetTotalLines()>pagesize)
l = synopsisTxt - > GetFirstLine ( ) + 1 ;
//if (l>(synopsisTxt->GetTotalLines()+1)-pagesize)
//l=(synopsisTxt->GetTotalLines()+1)-pagesize;
synopsisTxt - > SetFirstLine ( l ) ;
2009-10-01 01:10:58 +02:00
usleep ( 60000 ) ;
if ( ! ( ( ButtonsHold ( ) & WPAD_BUTTON_DOWN ) | | ( ButtonsHold ( ) & PAD_BUTTON_DOWN ) ) )
dnBtn . ResetState ( ) ;
} else if ( homeBtn . GetState ( ) = = STATE_CLICKED ) {
if ( page = = 1 ) {
choice = 2 ;
synopsisTxt = NULL ;
break ;
} else if ( page = = 2 ) {
HaltGui ( ) ;
gameinfoWindow2 . SetVisible ( false ) ;
gameinfoWindow . SetVisible ( true ) ;
mainWindow - > Remove ( & gameinfoWindow2 ) ;
ResumeGui ( ) ;
page = 1 ;
}
} else if ( urlBtn . GetState ( ) = = STATE_CLICKED & & ! savedURL ) {
snprintf ( linebuf , sizeof ( linebuf ) , tr ( " Please wait... " ) ) ;
wiitdb2Txt - > SetText ( linebuf ) ;
gameinfoWindow . Append ( wiitdb2Txt ) ;
if ( save_XML_URL ( ) ) {
snprintf ( linebuf , sizeof ( linebuf ) , tr ( " Your URL has been saved in %sWiiTDB_URL.txt. " ) , Settings . update_path ) ;
wiitdb2Txt - > SetText ( linebuf ) ;
gameinfoWindow . Append ( wiitdb2Txt ) ;
snprintf ( linebuf , sizeof ( linebuf ) , tr ( " Paste it into your browser to get your WiiTDB.zip. " ) ) ;
wiitdb3Txt - > SetText ( linebuf ) ;
gameinfoWindow . Append ( wiitdb3Txt ) ;
savedURL = true ;
} else {
snprintf ( linebuf , sizeof ( linebuf ) , tr ( " Could not save. " ) ) ;
wiitdb2Txt - > SetText ( linebuf ) ;
gameinfoWindow . Append ( wiitdb2Txt ) ;
}
urlBtn . ResetState ( ) ;
}
}
if ( page = = 1 ) {
gameinfoWindow . SetEffect ( EFFECT_SLIDE_LEFT | EFFECT_SLIDE_OUT , 100 ) ;
while ( gameinfoWindow . GetEffect ( ) > 0 ) usleep ( 50 ) ;
HaltGui ( ) ;
mainWindow - > Remove ( & gameinfoWindow ) ;
mainWindow - > SetState ( STATE_DEFAULT ) ;
delete playersImgData ;
delete playersImg ;
delete wifiplayersImgData ;
delete wifiplayersImg ;
delete ratingImg ;
delete classiccontrollerImg ;
delete nunchukImg ;
delete guitarImg ;
delete drumsImg ;
delete dancepadImg ;
delete motionplusImg ;
delete wheelImg ;
delete balanceboardImg ;
delete microphoneImg ;
delete zapperImg ;
delete wiispeakImg ;
delete nintendodsImg ;
//delete vitalitysensorImg;
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 nunchukImgData ;
delete guitarImgData ;
delete drumsImgData ;
delete motionplusImgData ;
delete wheelImgData ;
delete balanceboardImgData ;
delete dancepadImgData ;
delete microphoneImgData ;
delete zapperImgData ;
delete wiispeakImgData ;
delete nintendodsImgData ;
//delete vitalitysensorImgData;
delete gamecubeImgData ;
delete ratingImgData ;
delete cover ;
delete releasedTxt ;
delete publisherTxt ;
delete developerTxt ;
delete titleTxt ;
delete synopsisTxt ;
delete wiitdb1Txt ;
delete wiitdb2Txt ;
delete wiitdb3Txt ;
delete memTxt ;
if ( gameinfo . genreCnt > 0 ) {
for ( int i = 1 ; i < = gameinfo . genreCnt ; i + + ) {
delete genreTxt [ i ] ;
}
}
if ( gameinfo . wifiCnt > 0 ) {
for ( int i = 0 ; i < = gameinfo . wifiCnt ; i + + ) {
delete wifiTxt [ i ] ;
}
}
ResumeGui ( ) ;
} else {
gameinfoWindow2 . SetEffect ( EFFECT_SLIDE_LEFT | EFFECT_SLIDE_OUT , 100 ) ;
while ( gameinfoWindow2 . GetEffect ( ) > 0 ) usleep ( 50 ) ;
HaltGui ( ) ;
mainWindow - > Remove ( & gameinfoWindow2 ) ;
mainWindow - > SetState ( STATE_DEFAULT ) ;
ResumeGui ( ) ;
}
2009-10-17 22:48:52 +02:00
2009-10-01 01:10:58 +02:00
if ( savedURL ) return 3 ;
return choice ;
/* File not found */
} else {
return - 1 ;
}
}
bool save_gamelist ( int txt ) { // save gamelist
mainWindow - > SetState ( STATE_DISABLED ) ;
char tmp [ 200 ] ;
sprintf ( tmp , " %s " , Settings . update_path ) ;
struct stat st ;
if ( stat ( tmp , & st ) ! = 0 ) {
mkdir ( tmp , 0777 ) ;
}
FILE * f ;
sprintf ( tmp , " %sGameList.txt " , Settings . update_path ) ;
if ( txt = = 1 )
sprintf ( tmp , " %sGameList.csv " , Settings . update_path ) ;
f = fopen ( tmp , " w " ) ;
if ( ! f ) {
sleep ( 1 ) ;
mainWindow - > SetState ( STATE_DEFAULT ) ;
return false ;
}
//make sure that all games are added to the gamelist
__Menu_GetEntries ( 1 ) ;
f32 size = 0.0 ;
f32 freespace , used ;
unsigned int i ;
2009-10-17 22:48:52 +02:00
2009-10-01 01:10:58 +02:00
WBFS_DiskSpace ( & used , & freespace ) ;
fprintf ( f , " # USB Loader Has Saved this file \n " ) ;
fprintf ( f , " # This file was created based on your list of games and language settings. \n " ) ;
fclose ( f ) ;
/* Closing and reopening because of a write issue we are having right now */
f = fopen ( tmp , " w " ) ;
2009-10-17 22:48:52 +02:00
2009-10-01 01:10:58 +02:00
if ( txt = = 0 ) {
fprintf ( f , " # USB Loader Has Saved this file \n " ) ;
fprintf ( f , " # This file was created based on your list of games and language settings. \n \n " ) ;
2009-10-17 22:48:52 +02:00
2009-10-01 01:10:58 +02:00
fprintf ( f , " %.2fGB %s %.2fGB %s \n \n " , freespace , tr ( " of " ) , ( freespace + used ) , tr ( " free " ) ) ;
fprintf ( f , " ID Size(GB) Name \n " ) ;
2009-10-17 22:48:52 +02:00
2009-10-01 01:10:58 +02:00
for ( i = 0 ; i < gameCnt ; i + + ) {
struct discHdr * header = & gameList [ i ] ;
WBFS_GameSize ( header - > id , & size ) ;
if ( i < 500 ) {
fprintf ( f , " %c%c%c%c%c%c " , header - > id [ 0 ] , header - > id [ 1 ] , header - > id [ 2 ] , header - > id [ 3 ] , header - > id [ 4 ] , header - > id [ 5 ] ) ;
fprintf ( f , " [%.2f] " , size ) ;
fprintf ( f , " %s " , get_title ( header ) ) ;
}
fprintf ( f , " \n " ) ;
}
} else {
2009-10-17 22:48:52 +02:00
2009-10-01 01:10:58 +02:00
fprintf ( f , " \" ID \" , \" Size(GB) \" , \" Name \" \n " ) ;
2009-10-17 22:48:52 +02:00
2009-10-01 01:10:58 +02:00
for ( i = 0 ; i < gameCnt ; i + + ) {
struct discHdr * header = & gameList [ i ] ;
WBFS_GameSize ( header - > id , & size ) ;
if ( i < 500 ) {
fprintf ( f , " \" %c%c%c%c%c%c \" , \" %.2f \" , \" %s \" \n " , header - > id [ 0 ] , header - > id [ 1 ] , header - > id [ 2 ] , header - > id [ 3 ] , header - > id [ 4 ] , header - > id [ 5 ] , size , get_title ( header ) ) ;
//fprintf(f, "\"%.2f\",", size);
//fprintf(f, "\"%s\"",get_title(header));
}
//fprintf(f, "\n");
}
}
fclose ( f ) ;
__Menu_GetEntries ( ) ;
mainWindow - > SetState ( STATE_DEFAULT ) ;
return true ;
}
bool save_XML_URL ( ) { // save xml url as as txt file for people without wifi
char tmp [ 200 ] ;
sprintf ( tmp , " %s " , Settings . update_path ) ;
struct stat st ;
if ( stat ( tmp , & st ) ! = 0 ) {
mkdir ( tmp , 0777 ) ;
}
FILE * f ;
sprintf ( tmp , " %sWiiTDB_URL.txt " , Settings . update_path ) ;
f = fopen ( tmp , " w " ) ;
if ( ! f ) {
sleep ( 1 ) ;
return false ;
}
2009-10-18 23:23:54 +02:00
char XMLurl [ 3540 ] ;
build_XML_URL ( XMLurl , sizeof ( XMLurl ) ) ;
2009-10-01 01:10:58 +02:00
fprintf ( f , " # USB Loader Has Saved this file \n " ) ;
fprintf ( f , " # This URL was created based on your list of games and language settings. \n " ) ;
fclose ( f ) ;
2009-10-17 22:48:52 +02:00
// Closing and reopening because of a write issue we are having right now
2009-10-01 01:10:58 +02:00
f = fopen ( tmp , " w " ) ;
fprintf ( f , " # USB Loader Has Saved this file \n " ) ;
fprintf ( f , " # This URL was created based on your list of games and language settings. \n " ) ;
fprintf ( f , " # Copy and paste this URL into your web browser and you should get a zip file that will work for you. \n " ) ;
fprintf ( f , " %s \n \n \n " , XMLurl ) ;
fclose ( f ) ;
return true ;
}
void MemInfoPrompt ( )
{
char meminfotxt [ 200 ] ;
strlcpy ( meminfotxt , MemInfo ( ) , sizeof ( meminfotxt ) ) ;
WindowPrompt ( 0 , meminfotxt , tr ( " OK " ) ) ;
}
2009-10-18 23:23:54 +02:00
void build_XML_URL ( char * XMLurl , int XMLurlsize ) {
__Menu_GetEntries ( 1 ) ;
// NET_BUFFER_SIZE in http.c needs to be set to size of XMLurl + 40
char url [ 3540 ] ;
char filename [ 10 ] ;
snprintf ( url , sizeof ( url ) , " http://wiitdb.com/wiitdb.zip?LANG=%s&ID= " , Settings . db_language ) ;
unsigned int i ;
for ( i = 0 ; i < gameCnt ; i + + ) {
struct discHdr * header = & gameList [ i ] ;
if ( i < 500 ) {
snprintf ( filename , sizeof ( filename ) , " %c%c%c%c%c%c " , header - > id [ 0 ] , header - > id [ 1 ] , header - > id [ 2 ] , header - > id [ 3 ] , header - > id [ 4 ] , header - > id [ 5 ] ) ;
strncat ( url , filename , 6 ) ;
if ( ( i ! = gameCnt - 1 ) & & ( i < 500 ) )
strncat ( url , " , " , 1 ) ;
}
}
strlcpy ( XMLurl , url , XMLurlsize ) ;
__Menu_GetEntries ( ) ;
}