usbloadergx/source/menu/menu_disclist.cpp

1847 lines
73 KiB
C++

#include "menus.h"
#include "fatmounter.h"
#include "usbloader/wdvd.h"
#include "usbloader/GameList.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;
/****************************************************************************
* MenuDiscList
***************************************************************************/
int MenuDiscList()
{
gprintf( "MenuDiscList()\n" );
gameList.FilterList();
int offset = MIN( ( int )startat, gameList.size() - 1 );
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 && WBFS_ShowFreeSpace() )
{
WBFS_DiskSpace( &used, &freespace );
}
if ( !gameList.size() ) //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 trigZ;
trigZ.SetButtonOnlyTrigger( -1, WPAD_NUNCHUK_BUTTON_Z | WPAD_CLASSIC_BUTTON_ZL, PAD_TRIGGER_Z );
GuiButton screenShotBtn( 0, 0 );
screenShotBtn.SetPosition( 0, 0 );
screenShotBtn.SetTrigger( &trigZ );
char spaceinfo[30];
if ( load_from_fs == PART_FS_FAT )
{
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" ) ), gameList.size() );
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();
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, &trigA, &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( &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, &trigA, &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( &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, &trigA, &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( 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( &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( &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, &trigA, &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( &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, &trigA, &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( &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, &trigA, &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.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 ( *gameList.GetCurrentFilter() )
{
if ( show_searchwindow && gameList.size() == 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 == PLAYCOUNT )
{
countBtn.SetImage( &countBtnImg );
countBtn.SetImageOver( &countBtnImg );
countBtn.SetAlpha( 255 );
}
if ( Settings.gameDisplay == list )
{
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 )
{
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 )
{
gameBrowser = new GuiGameBrowser( THEME.gamelist_w, THEME.gamelist_h, 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, 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, gameList.size(), CFG.theme_path, bg_options_png, startat, offset);
gameCarousel = new GuiGameCarousel( 640, 400, 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( clock_ttf, clock_ttf_size );
GuiText clockTime( theTime, 40, THEME.clock );
clockTime.SetAlignment( THEME.clock_align, ALIGN_TOP );
clockTime.SetPosition( THEME.clock_x, THEME.clock_y );
clockTime.SetFont( clock_ttf, clock_ttf_size );
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 )
w.Append( &installBtn );
w.Append( &homeBtn );
w.Append( &settingsBtn );
w.Append( &DownloadBtn );
w.Append( &idBtn );
w.Append( &screenShotBtn );
// 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 )
{
mainWindow->Append( gameBrowser );
}
if ( Settings.gameDisplay == grid )
{
mainWindow->Append( gameGrid );
}
if ( Settings.gameDisplay == carousel )
{
mainWindow->Append( gameCarousel );
}
mainWindow->Append( &w );
GuiSearchBar *searchBar = NULL;
if ( show_searchwindow )
{
searchBar = new GuiSearchBar( gameList.GetAvailableSearchChars() );
if ( searchBar )
mainWindow->Append( searchBar );
}
ResumeGui();
// ShowMemInfo();
while ( menu == MENU_NONE )
{
if ( idiotFlag == 1 )
{
gprintf( "\tIdiot flag\n" );
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 && !gameList.size() )
{
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();
}
gameList.FilterList();
menu = MENU_DISCLIST;
break;
}
//CLOCK
time_t rawtime = time( 0 );
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\tshutdown" );
Sys_Shutdown();
}
if ( reset == 1 )
Sys_Reboot();
if ( updateavailable == true )
{
gprintf( "\tUpdate Available\n" );
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( "\tpoweroffBtn clicked\n" );
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 )
{
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( "\tgameCntBtn clicked\n" );
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 ( screenShotBtn.GetState() == STATE_CLICKED )
{
gprintf( "\tscreenShotBtn clicked\n" );
screenShotBtn.ResetState();
ScreenShot();
}
else if ( homeBtn.GetState() == STATE_CLICKED )
{
gprintf( "\thomeBtn clicked\n" );
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 )
{
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( "\twiiBtn clicked\n" );
dataed++;
wiiBtn.ResetState();
if ( Settings.gameDisplay == list )
{
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 )
{
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 )
{
gameBrowser->SetFocus( 1 );
}
else if ( Settings.gameDisplay == grid )
{
gameGrid->SetFocus( 1 );
}
else if ( Settings.gameDisplay == carousel )
{
gameCarousel->SetFocus( 1 );
}
}
}
else if ( ( covert & 0x2 ) && ( covert != covertOld ) )
{
gprintf( "\tNew Disc Detected\n" );
choice = WindowPrompt( tr( "New Disc Detected" ), 0, tr( "Install" ), tr( "Mount DVD drive" ), tr( "Cancel" ) );
if ( choice == 1 )
{
menu = MENU_INSTALL;
break;
}
else if ( choice == 2 )
{
dvdBtn.SetState( STATE_CLICKED );
}
else
{
if ( Settings.gameDisplay == list )
{
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( "\tsdCardBtn Clicked\n" );
SDCard_deInit();
SDCard_Init();
if ( Settings.gameDisplay == list )
{
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( "\tDownloadBtn Clicked\n" );
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" ) );
}
menu = MENU_DISCLIST;
DownloadBtn.ResetState();
if ( Settings.gameDisplay == list )
{
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( "\tsettingsBtn Clicked\n" );
if ( Settings.gameDisplay == list )
{
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( "\tfavoriteBtn Clicked\n" );
Settings.fave = !Settings.fave;
if ( isInserted( bootDevice ) )
{
cfg_save_global();
}
gameList.FilterList();
menu = MENU_DISCLIST;
break;
}
else if ( searchBtn.GetState() == STATE_CLICKED && mountMethod != 3 )
{
gprintf( "\tsearchBtn Clicked\n" );
show_searchwindow = !show_searchwindow;
HaltGui();
if ( searchBar )
{
mainWindow->Remove( searchBar );
delete searchBar;
searchBar = NULL;
}
if ( show_searchwindow )
{
if ( *gameList.GetCurrentFilter() )
{
searchBtn.StopEffect();
searchBtn.SetEffectGrow();
}
searchBar = new GuiSearchBar( gameList.GetAvailableSearchChars() );
if ( searchBar )
mainWindow->Append( searchBar );
}
else
{
if ( *gameList.GetCurrentFilter() )
searchBtn.SetEffect( EFFECT_PULSE, 10, 105 );
}
searchBtn.ResetState();
ResumeGui();
}
else if ( searchBar && ( searchChar = searchBar->GetClicked() ) )
{
if ( searchChar > 27 )
{
int len = gameList.GetCurrentFilter() ? wcslen( gameList.GetCurrentFilter() ) : 0;
wchar_t newFilter[len+2];
if ( gameList.GetCurrentFilter() )
wcscpy( newFilter, gameList.GetCurrentFilter() );
newFilter[len] = searchChar;
newFilter[len+1] = 0;
gameList.FilterList( newFilter );
menu = MENU_DISCLIST;
break;
}
else if ( searchChar == 7 ) // Close
{
show_searchwindow = false;
HaltGui();
if ( searchBar )
{
mainWindow->Remove( searchBar );
delete searchBar;
searchBar = NULL;
}
if ( *gameList.GetCurrentFilter() )
{
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
{
int len = wcslen( gameList.GetCurrentFilter() );
wchar_t newFilter[len+1];
if ( gameList.GetCurrentFilter() )
wcscpy( newFilter, gameList.GetCurrentFilter() );
newFilter[len > 0 ? len-1 : 0] = 0;
gameList.FilterList( newFilter );
menu = MENU_DISCLIST;
break;
}
}
else if ( abcBtn.GetState() == STATE_CLICKED )
{
gprintf( "\tabcBtn clicked\n" );
if ( Settings.sort != ALL )
{
Settings.sort = ALL;
if ( isInserted( bootDevice ) )
{
cfg_save_global();
}
gameList.FilterList();
menu = MENU_DISCLIST;
break;
}
abcBtn.ResetState();
}
else if ( countBtn.GetState() == STATE_CLICKED )
{
gprintf( "\tcountBtn Clicked\n" );
if ( Settings.sort != PLAYCOUNT )
{
Settings.sort = PLAYCOUNT;
if ( isInserted( bootDevice ) )
{
cfg_save_global();
}
gameList.FilterList();
menu = MENU_DISCLIST;
break;
}
countBtn.ResetState();
}
else if ( listBtn.GetState() == STATE_CLICKED )
{
gprintf( "\tlistBtn Clicked\n" );
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( "\tgridBtn Clicked\n" );
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( "\tcarouselBtn Clicked\n" );
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( "\thomebrewBtn Clicked\n" );
menu = MENU_HOMEBREWBROWSE;
break;
}
else if ( gameInfo.GetState() == STATE_CLICKED && mountMethod != 3 )
{
gprintf( "\tgameinfo Clicked\n" );
gameInfo.ResetState();
if ( selectImg1 >= 0 && selectImg1 < ( s32 )gameList.size() )
{
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( "\tlockBtn clicked\n" );
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" ) );
}
}
}
}
}
else if ( dvdBtn.GetState() == STATE_CLICKED )
{
gprintf( "\tdvdBtn Clicked\n" );
mountMethodOLD = ( mountMethod == 3 ? mountMethod : 0 );
mountMethod = DiscMount( dvdheader );
dvdBtn.ResetState();
rockout();
//break;
}
if ( Settings.gameDisplay == grid )
{
int selectimg;
DownloadBtn.SetSize( 0, 0 );
selectimg = gameGrid->GetSelectedOption();
gameSelected = gameGrid->GetClickedOption();
selectImg1 = selectimg;
}
if ( Settings.gameDisplay == carousel )
{
int selectimg;
DownloadBtn.SetSize( 0, 0 );
selectimg = gameCarousel->GetSelectedOption();
gameSelected = gameCarousel->GetClickedOption();
selectImg1 = selectimg;
}
if ( Settings.gameDisplay == list )
{
//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 ) gameList.size() ) )
{
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\tidBtn 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 )gameList.size() ) )
|| 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( "\ttried to load missing gct.\n" );
sprintf( nipple, "%s %s", nipple, tr( "does not exist! Loading game without cheats." ) );
WindowPrompt( tr( "Error" ), nipple, NULL, NULL, NULL, NULL, 170 );
}
else
{
fclose( exeFile );
}
}
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\tplaycount 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\tTried 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( "\ttried to load gct file that isn't there\n" );
sprintf( nipple, "%s %s", nipple, tr( "does not exist! Loading game without cheats." ) );
WindowPrompt( tr( "Error" ), nipple, NULL, NULL, NULL, NULL, 170 );
}
else
{
fclose( exeFile );
}
}
wiilight( 0 );
returnHere = false;
menu = MENU_EXIT;
}
else if ( choice == 2 )
{
wiilight( 0 );
HaltGui();
if ( Settings.gameDisplay == list ) 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 ) 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 );
gameList.ReadGameList();
gameList.FilterList();
menu = MENU_DISCLIST;
}
}
else if ( choice == 0 )
{
rockout( 2 );
if ( mountMethod == 1 || mountMethod == 2 )mountMethod = mountMethodOLD;
if ( Settings.gameDisplay == list )
{
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;
}
covertOld = covert;
}
// set alt dol default
if ( menu == MENU_EXIT && altdoldefault )
{
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();
char imgPath[100];
if ( gameSelected >= 0 && gameSelected < gameList.size() &&
( strcasestr( get_title( gameList[gameSelected] ), "guitar" ) ||
strcasestr( get_title( gameList[gameSelected] ), "band" ) ||
strcasestr( get_title( gameList[gameSelected] ), "rock" ) ) )
{
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 );
}
else
{
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 );
}
ResumeGui();
}