diff --git a/hbc/icon.png b/hbc/icon.png new file mode 100644 index 0000000..5248138 Binary files /dev/null and b/hbc/icon.png differ diff --git a/hbc/meta.xml b/hbc/meta.xml new file mode 100644 index 0000000..7a2ed29 --- /dev/null +++ b/hbc/meta.xml @@ -0,0 +1,9 @@ + + + FCE Ultra GX + Tantric + 3.0.0 + 20090413 + Nintendo Emulator + A port of FCE Ultra 0.98.12 to the Wii. + diff --git a/readme.txt b/readme.txt index ae30323..b4a0fd6 100644 --- a/readme.txt +++ b/readme.txt @@ -1,7 +1,7 @@ ¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤ - FCE Ultra GX - - Version 2.0.9 + Version 3.0.0 http://code.google.com/p/fceugc (Under GPL License) @@ -9,8 +9,7 @@ FCE Ultra GX is a modified port of the FCE Ultra 0.98.12 Nintendo Entertainment system for x86 (Windows/Linux) PC's. With it you can play NES games on your -Wii/GameCube. Version 2 is a complete rewrite based on code from the -SNES9x GX project. +Wii/GameCube. -=[ Features ]=- @@ -33,7 +32,22 @@ SNES9x GX project. |0O×øo· UPDATE HISTORY ·oø×O0| `¨•¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨' -[What's New 2.0.9 - January 27, 2009] +[3.0.0 - April 13, 2009] +* New GX-based menu, with a completely redesigned layout. Has Wiimote IR + support, sounds, graphics, animation effects, and more +* Thanks to the3seashells for designing some top-notch artwork, to + Peter de Man for composing the music, and a special thanks to shagkur for + fixing libogc bugs that would have otherwise prevented the release +* Onscreen keyboard for changing save/load folders and network settings +* Menu configuration options (configurable exit button, wiimote orientation, + volumes) +* Configurable button mapping for zapper +* New save manager, allowing multiple saves and save browsing. Shows + screenshots for Snapshot saves, and save dates/times +* SMB reconnection feature +* ISI issue fixed + +[2.0.9 - January 27, 2009] * Fixed a major memory corruption bug in FCE Ultra 0.98.12 * Faster SD/USB - new read-ahead cache * Removed trigger of back to menu for Classic Controller right joystick @@ -44,7 +58,7 @@ SNES9x GX project. * Fixed some memory leaks, buffer overflows, etc * Code cleanup, other general bugfixes -[What's New 2.0.8 - December 24, 2008] +[2.0.8 - December 24, 2008] * Fixed unstable SD card access * Proper SD/USB hotswap (Wii only) * Auto-update feature (Wii only) @@ -55,7 +69,7 @@ SNES9x GX project. * Rewritten RAM/state saving - old state saves are now invalid * Minor bug fixes -[What's New 2.0.7 - November 19, 2008] +[2.0.7 - November 19, 2008] * Special thanks to eke-eke & KruLLo for contributions, bugfixes, and tips * Video code rewritten - now has original, unfiltered, filtered modes * Zoom option @@ -74,7 +88,7 @@ SNES9x GX project. folder as the DOL (eg: apps/fceugx/settings.xml) * GameCube - Added DVD motor off option -[What's New 2.0.6 - October 21, 2008] +[2.0.6 - October 21, 2008] * Right audio channel corruption fixed (thanks cyberdog!) * Low pass audio filter turned off (muffles audio) * Changed to alternate audio filter @@ -82,13 +96,13 @@ SNES9x GX project. * Cheesy/2X video filters fixed * Qoob Pro modchip support for GameCube (thanks emukidid!) -[What's New 2.0.5 - October 19, 2008] +[2.0.5 - October 19, 2008] * Sound bug fixed - thanks eke-eke! * High quality sound enabled, lowpass filter enabled * Video threading enabled * Fixed timing error (incorrect opcode) -[What's New 2.0.4 - October 15, 2008] +[2.0.4 - October 15, 2008] * Wii DVD fixed * FDS BIOS loading works now * FDS disk switching now consistently works with one button press @@ -99,21 +113,21 @@ SNES9x GX project. * Changed GC controller mappings - Select - Z, Start - Start, Home - Start+A, Special - L -[What's New 2.0.3 - October 1, 2008] +[2.0.3 - October 1, 2008] * Complete rewrite of loading code - FDS / UNIF / NSF support added! * VS games work (coin insert submitted by pakitovic) * Mapping of 'Special' commands - VS coin insert, FDS switch disk (default A) * 480p and DVD now available for GameCube * Improved stability - less crashes! -[What's New 2.0.2 - September 19, 2008] +[2.0.2 - September 19, 2008] * Fixed network freeze-up problem * Zapper now mapped to A and B * Fixed auto-save feature * Performance slowdowns on Gamecube should be fixed * Will now attempt to load old save states with CRC filename -[What's New 2.0.1 - September 6, 2008] +[2.0.1 - September 6, 2008] * Zapper support! Turn this on in the Controller Settings - most games require you to have the Zapper on Port 2. Thanks go to aksommerville whose previous work on the Zapper helped, and michniewski's cursor code @@ -123,7 +137,7 @@ SNES9x GX project. * Start/Select reversed mapping fixed for Wii controllers * Small bug fixes / improvements / tweaks -[What's New 2.0.0 - September 1, 2008] +[2.0.0 - September 1, 2008] * Complete rewrite based on code from SNES9x GX and Genesis Plus GX * Wiimote, Nunchuk, and Classic controller support @@ -215,38 +229,44 @@ FCE Ultra 0.98.12 for Windows before asking for help. Mappers are the way the Nintendo handles switching from ROM/VROM so the more that are supported the more games will work. - + 000 . 112 . 113 . 114 . 117 . 15 . 151 . 16 . 17 . 18 . 180 . 182 . 184 . 187 189 . 193 . 200 . 201 . 202 . 203 . 208 . 21 . 22 . 225 . 226 . 227 . 228 . 229 23 . 230 . 231 . 232 . 234 . 235 . 240 . 241 . 242 . 244 . 246 . 248 . 24 . 26 25 . 255 . 32 . 33 . 40 . 41 . 42 . 43 . 46 . 50 . 51 . 57 . 58 . 59 6 . 60 . 61 . 62 . 65 . 67 . 68 . 69 . 71 . 72 . 73 . 75 . 76 . 77 79 . 8 . 80 . 82 . 83 . 85 . 86 . 88 . 89 . 91 . 92 . 95 . 97 . 99 - + -[ Emulator Options ]- - + Screen Scaler - How to scale the screen: GX, Cheesy or 2x - + Palette - The colors used while viewing the game: Default . loopy . quor . chris . matt pasofami . crashman . mess . zaphod-cv zaphod-smb . vs-drmar . vs-cv . vs-smb - + Timing - NTSC or PAL (Depends if you're running a PAL or NTSC game) - + ¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤ - + -=[ Credits ]=- -GameCube/Wii Port v2.x Tantric -GameCube/Wii Port v1.0.9 askot & dsbomb -GameCube Port v1.0.8 SoftDev -FCE Ultra Xodnizel -Original FCE BERO -libogc Shagkur & wintermute -Testing tehskeen users + Coding & menu design Tantric + Menu artwork the3seashells + Menu sound Peter de Man + Logo design mvit -And many others who have contributed over the years! + ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ + FCE Ultra GX GameCube SoftDev, + askot & dsbomb + + FCE Ultra Xodnizel + Original FCE BERO + libogc/devkitPPC shagkur & wintermute + FreeTypeGX Armin Tamzarian + + And many others who have contributed over the years! ¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤ diff --git a/source/ngc/filelist.h b/source/ngc/filelist.h index 42027cc..76a72b7 100644 --- a/source/ngc/filelist.h +++ b/source/ngc/filelist.h @@ -51,6 +51,8 @@ extern const u32 icon_settings_png_size; extern const u8 icon_home_png[]; extern const u32 icon_home_png_size; +extern const u8 icon_game_settings_png[]; +extern const u32 icon_game_settings_png_size; extern const u8 icon_game_cheats_png[]; extern const u32 icon_game_cheats_png_size; extern const u8 icon_game_controllers_png[]; diff --git a/source/ngc/images/icon_game_settings.png b/source/ngc/images/icon_game_settings.png new file mode 100644 index 0000000..b47dabe Binary files /dev/null and b/source/ngc/images/icon_game_settings.png differ diff --git a/source/ngc/menu.cpp b/source/ngc/menu.cpp index 362a813..1b10b9a 100644 --- a/source/ngc/menu.cpp +++ b/source/ngc/menu.cpp @@ -1113,8 +1113,7 @@ static int MenuGame() GuiImageData btnCloseOutlineOver(button_small_over_png); GuiImageData btnLargeOutline(button_large_png); GuiImageData btnLargeOutlineOver(button_large_over_png); - GuiImageData iconCheats(icon_game_cheats_png); - GuiImageData iconController(icon_game_controllers_png); + GuiImageData iconGameSettings(icon_game_settings_png); GuiImageData iconLoad(icon_game_load_png); GuiImageData iconSave(icon_game_save_png); GuiImageData iconReset(icon_game_reset_png); @@ -1180,37 +1179,22 @@ static int MenuGame() resetBtn.SetTrigger(&trigA); resetBtn.SetEffectGrow(); - GuiText controllerBtnTxt("Controller", 24, (GXColor){0, 0, 0, 255}); - GuiImage controllerBtnImg(&btnLargeOutline); - GuiImage controllerBtnImgOver(&btnLargeOutlineOver); - GuiImage controllerBtnIcon(&iconController); - GuiButton controllerBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); - controllerBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); - controllerBtn.SetPosition(-125, 250); - controllerBtn.SetLabel(&controllerBtnTxt); - controllerBtn.SetImage(&controllerBtnImg); - controllerBtn.SetImageOver(&controllerBtnImgOver); - controllerBtn.SetIcon(&controllerBtnIcon); - controllerBtn.SetSoundOver(&btnSoundOver); - controllerBtn.SetSoundClick(&btnSoundClick); - controllerBtn.SetTrigger(&trigA); - controllerBtn.SetEffectGrow(); - - /*GuiText cheatsBtnTxt("Cheats", 24, (GXColor){0, 0, 0, 255}); - GuiImage cheatsBtnImg(&btnLargeOutline); - GuiImage cheatsBtnImgOver(&btnLargeOutlineOver); - GuiImage cheatsBtnIcon(&iconCheats); - GuiButton cheatsBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); - cheatsBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); - cheatsBtn.SetPosition(125, 250); - cheatsBtn.SetLabel(&cheatsBtnTxt); - cheatsBtn.SetImage(&cheatsBtnImg); - cheatsBtn.SetImageOver(&cheatsBtnImgOver); - cheatsBtn.SetIcon(&cheatsBtnIcon); - cheatsBtn.SetSoundOver(&btnSoundOver); - cheatsBtn.SetSoundClick(&btnSoundClick); - cheatsBtn.SetTrigger(&trigA); - cheatsBtn.SetEffectGrow();*/ + GuiText gameSettingsBtnTxt("Game Settings", 24, (GXColor){0, 0, 0, 255}); + gameSettingsBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30); + GuiImage gameSettingsBtnImg(&btnLargeOutline); + GuiImage gameSettingsBtnImgOver(&btnLargeOutlineOver); + GuiImage gameSettingsBtnIcon(&iconGameSettings); + GuiButton gameSettingsBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); + gameSettingsBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); + gameSettingsBtn.SetPosition(-125, 250); + gameSettingsBtn.SetLabel(&gameSettingsBtnTxt); + gameSettingsBtn.SetImage(&gameSettingsBtnImg); + gameSettingsBtn.SetImageOver(&gameSettingsBtnImgOver); + gameSettingsBtn.SetIcon(&gameSettingsBtnIcon); + gameSettingsBtn.SetSoundOver(&btnSoundOver); + gameSettingsBtn.SetSoundClick(&btnSoundClick); + gameSettingsBtn.SetTrigger(&trigA); + gameSettingsBtn.SetEffectGrow(); GuiText mainmenuBtnTxt("Main Menu", 24, (GXColor){0, 0, 0, 255}); GuiImage mainmenuBtnImg(&btnOutline); @@ -1287,8 +1271,7 @@ static int MenuGame() w.Append(&saveBtn); w.Append(&loadBtn); w.Append(&resetBtn); - w.Append(&controllerBtn); - //w.Append(&cheatsBtn); + w.Append(&gameSettingsBtn); #ifdef HW_RVL w.Append(batteryBtn[0]); @@ -1320,12 +1303,7 @@ static int MenuGame() batteryBtn[3]->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_IN, 35); #endif - saveBtn.SetEffect(EFFECT_FADE, 15); - loadBtn.SetEffect(EFFECT_FADE, 15); - resetBtn.SetEffect(EFFECT_FADE, 15); - controllerBtn.SetEffect(EFFECT_FADE, 15); - //cheatsBtn.SetEffect(EFFECT_FADE, 15); - + w.SetEffect(EFFECT_FADE, 15); AutoSave(); } @@ -1374,18 +1352,10 @@ static int MenuGame() PowerNES(); menu = MENU_EXIT; } - else if(controllerBtn.GetState() == STATE_CLICKED) + else if(gameSettingsBtn.GetState() == STATE_CLICKED) { - ControllerWindow(); + menu = MENU_GAMESETTINGS; } - /*else if(cheatsBtn.GetState() == STATE_CLICKED) - { - cheatsBtn.ResetState(); - if(Cheat.num_cheats > 0) - menu = MENU_GAME_CHEATS; - else - InfoPrompt("Cheats file not found!"); - }*/ else if(mainmenuBtn.GetState() == STATE_CLICKED) { if(gameScreenImg) @@ -1423,11 +1393,7 @@ static int MenuGame() batteryBtn[3]->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35); #endif - saveBtn.SetEffect(EFFECT_FADE, -20); - loadBtn.SetEffect(EFFECT_FADE, -20); - resetBtn.SetEffect(EFFECT_FADE, -20); - controllerBtn.SetEffect(EFFECT_FADE, -20); - //cheatsBtn.SetEffect(EFFECT_FADE, -20); + w.SetEffect(EFFECT_FADE, -20); usleep(200000); // wait for effects to finish } @@ -1732,6 +1698,201 @@ static int MenuGameSaves(int action) return menu; } + +/**************************************************************************** + * MenuGameSettings + ***************************************************************************/ +static int MenuGameSettings() +{ + int menu = MENU_NONE; + + GuiText titleTxt("Game Settings", 28, (GXColor){255, 255, 255, 255}); + titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); + titleTxt.SetPosition(50,50); + + GuiSound btnSoundOver(button_over_pcm, button_over_pcm_size, SOUND_PCM); + GuiSound btnSoundClick(button_click_pcm, button_click_pcm_size, SOUND_PCM); + GuiImageData btnOutline(button_png); + GuiImageData btnOutlineOver(button_over_png); + GuiImageData btnLargeOutline(button_large_png); + GuiImageData btnLargeOutlineOver(button_large_over_png); + GuiImageData iconMappings(icon_settings_mappings_png); + GuiImageData iconVideo(icon_settings_video_png); + GuiImageData iconController(icon_game_controllers_png); + GuiImageData iconCheats(icon_game_cheats_png); + GuiImageData btnCloseOutline(button_small_png); + GuiImageData btnCloseOutlineOver(button_small_over_png); + + GuiTrigger trigA; + if(GCSettings.WiimoteOrientation) + trigA.SetSimpleTrigger(-1, WPAD_BUTTON_2 | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A); + else + 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, 0); + + GuiText mappingBtnTxt("Button Mappings", 24, (GXColor){0, 0, 0, 255}); + mappingBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30); + GuiImage mappingBtnImg(&btnLargeOutline); + GuiImage mappingBtnImgOver(&btnLargeOutlineOver); + GuiImage mappingBtnIcon(&iconMappings); + GuiButton mappingBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); + mappingBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); + mappingBtn.SetPosition(-125, 120); + mappingBtn.SetLabel(&mappingBtnTxt); + mappingBtn.SetImage(&mappingBtnImg); + mappingBtn.SetImageOver(&mappingBtnImgOver); + mappingBtn.SetIcon(&mappingBtnIcon); + mappingBtn.SetSoundOver(&btnSoundOver); + mappingBtn.SetSoundClick(&btnSoundClick); + mappingBtn.SetTrigger(&trigA); + mappingBtn.SetEffectGrow(); + + GuiText videoBtnTxt("Video", 24, (GXColor){0, 0, 0, 255}); + videoBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30); + GuiImage videoBtnImg(&btnLargeOutline); + GuiImage videoBtnImgOver(&btnLargeOutlineOver); + GuiImage videoBtnIcon(&iconVideo); + GuiButton videoBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); + videoBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); + videoBtn.SetPosition(125, 120); + videoBtn.SetLabel(&videoBtnTxt); + videoBtn.SetImage(&videoBtnImg); + videoBtn.SetImageOver(&videoBtnImgOver); + videoBtn.SetIcon(&videoBtnIcon); + videoBtn.SetSoundOver(&btnSoundOver); + videoBtn.SetSoundClick(&btnSoundClick); + videoBtn.SetTrigger(&trigA); + videoBtn.SetEffectGrow(); + + GuiText controllerBtnTxt("Controller", 24, (GXColor){0, 0, 0, 255}); + GuiImage controllerBtnImg(&btnLargeOutline); + GuiImage controllerBtnImgOver(&btnLargeOutlineOver); + GuiImage controllerBtnIcon(&iconController); + GuiButton controllerBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); + controllerBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); + controllerBtn.SetPosition(0, 250); + controllerBtn.SetLabel(&controllerBtnTxt); + controllerBtn.SetImage(&controllerBtnImg); + controllerBtn.SetImageOver(&controllerBtnImgOver); + controllerBtn.SetIcon(&controllerBtnIcon); + controllerBtn.SetSoundOver(&btnSoundOver); + controllerBtn.SetSoundClick(&btnSoundClick); + controllerBtn.SetTrigger(&trigA); + controllerBtn.SetEffectGrow(); + + GuiText cheatsBtnTxt("Cheats", 24, (GXColor){0, 0, 0, 255}); + GuiImage cheatsBtnImg(&btnLargeOutline); + GuiImage cheatsBtnImgOver(&btnLargeOutlineOver); + GuiImage cheatsBtnIcon(&iconCheats); + GuiButton cheatsBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); + cheatsBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); + cheatsBtn.SetPosition(125, 250); + cheatsBtn.SetLabel(&cheatsBtnTxt); + cheatsBtn.SetImage(&cheatsBtnImg); + cheatsBtn.SetImageOver(&cheatsBtnImgOver); + cheatsBtn.SetIcon(&cheatsBtnIcon); + cheatsBtn.SetSoundOver(&btnSoundOver); + cheatsBtn.SetSoundClick(&btnSoundClick); + cheatsBtn.SetTrigger(&trigA); + cheatsBtn.SetEffectGrow(); + + GuiText closeBtnTxt("Close", 22, (GXColor){0, 0, 0, 255}); + GuiImage closeBtnImg(&btnCloseOutline); + GuiImage closeBtnImgOver(&btnCloseOutlineOver); + GuiButton closeBtn(btnCloseOutline.GetWidth(), btnCloseOutline.GetHeight()); + closeBtn.SetAlignment(ALIGN_RIGHT, ALIGN_TOP); + closeBtn.SetPosition(-30, 35); + closeBtn.SetLabel(&closeBtnTxt); + closeBtn.SetImage(&closeBtnImg); + closeBtn.SetImageOver(&closeBtnImgOver); + closeBtn.SetSoundOver(&btnSoundOver); + closeBtn.SetSoundClick(&btnSoundClick); + closeBtn.SetTrigger(&trigA); + closeBtn.SetTrigger(&trigHome); + closeBtn.SetEffectGrow(); + + GuiText backBtnTxt("Go Back", 24, (GXColor){0, 0, 0, 255}); + GuiImage backBtnImg(&btnOutline); + GuiImage backBtnImgOver(&btnOutlineOver); + GuiButton backBtn(btnOutline.GetWidth(), btnOutline.GetHeight()); + backBtn.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); + backBtn.SetPosition(100, -35); + backBtn.SetLabel(&backBtnTxt); + backBtn.SetImage(&backBtnImg); + backBtn.SetImageOver(&backBtnImgOver); + backBtn.SetSoundOver(&btnSoundOver); + backBtn.SetSoundClick(&btnSoundClick); + backBtn.SetTrigger(&trigA); + backBtn.SetEffectGrow(); + + HaltGui(); + GuiWindow w(screenwidth, screenheight); + w.Append(&titleTxt); + w.Append(&mappingBtn); + w.Append(&videoBtn); + w.Append(&controllerBtn); + //w.Append(&cheatsBtn); + w.Append(&closeBtn); + w.Append(&backBtn); + + mainWindow->Append(&w); + + ResumeGui(); + + while(menu == MENU_NONE) + { + VIDEO_WaitVSync(); + + if(mappingBtn.GetState() == STATE_CLICKED) + { + menu = MENU_GAMESETTINGS_MAPPINGS; + } + else if(videoBtn.GetState() == STATE_CLICKED) + { + menu = MENU_GAMESETTINGS_VIDEO; + } + else if(controllerBtn.GetState() == STATE_CLICKED) + { + ControllerWindow(); + } + /*else if(cheatsBtn.GetState() == STATE_CLICKED) + { + cheatsBtn.ResetState(); + if(Cheat.num_cheats > 0) + menu = MENU_GAMESETTINGS_CHEATS; + else + InfoPrompt("Cheats file not found!"); + }*/ + else if(closeBtn.GetState() == STATE_CLICKED) + { + menu = MENU_EXIT; + + exitSound->Play(); + bgTopImg->SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 35); + closeBtn.SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 35); + titleTxt.SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 35); + backBtn.SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35); + bgBottomImg->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35); + btnLogo->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35); + + w.SetEffect(EFFECT_FADE, -20); + + usleep(200000); // wait for effects to finish + } + else if(backBtn.GetState() == STATE_CLICKED) + { + menu = MENU_GAME; + } + } + + HaltGui(); + + mainWindow->Remove(&w); + return menu; +} + /**************************************************************************** * MenuGameCheats * @@ -1751,7 +1912,7 @@ static int MenuGameCheats() options.length = i; - GuiText titleTxt("Cheats", 28, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Game Settings - Cheats", 28, (GXColor){255, 255, 255, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,50); @@ -1785,21 +1946,6 @@ static int MenuGameCheats() backBtn.SetTrigger(&trigA); backBtn.SetEffectGrow(); - GuiText closeBtnTxt("Close", 22, (GXColor){0, 0, 0, 255}); - GuiImage closeBtnImg(&btnCloseOutline); - GuiImage closeBtnImgOver(&btnCloseOutlineOver); - GuiButton closeBtn(btnCloseOutline.GetWidth(), btnCloseOutline.GetHeight()); - closeBtn.SetAlignment(ALIGN_RIGHT, ALIGN_TOP); - closeBtn.SetPosition(-30, 35); - closeBtn.SetLabel(&closeBtnTxt); - closeBtn.SetImage(&closeBtnImg); - closeBtn.SetImageOver(&closeBtnImgOver); - closeBtn.SetSoundOver(&btnSoundOver); - closeBtn.SetSoundClick(&btnSoundClick); - closeBtn.SetTrigger(&trigA); - closeBtn.SetTrigger(&trigHome); - closeBtn.SetEffectGrow(); - GuiOptionBrowser optionBrowser(552, 248, &options); optionBrowser.SetPosition(0, 108); optionBrowser.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); @@ -1807,7 +1953,6 @@ static int MenuGameCheats() HaltGui(); GuiWindow w(screenwidth, screenheight); w.Append(&backBtn); - w.Append(&closeBtn); mainWindow->Append(&optionBrowser); mainWindow->Append(&w); mainWindow->Append(&titleTxt); @@ -1829,23 +1974,7 @@ static int MenuGameCheats() if(backBtn.GetState() == STATE_CLICKED) { - menu = MENU_GAME; - } - else if(closeBtn.GetState() == STATE_CLICKED) - { - menu = MENU_EXIT; - - exitSound->Play(); - bgTopImg->SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 35); - closeBtn.SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 35); - titleTxt.SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 35); - backBtn.SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35); - bgBottomImg->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35); - btnLogo->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35); - - w.SetEffect(EFFECT_FADE, -20); - - usleep(200000); // wait for effects to finish + menu = MENU_GAMESETTINGS; } } HaltGui(); @@ -1855,222 +1984,6 @@ static int MenuGameCheats() return menu; } */ -/**************************************************************************** - * MenuSettings - ***************************************************************************/ -static int MenuSettings() -{ - int menu = MENU_NONE; - - GuiText titleTxt("Settings", 28, (GXColor){255, 255, 255, 255}); - titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); - titleTxt.SetPosition(50,50); - - GuiSound btnSoundOver(button_over_pcm, button_over_pcm_size, SOUND_PCM); - GuiSound btnSoundClick(button_click_pcm, button_click_pcm_size, SOUND_PCM); - GuiImageData btnOutline(button_png); - GuiImageData btnOutlineOver(button_over_png); - GuiImageData btnLargeOutline(button_large_png); - GuiImageData btnLargeOutlineOver(button_large_over_png); - GuiImageData iconFile(icon_settings_file_png); - GuiImageData iconMappings(icon_settings_mappings_png); - GuiImageData iconMenu(icon_settings_menu_png); - GuiImageData iconNetwork(icon_settings_network_png); - GuiImageData iconVideo(icon_settings_video_png); - - GuiTrigger trigA; - if(GCSettings.WiimoteOrientation) - trigA.SetSimpleTrigger(-1, WPAD_BUTTON_2 | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A); - else - trigA.SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A); - - GuiText mappingBtnTxt("Button Mappings", 24, (GXColor){0, 0, 0, 255}); - mappingBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30); - GuiImage mappingBtnImg(&btnLargeOutline); - GuiImage mappingBtnImgOver(&btnLargeOutlineOver); - GuiImage mappingBtnIcon(&iconMappings); - GuiButton mappingBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); - mappingBtn.SetAlignment(ALIGN_LEFT, ALIGN_TOP); - mappingBtn.SetPosition(50, 120); - mappingBtn.SetLabel(&mappingBtnTxt); - mappingBtn.SetImage(&mappingBtnImg); - mappingBtn.SetImageOver(&mappingBtnImgOver); - mappingBtn.SetIcon(&mappingBtnIcon); - mappingBtn.SetSoundOver(&btnSoundOver); - mappingBtn.SetSoundClick(&btnSoundClick); - mappingBtn.SetTrigger(&trigA); - mappingBtn.SetEffectGrow(); - - GuiText videoBtnTxt("Video", 24, (GXColor){0, 0, 0, 255}); - videoBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30); - GuiImage videoBtnImg(&btnLargeOutline); - GuiImage videoBtnImgOver(&btnLargeOutlineOver); - GuiImage videoBtnIcon(&iconVideo); - GuiButton videoBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); - videoBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); - videoBtn.SetPosition(0, 120); - videoBtn.SetLabel(&videoBtnTxt); - videoBtn.SetImage(&videoBtnImg); - videoBtn.SetImageOver(&videoBtnImgOver); - videoBtn.SetIcon(&videoBtnIcon); - videoBtn.SetSoundOver(&btnSoundOver); - videoBtn.SetSoundClick(&btnSoundClick); - videoBtn.SetTrigger(&trigA); - videoBtn.SetEffectGrow(); - - GuiText savingBtnTxt1("Saving", 24, (GXColor){0, 0, 0, 255}); - GuiText savingBtnTxt2("&", 18, (GXColor){0, 0, 0, 255}); - GuiText savingBtnTxt3("Loading", 24, (GXColor){0, 0, 0, 255}); - savingBtnTxt1.SetPosition(0, -20); - savingBtnTxt3.SetPosition(0, +20); - GuiImage savingBtnImg(&btnLargeOutline); - GuiImage savingBtnImgOver(&btnLargeOutlineOver); - GuiImage fileBtnIcon(&iconFile); - GuiButton savingBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); - savingBtn.SetAlignment(ALIGN_RIGHT, ALIGN_TOP); - savingBtn.SetPosition(-50, 120); - savingBtn.SetLabel(&savingBtnTxt1, 0); - savingBtn.SetLabel(&savingBtnTxt2, 1); - savingBtn.SetLabel(&savingBtnTxt3, 2); - savingBtn.SetImage(&savingBtnImg); - savingBtn.SetImageOver(&savingBtnImgOver); - savingBtn.SetIcon(&fileBtnIcon); - savingBtn.SetSoundOver(&btnSoundOver); - savingBtn.SetSoundClick(&btnSoundClick); - savingBtn.SetTrigger(&trigA); - savingBtn.SetEffectGrow(); - - GuiText menuBtnTxt("Menu", 24, (GXColor){0, 0, 0, 255}); - menuBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30); - GuiImage menuBtnImg(&btnLargeOutline); - GuiImage menuBtnImgOver(&btnLargeOutlineOver); - GuiImage menuBtnIcon(&iconMenu); - GuiButton menuBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); - menuBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); - menuBtn.SetPosition(-125, 250); - menuBtn.SetLabel(&menuBtnTxt); - menuBtn.SetImage(&menuBtnImg); - menuBtn.SetImageOver(&menuBtnImgOver); - menuBtn.SetIcon(&menuBtnIcon); - menuBtn.SetSoundOver(&btnSoundOver); - menuBtn.SetSoundClick(&btnSoundClick); - menuBtn.SetTrigger(&trigA); - menuBtn.SetEffectGrow(); - - GuiText networkBtnTxt("Network", 24, (GXColor){0, 0, 0, 255}); - networkBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30); - GuiImage networkBtnImg(&btnLargeOutline); - GuiImage networkBtnImgOver(&btnLargeOutlineOver); - GuiImage networkBtnIcon(&iconNetwork); - GuiButton networkBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); - networkBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); - networkBtn.SetPosition(125, 250); - networkBtn.SetLabel(&networkBtnTxt); - networkBtn.SetImage(&networkBtnImg); - networkBtn.SetImageOver(&networkBtnImgOver); - networkBtn.SetIcon(&networkBtnIcon); - networkBtn.SetSoundOver(&btnSoundOver); - networkBtn.SetSoundClick(&btnSoundClick); - networkBtn.SetTrigger(&trigA); - networkBtn.SetEffectGrow(); - - GuiText backBtnTxt("Go Back", 24, (GXColor){0, 0, 0, 255}); - GuiImage backBtnImg(&btnOutline); - GuiImage backBtnImgOver(&btnOutlineOver); - GuiButton backBtn(btnOutline.GetWidth(), btnOutline.GetHeight()); - backBtn.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - backBtn.SetPosition(100, -35); - backBtn.SetLabel(&backBtnTxt); - backBtn.SetImage(&backBtnImg); - backBtn.SetImageOver(&backBtnImgOver); - backBtn.SetSoundOver(&btnSoundOver); - backBtn.SetSoundClick(&btnSoundClick); - backBtn.SetTrigger(&trigA); - backBtn.SetEffectGrow(); - - GuiText resetBtnTxt("Reset Settings", 24, (GXColor){0, 0, 0, 255}); - GuiImage resetBtnImg(&btnOutline); - GuiImage resetBtnImgOver(&btnOutlineOver); - GuiButton resetBtn(btnOutline.GetWidth(), btnOutline.GetHeight()); - resetBtn.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - resetBtn.SetPosition(-100, -35); - resetBtn.SetLabel(&resetBtnTxt); - resetBtn.SetImage(&resetBtnImg); - resetBtn.SetImageOver(&resetBtnImgOver); - resetBtn.SetSoundOver(&btnSoundOver); - resetBtn.SetSoundClick(&btnSoundClick); - resetBtn.SetTrigger(&trigA); - resetBtn.SetEffectGrow(); - - HaltGui(); - GuiWindow w(screenwidth, screenheight); - w.Append(&titleTxt); - w.Append(&mappingBtn); - w.Append(&videoBtn); - w.Append(&savingBtn); - w.Append(&menuBtn); - -#ifdef HW_RVL - w.Append(&networkBtn); -#endif - - w.Append(&backBtn); - w.Append(&resetBtn); - - mainWindow->Append(&w); - - ResumeGui(); - - while(menu == MENU_NONE) - { - VIDEO_WaitVSync (); - - if(mappingBtn.GetState() == STATE_CLICKED) - { - menu = MENU_SETTINGS_MAPPINGS; - } - else if(videoBtn.GetState() == STATE_CLICKED) - { - menu = MENU_SETTINGS_VIDEO; - } - else if(savingBtn.GetState() == STATE_CLICKED) - { - menu = MENU_SETTINGS_FILE; - } - else if(menuBtn.GetState() == STATE_CLICKED) - { - menu = MENU_SETTINGS_MENU; - } - else if(networkBtn.GetState() == STATE_CLICKED) - { - menu = MENU_SETTINGS_NETWORK; - } - else if(backBtn.GetState() == STATE_CLICKED) - { - menu = MENU_GAMESELECTION; - } - else if(resetBtn.GetState() == STATE_CLICKED) - { - resetBtn.ResetState(); - - int choice = WindowPrompt( - "Reset Settings", - "Are you sure that you want to reset your settings?", - "Yes", - "No"); - - if(choice == 1) - DefaultSettings(); - } - } - - if(menu == MENU_GAMESELECTION) - SavePrefs(NOTSILENT); - - HaltGui(); - mainWindow->Remove(&w); - return menu; -} /**************************************************************************** * MenuSettingsMappings @@ -2079,7 +1992,7 @@ static int MenuSettingsMappings() { int menu = MENU_NONE; - GuiText titleTxt("Settings - Button Mappings", 28, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Game Settings - Button Mappings", 28, (GXColor){255, 255, 255, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,50); @@ -2164,17 +2077,17 @@ static int MenuSettingsMappings() if(nesBtn.GetState() == STATE_CLICKED) { - menu = MENU_SETTINGS_MAPPINGS_CTRL; + menu = MENU_GAMESETTINGS_MAPPINGS_CTRL; mapMenuCtrlNES = CTRL_PAD; } else if(zapperBtn.GetState() == STATE_CLICKED) { - menu = MENU_SETTINGS_MAPPINGS_CTRL; + menu = MENU_GAMESETTINGS_MAPPINGS_CTRL; mapMenuCtrlNES = CTRL_ZAPPER; } else if(backBtn.GetState() == STATE_CLICKED) { - menu = MENU_SETTINGS; + menu = MENU_GAMESETTINGS; } } HaltGui(); @@ -2188,7 +2101,7 @@ static int MenuSettingsMappingsController() char menuTitle[100]; char menuSubtitle[100]; - sprintf(menuTitle, "Settings - Button Mappings"); + sprintf(menuTitle, "Game Settings - Button Mappings"); GuiText titleTxt(menuTitle, 28, (GXColor){255, 255, 255, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,30); @@ -2328,27 +2241,27 @@ static int MenuSettingsMappingsController() if(wiimoteBtn.GetState() == STATE_CLICKED) { - menu = MENU_SETTINGS_MAPPINGS_MAP; + menu = MENU_GAMESETTINGS_MAPPINGS_MAP; mapMenuCtrl = CTRLR_WIIMOTE; } else if(nunchukBtn.GetState() == STATE_CLICKED) { - menu = MENU_SETTINGS_MAPPINGS_MAP; + menu = MENU_GAMESETTINGS_MAPPINGS_MAP; mapMenuCtrl = CTRLR_NUNCHUK; } else if(classicBtn.GetState() == STATE_CLICKED) { - menu = MENU_SETTINGS_MAPPINGS_MAP; + menu = MENU_GAMESETTINGS_MAPPINGS_MAP; mapMenuCtrl = CTRLR_CLASSIC; } else if(gamecubeBtn.GetState() == STATE_CLICKED) { - menu = MENU_SETTINGS_MAPPINGS_MAP; + menu = MENU_GAMESETTINGS_MAPPINGS_MAP; mapMenuCtrl = CTRLR_GCPAD; } else if(backBtn.GetState() == STATE_CLICKED) { - menu = MENU_SETTINGS_MAPPINGS; + menu = MENU_GAMESETTINGS_MAPPINGS; } } HaltGui(); @@ -2489,7 +2402,7 @@ static int MenuSettingsMappingsMap() char menuTitle[100]; char menuSubtitle[100]; - sprintf(menuTitle, "Settings - Button Mappings"); + sprintf(menuTitle, "Game Settings - Button Mappings"); GuiText titleTxt(menuTitle, 28, (GXColor){255, 255, 255, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); @@ -2595,7 +2508,7 @@ static int MenuSettingsMappingsMap() if(backBtn.GetState() == STATE_CLICKED) { - menu = MENU_SETTINGS_MAPPINGS_CTRL; + menu = MENU_GAMESETTINGS_MAPPINGS_CTRL; } } HaltGui(); @@ -2828,7 +2741,7 @@ static int MenuSettingsVideo() sprintf(options.name[i++], "Screen Position"); options.length = i; - GuiText titleTxt("Settings - Video", 28, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Game Settings - Video", 28, (GXColor){255, 255, 255, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,50); @@ -2945,7 +2858,7 @@ static int MenuSettingsVideo() if(backBtn.GetState() == STATE_CLICKED) { - menu = MENU_SETTINGS; + menu = MENU_GAMESETTINGS; } } HaltGui(); @@ -2955,6 +2868,177 @@ static int MenuSettingsVideo() return menu; } +/**************************************************************************** + * MenuSettings + ***************************************************************************/ +static int MenuSettings() +{ + int menu = MENU_NONE; + + GuiText titleTxt("Settings", 28, (GXColor){255, 255, 255, 255}); + titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); + titleTxt.SetPosition(50,50); + + GuiSound btnSoundOver(button_over_pcm, button_over_pcm_size, SOUND_PCM); + GuiSound btnSoundClick(button_click_pcm, button_click_pcm_size, SOUND_PCM); + GuiImageData btnOutline(button_png); + GuiImageData btnOutlineOver(button_over_png); + GuiImageData btnLargeOutline(button_large_png); + GuiImageData btnLargeOutlineOver(button_large_over_png); + GuiImageData iconFile(icon_settings_file_png); + GuiImageData iconMenu(icon_settings_menu_png); + GuiImageData iconNetwork(icon_settings_network_png); + + GuiTrigger trigA; + if(GCSettings.WiimoteOrientation) + trigA.SetSimpleTrigger(-1, WPAD_BUTTON_2 | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A); + else + trigA.SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A); + + GuiText savingBtnTxt1("Saving", 24, (GXColor){0, 0, 0, 255}); + GuiText savingBtnTxt2("&", 18, (GXColor){0, 0, 0, 255}); + GuiText savingBtnTxt3("Loading", 24, (GXColor){0, 0, 0, 255}); + savingBtnTxt1.SetPosition(0, -20); + savingBtnTxt3.SetPosition(0, +20); + GuiImage savingBtnImg(&btnLargeOutline); + GuiImage savingBtnImgOver(&btnLargeOutlineOver); + GuiImage fileBtnIcon(&iconFile); + GuiButton savingBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); + savingBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); + savingBtn.SetPosition(-125, 120); + savingBtn.SetLabel(&savingBtnTxt1, 0); + savingBtn.SetLabel(&savingBtnTxt2, 1); + savingBtn.SetLabel(&savingBtnTxt3, 2); + savingBtn.SetImage(&savingBtnImg); + savingBtn.SetImageOver(&savingBtnImgOver); + savingBtn.SetIcon(&fileBtnIcon); + savingBtn.SetSoundOver(&btnSoundOver); + savingBtn.SetSoundClick(&btnSoundClick); + savingBtn.SetTrigger(&trigA); + savingBtn.SetEffectGrow(); + + GuiText menuBtnTxt("Menu", 24, (GXColor){0, 0, 0, 255}); + menuBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30); + GuiImage menuBtnImg(&btnLargeOutline); + GuiImage menuBtnImgOver(&btnLargeOutlineOver); + GuiImage menuBtnIcon(&iconMenu); + GuiButton menuBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); + menuBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); + menuBtn.SetPosition(125, 120); + menuBtn.SetLabel(&menuBtnTxt); + menuBtn.SetImage(&menuBtnImg); + menuBtn.SetImageOver(&menuBtnImgOver); + menuBtn.SetIcon(&menuBtnIcon); + menuBtn.SetSoundOver(&btnSoundOver); + menuBtn.SetSoundClick(&btnSoundClick); + menuBtn.SetTrigger(&trigA); + menuBtn.SetEffectGrow(); + + GuiText networkBtnTxt("Network", 24, (GXColor){0, 0, 0, 255}); + networkBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30); + GuiImage networkBtnImg(&btnLargeOutline); + GuiImage networkBtnImgOver(&btnLargeOutlineOver); + GuiImage networkBtnIcon(&iconNetwork); + GuiButton networkBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); + networkBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); + networkBtn.SetPosition(0, 250); + networkBtn.SetLabel(&networkBtnTxt); + networkBtn.SetImage(&networkBtnImg); + networkBtn.SetImageOver(&networkBtnImgOver); + networkBtn.SetIcon(&networkBtnIcon); + networkBtn.SetSoundOver(&btnSoundOver); + networkBtn.SetSoundClick(&btnSoundClick); + networkBtn.SetTrigger(&trigA); + networkBtn.SetEffectGrow(); + + GuiText backBtnTxt("Go Back", 24, (GXColor){0, 0, 0, 255}); + GuiImage backBtnImg(&btnOutline); + GuiImage backBtnImgOver(&btnOutlineOver); + GuiButton backBtn(btnOutline.GetWidth(), btnOutline.GetHeight()); + backBtn.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); + backBtn.SetPosition(100, -35); + backBtn.SetLabel(&backBtnTxt); + backBtn.SetImage(&backBtnImg); + backBtn.SetImageOver(&backBtnImgOver); + backBtn.SetSoundOver(&btnSoundOver); + backBtn.SetSoundClick(&btnSoundClick); + backBtn.SetTrigger(&trigA); + backBtn.SetEffectGrow(); + + GuiText resetBtnTxt("Reset Settings", 24, (GXColor){0, 0, 0, 255}); + GuiImage resetBtnImg(&btnOutline); + GuiImage resetBtnImgOver(&btnOutlineOver); + GuiButton resetBtn(btnOutline.GetWidth(), btnOutline.GetHeight()); + resetBtn.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); + resetBtn.SetPosition(-100, -35); + resetBtn.SetLabel(&resetBtnTxt); + resetBtn.SetImage(&resetBtnImg); + resetBtn.SetImageOver(&resetBtnImgOver); + resetBtn.SetSoundOver(&btnSoundOver); + resetBtn.SetSoundClick(&btnSoundClick); + resetBtn.SetTrigger(&trigA); + resetBtn.SetEffectGrow(); + + HaltGui(); + GuiWindow w(screenwidth, screenheight); + w.Append(&titleTxt); + w.Append(&savingBtn); + w.Append(&menuBtn); + +#ifdef HW_RVL + w.Append(&networkBtn); +#endif + + w.Append(&backBtn); + w.Append(&resetBtn); + + mainWindow->Append(&w); + + ResumeGui(); + + while(menu == MENU_NONE) + { + VIDEO_WaitVSync (); + + if(savingBtn.GetState() == STATE_CLICKED) + { + menu = MENU_SETTINGS_FILE; + } + else if(menuBtn.GetState() == STATE_CLICKED) + { + menu = MENU_SETTINGS_MENU; + } + else if(networkBtn.GetState() == STATE_CLICKED) + { + menu = MENU_SETTINGS_NETWORK; + } + else if(backBtn.GetState() == STATE_CLICKED) + { + menu = MENU_GAMESELECTION; + } + else if(resetBtn.GetState() == STATE_CLICKED) + { + resetBtn.ResetState(); + + int choice = WindowPrompt( + "Reset Settings", + "Are you sure that you want to reset your settings?", + "Yes", + "No"); + + if(choice == 1) + DefaultSettings(); + } + } + + if(menu == MENU_GAMESELECTION) + SavePrefs(NOTSILENT); + + HaltGui(); + mainWindow->Remove(&w); + return menu; +} + /**************************************************************************** * MenuSettingsFile ***************************************************************************/ @@ -3476,24 +3560,27 @@ MainMenu (int menu) case MENU_GAME_SAVE: currentMenu = MenuGameSaves(1); break; - /*case MENU_GAME_CHEATS: + case MENU_GAMESETTINGS: + currentMenu = MenuGameSettings(); + break; + case MENU_GAMESETTINGS_MAPPINGS: + currentMenu = MenuSettingsMappings(); + break; + case MENU_GAMESETTINGS_MAPPINGS_CTRL: + currentMenu = MenuSettingsMappingsController(); + break; + case MENU_GAMESETTINGS_MAPPINGS_MAP: + currentMenu = MenuSettingsMappingsMap(); + break; + case MENU_GAMESETTINGS_VIDEO: + currentMenu = MenuSettingsVideo(); + break; + /*case MENU_GAMESETTINGS_CHEATS: currentMenu = MenuGameCheats(); break;*/ case MENU_SETTINGS: currentMenu = MenuSettings(); break; - case MENU_SETTINGS_MAPPINGS: - currentMenu = MenuSettingsMappings(); - break; - case MENU_SETTINGS_MAPPINGS_CTRL: - currentMenu = MenuSettingsMappingsController(); - break; - case MENU_SETTINGS_MAPPINGS_MAP: - currentMenu = MenuSettingsMappingsMap(); - break; - case MENU_SETTINGS_VIDEO: - currentMenu = MenuSettingsVideo(); - break; case MENU_SETTINGS_FILE: currentMenu = MenuSettingsFile(); break; diff --git a/source/ngc/menu.h b/source/ngc/menu.h index 3f6bb43..82f8fa1 100644 --- a/source/ngc/menu.h +++ b/source/ngc/menu.h @@ -28,10 +28,6 @@ enum MENU_EXIT = -1, MENU_NONE, MENU_SETTINGS, - MENU_SETTINGS_MAPPINGS, - MENU_SETTINGS_MAPPINGS_CTRL, - MENU_SETTINGS_MAPPINGS_MAP, - MENU_SETTINGS_VIDEO, MENU_SETTINGS_FILE, MENU_SETTINGS_MENU, MENU_SETTINGS_NETWORK, @@ -39,7 +35,12 @@ enum MENU_GAME, MENU_GAME_SAVE, MENU_GAME_LOAD, - MENU_GAME_CHEATS + MENU_GAMESETTINGS, + MENU_GAMESETTINGS_MAPPINGS, + MENU_GAMESETTINGS_MAPPINGS_CTRL, + MENU_GAMESETTINGS_MAPPINGS_MAP, + MENU_GAMESETTINGS_VIDEO, + MENU_GAMESETTINGS_CHEATS }; #endif diff --git a/update.xml b/update.xml index b88d95a..95db49c 100644 --- a/update.xml +++ b/update.xml @@ -1,4 +1,4 @@ - - + +