2010-01-07 00:07:35 +01:00
# include "menus.h"
# include "fatmounter.h"
# include "usbloader/wdvd.h"
# include "usbloader/getentries.h"
# include "usbloader/wbfs.h"
# include "patches/fst.h"
# include "network/networkops.h"
# include "prompts/gameinfo.h"
# include "prompts/DiscBrowser.h"
# include "settings/Settings.h"
# include "wpad.h"
# include "sys.h"
# include "libwiigui/gui_gamebrowser.h"
# include "libwiigui/gui_gamegrid.h"
# include "libwiigui/gui_gamecarousel.h"
# include "libwiigui/gui_searchbar.h"
# define MAX_CHARACTERS 38
extern u8 * gameScreenTex ;
extern struct discHdr * dvdheader ;
extern u8 mountMethod ;
extern int load_from_fs ;
extern s32 gameSelected ;
extern GuiText * GameIDTxt ;
extern GuiText * GameRegionTxt ;
extern const u8 data1 ;
extern FreeTypeGX * fontClock ;
extern bool updateavailable ;
extern int cntMissFiles ;
extern GuiImageData * cover ;
extern GuiImage * coverImg ;
extern GuiImageData * pointer [ 4 ] ;
extern bool altdoldefault ;
extern GuiImage * bgImg ;
GuiButton * Toolbar [ 9 ] ;
int idiotFlag = - 1 ;
char idiotChar [ 50 ] ;
void DiscListWinUpdateCallback ( void * e ) ;
void rockout ( int f = 0 ) ;
static u32 startat = 0 ;
//static u8 ignoreNewDisc =0;//ignore the new drive when it is detected
/****************************************************************************
* MenuDiscList
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int MenuDiscList ( ) {
gprintf ( " \n MenuDiscList() " ) ;
if ( checkthreadState = = 1 )
{
mountMethod = 0 ;
checkthreadState = 0 ;
}
__Menu_GetEntries ( ) ;
int offset = MIN ( startat , gameCnt - 1 ) ;
startat = offset ;
//gprintf("\n\tstartat:%d offset:%d",startat,offset);
int datag = 0 ;
int datagB = 0 ;
int dataed = - 1 ;
int cosa = 0 , sina = 0 ;
int selectImg1 = 0 ;
char ID [ 4 ] ;
char IDfull [ 7 ] ;
u32 covert = 0 ;
char imgPath [ 100 ] ;
if ( ! dvdheader )
dvdheader = new struct discHdr ;
u8 mountMethodOLD = 0 ;
WDVD_GetCoverStatus ( & covert ) ;
u32 covertOld = covert ;
f32 freespace , used , size = 0.0 ;
wchar_t searchChar ;
//SCREENSAVER
int check = 0 ; //to skip the first cycle when wiimote isn't completely connected
datagB = 0 ;
int menu = MENU_NONE , dataef = 0 ;
u32 nolist ;
char text [ MAX_CHARACTERS + 4 ] ;
int choice = 0 , selectedold = 100 ;
s32 ret ;
//CLOCK
struct tm * timeinfo ;
char theTime [ 80 ] = " " ;
time_t lastrawtime = 0 ;
if ( mountMethod ! = 3 & & load_from_fs = = PART_FS_WBFS ) {
WBFS_DiskSpace ( & used , & freespace ) ;
}
if ( ! gameCnt ) { //if there is no list of games to display
nolist = 1 ;
}
GuiSound btnSoundOver ( button_over_pcm , button_over_pcm_size , Settings . sfxvolume ) ;
// because destroy GuiSound must wait while sound playing is finished, we use a global sound
if ( ! btnClick2 ) btnClick2 = new GuiSound ( button_click2_pcm , button_click2_pcm_size , Settings . sfxvolume ) ;
// GuiSound btnClick(button_click2_pcm, button_click2_pcm_size, Settings.sfxvolume);
snprintf ( imgPath , sizeof ( imgPath ) , " %sbutton_install.png " , CFG . theme_path ) ;
GuiImageData btnInstall ( imgPath , button_install_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sbutton_install_over.png " , CFG . theme_path ) ;
GuiImageData btnInstallOver ( imgPath , button_install_over_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %ssettings_button.png " , CFG . theme_path ) ;
GuiImageData btnSettings ( imgPath , settings_button_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %ssettings_button_over.png " , CFG . theme_path ) ;
GuiImageData btnSettingsOver ( imgPath , settings_button_over_png ) ;
GuiImageData dataID ( & data1 ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %swiimote_poweroff.png " , CFG . theme_path ) ;
GuiImageData btnpwroff ( imgPath , wiimote_poweroff_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %swiimote_poweroff_over.png " , CFG . theme_path ) ;
GuiImageData btnpwroffOver ( imgPath , wiimote_poweroff_over_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %smenu_button.png " , CFG . theme_path ) ;
GuiImageData btnhome ( imgPath , menu_button_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %smenu_button_over.png " , CFG . theme_path ) ;
GuiImageData btnhomeOver ( imgPath , menu_button_over_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sSDcard_over.png " , CFG . theme_path ) ;
GuiImageData btnsdcardOver ( imgPath , sdcard_over_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sSDcard.png " , CFG . theme_path ) ;
GuiImageData btnsdcard ( imgPath , sdcard_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sfavIcon.png " , CFG . theme_path ) ;
GuiImageData imgfavIcon ( imgPath , favIcon_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sfavIcon_gray.png " , CFG . theme_path ) ;
GuiImageData imgfavIcon_gray ( imgPath , NULL ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %ssearchIcon.png " , CFG . theme_path ) ;
GuiImageData imgsearchIcon ( imgPath , searchIcon_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %ssearchIcon_gray.png " , CFG . theme_path ) ;
GuiImageData imgsearchIcon_gray ( imgPath , NULL ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sabcIcon.png " , CFG . theme_path ) ;
GuiImageData imgabcIcon ( imgPath , abcIcon_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sabcIcon_gray.png " , CFG . theme_path ) ;
GuiImageData imgabcIcon_gray ( imgPath , NULL ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %srankIcon.png " , CFG . theme_path ) ;
GuiImageData imgrankIcon ( imgPath , rankIcon_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %srankIcon_gray.png " , CFG . theme_path ) ;
GuiImageData imgrankIcon_gray ( imgPath , NULL ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %splayCountIcon.png " , CFG . theme_path ) ;
GuiImageData imgplayCountIcon ( imgPath , playCountIcon_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %splayCountIcon_gray.png " , CFG . theme_path ) ;
GuiImageData imgplayCountIcon_gray ( imgPath , NULL ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sarrangeGrid.png " , CFG . theme_path ) ;
GuiImageData imgarrangeGrid ( imgPath , arrangeGrid_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sarrangeGrid_gray.png " , CFG . theme_path ) ;
GuiImageData imgarrangeGrid_gray ( imgPath , NULL ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sarrangeList.png " , CFG . theme_path ) ;
GuiImageData imgarrangeList ( imgPath , arrangeList_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sarrangeList_gray.png " , CFG . theme_path ) ;
GuiImageData imgarrangeList_gray ( imgPath , NULL ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sarrangeCarousel.png " , CFG . theme_path ) ;
GuiImageData imgarrangeCarousel ( imgPath , arrangeCarousel_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sarrangeCarousel_gray.png " , CFG . theme_path ) ;
GuiImageData imgarrangeCarousel_gray ( imgPath , NULL ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %slock.png " , CFG . theme_path ) ;
GuiImageData imgLock ( imgPath , lock_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %slock_gray.png " , CFG . theme_path ) ;
GuiImageData imgLock_gray ( imgPath , NULL ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sunlock.png " , CFG . theme_path ) ;
GuiImageData imgUnlock ( imgPath , unlock_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sunlock_gray.png " , CFG . theme_path ) ;
GuiImageData imgUnlock_gray ( imgPath , NULL ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sdvd.png " , CFG . theme_path ) ;
GuiImageData imgdvd ( imgPath , dvd_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sdvd_gray.png " , CFG . theme_path ) ;
GuiImageData imgdvd_gray ( imgPath , NULL ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sbrowser.png " , CFG . theme_path ) ;
GuiImageData homebrewImgData ( imgPath , browser_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %sbrowser_over.png " , CFG . theme_path ) ;
GuiImageData homebrewImgDataOver ( imgPath , browser_over_png ) ;
GuiTrigger trigA ;
trigA . SetSimpleTrigger ( - 1 , WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A , PAD_BUTTON_A ) ;
GuiTrigger trigHome ;
trigHome . SetButtonOnlyTrigger ( - 1 , WPAD_BUTTON_HOME | WPAD_CLASSIC_BUTTON_HOME , PAD_BUTTON_START ) ;
GuiTrigger trig2 ;
trig2 . SetButtonOnlyTrigger ( - 1 , WPAD_BUTTON_2 | WPAD_CLASSIC_BUTTON_X , 0 ) ;
GuiTrigger trig1 ;
trig1 . SetButtonOnlyTrigger ( - 1 , WPAD_BUTTON_1 | WPAD_CLASSIC_BUTTON_Y , 0 ) ;
GuiTrigger trigN ;
trigN . SetButtonOnlyTrigger ( 0 , 0 , 0 ) ;
char spaceinfo [ 30 ] ;
if ( load_from_fs ! = PART_FS_WBFS ) {
memset ( spaceinfo , 0 , 30 ) ;
} else {
if ( ! strcmp ( Settings . db_language , " JA " ) ) {
// needs to be "total...used" for Japanese
sprintf ( spaceinfo , ( mountMethod ! = 3 ? " %.2fGB %s %.2fGB %s " : " " ) , ( freespace + used ) , tr ( " of " ) , freespace , tr ( " free " ) ) ;
} else {
sprintf ( spaceinfo , ( mountMethod ! = 3 ? " %.2fGB %s %.2fGB %s " : " " ) , freespace , tr ( " of " ) , ( freespace + used ) , tr ( " free " ) ) ;
}
}
GuiText usedSpaceTxt ( spaceinfo , 18 , THEME . info ) ;
usedSpaceTxt . SetAlignment ( THEME . hddinfo_align , ALIGN_TOP ) ;
usedSpaceTxt . SetPosition ( THEME . hddinfo_x , THEME . hddinfo_y ) ;
char GamesCnt [ 15 ] ;
sprintf ( GamesCnt , " %s: %i " , ( mountMethod ! = 3 ? tr ( " Games " ) : tr ( " Channels " ) ) , gameCnt ) ;
GuiText gamecntTxt ( GamesCnt , 18 , THEME . info ) ;
GuiButton gamecntBtn ( 100 , 18 ) ;
gamecntBtn . SetAlignment ( THEME . gamecount_align , ALIGN_TOP ) ;
gamecntBtn . SetPosition ( THEME . gamecount_x , THEME . gamecount_y ) ;
gamecntBtn . SetLabel ( & gamecntTxt ) ;
gamecntBtn . SetEffectGrow ( ) ;
if ( mountMethod ! = 3 ) gamecntBtn . SetTrigger ( & trigA ) ;
GuiTooltip installBtnTT ( tr ( " Install a game " ) ) ;
if ( Settings . wsprompt = = yes )
installBtnTT . SetWidescreen ( CFG . widescreen ) ;
installBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage installBtnImg ( & btnInstall ) ;
GuiImage installBtnImgOver ( & btnInstallOver ) ;
installBtnImg . SetWidescreen ( CFG . widescreen ) ;
installBtnImgOver . SetWidescreen ( CFG . widescreen ) ;
GuiButton installBtn ( & installBtnImg , & installBtnImgOver , ALIGN_LEFT , ALIGN_TOP , THEME . install_x , THEME . install_y , mountMethod ! = 3 ? & trigA : & trigN , & btnSoundOver , btnClick2 , 1 , & installBtnTT , 24 , - 30 , 0 , 5 ) ;
GuiTooltip settingsBtnTT ( tr ( " Settings " ) ) ;
if ( Settings . wsprompt = = yes )
settingsBtnTT . SetWidescreen ( CFG . widescreen ) ;
settingsBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage settingsBtnImg ( & btnSettings ) ;
settingsBtnImg . SetWidescreen ( CFG . widescreen ) ;
GuiImage settingsBtnImgOver ( & btnSettingsOver ) ;
settingsBtnImgOver . SetWidescreen ( CFG . widescreen ) ;
GuiButton settingsBtn ( & settingsBtnImg , & settingsBtnImgOver , 0 , 3 , THEME . setting_x , THEME . setting_y , & trigA , & btnSoundOver , btnClick2 , 1 , & settingsBtnTT , 65 , - 30 , 0 , 5 ) ;
GuiTooltip homeBtnTT ( tr ( " Back to HBC or Wii Menu " ) ) ;
if ( Settings . wsprompt = = yes )
homeBtnTT . SetWidescreen ( CFG . widescreen ) ;
settingsBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage homeBtnImg ( & btnhome ) ;
homeBtnImg . SetWidescreen ( CFG . widescreen ) ;
GuiImage homeBtnImgOver ( & btnhomeOver ) ;
homeBtnImgOver . SetWidescreen ( CFG . widescreen ) ;
GuiButton homeBtn ( & homeBtnImg , & homeBtnImgOver , 0 , 3 , THEME . home_x , THEME . home_y , & trigA , & btnSoundOver , btnClick2 , 1 , & homeBtnTT , 15 , - 30 , 1 , 5 ) ;
homeBtn . RemoveSoundClick ( ) ;
homeBtn . SetTrigger ( & trigHome ) ;
GuiTooltip poweroffBtnTT ( tr ( " Power off the Wii " ) ) ;
if ( Settings . wsprompt = = yes )
poweroffBtnTT . SetWidescreen ( CFG . widescreen ) ;
poweroffBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage poweroffBtnImg ( & btnpwroff ) ;
GuiImage poweroffBtnImgOver ( & btnpwroffOver ) ;
poweroffBtnImg . SetWidescreen ( CFG . widescreen ) ;
poweroffBtnImgOver . SetWidescreen ( CFG . widescreen ) ;
GuiButton poweroffBtn ( & poweroffBtnImg , & poweroffBtnImgOver , 0 , 3 , THEME . power_x , THEME . power_y , & trigA , & btnSoundOver , btnClick2 , 1 , & poweroffBtnTT , - 10 , - 30 , 1 , 5 ) ;
GuiTooltip sdcardBtnTT ( tr ( " Reload SD " ) ) ;
if ( Settings . wsprompt = = yes )
sdcardBtnTT . SetWidescreen ( CFG . widescreen ) ;
sdcardBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage sdcardImg ( & btnsdcard ) ;
GuiImage sdcardImgOver ( & btnsdcardOver ) ;
sdcardImg . SetWidescreen ( CFG . widescreen ) ;
sdcardImgOver . SetWidescreen ( CFG . widescreen ) ;
GuiButton sdcardBtn ( & sdcardImg , & sdcardImgOver , 0 , 3 , THEME . sdcard_x , THEME . sdcard_y , & trigA , & btnSoundOver , btnClick2 , 1 , & sdcardBtnTT , 15 , - 30 , 0 , 5 ) ;
GuiButton gameInfo ( 0 , 0 ) ;
gameInfo . SetTrigger ( & trig2 ) ;
gameInfo . SetSoundClick ( btnClick2 ) ;
GuiImage wiiBtnImg ( & dataID ) ;
wiiBtnImg . SetWidescreen ( CFG . widescreen ) ;
GuiButton wiiBtn ( & wiiBtnImg , & wiiBtnImg , 0 , 4 , 0 , - 10 , & trigA , & btnSoundOver , btnClick2 , 0 ) ;
GuiTooltip favoriteBtnTT ( tr ( " Display favorites " ) ) ;
if ( Settings . wsprompt = = yes )
favoriteBtnTT . SetWidescreen ( CFG . widescreen ) ;
favoriteBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage favoriteBtnImg ( & imgfavIcon ) ;
favoriteBtnImg . SetWidescreen ( CFG . widescreen ) ;
// GuiImage favoriteBtnImg_g(favoriteBtnImg);favoriteBtnImg_g.SetGrayscale();
GuiImage favoriteBtnImg_g ( & imgfavIcon_gray ) ;
if ( favoriteBtnImg_g . GetImage ( ) = = NULL ) { favoriteBtnImg_g = favoriteBtnImg ; favoriteBtnImg_g . SetGrayscale ( ) ; }
favoriteBtnImg_g . SetWidescreen ( CFG . widescreen ) ;
GuiButton favoriteBtn ( & favoriteBtnImg_g , & favoriteBtnImg_g , ALIGN_LEFT , ALIGN_TOP , THEME . gamelist_favorite_x , THEME . gamelist_favorite_y , mountMethod ! = 3 ? & trigA : & trigN , & btnSoundOver , btnClick2 , 1 , & favoriteBtnTT , - 15 , 52 , 0 , 3 ) ;
favoriteBtn . SetAlpha ( 180 ) ;
GuiTooltip searchBtnTT ( tr ( " Set Search-Filter " ) ) ;
if ( Settings . wsprompt = = yes )
searchBtnTT . SetWidescreen ( CFG . widescreen ) ;
searchBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage searchBtnImg ( & imgsearchIcon ) ;
searchBtnImg . SetWidescreen ( CFG . widescreen ) ;
// GuiImage searchBtnImg_g(searchBtnImg); searchBtnImg_g.SetGrayscale();
GuiImage searchBtnImg_g ( & imgsearchIcon_gray ) ;
if ( searchBtnImg_g . GetImage ( ) = = NULL ) { searchBtnImg_g = searchBtnImg ; searchBtnImg_g . SetGrayscale ( ) ; }
searchBtnImg_g . SetWidescreen ( CFG . widescreen ) ;
GuiButton searchBtn ( & searchBtnImg_g , & searchBtnImg_g , ALIGN_LEFT , ALIGN_TOP , THEME . gamelist_search_x , THEME . gamelist_search_y , mountMethod ! = 3 ? & trigA : & trigN , & btnSoundOver , btnClick2 , 1 , & searchBtnTT , - 15 , 52 , 0 , 3 ) ;
searchBtn . SetAlpha ( 180 ) ;
GuiTooltip abcBtnTT ( Settings . fave ? tr ( " Sort by rank " ) : tr ( " Sort alphabetically " ) ) ;
if ( Settings . wsprompt = = yes )
abcBtnTT . SetWidescreen ( CFG . widescreen ) ;
abcBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage abcBtnImg ( Settings . fave ? & imgrankIcon : & imgabcIcon ) ;
abcBtnImg . SetWidescreen ( CFG . widescreen ) ;
// GuiImage abcBtnImg_g(abcBtnImg); abcBtnImg_g.SetGrayscale();
GuiImage abcBtnImg_g ( Settings . fave ? & imgrankIcon_gray : & imgabcIcon_gray ) ;
if ( abcBtnImg_g . GetImage ( ) = = NULL ) { abcBtnImg_g = abcBtnImg ; abcBtnImg_g . SetGrayscale ( ) ; }
abcBtnImg_g . SetWidescreen ( CFG . widescreen ) ;
GuiButton abcBtn ( & abcBtnImg_g , & abcBtnImg_g , ALIGN_LEFT , ALIGN_TOP , THEME . gamelist_abc_x , THEME . gamelist_abc_y , & trigA , & btnSoundOver , btnClick2 , 1 , & abcBtnTT , - 15 , 52 , 0 , 3 ) ;
abcBtn . SetAlpha ( 180 ) ;
GuiTooltip countBtnTT ( tr ( " Sort order by most played " ) ) ;
if ( Settings . wsprompt = = yes )
countBtnTT . SetWidescreen ( CFG . widescreen ) ;
countBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage countBtnImg ( & imgplayCountIcon ) ;
countBtnImg . SetWidescreen ( CFG . widescreen ) ;
// GuiImage countBtnImg_g(countBtnImg); countBtnImg_g.SetGrayscale();
GuiImage countBtnImg_g ( & imgplayCountIcon_gray ) ;
if ( countBtnImg_g . GetImage ( ) = = NULL ) { countBtnImg_g = countBtnImg ; countBtnImg_g . SetGrayscale ( ) ; }
countBtnImg_g . SetWidescreen ( CFG . widescreen ) ;
GuiButton countBtn ( & countBtnImg_g , & countBtnImg_g , ALIGN_LEFT , ALIGN_TOP , THEME . gamelist_count_x , THEME . gamelist_count_y , & trigA , & btnSoundOver , btnClick2 , 1 , & countBtnTT , - 15 , 52 , 0 , 3 ) ;
countBtn . SetAlpha ( 180 ) ;
GuiTooltip listBtnTT ( tr ( " Display as a list " ) ) ;
if ( Settings . wsprompt = = yes )
listBtnTT . SetWidescreen ( CFG . widescreen ) ;
listBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage listBtnImg ( & imgarrangeList ) ;
listBtnImg . SetWidescreen ( CFG . widescreen ) ;
// GuiImage listBtnImg_g(listBtnImg); listBtnImg_g.SetGrayscale();
GuiImage listBtnImg_g ( & imgarrangeList_gray ) ;
if ( listBtnImg_g . GetImage ( ) = = NULL ) { listBtnImg_g = listBtnImg ; listBtnImg_g . SetGrayscale ( ) ; }
listBtnImg_g . SetWidescreen ( CFG . widescreen ) ;
GuiButton listBtn ( & listBtnImg_g , & listBtnImg_g , ALIGN_LEFT , ALIGN_TOP , THEME . gamelist_list_x , THEME . gamelist_list_y , mountMethod ! = 3 ? & trigA : & trigN , & btnSoundOver , btnClick2 , 1 , & listBtnTT , 15 , 52 , 1 , 3 ) ;
listBtn . SetAlpha ( 180 ) ;
GuiTooltip gridBtnTT ( tr ( " Display as a grid " ) ) ;
if ( Settings . wsprompt = = yes )
gridBtnTT . SetWidescreen ( CFG . widescreen ) ;
gridBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage gridBtnImg ( & imgarrangeGrid ) ;
gridBtnImg . SetWidescreen ( CFG . widescreen ) ;
// GuiImage gridBtnImg_g(gridBtnImg); gridBtnImg_g.SetGrayscale();
GuiImage gridBtnImg_g ( & imgarrangeGrid_gray ) ;
if ( gridBtnImg_g . GetImage ( ) = = NULL ) { gridBtnImg_g = gridBtnImg ; gridBtnImg_g . SetGrayscale ( ) ; }
gridBtnImg_g . SetWidescreen ( CFG . widescreen ) ;
GuiButton gridBtn ( & gridBtnImg_g , & gridBtnImg_g , ALIGN_LEFT , ALIGN_TOP , THEME . gamelist_grid_x , THEME . gamelist_grid_y , mountMethod ! = 3 ? & trigA : & trigN , & btnSoundOver , btnClick2 , 1 , & gridBtnTT , 15 , 52 , 1 , 3 ) ;
gridBtn . SetAlpha ( 180 ) ;
GuiTooltip carouselBtnTT ( tr ( " Display as a carousel " ) ) ;
if ( Settings . wsprompt = = yes )
carouselBtnTT . SetWidescreen ( CFG . widescreen ) ;
carouselBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage carouselBtnImg ( & imgarrangeCarousel ) ;
carouselBtnImg . SetWidescreen ( CFG . widescreen ) ;
// GuiImage carouselBtnImg_g(carouselBtnImg); carouselBtnImg_g.SetGrayscale();
GuiImage carouselBtnImg_g ( & imgarrangeCarousel_gray ) ;
if ( carouselBtnImg_g . GetImage ( ) = = NULL ) { carouselBtnImg_g = carouselBtnImg ; carouselBtnImg_g . SetGrayscale ( ) ; }
carouselBtnImg_g . SetWidescreen ( CFG . widescreen ) ;
GuiButton carouselBtn ( & carouselBtnImg_g , & carouselBtnImg_g , ALIGN_LEFT , ALIGN_TOP , THEME . gamelist_carousel_x , THEME . gamelist_carousel_y , mountMethod ! = 3 ? & trigA : & trigN , & btnSoundOver , btnClick2 , 1 , & carouselBtnTT , 15 , 52 , 1 , 3 ) ;
carouselBtn . SetAlpha ( 180 ) ;
bool canUnlock = ( Settings . parentalcontrol = = 0 & & Settings . parental . enabled = = 1 ) ;
GuiTooltip lockBtnTT ( canUnlock ? tr ( " Unlock Parental Control " ) : tr ( " Parental Control disabled " ) ) ;
if ( Settings . wsprompt = = yes )
lockBtnTT . SetWidescreen ( CFG . widescreen ) ;
lockBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage lockBtnImg ( & imgLock ) ;
lockBtnImg . SetWidescreen ( CFG . widescreen ) ;
GuiImage lockBtnImg_g ( & imgLock_gray ) ;
if ( lockBtnImg_g . GetImage ( ) = = NULL ) { lockBtnImg_g = lockBtnImg ; lockBtnImg_g . SetGrayscale ( ) ; }
lockBtnImg_g . SetWidescreen ( CFG . widescreen ) ;
GuiButton lockBtn ( & lockBtnImg_g , & lockBtnImg_g , ALIGN_LEFT , ALIGN_TOP , THEME . gamelist_lock_x , THEME . gamelist_lock_y , & trigA , & btnSoundOver , btnClick2 , 1 , & lockBtnTT , 15 , 52 , 1 , 3 ) ;
lockBtn . SetAlpha ( 180 ) ;
GuiTooltip unlockBtnTT ( tr ( " Enable Parental Control " ) ) ;
if ( Settings . wsprompt = = yes )
unlockBtnTT . SetWidescreen ( CFG . widescreen ) ;
unlockBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage unlockBtnImg ( & imgUnlock ) ;
unlockBtnImg . SetWidescreen ( CFG . widescreen ) ;
GuiImage unlockBtnImg_g ( & imgUnlock_gray ) ;
if ( unlockBtnImg_g . GetImage ( ) = = NULL ) { unlockBtnImg_g = unlockBtnImg ; unlockBtnImg_g . SetGrayscale ( ) ; }
unlockBtnImg_g . SetWidescreen ( CFG . widescreen ) ;
if ( canUnlock & & Settings . godmode )
{
lockBtn . SetImage ( & unlockBtnImg_g ) ;
lockBtn . SetImageOver ( & unlockBtnImg_g ) ;
lockBtn . SetToolTip ( & unlockBtnTT , 15 , 52 , 1 , 3 ) ;
}
/*
GuiButton unlockBtn ( & unlockBtnImg_g , & unlockBtnImg_g , ALIGN_LEFT , ALIGN_TOP , THEME . gamelist_lock_x , THEME . gamelist_lock_y , & trigA , & btnSoundOver , btnClick2 , 1 , & lockBtnTT , 15 , 52 , 1 , 3 ) ;
unlockBtn . SetAlpha ( 180 ) ;
*/
GuiTooltip dvdBtnTT ( tr ( " Mount DVD drive " ) ) ;
if ( Settings . wsprompt = = yes )
dvdBtnTT . SetWidescreen ( CFG . widescreen ) ;
dvdBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage dvdBtnImg ( & imgdvd ) ;
dvdBtnImg . SetWidescreen ( CFG . widescreen ) ;
GuiImage dvdBtnImg_g ( dvdBtnImg ) ; //dvdBtnImg_g.SetGrayscale();
// GuiImage carouselBtnImg_g(&imgarrangeCarousel_gray);
dvdBtnImg_g . SetWidescreen ( CFG . widescreen ) ;
GuiButton dvdBtn ( & dvdBtnImg_g , & dvdBtnImg_g , ALIGN_LEFT , ALIGN_TOP , THEME . gamelist_dvd_x , THEME . gamelist_dvd_y , & trigA , & btnSoundOver , btnClick2 , 1 , & dvdBtnTT , 15 , 52 , 1 , 3 ) ;
dvdBtn . SetAlpha ( 180 ) ;
GuiTooltip homebrewBtnTT ( tr ( " Homebrew Launcher " ) ) ;
if ( Settings . wsprompt = = yes )
homebrewBtnTT . SetWidescreen ( CFG . widescreen ) ;
homebrewBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiImage homebrewImg ( & homebrewImgData ) ;
GuiImage homebrewImgOver ( & homebrewImgDataOver ) ;
homebrewImg . SetWidescreen ( CFG . widescreen ) ;
homebrewImgOver . SetWidescreen ( CFG . widescreen ) ;
GuiButton homebrewBtn ( & homebrewImg , & homebrewImgOver , ALIGN_LEFT , ALIGN_TOP , THEME . homebrew_x , THEME . homebrew_y , & trigA , & btnSoundOver , btnClick2 , 1 , & homebrewBtnTT , 15 , - 30 , 1 , 5 ) ;
if ( Settings . fave ) {
favoriteBtn . SetImage ( & favoriteBtnImg ) ;
favoriteBtn . SetImageOver ( & favoriteBtnImg ) ;
favoriteBtn . SetAlpha ( 255 ) ;
}
static bool show_searchwindow = false ;
if ( gameFilter & & * gameFilter )
{
if ( show_searchwindow & & gameCnt = = 1 )
show_searchwindow = false ;
if ( ! show_searchwindow )
searchBtn . SetEffect ( EFFECT_PULSE , 10 , 105 ) ;
searchBtn . SetImage ( & searchBtnImg ) ;
searchBtn . SetImageOver ( & searchBtnImg ) ;
searchBtn . SetAlpha ( 255 ) ;
}
if ( Settings . sort = = all ) {
abcBtn . SetImage ( & abcBtnImg ) ;
abcBtn . SetImageOver ( & abcBtnImg ) ;
abcBtn . SetAlpha ( 255 ) ;
} else if ( Settings . sort = = pcount ) {
countBtn . SetImage ( & countBtnImg ) ;
countBtn . SetImageOver ( & countBtnImg ) ;
countBtn . SetAlpha ( 255 ) ;
}
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
listBtn . SetImage ( & listBtnImg ) ;
listBtn . SetImageOver ( & listBtnImg ) ;
listBtn . SetAlpha ( 255 ) ;
} else if ( Settings . gameDisplay = = grid ) {
gridBtn . SetImage ( & gridBtnImg ) ;
gridBtn . SetImageOver ( & gridBtnImg ) ;
gridBtn . SetAlpha ( 255 ) ;
} else if ( Settings . gameDisplay = = carousel ) {
carouselBtn . SetImage ( & carouselBtnImg ) ;
carouselBtn . SetImageOver ( & carouselBtnImg ) ;
carouselBtn . SetAlpha ( 255 ) ;
}
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
favoriteBtn . SetPosition ( THEME . gamelist_favorite_x , THEME . gamelist_favorite_y ) ;
searchBtn . SetPosition ( THEME . gamelist_search_x , THEME . gamelist_search_y ) ;
abcBtn . SetPosition ( THEME . gamelist_abc_x , THEME . gamelist_abc_y ) ;
countBtn . SetPosition ( THEME . gamelist_count_x , THEME . gamelist_count_y ) ;
listBtn . SetPosition ( THEME . gamelist_list_x , THEME . gamelist_list_y ) ;
gridBtn . SetPosition ( THEME . gamelist_grid_x , THEME . gamelist_grid_y ) ;
carouselBtn . SetPosition ( THEME . gamelist_carousel_x , THEME . gamelist_carousel_y ) ;
lockBtn . SetPosition ( THEME . gamelist_lock_x , THEME . gamelist_lock_y ) ;
dvdBtn . SetPosition ( THEME . gamelist_dvd_x , THEME . gamelist_dvd_y ) ;
} else if ( Settings . gameDisplay = = grid ) {
favoriteBtn . SetPosition ( THEME . gamegrid_favorite_x , THEME . gamegrid_favorite_y ) ;
searchBtn . SetPosition ( THEME . gamegrid_search_x , THEME . gamegrid_search_y ) ;
abcBtn . SetPosition ( THEME . gamegrid_abc_x , THEME . gamegrid_abc_y ) ;
countBtn . SetPosition ( THEME . gamegrid_count_x , THEME . gamegrid_count_y ) ;
listBtn . SetPosition ( THEME . gamegrid_list_x , THEME . gamegrid_list_y ) ;
gridBtn . SetPosition ( THEME . gamegrid_grid_x , THEME . gamegrid_grid_y ) ;
carouselBtn . SetPosition ( THEME . gamegrid_carousel_x , THEME . gamegrid_carousel_y ) ;
lockBtn . SetPosition ( THEME . gamegrid_lock_x , THEME . gamegrid_lock_y ) ;
dvdBtn . SetPosition ( THEME . gamegrid_dvd_x , THEME . gamegrid_dvd_y ) ;
} else if ( Settings . gameDisplay = = carousel ) {
favoriteBtn . SetPosition ( THEME . gamecarousel_favorite_x , THEME . gamecarousel_favorite_y ) ;
searchBtn . SetPosition ( THEME . gamecarousel_search_x , THEME . gamecarousel_favorite_y ) ;
abcBtn . SetPosition ( THEME . gamecarousel_abc_x , THEME . gamecarousel_abc_y ) ;
countBtn . SetPosition ( THEME . gamecarousel_count_x , THEME . gamecarousel_count_y ) ;
listBtn . SetPosition ( THEME . gamecarousel_list_x , THEME . gamecarousel_list_y ) ;
gridBtn . SetPosition ( THEME . gamecarousel_grid_x , THEME . gamecarousel_grid_y ) ;
carouselBtn . SetPosition ( THEME . gamecarousel_carousel_x , THEME . gamecarousel_carousel_y ) ;
lockBtn . SetPosition ( THEME . gamecarousel_lock_x , THEME . gamecarousel_lock_y ) ;
dvdBtn . SetPosition ( THEME . gamecarousel_dvd_x , THEME . gamecarousel_dvd_y ) ;
}
//Downloading Covers
GuiTooltip DownloadBtnTT ( tr ( " Click to Download Covers " ) ) ;
if ( Settings . wsprompt = = yes )
DownloadBtnTT . SetWidescreen ( CFG . widescreen ) ;
DownloadBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiButton DownloadBtn ( 0 , 0 ) ;
DownloadBtn . SetAlignment ( ALIGN_LEFT , ALIGN_TOP ) ;
DownloadBtn . SetPosition ( THEME . covers_x , THEME . covers_y ) ;
GuiTooltip IDBtnTT ( tr ( " Click to change game ID " ) ) ;
if ( Settings . wsprompt = = yes )
IDBtnTT . SetWidescreen ( CFG . widescreen ) ;
IDBtnTT . SetAlpha ( THEME . tooltipAlpha ) ;
GuiButton idBtn ( 0 , 0 ) ;
idBtn . SetAlignment ( ALIGN_LEFT , ALIGN_TOP ) ;
idBtn . SetPosition ( THEME . id_x , THEME . id_y ) ;
if ( Settings . godmode = = 1 & & mountMethod ! = 3 ) { //only make the button have trigger & tooltip if in godmode
DownloadBtn . SetSoundOver ( & btnSoundOver ) ;
DownloadBtn . SetTrigger ( & trigA ) ;
DownloadBtn . SetTrigger ( & trig1 ) ;
DownloadBtn . SetToolTip ( & DownloadBtnTT , 205 , - 30 ) ;
idBtn . SetSoundOver ( & btnSoundOver ) ;
idBtn . SetTrigger ( & trigA ) ;
idBtn . SetToolTip ( & IDBtnTT , 205 , - 30 ) ;
} else
{
DownloadBtn . SetRumble ( false ) ;
idBtn . SetRumble ( false ) ;
}
GuiGameBrowser * gameBrowser = NULL ;
GuiGameGrid * gameGrid = NULL ;
GuiGameCarousel * gameCarousel = NULL ;
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
gameBrowser = new GuiGameBrowser ( THEME . gamelist_w , THEME . gamelist_h , gameList , gameCnt , CFG . theme_path , bg_options_png , startat , offset ) ;
gameBrowser - > SetPosition ( THEME . gamelist_x , THEME . gamelist_y ) ;
gameBrowser - > SetAlignment ( ALIGN_LEFT , ALIGN_CENTRE ) ;
} else if ( Settings . gameDisplay = = grid ) {
gameGrid = new GuiGameGrid ( THEME . gamegrid_w , THEME . gamegrid_h , gameList , gameCnt , CFG . theme_path , bg_options_png , 0 , 0 ) ;
gameGrid - > SetPosition ( THEME . gamegrid_x , THEME . gamegrid_y ) ;
gameGrid - > SetAlignment ( ALIGN_LEFT , ALIGN_CENTRE ) ;
} else if ( Settings . gameDisplay = = carousel ) {
//GuiGameCarousel gameCarousel(THEME.gamecarousel_w, THEME.gamecarousel_h, gameList, gameCnt, CFG.theme_path, bg_options_png, startat, offset);
gameCarousel = new GuiGameCarousel ( 640 , 400 , gameList , gameCnt , CFG . theme_path , bg_options_png , startat , offset ) ;
gameCarousel - > SetPosition ( THEME . gamecarousel_x , THEME . gamecarousel_y ) ;
gameCarousel - > SetAlignment ( ALIGN_LEFT , ALIGN_CENTRE ) ;
}
GuiText clockTimeBack ( " 88:88 " , 40 , ( GXColor ) { THEME . clock . r , THEME . clock . g , THEME . clock . b , THEME . clock . a / 6 } ) ;
clockTimeBack . SetAlignment ( THEME . clock_align , ALIGN_TOP ) ;
clockTimeBack . SetPosition ( THEME . clock_x , THEME . clock_y ) ;
clockTimeBack . SetFont ( fontClock ) ;
GuiText clockTime ( theTime , 40 , THEME . clock ) ;
clockTime . SetAlignment ( THEME . clock_align , ALIGN_TOP ) ;
clockTime . SetPosition ( THEME . clock_x , THEME . clock_y ) ;
clockTime . SetFont ( fontClock ) ;
HaltGui ( ) ;
GuiWindow w ( screenwidth , screenheight ) ;
if ( THEME . show_hddinfo = = - 1 | | THEME . show_hddinfo = = 1 ) { //force show hdd info
w . Append ( & usedSpaceTxt ) ;
}
if ( THEME . show_gamecount = = - 1 | | THEME . show_gamecount = = 1 ) { //force show game cnt info
w . Append ( & gamecntBtn ) ;
}
w . Append ( & sdcardBtn ) ;
w . Append ( & poweroffBtn ) ;
w . Append ( & gameInfo ) ;
if ( Settings . godmode & & load_from_fs ! = PART_FS_NTFS )
w . Append ( & installBtn ) ;
w . Append ( & homeBtn ) ;
w . Append ( & settingsBtn ) ;
w . Append ( & DownloadBtn ) ;
w . Append ( & idBtn ) ;
// Begin Toolbar
w . Append ( & favoriteBtn ) ;
Toolbar [ 0 ] = & favoriteBtn ;
w . Append ( & searchBtn ) ;
Toolbar [ 1 ] = & searchBtn ;
w . Append ( & abcBtn ) ;
Toolbar [ 2 ] = & abcBtn ;
w . Append ( & countBtn ) ;
Toolbar [ 3 ] = & countBtn ;
w . Append ( & listBtn ) ;
Toolbar [ 4 ] = & listBtn ;
w . Append ( & gridBtn ) ;
Toolbar [ 5 ] = & gridBtn ;
w . Append ( & carouselBtn ) ;
Toolbar [ 6 ] = & carouselBtn ;
w . Append ( & lockBtn ) ;
Toolbar [ 7 ] = & lockBtn ;
w . Append ( & dvdBtn ) ;
Toolbar [ 8 ] = & dvdBtn ;
w . SetUpdateCallback ( DiscListWinUpdateCallback ) ;
// End Toolbar
if ( Settings . godmode = = 1 )
w . Append ( & homebrewBtn ) ;
if ( ( Settings . hddinfo = = hr12 ) | | ( Settings . hddinfo = = hr24 ) ) {
w . Append ( & clockTimeBack ) ;
w . Append ( & clockTime ) ;
}
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
mainWindow - > Append ( gameBrowser ) ;
}
else if ( Settings . gameDisplay = = grid ) {
mainWindow - > Append ( gameGrid ) ;
}
else if ( Settings . gameDisplay = = carousel ) {
mainWindow - > Append ( gameCarousel ) ;
}
mainWindow - > Append ( & w ) ;
GuiSearchBar * searchBar = NULL ;
if ( show_searchwindow ) {
searchBar = new GuiSearchBar ( gameFilterNextList ) ;
if ( searchBar )
mainWindow - > Append ( searchBar ) ;
}
ResumeGui ( ) ;
// ShowMemInfo();
while ( menu = = MENU_NONE ) {
if ( idiotFlag = = 1 ) {
gprintf ( " \n \t Idiot flag " ) ;
char idiotBuffer [ 200 ] ;
snprintf ( idiotBuffer , sizeof ( idiotBuffer ) , " %s (%s). %s " , tr ( " You have attempted to load a bad image " ) ,
idiotChar , tr ( " Most likely it has dimensions that are not evenly divisible by 4. " ) ) ;
int deleteImg = WindowPrompt ( 0 , idiotBuffer , tr ( " OK " ) , tr ( " Delete " ) ) ;
if ( deleteImg = = 0 ) {
snprintf ( idiotBuffer , sizeof ( idiotBuffer ) , " %s %s. " , tr ( " You are about to delete " ) , idiotChar ) ;
deleteImg = WindowPrompt ( tr ( " Confirm " ) , idiotBuffer , tr ( " Delete " ) , tr ( " Cancel " ) ) ;
if ( deleteImg = = 1 ) {
remove ( idiotChar ) ;
}
}
idiotFlag = - 1 ;
}
WDVD_GetCoverStatus ( & covert ) ; //for detecting if i disc has been inserted
// if the idiot is showing favorites and don't have any
if ( Settings . fave & & ! gameCnt ) {
WindowPrompt ( tr ( " No Favorites " ) , tr ( " You are choosing to display favorites and you do not have any selected. " ) , tr ( " Back " ) ) ;
Settings . fave = ! Settings . fave ;
if ( isInserted ( bootDevice ) ) {
cfg_save_global ( ) ;
}
__Menu_GetEntries ( ) ;
menu = MENU_DISCLIST ;
break ;
}
//CLOCK
time_t rawtime = time ( 0 ) ; //this fixes code dump caused by the clock
if ( ( ( Settings . hddinfo = = hr12 ) | | ( Settings . hddinfo = = hr24 ) ) & & rawtime ! = lastrawtime ) {
lastrawtime = rawtime ;
timeinfo = localtime ( & rawtime ) ;
if ( dataed < 1 ) {
if ( Settings . hddinfo = = hr12 ) {
if ( rawtime & 1 )
strftime ( theTime , sizeof ( theTime ) , " %I:%M " , timeinfo ) ;
else
strftime ( theTime , sizeof ( theTime ) , " %I %M " , timeinfo ) ;
}
if ( Settings . hddinfo = = hr24 ) {
if ( rawtime & 1 )
strftime ( theTime , sizeof ( theTime ) , " %H:%M " , timeinfo ) ;
else
strftime ( theTime , sizeof ( theTime ) , " %H %M " , timeinfo ) ;
}
clockTime . SetText ( theTime ) ;
} else if ( dataed > 0 ) {
clockTime . SetTextf ( " %i " , ( dataed - 1 ) ) ;
}
}
if ( ( datagB < 1 ) & & ( Settings . cios = = 1 ) & & ( Settings . video = = ntsc ) & & ( Settings . hddinfo = = hr12 ) & & ( Settings . qboot = = 1 ) & & ( Settings . wsprompt = = 0 ) & & ( Settings . language = = ger ) & & ( Settings . tooltips = = 0 ) ) { dataed = 1 ; dataef = 1 ; } if ( dataef = = 1 ) { if ( cosa > 7 ) { cosa = 1 ; } datag + + ; if ( sina = = 3 ) { wiiBtn . SetAlignment ( ALIGN_LEFT , ALIGN_BOTTOM ) ; wiiBtnImg . SetAngle ( 0 ) ; if ( datag > 163 ) { datag = 1 ; } else if ( datag < 62 ) { wiiBtn . SetPosition ( ( ( cosa ) * 70 ) , ( - 2 * ( datag ) + 120 ) ) ; } else if ( 62 < = datag ) { wiiBtn . SetPosition ( ( ( cosa ) * 70 ) , ( ( datag * 2 ) - 130 ) ) ; } if ( datag > 162 ) { wiiBtn . SetPosition ( 700 , 700 ) ; w . Remove ( & wiiBtn ) ; datagB = 2 ; cosa + + ; sina = lastrawtime % 4 ; } w . Append ( & wiiBtn ) ; } if ( sina = = 2 ) { wiiBtn . SetAlignment ( ALIGN_RIGHT , ALIGN_TOP ) ; wiiBtnImg . SetAngle ( 270 ) ; if ( datag > 163 ) { datag = 1 ; } else if ( datag < 62 ) { wiiBtn . SetPosition ( ( ( - 2 * ( datag ) + 130 ) ) , ( ( cosa ) * 50 ) ) ; } else if ( 62 < = datag ) { wiiBtn . SetPosition ( ( 2 * ( datag ) - 120 ) , ( ( cosa ) * 50 ) ) ; } if ( datag > 162 ) { wiiBtn . SetPosition ( 700 , 700 ) ; w . Remove ( & wiiBtn ) ; datagB = 2 ; cosa + + ; sina = lastrawtime % 4 ; } w . Append ( & wiiBtn ) ; } if ( sina = = 1 ) { wiiBtn . SetAlignment ( ALIGN_TOP , ALIGN_LEFT ) ; wiiBtnImg . SetAngle ( 180 ) ; if ( datag > 163 ) { datag = 1 ; } else if ( datag < 62 ) { wiiBtn . SetPosition ( ( ( cosa ) * 70 ) , ( 2 * ( datag ) - 120 ) ) ; } else if ( 62 < = datag ) { wiiBtn . SetPosition ( ( ( cosa ) * 70 ) , ( - 2 * ( datag ) + 130 ) ) ; } if ( datag > 162 ) { wiiBtn . SetPosition ( 700 , 700 ) ; w . Remove ( & wiiBtn ) ; datagB = 2 ; cosa + + ; sina = lastrawtime % 4 ; } w . Append ( & wiiBtn ) ; } if ( sina = = 0 ) { wiiBtn . SetAlignment ( ALIGN_TOP , ALIGN_LEFT ) ; wiiBtnImg . SetAngle ( 90 ) ; if ( datag > 163 ) { datag = 1 ; } else if ( datag < 62 ) { wiiBtn . SetPosition ( ( ( 2 * ( datag ) - 130 ) ) , ( ( cosa ) * 50 ) ) ; } else if ( 62 < = datag ) { wiiBtn . SetPosition ( ( - 2 * ( datag ) + 120 ) , ( ( cosa ) * 50 ) ) ; } if ( datag > 162 ) { wiiBtn . SetPosition ( 700 , 700 ) ; w . Remove ( & wiiBtn ) ; datagB = 2 ; cosa + + ; sina = lastrawtime % 4 ; } w . Append ( & wiiBtn ) ; } }
// respond to button presses
/* if (shutdown == 1) {
gprintf ( " \n \t shutdown " ) ;
Sys_Shutdown ( ) ;
}
if ( reset = = 1 )
Sys_Reboot ( ) ; */
if ( updateavailable = = true ) {
gprintf ( " \n \t Update Available " ) ;
HaltGui ( ) ;
GuiWindow ww ( 640 , 480 ) ;
w . SetState ( STATE_DISABLED ) ;
mainWindow - > Append ( & ww ) ;
ResumeGui ( ) ;
ProgressUpdateWindow ( ) ;
updateavailable = false ;
mainWindow - > Remove ( & ww ) ;
w . SetState ( STATE_DEFAULT ) ;
menu = MENU_DISCLIST ;
}
if ( poweroffBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t poweroffBtn clicked " ) ;
choice = WindowPrompt ( tr ( " How to Shutdown? " ) , 0 , tr ( " Full Shutdown " ) , tr ( " Shutdown to Idle " ) , tr ( " Cancel " ) ) ;
if ( choice = = 2 ) {
Sys_ShutdownToIdel ( ) ;
} else if ( choice = = 1 ) {
Sys_ShutdownToStandby ( ) ;
} else {
poweroffBtn . ResetState ( ) ;
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
gameBrowser - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = grid ) {
gameGrid - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = carousel ) {
gameCarousel - > SetFocus ( 1 ) ;
}
}
} else if ( gamecntBtn . GetState ( ) = = STATE_CLICKED & & mountMethod ! = 3 ) {
gprintf ( " \n \t gameCntBtn clicked " ) ;
gamecntBtn . ResetState ( ) ;
char linebuf [ 150 ] ;
snprintf ( linebuf , sizeof ( linebuf ) , " %s %sGameList ? " , tr ( " Save Game List to " ) , Settings . update_path ) ;
choice = WindowPrompt ( 0 , linebuf , " TXT " , " CSV " , tr ( " Back " ) ) ;
if ( choice ) {
if ( save_gamelist ( choice - 1 ) )
WindowPrompt ( 0 , tr ( " Saved " ) , tr ( " OK " ) ) ;
else
WindowPrompt ( tr ( " Error " ) , tr ( " Could not save. " ) , tr ( " OK " ) ) ;
}
menu = MENU_DISCLIST ;
break ;
} else if ( homeBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t homeBtn clicked " ) ;
bgMusic - > Pause ( ) ;
choice = WindowExitPrompt ( ) ;
bgMusic - > Resume ( ) ;
if ( choice = = 3 ) {
Sys_LoadMenu ( ) ; // Back to System Menu
} else if ( choice = = 2 ) {
Sys_BackToLoader ( ) ;
} else {
homeBtn . ResetState ( ) ;
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
gameBrowser - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = grid ) {
gameGrid - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = carousel ) {
gameCarousel - > SetFocus ( 1 ) ;
}
}
} else if ( wiiBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t wiiBtn clicked " ) ;
dataed + + ;
wiiBtn . ResetState ( ) ;
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
gameBrowser - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = grid ) {
gameGrid - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = carousel ) {
gameCarousel - > SetFocus ( 1 ) ;
}
} else if ( installBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t installBtn clicked " ) ;
choice = WindowPrompt ( tr ( " Install a game " ) , 0 , tr ( " Yes " ) , tr ( " No " ) ) ;
if ( choice = = 1 ) {
menu = MENU_INSTALL ;
break ;
} else {
installBtn . ResetState ( ) ;
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
gameBrowser - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = grid ) {
gameGrid - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = carousel ) {
gameCarousel - > SetFocus ( 1 ) ;
}
}
}
else if ( dvdBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t dvdBtn Clicked " ) ;
mountMethodOLD = ( mountMethod = = 3 ? mountMethod : 0 ) ;
int ass = DiscMount ( dvdheader ) ;
if ( ass > 0 ) mountMethod = ass ;
gprintf ( " \n \t mountMethod:%d " , mountMethod ) ;
//dvdBtn.ResetState();
covertOld = 2 ;
rockout ( ) ;
//break;
}
else if ( ( covert & 0x2 ) & & ( covert ! = covertOld ) & & mountMethod ! = 1 & & mountMethod ! = 2 ) {
//gprintf("\n\tNew Disc Detected mountMethod:%d covert:%d old:%d",mountMethod,covert,covertOld);
if ( ! mountMethod )
choice = WindowPrompt ( tr ( " New Disc Detected " ) , 0 , tr ( " Install " ) , tr ( " Mount DVD drive " ) , tr ( " Cancel " ) ) ;
if ( choice = = 1 ) {
if ( load_from_fs = = PART_FS_NTFS ) {
WindowPrompt ( tr ( " Install not possible " ) , tr ( " You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible. " ) , tr ( " OK " ) ) ;
} else {
menu = MENU_INSTALL ;
break ;
}
}
else if ( choice = = 2 | | mountMethod = = 3 )
{
dvdBtn . SetState ( STATE_CLICKED ) ;
} else {
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
gameBrowser - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = grid ) {
gameGrid - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = carousel ) {
gameCarousel - > SetFocus ( 1 ) ;
}
}
}
else if ( sdcardBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t sdCardBtn Clicked " ) ;
SDCard_deInit ( ) ;
SDCard_Init ( ) ;
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
startat = gameBrowser - > GetSelectedOption ( ) ;
offset = gameBrowser - > GetOffset ( ) ;
} else if ( Settings . gameDisplay = = grid ) {
startat = gameGrid - > GetSelectedOption ( ) ;
offset = gameGrid - > GetOffset ( ) ;
} else if ( Settings . gameDisplay = = carousel ) {
startat = gameCarousel - > GetSelectedOption ( ) ;
offset = gameCarousel - > GetOffset ( ) ;
}
if ( isInserted ( bootDevice ) ) {
HaltGui ( ) ; // to fix endless rumble when clicking on the SD icon when rumble is disabled because rumble is set to on in Global_Default()
CFG_Load ( ) ;
ResumeGui ( ) ;
}
sdcardBtn . ResetState ( ) ;
menu = MENU_DISCLIST ;
break ;
}
else if ( DownloadBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t DownloadBtn Clicked " ) ;
if ( isInserted ( bootDevice ) ) {
choice = WindowPrompt ( tr ( " Cover Download " ) , 0 , tr ( " Normal Covers " ) , tr ( " 3D Covers " ) , tr ( " Disc Images " ) , tr ( " Back " ) ) ; // ask for download choice
if ( choice ! = 0 ) {
int choice2 = choice ;
bool missing ;
missing = SearchMissingImages ( choice2 ) ;
if ( IsNetworkInit ( ) = = false & & missing = = true ) {
WindowPrompt ( tr ( " Network init error " ) , 0 , tr ( " OK " ) ) ;
} else {
if ( GetMissingFiles ( ) ! = NULL & & cntMissFiles > 0 ) {
char tempCnt [ 40 ] ;
sprintf ( tempCnt , " %i %s " , cntMissFiles , tr ( " Missing files " ) ) ;
if ( choice ! = 3 ) choice = WindowPrompt ( tr ( " Download Boxart image? " ) , tempCnt , tr ( " Yes " ) , tr ( " No " ) ) ;
else if ( choice = = 3 ) choice = WindowPrompt ( tr ( " Download Discart image? " ) , tempCnt , tr ( " Yes " ) , tr ( " No " ) ) ;
if ( choice = = 1 ) {
ret = ProgressDownloadWindow ( choice2 ) ;
if ( ret = = 0 ) {
WindowPrompt ( tr ( " Download finished " ) , 0 , tr ( " OK " ) ) ;
} else {
sprintf ( tempCnt , " %i %s " , ret , tr ( " files not found on the server! " ) ) ;
WindowPrompt ( tr ( " Download finished " ) , tempCnt , tr ( " OK " ) ) ;
}
}
}
}
}
} else {
WindowPrompt ( tr ( " No SD-Card inserted! " ) , tr ( " Insert an SD-Card to download images. " ) , tr ( " OK " ) ) ;
}
if ( choice ) menu = MENU_DISCLIST ;
DownloadBtn . ResetState ( ) ;
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
gameBrowser - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = grid ) {
gameGrid - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = carousel ) {
gameCarousel - > SetFocus ( 1 ) ;
}
} //end download
else if ( settingsBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t settingsBtn Clicked " ) ;
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
startat = gameBrowser - > GetSelectedOption ( ) ;
offset = gameBrowser - > GetOffset ( ) ;
} else if ( Settings . gameDisplay = = grid ) {
startat = gameGrid - > GetSelectedOption ( ) ;
offset = gameGrid - > GetOffset ( ) ;
} else if ( Settings . gameDisplay = = carousel ) {
startat = gameCarousel - > GetSelectedOption ( ) ;
offset = gameCarousel - > GetOffset ( ) ;
}
menu = MENU_SETTINGS ;
break ;
}
else if ( favoriteBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t favoriteBtn Clicked " ) ;
Settings . fave = ! Settings . fave ;
if ( isInserted ( bootDevice ) ) {
cfg_save_global ( ) ;
}
__Menu_GetEntries ( ) ;
menu = MENU_DISCLIST ;
break ;
}
else if ( searchBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t searchBtn Clicked " ) ;
show_searchwindow = ! show_searchwindow ;
HaltGui ( ) ;
if ( searchBar )
{
mainWindow - > Remove ( searchBar ) ;
delete searchBar ;
searchBar = NULL ;
}
if ( show_searchwindow )
{
if ( gameFilter & & * gameFilter )
{
searchBtn . StopEffect ( ) ;
searchBtn . SetEffectGrow ( ) ;
}
searchBar = new GuiSearchBar ( gameFilterNextList ) ;
if ( searchBar )
mainWindow - > Append ( searchBar ) ;
}
else
{
if ( gameFilter & & * gameFilter )
searchBtn . SetEffect ( EFFECT_PULSE , 10 , 105 ) ;
}
searchBtn . ResetState ( ) ;
ResumeGui ( ) ;
}
else if ( searchBar & & ( searchChar = searchBar - > GetClicked ( ) ) ) {
if ( searchChar > 27 )
{
int len = gameFilter ? wcslen ( gameFilter ) : 0 ;
wchar_t newFilter [ len + 2 ] ;
if ( gameFilter )
wcscpy ( newFilter , gameFilter ) ;
newFilter [ len ] = searchChar ;
newFilter [ len + 1 ] = 0 ;
__Menu_GetEntries ( 0 , newFilter ) ;
menu = MENU_DISCLIST ;
break ;
}
else if ( searchChar = = 7 ) // Close
{
show_searchwindow = false ;
HaltGui ( ) ;
if ( searchBar )
{
mainWindow - > Remove ( searchBar ) ;
delete searchBar ;
searchBar = NULL ;
}
if ( gameFilter & & * gameFilter )
{
searchBtn . SetEffect ( EFFECT_PULSE , 10 , 105 ) ;
searchBtn . SetImage ( & searchBtnImg ) ;
searchBtn . SetImageOver ( & searchBtnImg ) ;
searchBtn . SetAlpha ( 255 ) ;
}
else
{
searchBtn . StopEffect ( ) ;
searchBtn . SetEffectGrow ( ) ;
searchBtn . SetImage ( & searchBtnImg_g ) ;
searchBtn . SetImageOver ( & searchBtnImg_g ) ;
searchBtn . SetAlpha ( 180 ) ;
}
ResumeGui ( ) ;
}
else if ( searchChar = = 8 ) // Backspace
{
__Menu_GetEntries ( 0 , gameFilterPrev ) ;
menu = MENU_DISCLIST ;
break ;
}
}
else if ( abcBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t abcBtn clicked " ) ;
if ( Settings . sort ! = all ) {
Settings . sort = all ;
if ( isInserted ( bootDevice ) ) {
cfg_save_global ( ) ;
}
__Menu_GetEntries ( ) ;
menu = MENU_DISCLIST ;
break ;
}
abcBtn . ResetState ( ) ;
}
else if ( countBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t countBtn Clicked " ) ;
if ( Settings . sort ! = pcount ) {
Settings . sort = pcount ;
//if(isSdInserted()) {
if ( isInserted ( bootDevice ) ) {
cfg_save_global ( ) ;
}
__Menu_GetEntries ( ) ;
menu = MENU_DISCLIST ;
break ;
}
countBtn . ResetState ( ) ;
}
else if ( listBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t listBtn Clicked " ) ;
if ( Settings . gameDisplay ! = list ) {
Settings . gameDisplay = list ;
menu = MENU_DISCLIST ;
if ( isInserted ( bootDevice ) ) {
cfg_save_global ( ) ;
}
listBtn . ResetState ( ) ;
break ;
} else {
listBtn . ResetState ( ) ;
}
}
else if ( gridBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t gridBtn Clicked " ) ;
if ( Settings . gameDisplay ! = grid ) {
Settings . gameDisplay = grid ;
menu = MENU_DISCLIST ;
if ( isInserted ( bootDevice ) ) {
cfg_save_global ( ) ;
}
gridBtn . ResetState ( ) ;
break ;
} else {
gridBtn . ResetState ( ) ;
}
}
else if ( carouselBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t carouselBtn Clicked " ) ;
if ( Settings . gameDisplay ! = carousel ) {
Settings . gameDisplay = carousel ;
menu = MENU_DISCLIST ;
if ( isInserted ( bootDevice ) ) {
cfg_save_global ( ) ;
}
carouselBtn . ResetState ( ) ;
break ;
} else {
carouselBtn . ResetState ( ) ;
}
}
else if ( homebrewBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t homebrewBtn Clicked " ) ;
menu = MENU_HOMEBREWBROWSE ;
break ;
}
else if ( gameInfo . GetState ( ) = = STATE_CLICKED & & mountMethod ! = 3 ) {
gprintf ( " \n \t gameinfo Clicked " ) ;
gameInfo . ResetState ( ) ;
if ( selectImg1 > = 0 & & selectImg1 < ( s32 ) gameCnt ) {
gameSelected = selectImg1 ;
rockout ( ) ;
struct discHdr * header = & gameList [ selectImg1 ] ;
snprintf ( IDfull , sizeof ( IDfull ) , " %c%c%c%c%c%c " , header - > id [ 0 ] , header - > id [ 1 ] , header - > id [ 2 ] , header - > id [ 3 ] , header - > id [ 4 ] , header - > id [ 5 ] ) ;
choice = showGameInfo ( IDfull ) ;
rockout ( 2 ) ;
if ( choice = = 2 )
homeBtn . SetState ( STATE_CLICKED ) ;
if ( choice = = 3 ) {
menu = MENU_DISCLIST ;
break ;
}
}
}
else if ( lockBtn . GetState ( ) = = STATE_CLICKED ) {
gprintf ( " \n \t lockBtn clicked " ) ;
lockBtn . ResetState ( ) ;
if ( ! canUnlock ) {
WindowPrompt ( tr ( " Parental Control " ) , tr ( " You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings. " ) , tr ( " OK " ) ) ;
} else {
if ( Settings . godmode ) {
if ( WindowPrompt ( tr ( " Parental Control " ) , tr ( " Are you sure you want to enable Parent Control? " ) , tr ( " Yes " ) , tr ( " No " ) ) = = 1 ) {
Settings . godmode = 0 ;
lockBtn . SetImage ( & lockBtnImg_g ) ;
lockBtn . SetImageOver ( & lockBtnImg_g ) ;
lockBtn . SetToolTip ( & lockBtnTT , 15 , 52 , 1 , 3 ) ;
// Retrieve the gamelist again
menu = MENU_DISCLIST ;
break ;
}
} else {
// Require the user to enter the PIN code
char pin [ 5 ] ;
memset ( & pin , 0 , 5 ) ;
int ret = OnScreenNumpad ( ( char * ) & pin , 5 ) ;
if ( ret = = 1 ) {
if ( memcmp ( pin , Settings . parental . pin , 4 ) = = 0 ) {
Settings . godmode = 1 ;
lockBtn . SetImage ( & unlockBtnImg_g ) ;
lockBtn . SetImageOver ( & unlockBtnImg_g ) ;
lockBtn . SetToolTip ( & unlockBtnTT , 15 , 52 , 1 , 3 ) ;
// Retrieve the gamelist again
menu = MENU_DISCLIST ;
break ;
} else {
WindowPrompt ( tr ( " Parental Control " ) , tr ( " Invalid PIN code " ) , tr ( " OK " ) ) ;
}
}
}
}
}
if ( Settings . gameDisplay = = grid & & mountMethod ! = 3 ) {
int selectimg ;
DownloadBtn . SetSize ( 0 , 0 ) ;
selectimg = gameGrid - > GetSelectedOption ( ) ;
gameSelected = gameGrid - > GetClickedOption ( ) ;
selectImg1 = selectimg ;
}
else if ( Settings . gameDisplay = = carousel & & mountMethod ! = 3 ) {
int selectimg ;
DownloadBtn . SetSize ( 0 , 0 ) ;
selectimg = gameCarousel - > GetSelectedOption ( ) ;
gameSelected = gameCarousel - > GetClickedOption ( ) ;
selectImg1 = selectimg ;
}
else if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
//Get selected game under cursor
int selectimg ;
DownloadBtn . SetSize ( 160 , 224 ) ;
idBtn . SetSize ( 100 , 40 ) ;
selectimg = gameBrowser - > GetSelectedOption ( ) ;
gameSelected = gameBrowser - > GetClickedOption ( ) ;
selectImg1 = selectimg ;
if ( gameSelected > 0 ) //if click occured
selectimg = gameSelected ;
char gameregion [ 7 ] ;
if ( ( selectimg > = 0 ) & & ( selectimg < ( s32 ) gameCnt ) ) {
if ( selectimg ! = selectedold ) {
selectedold = selectimg ; //update displayed cover, game ID, and region if the selected game changes
struct discHdr * header = & gameList [ selectimg ] ;
snprintf ( ID , sizeof ( ID ) , " %c%c%c " , header - > id [ 0 ] , header - > id [ 1 ] , header - > id [ 2 ] ) ;
snprintf ( IDfull , sizeof ( IDfull ) , " %s%c%c%c " , ID , header - > id [ 3 ] , header - > id [ 4 ] , header - > id [ 5 ] ) ;
w . Remove ( & DownloadBtn ) ;
if ( GameIDTxt ) {
w . Remove ( & idBtn ) ;
delete GameIDTxt ;
GameIDTxt = NULL ;
}
if ( GameRegionTxt ) {
w . Remove ( GameRegionTxt ) ;
delete GameRegionTxt ;
GameRegionTxt = NULL ;
}
switch ( header - > id [ 3 ] ) {
case ' E ' :
sprintf ( gameregion , " NTSC U " ) ;
break ;
case ' J ' :
sprintf ( gameregion , " NTSC J " ) ;
break ;
case ' W ' :
sprintf ( gameregion , " NTSC T " ) ;
break ;
default :
case ' K ' :
sprintf ( gameregion , " NTSC K " ) ;
break ;
case ' P ' :
case ' D ' :
case ' F ' :
case ' I ' :
case ' S ' :
case ' H ' :
case ' U ' :
case ' X ' :
case ' Y ' :
case ' Z ' :
sprintf ( gameregion , " PAL " ) ;
break ;
}
//load game cover
if ( cover ) {
delete cover ;
cover = NULL ;
}
cover = LoadCoverImage ( header ) ;
if ( coverImg ) {
delete coverImg ;
coverImg = NULL ;
}
coverImg = new GuiImage ( cover ) ;
coverImg - > SetWidescreen ( CFG . widescreen ) ;
DownloadBtn . SetImage ( coverImg ) ; // put the new image on the download button
w . Append ( & DownloadBtn ) ;
if ( ( Settings . sinfo = = GameID ) | | ( Settings . sinfo = = Both ) ) {
GameIDTxt = new GuiText ( IDfull , 22 , THEME . info ) ;
GameIDTxt - > SetAlignment ( ALIGN_LEFT , ALIGN_TOP ) ;
//GameIDTxt->SetPosition(THEME.id_x,THEME.id_y);
idBtn . SetEffect ( EFFECT_FADE , 20 ) ;
idBtn . SetLabel ( GameIDTxt ) ;
w . Append ( & idBtn ) ;
}
//don't try to show region for channels because all the custom channels wont follow the rules
if ( ( ( Settings . sinfo = = GameRegion ) | | ( Settings . sinfo = = Both ) ) & & mountMethod ! = 3 ) {
GameRegionTxt = new GuiText ( gameregion , 22 , THEME . info ) ;
GameRegionTxt - > SetAlignment ( ALIGN_LEFT , ALIGN_TOP ) ;
GameRegionTxt - > SetPosition ( THEME . region_x , THEME . region_y ) ;
GameRegionTxt - > SetEffect ( EFFECT_FADE , 20 ) ;
w . Append ( GameRegionTxt ) ;
}
}
}
if ( idBtn . GetState ( ) = = STATE_CLICKED & & mountMethod ! = 3 ) {
gprintf ( " \n \t idBtn Clicked " ) ;
struct discHdr * header = & gameList [ gameBrowser - > GetSelectedOption ( ) ] ;
//enter new game ID
char entered [ 10 ] ;
snprintf ( entered , sizeof ( entered ) , " %s " , IDfull ) ;
//entered[9] = '\0';
int result = OnScreenKeyboard ( entered , 7 , 0 ) ;
if ( result = = 1 ) {
WBFS_ReIDGame ( header - > id , entered ) ;
//__Menu_GetEntries();
menu = MENU_DISCLIST ;
}
idBtn . ResetState ( ) ;
}
startat = gameBrowser - > GetOffset ( ) , offset = startat ;
}
if ( ( ( gameSelected > = 0 ) & & ( gameSelected < ( s32 ) gameCnt ) )
| | mountMethod = = 1
| | mountMethod = = 2 ) {
if ( searchBar )
{
HaltGui ( ) ;
mainWindow - > Remove ( searchBar ) ;
ResumeGui ( ) ;
}
rockout ( ) ;
struct discHdr * header = ( mountMethod = = 1 | | mountMethod = = 2 ? dvdheader : & gameList [ gameSelected ] ) ;
// struct discHdr *header = dvdheader:&gameList[gameSelected]);
if ( ! mountMethod ) //only get this stuff it we are booting a game from USB
{
WBFS_GameSize ( header - > id , & size ) ;
if ( strlen ( get_title ( header ) ) < ( MAX_CHARACTERS + 3 ) ) {
sprintf ( text , " %s " , get_title ( header ) ) ;
} else {
strncpy ( text , get_title ( header ) , MAX_CHARACTERS ) ;
text [ MAX_CHARACTERS ] = ' \0 ' ;
strncat ( text , " ... " , 3 ) ;
}
}
//check if alt Dol and gct file is present
FILE * exeFile = NULL ;
char nipple [ 100 ] ;
header = ( mountMethod = = 1 | | mountMethod = = 2 ? dvdheader : & gameList [ gameSelected ] ) ; //reset header
snprintf ( IDfull , sizeof ( IDfull ) , " %c%c%c%c%c%c " , header - > id [ 0 ] , header - > id [ 1 ] , header - > id [ 2 ] , header - > id [ 3 ] , header - > id [ 4 ] , header - > id [ 5 ] ) ;
struct Game_CFG * game_cfg = CFG_get_game_opt ( header - > id ) ;
if ( game_cfg ) {
alternatedol = game_cfg - > loadalternatedol ;
ocarinaChoice = game_cfg - > ocarina ;
} else {
alternatedol = off ;
ocarinaChoice = Settings . ocarina ;
}
if ( Settings . qboot = = yes ) { //quickboot game
if ( alternatedol = = on ) {
/* Open dol File and check exist */
sprintf ( nipple , " %s%s.dol " , Settings . dolpath , IDfull ) ;
exeFile = fopen ( nipple , " rb " ) ;
if ( exeFile = = NULL ) {
sprintf ( nipple , " %s %s " , nipple , tr ( " does not exist! " ) ) ;
WindowPrompt ( tr ( " Error " ) , nipple , tr ( " OK " ) ) ;
menu = MENU_CHECK ;
wiilight ( 0 ) ;
break ;
} else {
fclose ( exeFile ) ;
}
}
if ( ocarinaChoice ! = off ) {
/* Open gct File and check exist */
sprintf ( nipple , " %s%s.gct " , Settings . Cheatcodespath , IDfull ) ;
exeFile = fopen ( nipple , " rb " ) ;
if ( exeFile = = NULL ) {
gprintf ( " \n \t tried to load missing gct. " ) ;
sprintf ( nipple , " %s %s " , nipple , tr ( " does not exist! Loading game without cheats. " ) ) ;
WindowPrompt ( tr ( " Error " ) , nipple , NULL , NULL , NULL , NULL , 170 ) ;
} else {
fseek ( exeFile , 0 , SEEK_END ) ;
long size = ftell ( exeFile ) ;
rewind ( exeFile ) ;
fclose ( exeFile ) ;
if ( size > MAX_GCT_SIZE ) {
gprintf ( " \n \t gct is too big " ) ;
sprintf ( nipple , " %s %s " , nipple , tr ( " contains over 255 lines of code. It will produce unexpected results. " ) ) ;
WindowPrompt ( tr ( " Error " ) , nipple , NULL , NULL , NULL , NULL , 170 ) ;
}
}
}
wiilight ( 0 ) ;
if ( isInserted ( bootDevice ) ) {
//////////save game play count////////////////
struct Game_NUM * game_num = CFG_get_game_num ( header - > id ) ;
if ( game_num ) {
favoritevar = game_num - > favorite ;
playcount = game_num - > count ;
} else {
favoritevar = 0 ;
playcount = 0 ;
}
playcount + = 1 ;
CFG_save_game_num ( header - > id ) ;
gprintf ( " \n \t playcount for %c%c%c%c%c%c raised to %i " , header - > id [ 0 ] , header - > id [ 1 ] , header - > id [ 2 ] , header - > id [ 3 ] , header - > id [ 4 ] , header - > id [ 5 ] , playcount ) ;
}
menu = MENU_EXIT ;
break ;
}
bool returnHere = true ; // prompt to start game
while ( returnHere ) {
returnHere = false ;
if ( Settings . wiilight ! = wiilight_forInstall ) wiilight ( 1 ) ;
choice = GameWindowPrompt ( ) ;
// header = &gameList[gameSelected]; //reset header
if ( choice = = 1 ) {
if ( alternatedol = = on ) {
/* Open dol File and check exist */
sprintf ( nipple , " %s%s.dol " , Settings . dolpath , IDfull ) ;
exeFile = fopen ( nipple , " rb " ) ;
if ( exeFile = = NULL ) {
gprintf ( " \n \t Tried to load alt dol that isn't there " ) ;
sprintf ( nipple , " %s %s " , nipple , tr ( " does not exist! You Messed something up, Idiot. " ) ) ;
WindowPrompt ( tr ( " Error " ) , nipple , tr ( " OK " ) ) ;
menu = MENU_CHECK ;
wiilight ( 0 ) ;
break ;
} else {
fclose ( exeFile ) ;
}
}
if ( ocarinaChoice ! = off ) {
/* Open gct File and check exist */
sprintf ( nipple , " %s%s.gct " , Settings . Cheatcodespath , IDfull ) ;
exeFile = fopen ( nipple , " rb " ) ;
if ( exeFile = = NULL ) {
gprintf ( " \n \t tried to load gct file that isn't there " ) ;
sprintf ( nipple , " %s %s " , nipple , tr ( " does not exist! Loading game without cheats. " ) ) ;
WindowPrompt ( tr ( " Error " ) , nipple , NULL , NULL , NULL , NULL , 170 ) ;
} else {
fseek ( exeFile , 0 , SEEK_END ) ;
long size = ftell ( exeFile ) ;
rewind ( exeFile ) ;
fclose ( exeFile ) ;
if ( size > MAX_GCT_SIZE ) {
gprintf ( " \n \t gct file is too big " ) ;
sprintf ( nipple , " %s %s " , nipple , tr ( " contains over 255 lines of code. It will produce unexpected results. " ) ) ;
WindowPrompt ( tr ( " Error " ) , nipple , NULL , NULL , NULL , NULL , 170 ) ;
}
}
}
wiilight ( 0 ) ;
returnHere = false ;
menu = MENU_EXIT ;
} else if ( choice = = 2 ) {
wiilight ( 0 ) ;
HaltGui ( ) ;
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) mainWindow - > Remove ( gameBrowser ) ;
else if ( Settings . gameDisplay = = grid ) mainWindow - > Remove ( gameGrid ) ;
else if ( Settings . gameDisplay = = carousel ) mainWindow - > Remove ( gameCarousel ) ;
mainWindow - > Remove ( & w ) ;
ResumeGui ( ) ;
//re-evaluate header now in case they changed games while on the game prompt
header = ( mountMethod = = 1 | | mountMethod = = 2 ? dvdheader : & gameList [ gameSelected ] ) ;
int settret = GameSettings ( header ) ;
/* unneeded for now, kept in case database gets a separate language setting
//menu = MENU_DISCLIST; // refresh titles (needed if the language setting has changed)
*/
HaltGui ( ) ;
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) mainWindow - > Append ( gameBrowser ) ;
else if ( Settings . gameDisplay = = grid ) mainWindow - > Append ( gameGrid ) ;
else if ( Settings . gameDisplay = = carousel ) mainWindow - > Append ( gameCarousel ) ;
mainWindow - > Append ( & w ) ;
ResumeGui ( ) ;
if ( settret = = 1 ) { //if deleted
menu = MENU_DISCLIST ;
break ;
}
returnHere = true ;
rockout ( 2 ) ;
}
else if ( choice = = 3 & & ! mountMethod ) { //WBFS renaming
wiilight ( 0 ) ;
//re-evaluate header now in case they changed games while on the game prompt
header = & gameList [ gameSelected ] ;
//enter new game title
char entered [ 60 ] ;
snprintf ( entered , sizeof ( entered ) , " %s " , get_title ( header ) ) ;
entered [ 59 ] = ' \0 ' ;
int result = OnScreenKeyboard ( entered , 60 , 0 ) ;
if ( result = = 1 ) {
WBFS_RenameGame ( header - > id , entered ) ;
__Menu_GetEntries ( ) ;
menu = MENU_DISCLIST ;
}
} else if ( choice = = 0 ) {
rockout ( 2 ) ;
if ( mountMethod = = 1 | | mountMethod = = 2 ) mountMethod = mountMethodOLD ;
if ( Settings . gameDisplay = = list | | mountMethod = = 3 ) {
gameBrowser - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = grid ) {
gameGrid - > SetFocus ( 1 ) ;
} else if ( Settings . gameDisplay = = carousel ) {
gameCarousel - > SetFocus ( 1 ) ;
}
}
}
if ( searchBar )
{
HaltGui ( ) ;
mainWindow - > Append ( searchBar ) ;
ResumeGui ( ) ;
}
}
// to skip the first call of windowScreensaver at startup when wiimote is not connected
if ( IsWpadConnected ( ) ) {
check = 1 ;
}
// screensaver is called when wiimote shuts down, depending on the wiimotet idletime
if ( ! IsWpadConnected ( ) & & check ! = 0 & & Settings . screensaver ! = 0 ) {
check + + ;
int screensaverIsOn = 0 ;
if ( check = = 11500 ) { //to allow time for the wii to turn off and not show the screensaver
screensaverIsOn = WindowScreensaver ( ) ;
}
if ( screensaverIsOn = = 1 ) check = 0 ;
}
if ( dvdBtn . GetState ( ) ! = STATE_CLICKED )
covertOld = covert ;
else
dvdBtn . ResetState ( ) ;
//respond to the checkthread and unpause it
switch ( checkthreadState )
{
case 1 :
mountMethod = 0 ;
menu = MENU_DISCLIST ;
checkthreadState = 0 ;
gprintf ( " \n case 1 " ) ;
break ;
case 2 :
sdcardBtn . SetState ( STATE_CLICKED ) ;
checkthreadState = 0 ;
gprintf ( " \n case 2 " ) ;
break ;
}
}
// set alt dol default
if ( menu = = MENU_EXIT & & altdoldefault & & mountMethod ! = 3 ) {
struct discHdr * header = ( mountMethod = = 1 | | mountMethod = = 2 ? dvdheader : & gameList [ gameSelected ] ) ;
struct Game_CFG * game_cfg = CFG_get_game_opt ( header - > id ) ;
// use default only if no alt dol was selected manually
if ( game_cfg ) {
if ( game_cfg - > alternatedolstart ! = 0 )
altdoldefault = false ;
}
if ( altdoldefault ) {
int autodol = autoSelectDol ( ( char * ) header - > id , true ) ;
if ( autodol > 0 ) {
alternatedol = 2 ;
alternatedoloffset = autodol ;
char temp [ 20 ] ;
sprintf ( temp , " %d " , autodol ) ;
} else {
// alt dol menu for games that require more than a single alt dol
int autodol = autoSelectDolMenu ( ( char * ) header - > id , true ) ;
if ( autodol > 0 ) {
alternatedol = 2 ;
alternatedoloffset = autodol ;
}
}
}
}
//no need to close sd here. we still need to get settings and codes and shit
/*if (menu == MENU_EXIT) {
SDCard_deInit ( ) ;
} */
//if (Settings.gameDisplay==list) {startat=gameBrowser->GetOffset(), offset=startat;}//save the variables in case we are refreshing the list
//gprintf("\n\tstartat:%d offset:%d",startat,offset);
HaltGui ( ) ;
mainWindow - > RemoveAll ( ) ;
mainWindow - > Append ( bgImg ) ;
delete searchBar ;
searchBar = NULL ;
delete gameBrowser ;
gameBrowser = NULL ;
delete gameGrid ;
gameGrid = NULL ;
delete gameCarousel ;
gameCarousel = NULL ;
ResumeGui ( ) ;
return menu ;
}
void DiscListWinUpdateCallback ( void * e )
{
GuiWindow * w = ( GuiWindow * ) e ;
for ( int i = 0 ; i < 8 ; + + i )
{
if ( Toolbar [ i ] - > GetState ( ) = = STATE_SELECTED )
{
w - > Remove ( Toolbar [ i ] ) ;
w - > Append ( Toolbar [ i ] ) ; // draw the selected Icon allways on top
break ;
}
}
}
void rockout ( int f ) {
HaltGui ( ) ;
int num = ( f = = 2 ? - 1 : gameSelected ) ;
char imgPath [ 100 ] ;
if ( ( ! ( strcasestr ( get_title ( & gameList [ num ] ) , " guitar " ) | |
strcasestr ( get_title ( & gameList [ num ] ) , " band " ) | |
strcasestr ( get_title ( & gameList [ num ] ) , " rock " ) | |
f = = 1 ) ) | | mountMethod ) {
for ( int i = 0 ; i < 4 ; i + + )
delete pointer [ i ] ;
snprintf ( imgPath , sizeof ( imgPath ) , " %splayer1_point.png " , CFG . theme_path ) ;
pointer [ 0 ] = new GuiImageData ( imgPath , player1_point_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %splayer2_point.png " , CFG . theme_path ) ;
pointer [ 1 ] = new GuiImageData ( imgPath , player2_point_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %splayer3_point.png " , CFG . theme_path ) ;
pointer [ 2 ] = new GuiImageData ( imgPath , player3_point_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %splayer4_point.png " , CFG . theme_path ) ;
pointer [ 3 ] = new GuiImageData ( imgPath , player4_point_png ) ;
} else {
for ( int i = 0 ; i < 4 ; i + + )
delete pointer [ i ] ;
snprintf ( imgPath , sizeof ( imgPath ) , " %srplayer1_point.png " , CFG . theme_path ) ;
pointer [ 0 ] = new GuiImageData ( imgPath , rplayer1_point_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %srplayer2_point.png " , CFG . theme_path ) ;
pointer [ 1 ] = new GuiImageData ( imgPath , rplayer2_point_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %srplayer3_point.png " , CFG . theme_path ) ;
pointer [ 2 ] = new GuiImageData ( imgPath , rplayer3_point_png ) ;
snprintf ( imgPath , sizeof ( imgPath ) , " %srplayer4_point.png " , CFG . theme_path ) ;
pointer [ 3 ] = new GuiImageData ( imgPath , rplayer4_point_png ) ;
}
ResumeGui ( ) ;
}