mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-22 11:19:17 +01:00
*several code optimizations
*added saving of game browser position (on all modes) *several cleanups and small fixes *added a "Block Category Menu" setting *fixed bug with parental block and game settings (thanks NJ7 for finding it) *fixed "All" not being translated in category menu
This commit is contained in:
parent
a3495651f0
commit
0f4eb6b209
@ -2,8 +2,8 @@
|
|||||||
<app version="1">
|
<app version="1">
|
||||||
<name> USB Loader GX</name>
|
<name> USB Loader GX</name>
|
||||||
<coder>USB Loader GX Team</coder>
|
<coder>USB Loader GX Team</coder>
|
||||||
<version>2.1 r1093</version>
|
<version>2.1 r1094</version>
|
||||||
<release_date>201106221731</release_date>
|
<release_date>201106221757</release_date>
|
||||||
<no_ios_reload/>
|
<no_ios_reload/>
|
||||||
<short_description>Loads games from USB-devices</short_description>
|
<short_description>Loads games from USB-devices</short_description>
|
||||||
<long_description>USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times.
|
<long_description>USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times.
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n"
|
"Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n"
|
||||||
"Language-Team: r1056 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n"
|
"Language-Team: r1056 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Hudba na pozadí"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Velké díky pro:"
|
msgstr "Velké díky pro:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: Fox888[dk]\n"
|
"Last-Translator: Fox888[dk]\n"
|
||||||
"Language-Team: [dk]\n"
|
"Language-Team: [dk]\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Baggrundsmusik"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "En stor tak til:"
|
msgstr "En stor tak til:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2011-06-20 07:25+0100\n"
|
"PO-Revision-Date: 2011-06-20 07:25+0100\n"
|
||||||
"Last-Translator: glowy\n"
|
"Last-Translator: glowy\n"
|
||||||
"Language-Team: tj_cool, glowy\n"
|
"Language-Team: tj_cool, glowy\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Achtergrondmuziek"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Grote dank aan:"
|
msgstr "Grote dank aan:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr "Blokkeer categorieën wijzigen"
|
msgstr "Blokkeer categorieën wijzigen"
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -198,6 +198,9 @@ msgstr ""
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: c64rmx\n"
|
"Last-Translator: c64rmx\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Taustamusiikki"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Isot kiitokset:"
|
msgstr "Isot kiitokset:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: Kin8\n"
|
"Last-Translator: Kin8\n"
|
||||||
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
|
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Fond sonore"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Grand merci à:"
|
msgstr "Grand merci à:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr "Bloquer modif. catégories"
|
msgstr "Bloquer modif. catégories"
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2010-07-03 17:35-0800\n"
|
"PO-Revision-Date: 2010-07-03 17:35-0800\n"
|
||||||
"Last-Translator: TheRealVisitor\n"
|
"Last-Translator: TheRealVisitor\n"
|
||||||
"Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n"
|
"Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Hintergrundmusik"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Großen Dank an:"
|
msgstr "Großen Dank an:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr "Sperre Kategorieänderung"
|
msgstr "Sperre Kategorieänderung"
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-12-29 11:05+0100\n"
|
"PO-Revision-Date: 2009-12-29 11:05+0100\n"
|
||||||
"Last-Translator: Springdale\n"
|
"Last-Translator: Springdale\n"
|
||||||
"Language-Team: Tusk, Springdale\n"
|
"Language-Team: Tusk, Springdale\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Háttérzene"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Köszönet:"
|
msgstr "Köszönet:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2011-03-10 21:00+0200\n"
|
"PO-Revision-Date: 2011-03-10 21:00+0200\n"
|
||||||
"Last-Translator: Cambo \n"
|
"Last-Translator: Cambo \n"
|
||||||
"Language-Team: Cambo\n"
|
"Language-Team: Cambo\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Musica Sottofondo"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Grazie mille a:"
|
msgstr "Grazie mille a:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: hosigumayuugi\n"
|
"Last-Translator: hosigumayuugi\n"
|
||||||
"Language-Team: hosigumayuugi, papa, ichiroling\n"
|
"Language-Team: hosigumayuugi, papa, ichiroling\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "BGM"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "協力:"
|
msgstr "協力:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr "カテゴリの編集を制限"
|
msgstr "カテゴリの編集を制限"
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: nextos@korea.com\n"
|
"Last-Translator: nextos@korea.com\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -198,6 +198,9 @@ msgstr "배경음악"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "감사 :"
|
msgstr "감사 :"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: raschi\n"
|
"Last-Translator: raschi\n"
|
||||||
"Language-Team: raschi\n"
|
"Language-Team: raschi\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Bakgrunnsmusikk"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Stor takk til:"
|
msgstr "Stor takk til:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
|
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Muzyka w tle"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Podziekowania dla"
|
msgstr "Podziekowania dla"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-23 18:52+0200\n"
|
"PO-Revision-Date: 2009-10-23 18:52+0200\n"
|
||||||
"Last-Translator: aniemotion\n"
|
"Last-Translator: aniemotion\n"
|
||||||
"Language-Team: boto12, aniemotion\n"
|
"Language-Team: boto12, aniemotion\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Música de fundo"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Agradecimentos:"
|
msgstr "Agradecimentos:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2011-06-14 00:00-0000\n"
|
"PO-Revision-Date: 2011-06-14 00:00-0000\n"
|
||||||
"Last-Translator: pplucky <pplucky@gmail.com>\n"
|
"Last-Translator: pplucky <pplucky@gmail.com>\n"
|
||||||
"Language-Team: Sky8000, pplucky\n"
|
"Language-Team: Sky8000, pplucky\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Música de fundo"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Agradecimentos:"
|
msgstr "Agradecimentos:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr "Bloquear Modif. Categorias"
|
msgstr "Bloquear Modif. Categorias"
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: nikolai_ca\n"
|
"Last-Translator: nikolai_ca\n"
|
||||||
"Language-Team: Kir, alendit, nikolai_ca\n"
|
"Language-Team: Kir, alendit, nikolai_ca\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Фоновая музыка"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Большое спасибо:"
|
msgstr "Большое спасибо:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: knife.hu kavid emul8ion\n"
|
"Last-Translator: knife.hu kavid emul8ion\n"
|
||||||
"Language-Team: kavid\n"
|
"Language-Team: kavid\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "背景音乐"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "非常感谢:"
|
msgstr "非常感谢:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: SirPalax\n"
|
"Last-Translator: SirPalax\n"
|
||||||
"Language-Team: Penn, SirPalax\n"
|
"Language-Team: Penn, SirPalax\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Música de fondo"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Gracias a:"
|
msgstr "Gracias a:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2010-01-19 17:39+0200\n"
|
"PO-Revision-Date: 2010-01-19 17:39+0200\n"
|
||||||
"Last-Translator: Katsurou\n"
|
"Last-Translator: Katsurou\n"
|
||||||
"Language-Team: Katsurou, pirateX\n"
|
"Language-Team: Katsurou, pirateX\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Bakgrundsmusik"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Stort tack till:"
|
msgstr "Stort tack till:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2010-02-15 21:00+0800\n"
|
"PO-Revision-Date: 2010-02-15 21:00+0800\n"
|
||||||
"Last-Translator: Jane.H\n"
|
"Last-Translator: Jane.H\n"
|
||||||
"Language-Team: kyogc, Miller, Mika Li, Jane.H\n"
|
"Language-Team: kyogc, Miller, Mika Li, Jane.H\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "背景音樂"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "非常感謝:"
|
msgstr "非常感謝:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: Nitro_subzero \n"
|
"Last-Translator: Nitro_subzero \n"
|
||||||
"Language-Team: Nitro_subzero\n"
|
"Language-Team: Nitro_subzero\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "ดนตรีเบื้องหลัง"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "ขอขอบคุณ:"
|
msgstr "ขอขอบคุณ:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-22 19:31+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"Last-Translator: omercigingelini\n"
|
"Last-Translator: omercigingelini\n"
|
||||||
"Language-Team: omercigingelini\n"
|
"Language-Team: omercigingelini\n"
|
||||||
@ -198,6 +198,9 @@ msgstr "Arkaplan müziği"
|
|||||||
msgid "Big thanks to:"
|
msgid "Big thanks to:"
|
||||||
msgstr "Teşekkürler:"
|
msgstr "Teşekkürler:"
|
||||||
|
|
||||||
|
msgid "Block Categories Menu"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Block Categories Modify"
|
msgid "Block Categories Modify"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: USB Loader GX\n"
|
"Project-Id-Version: USB Loader GX\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-06-14 20:50+0200\n"
|
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
|
||||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
@ -34,27 +34,6 @@ msgstr ""
|
|||||||
msgid "r=0 g=0 b=0 a=255 - checkbox browser text color"
|
msgid "r=0 g=0 b=0 a=255 - checkbox browser text color"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "9 - game list browser page size"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "right - game browser scrollbar align hor"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "top - game browser scrollbar align ver"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "0 - game browser scrollbar pos x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "5 - game browser scrollbar pos y"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "r=0 g=0 b=0 a=255 - game browser list text color"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "r=0 g=0 b=0 a=255 - game browser list text color over"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "left - carousel layout left arrow align hor"
|
msgid "left - carousel layout left arrow align hor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -91,6 +70,27 @@ msgstr ""
|
|||||||
msgid "255 - tooltip alpha"
|
msgid "255 - tooltip alpha"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "9 - game list browser page size"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "right - game browser scrollbar align hor"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "top - game browser scrollbar align ver"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "0 - game browser scrollbar pos x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "5 - game browser scrollbar pos y"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "r=0 g=0 b=0 a=255 - game browser list text color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "r=0 g=0 b=0 a=255 - game browser list text color over"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "right - options browser scrollbar align hor"
|
msgid "right - options browser scrollbar align hor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ class BoxCover : public GuiImage
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BoxCover(GuiImageData * img, bool flat = false);
|
BoxCover(GuiImageData * img, bool flat = false);
|
||||||
~BoxCover();
|
virtual ~BoxCover();
|
||||||
//! Colors:
|
//! Colors:
|
||||||
//! Gray Box (Default): r:233 g:233 b:233
|
//! Gray Box (Default): r:233 g:233 b:233
|
||||||
//! Red Box (NSMB): r:198 g:34 b:4
|
//! Red Box (NSMB): r:198 g:34 b:4
|
||||||
|
@ -360,23 +360,6 @@ extern "C" int CopyFile(const char * src, const char * dest)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* ClearList
|
|
||||||
*
|
|
||||||
* Clearing a vector list
|
|
||||||
****************************************************************************/
|
|
||||||
static inline void ClearList(std::vector<char *> &List)
|
|
||||||
{
|
|
||||||
for(u32 i = 0; i < List.size(); ++i)
|
|
||||||
{
|
|
||||||
if(List[i])
|
|
||||||
free(List[i]);
|
|
||||||
List[i] = NULL;
|
|
||||||
}
|
|
||||||
List.clear();
|
|
||||||
std::vector<char *>().swap(List);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* MoveFile
|
* MoveFile
|
||||||
*
|
*
|
||||||
|
@ -20,7 +20,7 @@ class Text: public GuiText
|
|||||||
//!\param c Font color
|
//!\param c Font color
|
||||||
Text(const char * t, int s, GXColor c);
|
Text(const char * t, int s, GXColor c);
|
||||||
Text(const wchar_t * t, int s, GXColor c);
|
Text(const wchar_t * t, int s, GXColor c);
|
||||||
~Text();
|
virtual ~Text();
|
||||||
//!Sets the text of the GuiText element
|
//!Sets the text of the GuiText element
|
||||||
//!\param t Text
|
//!\param t Text
|
||||||
void SetText(const char * t);
|
void SetText(const char * t);
|
||||||
|
@ -126,7 +126,7 @@ class GuiTrigger
|
|||||||
//!Constructor
|
//!Constructor
|
||||||
GuiTrigger();
|
GuiTrigger();
|
||||||
//!Destructor
|
//!Destructor
|
||||||
~GuiTrigger();
|
virtual ~GuiTrigger();
|
||||||
//!Sets a simple trigger. Requires: element is selected, and trigger button is pressed
|
//!Sets a simple trigger. Requires: element is selected, and trigger button is pressed
|
||||||
//!\param ch Controller channel number
|
//!\param ch Controller channel number
|
||||||
//!\param wiibtns Wii controller trigger button(s) - classic controller buttons are considered separately
|
//!\param wiibtns Wii controller trigger button(s) - classic controller buttons are considered separately
|
||||||
@ -180,7 +180,7 @@ class GuiElement
|
|||||||
//!Constructor
|
//!Constructor
|
||||||
GuiElement();
|
GuiElement();
|
||||||
//!Destructor
|
//!Destructor
|
||||||
~GuiElement();
|
virtual ~GuiElement();
|
||||||
//!Set the element's parent
|
//!Set the element's parent
|
||||||
//!\param e Pointer to parent element
|
//!\param e Pointer to parent element
|
||||||
void SetParent(GuiElement * e);
|
void SetParent(GuiElement * e);
|
||||||
@ -451,7 +451,7 @@ class GuiWindow: public GuiElement
|
|||||||
//!\param h Height of window
|
//!\param h Height of window
|
||||||
GuiWindow(int w, int h);
|
GuiWindow(int w, int h);
|
||||||
//!Destructor
|
//!Destructor
|
||||||
~GuiWindow();
|
virtual ~GuiWindow();
|
||||||
//!Appends a GuiElement to the GuiWindow
|
//!Appends a GuiElement to the GuiWindow
|
||||||
//!\param e The GuiElement to append. If it is already in the GuiWindow, it is removed first
|
//!\param e The GuiElement to append. If it is already in the GuiWindow, it is removed first
|
||||||
void Append(GuiElement* e);
|
void Append(GuiElement* e);
|
||||||
@ -544,7 +544,7 @@ class GuiImage: public GuiElement
|
|||||||
//! = operator for copying images
|
//! = operator for copying images
|
||||||
GuiImage &operator=(GuiImage &srcimage);
|
GuiImage &operator=(GuiImage &srcimage);
|
||||||
//!Destructor
|
//!Destructor
|
||||||
~GuiImage();
|
virtual ~GuiImage();
|
||||||
//!Sets the image rotation angle for drawing
|
//!Sets the image rotation angle for drawing
|
||||||
//!\param a Angle (in degrees)
|
//!\param a Angle (in degrees)
|
||||||
void SetAngle(float a);
|
void SetAngle(float a);
|
||||||
@ -638,7 +638,7 @@ class GuiText: public GuiElement
|
|||||||
//!\param t Text
|
//!\param t Text
|
||||||
GuiText(const char * t);
|
GuiText(const char * t);
|
||||||
//!Destructor
|
//!Destructor
|
||||||
~GuiText();
|
virtual ~GuiText();
|
||||||
//!Sets the text of the GuiText element
|
//!Sets the text of the GuiText element
|
||||||
//!\param t Text
|
//!\param t Text
|
||||||
virtual void SetText(const char * t);
|
virtual void SetText(const char * t);
|
||||||
@ -740,7 +740,7 @@ class GuiTooltip: public GuiElement
|
|||||||
GuiTooltip(const char *t, int Alpha = 255);
|
GuiTooltip(const char *t, int Alpha = 255);
|
||||||
|
|
||||||
//!Destructor
|
//!Destructor
|
||||||
~ GuiTooltip();
|
virtual ~GuiTooltip();
|
||||||
|
|
||||||
//!Gets the element's current scale
|
//!Gets the element's current scale
|
||||||
//!Considers scale, scaleDyn, and the parent element's GetScale() value
|
//!Considers scale, scaleDyn, and the parent element's GetScale() value
|
||||||
@ -790,7 +790,7 @@ class GuiButton: public GuiElement
|
|||||||
GuiSound* sndOver, GuiSound* sndClick, u8 grow, GuiTooltip* tt, int ttx, int tty, int h_align,
|
GuiSound* sndOver, GuiSound* sndClick, u8 grow, GuiTooltip* tt, int ttx, int tty, int h_align,
|
||||||
int v_align);
|
int v_align);
|
||||||
//!Destructor
|
//!Destructor
|
||||||
~GuiButton();
|
virtual ~GuiButton();
|
||||||
//!Sets the button's image
|
//!Sets the button's image
|
||||||
//!\param i Pointer to GuiImage object
|
//!\param i Pointer to GuiImage object
|
||||||
void SetImage(GuiImage* i);
|
void SetImage(GuiImage* i);
|
||||||
@ -894,7 +894,7 @@ class GuiKeyboard: public GuiWindow
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GuiKeyboard(char * t, u32 m, int min, int lang);
|
GuiKeyboard(char * t, u32 m, int min, int lang);
|
||||||
~GuiKeyboard();
|
virtual ~GuiKeyboard();
|
||||||
void Update(GuiTrigger * t);
|
void Update(GuiTrigger * t);
|
||||||
char kbtextstr[256];
|
char kbtextstr[256];
|
||||||
protected:
|
protected:
|
||||||
@ -951,7 +951,7 @@ class GuiNumpad: public GuiWindow
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GuiNumpad(char * t, u32 max);
|
GuiNumpad(char * t, u32 max);
|
||||||
~GuiNumpad();
|
virtual ~GuiNumpad();
|
||||||
void Update(GuiTrigger * t);
|
void Update(GuiTrigger * t);
|
||||||
char kbtextstr[256];
|
char kbtextstr[256];
|
||||||
protected:
|
protected:
|
||||||
|
@ -35,7 +35,7 @@ class GuiCheckboxBrowser : public GuiElement, public sigslot::has_slots<>
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GuiCheckboxBrowser(int w, int h, int maxSize = 7);
|
GuiCheckboxBrowser(int w, int h, int maxSize = 7);
|
||||||
~GuiCheckboxBrowser();
|
virtual ~GuiCheckboxBrowser();
|
||||||
bool AddEntrie(const string &text, bool checked = false);
|
bool AddEntrie(const string &text, bool checked = false);
|
||||||
int GetSelected() const { return pageIndex+selectedItem; };
|
int GetSelected() const { return pageIndex+selectedItem; };
|
||||||
void SetImage(GuiImage *Img);
|
void SetImage(GuiImage *Img);
|
||||||
|
@ -68,15 +68,13 @@ void GuiDiskCover::SetState(int s, int c)
|
|||||||
|
|
||||||
void Menu_DrawDiskCover(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 distance, u8 data[], f32 deg_alpha,
|
void Menu_DrawDiskCover(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 distance, u8 data[], f32 deg_alpha,
|
||||||
f32 deg_beta, f32 scaleX, f32 scaleY, u8 alpha, bool shadow);
|
f32 deg_beta, f32 scaleX, f32 scaleY, u8 alpha, bool shadow);
|
||||||
void Menu_DrawDiskCoverShadow(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 distance, u8 data[],
|
|
||||||
f32 deg_alpha, f32 deg_beta, f32 scaleX, f32 scaleY, u8 alpha, bool shadow);
|
|
||||||
|
|
||||||
void GuiDiskCover::Draw()
|
void GuiDiskCover::Draw()
|
||||||
{
|
{
|
||||||
LOCK( this );
|
LOCK( this );
|
||||||
if (!image || !this->IsVisible()) return;
|
if (!image || !this->IsVisible()) return;
|
||||||
float currScale = this->GetScale();
|
float currScale = this->GetScale();
|
||||||
|
|
||||||
Menu_DrawDiskCover(this->GetLeft(), this->GetTop(), PosZ, width, height, Distance, image, imageangle, deg_beta,
|
Menu_DrawDiskCover(this->GetLeft(), this->GetTop(), PosZ, width, height, Distance, image, imageangle, deg_beta,
|
||||||
widescreen ? currScale * Settings.WSFactor : currScale, currScale, 64, true);
|
widescreen ? currScale * Settings.WSFactor : currScale, currScale, 64, true);
|
||||||
Menu_DrawDiskCover(this->GetLeft(), this->GetTop(), PosZ, width, height, Distance, image, imageangle, deg_beta,
|
Menu_DrawDiskCover(this->GetLeft(), this->GetTop(), PosZ, width, height, Distance, image, imageangle, deg_beta,
|
||||||
|
@ -8,7 +8,7 @@ class GuiDiskCover: public GuiImage
|
|||||||
public:
|
public:
|
||||||
GuiDiskCover();
|
GuiDiskCover();
|
||||||
GuiDiskCover(GuiImageData * img);
|
GuiDiskCover(GuiImageData * img);
|
||||||
~GuiDiskCover();
|
virtual ~GuiDiskCover();
|
||||||
void SetBeta(f32 beta);
|
void SetBeta(f32 beta);
|
||||||
void SetBetaRotateEffect(f32 beta, u16 Step);
|
void SetBetaRotateEffect(f32 beta, u16 Step);
|
||||||
bool GetBetaRotateEffect();
|
bool GetBetaRotateEffect();
|
||||||
|
@ -471,7 +471,7 @@ void GuiElement::SetEffect(int eff, int speed, f32 circles, int r, f32 startdegr
|
|||||||
xoffsetDyn = 0; //!position of circle in x
|
xoffsetDyn = 0; //!position of circle in x
|
||||||
yoffsetDyn = 0; //!position of circle in y
|
yoffsetDyn = 0; //!position of circle in y
|
||||||
Radius = r; //!radius of the circle
|
Radius = r; //!radius of the circle
|
||||||
degree = startdegree; //!for example -90 (°) to start at top of circle
|
degree = startdegree; //!for example -90 (<EFBFBD>) to start at top of circle
|
||||||
circleamount = circles; //!circleamoutn in degrees for example 360 for 1 circle
|
circleamount = circles; //!circleamoutn in degrees for example 360 for 1 circle
|
||||||
angleDyn = 0.0f; //!this is used by the code to calc the angle
|
angleDyn = 0.0f; //!this is used by the code to calc the angle
|
||||||
anglespeed = anglespeedset; //!This is anglespeed depending on circle speed 1 is same speed and 0.5 half speed
|
anglespeed = anglespeedset; //!This is anglespeed depending on circle speed 1 is same speed and 0.5 half speed
|
||||||
@ -497,11 +497,11 @@ void GuiElement::SetEffect(int eff, int amount, int target)
|
|||||||
else if (eff & EFFECT_SLIDE_RIGHT) xoffsetDyn = screenwidth;
|
else if (eff & EFFECT_SLIDE_RIGHT) xoffsetDyn = screenwidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eff & EFFECT_FADE && amount > 0)
|
if ((eff & EFFECT_FADE) && amount > 0)
|
||||||
{
|
{
|
||||||
alphaDyn = 0;
|
alphaDyn = 0;
|
||||||
}
|
}
|
||||||
else if (eff & EFFECT_FADE && amount < 0)
|
else if ((eff & EFFECT_FADE) && amount < 0)
|
||||||
{
|
{
|
||||||
alphaDyn = alpha;
|
alphaDyn = alpha;
|
||||||
|
|
||||||
@ -814,7 +814,7 @@ void GuiElement::UnlockElement()
|
|||||||
// LWP_MutexUnlock(mutex);
|
// LWP_MutexUnlock(mutex);
|
||||||
LWP_MutexLock(_lock_mutex);
|
LWP_MutexLock(_lock_mutex);
|
||||||
// only the thread was locked this element, can call unlock
|
// only the thread was locked this element, can call unlock
|
||||||
if (_lock_thread == LWP_GetSelf()) // but we check it here – safe is safe
|
if (_lock_thread == LWP_GetSelf()) // but we check it here <EFBFBD> safe is safe
|
||||||
{
|
{
|
||||||
if (--_lock_count == 0) // dec count of locks and check if it last lock;
|
if (--_lock_count == 0) // dec count of locks and check if it last lock;
|
||||||
{
|
{
|
||||||
|
@ -9,7 +9,7 @@ class GuiFileBrowser: public GuiElement, public sigslot::has_slots<>
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GuiFileBrowser(int w, int h);
|
GuiFileBrowser(int w, int h);
|
||||||
~GuiFileBrowser();
|
virtual ~GuiFileBrowser();
|
||||||
void DisableTriggerUpdate(bool set);
|
void DisableTriggerUpdate(bool set);
|
||||||
void ResetState();
|
void ResetState();
|
||||||
void SetFocus(int f);
|
void SetFocus(int f);
|
||||||
|
@ -1,47 +1,41 @@
|
|||||||
#ifndef _GUIGAMEBROWSER_H_
|
/****************************************************************************
|
||||||
#define _GUIGAMEBROWSER_H_
|
* Copyright (C) 2011
|
||||||
|
* by Dimok
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any
|
||||||
|
* damages arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any
|
||||||
|
* purpose, including commercial applications, and to alter it and
|
||||||
|
* redistribute it freely, subject to the following restrictions:
|
||||||
|
*
|
||||||
|
* 1. The origin of this software must not be misrepresented; you
|
||||||
|
* must not claim that you wrote the original software. If you use
|
||||||
|
* this software in a product, an acknowledgment in the product
|
||||||
|
* documentation would be appreciated but is not required.
|
||||||
|
*
|
||||||
|
* 2. Altered source versions must be plainly marked as such, and
|
||||||
|
* must not be misrepresented as being the original software.
|
||||||
|
*
|
||||||
|
* 3. This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
***************************************************************************/
|
||||||
|
#ifndef GUIGAMEBROWSER_H_
|
||||||
|
#define GUIGAMEBROWSER_H_
|
||||||
|
|
||||||
#include "gui.h"
|
#include "gui.h"
|
||||||
#include "gui_scrollbar.hpp"
|
|
||||||
#include "usbloader/disc.h"
|
|
||||||
|
|
||||||
class GuiGameBrowser: public GuiElement, public sigslot::has_slots<>
|
class GuiGameBrowser : public GuiElement
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GuiGameBrowser(int w, int h, int selectedGame = 0);
|
GuiGameBrowser() {};
|
||||||
~GuiGameBrowser();
|
virtual ~GuiGameBrowser() {};
|
||||||
int FindMenuItem(int c, int d);
|
virtual int GetClickedOption() { return 0; };
|
||||||
int GetClickedOption();
|
virtual int GetSelectedOption() { return 0; };
|
||||||
int GetSelectedOption() { return listOffset+selectedItem; }
|
virtual void SetSelectedOption(int ind) {};
|
||||||
void ResetState();
|
virtual void setListOffset(int off) {}
|
||||||
void SetFocus(int f);
|
virtual int getListOffset() const { return 0; }
|
||||||
void Draw();
|
|
||||||
void Update(GuiTrigger * t);
|
|
||||||
int GetOffset();
|
|
||||||
protected:
|
|
||||||
void onListChange(int SelItem, int SelInd);
|
|
||||||
void UpdateListEntries();
|
|
||||||
int selectedItem;
|
|
||||||
int listOffset;
|
|
||||||
int scrollbaron;
|
|
||||||
int pagesize;
|
|
||||||
int maxTextWidth;
|
|
||||||
|
|
||||||
int * gameIndex;
|
|
||||||
GuiButton ** game;
|
|
||||||
GuiText ** gameTxt;
|
|
||||||
GuiText ** gameTxtOver;
|
|
||||||
GuiImage ** gameBg;
|
|
||||||
GuiImage ** newImg;
|
|
||||||
|
|
||||||
GuiImage * bgGameImg;
|
|
||||||
|
|
||||||
GuiImageData * bgGames;
|
|
||||||
GuiImageData * bgGamesEntry;
|
|
||||||
GuiImageData * newGames;
|
|
||||||
|
|
||||||
GuiTrigger * trigA;
|
|
||||||
|
|
||||||
GuiScrollbar scrollBar;
|
|
||||||
};
|
};
|
||||||
#endif
|
|
||||||
|
#endif /* GUIGAMEBROWSER_H_ */
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include "settings/CSettings.h"
|
#include "settings/CSettings.h"
|
||||||
#include "GUI/LoadCoverImage.h"
|
#include "GUI/LoadCoverImage.h"
|
||||||
#include "themes/CTheme.h"
|
#include "themes/CTheme.h"
|
||||||
|
#include "utils/tools.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -46,13 +47,13 @@ static GuiImageData *GameCarouselLoadCoverImage(void * Arg)
|
|||||||
/**
|
/**
|
||||||
* Constructor for the GuiGameCarousel class.
|
* Constructor for the GuiGameCarousel class.
|
||||||
*/
|
*/
|
||||||
GuiGameCarousel::GuiGameCarousel(int w, int h, const char *themePath, int selectedGame) :
|
GuiGameCarousel::GuiGameCarousel(int w, int h, const char *themePath, int offset) :
|
||||||
noCover(Resources::GetFile("nocover.png"), Resources::GetFileSize("nocover.png"))
|
noCover(Resources::GetFile("nocover.png"), Resources::GetFileSize("nocover.png"))
|
||||||
{
|
{
|
||||||
width = w;
|
width = w;
|
||||||
height = h;
|
height = h;
|
||||||
pagesize = (gameList.size() < 11) ? gameList.size() : 11;
|
pagesize = (gameList.size() < 11) ? gameList.size() : 11;
|
||||||
listOffset = (gameList.size() < 11) ? 0 : gameList.size()-2;
|
listOffset = (gameList.size() < 11) ? MIN(offset, gameList.size()-1) : MIN(offset, gameList.size())-2;
|
||||||
selectable = true;
|
selectable = true;
|
||||||
selectedItem = -1;
|
selectedItem = -1;
|
||||||
focus = 1; // allow focus
|
focus = 1; // allow focus
|
||||||
@ -110,37 +111,7 @@ GuiGameCarousel::GuiGameCarousel(int w, int h, const char *themePath, int select
|
|||||||
game.resize(pagesize);
|
game.resize(pagesize);
|
||||||
coverImg.resize(pagesize);
|
coverImg.resize(pagesize);
|
||||||
|
|
||||||
for (int i = 0; i < pagesize; i++)
|
Refresh();
|
||||||
{
|
|
||||||
//------------------------
|
|
||||||
// Index
|
|
||||||
//------------------------
|
|
||||||
gameIndex[i] = GetGameIndex( i, listOffset, gameList.size() );
|
|
||||||
|
|
||||||
//------------------------
|
|
||||||
// Image
|
|
||||||
//------------------------
|
|
||||||
coverImg[i] = new (std::nothrow) GuiImageAsync(GameCarouselLoadCoverImage, gameList[gameIndex[i]],
|
|
||||||
sizeof(struct discHdr), &noCover);
|
|
||||||
if (coverImg[i]) coverImg[i]->SetWidescreen(Settings.widescreen);
|
|
||||||
|
|
||||||
//------------------------
|
|
||||||
// GameButton
|
|
||||||
//------------------------
|
|
||||||
|
|
||||||
game[i] = new GuiButton(122, 244);
|
|
||||||
game[i]->SetParent(this);
|
|
||||||
game[i]->SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE);
|
|
||||||
game[i]->SetPosition(0, 740);
|
|
||||||
game[i]->SetImage(coverImg[i]);
|
|
||||||
game[i]->SetScale(SCALE);
|
|
||||||
game[i]->SetRumble(false);
|
|
||||||
game[i]->SetTrigger(trigA);
|
|
||||||
game[i]->SetSoundClick(btnSoundClick);
|
|
||||||
game[i]->SetClickable(true);
|
|
||||||
game[i]->SetEffect(EFFECT_GOROUND, IN_SPEED, 90 - (pagesize - 2 * i - 1) * DEG_OFFSET / 2, RADIUS, 180, 1, 0,
|
|
||||||
RADIUS);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -173,6 +144,65 @@ GuiGameCarousel::~GuiGameCarousel()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GuiGameCarousel::setListOffset(int off)
|
||||||
|
{
|
||||||
|
LOCK( this );
|
||||||
|
if(gameList.size() < 11)
|
||||||
|
listOffset = MIN(off, gameList.size()-1);
|
||||||
|
else
|
||||||
|
listOffset = MIN(off, gameList.size()) - 2;
|
||||||
|
|
||||||
|
Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
int GuiGameCarousel::getListOffset() const
|
||||||
|
{
|
||||||
|
if(gameList.size() < 11)
|
||||||
|
return listOffset;
|
||||||
|
else
|
||||||
|
return (listOffset + 2) % gameList.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuiGameCarousel::SetSelectedOption(int ind)
|
||||||
|
{
|
||||||
|
LOCK(this);
|
||||||
|
selectedItem = LIMIT(ind, 0, MIN(pagesize, MAX(0, gameList.size()-1)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuiGameCarousel::Refresh()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < pagesize; i++)
|
||||||
|
{
|
||||||
|
//------------------------
|
||||||
|
// Index
|
||||||
|
//------------------------
|
||||||
|
gameIndex[i] = GetGameIndex( i, listOffset, gameList.size() );
|
||||||
|
|
||||||
|
//------------------------
|
||||||
|
// Image
|
||||||
|
//------------------------
|
||||||
|
delete coverImg[i];
|
||||||
|
coverImg[i] = new (std::nothrow) GuiImageAsync(GameCarouselLoadCoverImage, gameList[gameIndex[i]], sizeof(struct discHdr), &noCover);
|
||||||
|
if (coverImg[i]) coverImg[i]->SetWidescreen(Settings.widescreen);
|
||||||
|
|
||||||
|
//------------------------
|
||||||
|
// GameButton
|
||||||
|
//------------------------
|
||||||
|
delete game[i];
|
||||||
|
game[i] = new GuiButton(122, 244);
|
||||||
|
game[i]->SetParent(this);
|
||||||
|
game[i]->SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE);
|
||||||
|
game[i]->SetPosition(0, 740);
|
||||||
|
game[i]->SetImage(coverImg[i]);
|
||||||
|
game[i]->SetScale(SCALE);
|
||||||
|
game[i]->SetRumble(false);
|
||||||
|
game[i]->SetTrigger(trigA);
|
||||||
|
game[i]->SetSoundClick(btnSoundClick);
|
||||||
|
game[i]->SetClickable(true);
|
||||||
|
game[i]->SetEffect(EFFECT_GOROUND, IN_SPEED, 90 - (pagesize - 2 * i - 1) * DEG_OFFSET / 2, RADIUS, 180, 1, 0, RADIUS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GuiGameCarousel::SetFocus(int f)
|
void GuiGameCarousel::SetFocus(int f)
|
||||||
{
|
{
|
||||||
LOCK( this );
|
LOCK( this );
|
||||||
@ -201,12 +231,6 @@ void GuiGameCarousel::ResetState()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int GuiGameCarousel::GetOffset()
|
|
||||||
{
|
|
||||||
LOCK( this );
|
|
||||||
return listOffset;
|
|
||||||
}
|
|
||||||
|
|
||||||
int GuiGameCarousel::GetClickedOption()
|
int GuiGameCarousel::GetClickedOption()
|
||||||
{
|
{
|
||||||
LOCK( this );
|
LOCK( this );
|
||||||
@ -273,7 +297,7 @@ void GuiGameCarousel::Update(GuiTrigger * t)
|
|||||||
btnRight->Update(t);
|
btnRight->Update(t);
|
||||||
btnLeft->Update(t);
|
btnLeft->Update(t);
|
||||||
|
|
||||||
if (game[0]->GetEffect() & EFFECT_GOROUND || game[pagesize - 1]->GetEffect() & EFFECT_GOROUND)
|
if ((game[0]->GetEffect() & EFFECT_GOROUND) || (game[pagesize - 1]->GetEffect() & EFFECT_GOROUND))
|
||||||
{
|
{
|
||||||
return; // skip when rotate
|
return; // skip when rotate
|
||||||
}
|
}
|
||||||
|
@ -2,24 +2,26 @@
|
|||||||
#define _GUIGAMECAROUSEL_H_
|
#define _GUIGAMECAROUSEL_H_
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "gui.h"
|
#include "gui_gamebrowser.h"
|
||||||
|
#include "gui_image_async.h"
|
||||||
#include "usbloader/disc.h"
|
#include "usbloader/disc.h"
|
||||||
class GuiImageAsync;
|
|
||||||
class GuiGameCarousel: public GuiElement
|
class GuiGameCarousel : public GuiGameBrowser
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GuiGameCarousel(int w, int h, const char *themePath, int selectedGame = 0);
|
GuiGameCarousel(int w, int h, const char *themePath, int listOffset = 0);
|
||||||
~GuiGameCarousel();
|
virtual ~GuiGameCarousel();
|
||||||
int FindMenuItem(int c, int d);
|
int FindMenuItem(int c, int d);
|
||||||
int GetClickedOption();
|
int GetClickedOption();
|
||||||
int GetSelectedOption();
|
int GetSelectedOption();
|
||||||
|
void SetSelectedOption(int ind);
|
||||||
|
void setListOffset(int off);
|
||||||
|
int getListOffset() const;
|
||||||
|
void Refresh();
|
||||||
void ResetState();
|
void ResetState();
|
||||||
void SetFocus(int f);
|
void SetFocus(int f);
|
||||||
void Draw();
|
void Draw();
|
||||||
void Update(GuiTrigger * t);
|
void Update(GuiTrigger * t);
|
||||||
int GetOffset();
|
|
||||||
void Reload();
|
|
||||||
//GuiText * optionVal[PAGESIZE];
|
|
||||||
protected:
|
protected:
|
||||||
GuiImageData noCover;
|
GuiImageData noCover;
|
||||||
int selectedItem;
|
int selectedItem;
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "themes/CTheme.h"
|
#include "themes/CTheme.h"
|
||||||
#include "prompts/PromptWindows.h"
|
#include "prompts/PromptWindows.h"
|
||||||
#include "language/gettext.h"
|
#include "language/gettext.h"
|
||||||
|
#include "utils/tools.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -35,8 +36,6 @@
|
|||||||
#define goSteps 10
|
#define goSteps 10
|
||||||
#include "../main.h"
|
#include "../main.h"
|
||||||
|
|
||||||
extern const int vol;
|
|
||||||
|
|
||||||
static int Skew1[7][8] = { { -14, -66, 14, -34, 14, 34, -14, 66 }, { -10, -44, 10, -26, 10, 26, -10, 44 }, { -6, -22,
|
static int Skew1[7][8] = { { -14, -66, 14, -34, 14, 34, -14, 66 }, { -10, -44, 10, -26, 10, 26, -10, 44 }, { -6, -22,
|
||||||
6, -14, 6, 14, -6, 22 }, { 0, -11, 0, -11, 0, 11, 0, 11 }, { -6, -14, 6, -22, 6, 22, -6, 14 }, { -10, -26, 10,
|
6, -14, 6, 14, -6, 22 }, { 0, -11, 0, -11, 0, 11, 0, 11 }, { -6, -14, 6, -22, 6, 22, -6, 14 }, { -10, -26, 10,
|
||||||
-44, 10, 44, -10, 26 }, { -14, -34, 14, -66, 14, 66, -14, 34 } };
|
-44, 10, 44, -10, 26 }, { -14, -34, 14, -66, 14, 66, -14, 34 } };
|
||||||
@ -201,11 +200,12 @@ static GuiImageData *GameGridLoadCoverImage(void * Arg)
|
|||||||
/**
|
/**
|
||||||
* Constructor for the GuiGamegrid class.
|
* Constructor for the GuiGamegrid class.
|
||||||
*/
|
*/
|
||||||
GuiGameGrid::GuiGameGrid(int w, int h, const char *themePath, int selectedGame) :
|
GuiGameGrid::GuiGameGrid(int w, int h, const char *themePath, int offset) :
|
||||||
noCover(Resources::GetFile("nocoverFlat.png"), Resources::GetFileSize("nocoverFlat.png"))
|
noCover(Resources::GetFile("nocoverFlat.png"), Resources::GetFileSize("nocoverFlat.png"))
|
||||||
{
|
{
|
||||||
width = w;
|
width = w;
|
||||||
height = h;
|
height = h;
|
||||||
|
listOffset = MIN(offset, gameList.size()-1);
|
||||||
theme_posX = thInt("0 - game grid layout pos x");
|
theme_posX = thInt("0 - game grid layout pos x");
|
||||||
theme_posY = thInt("20 - game grid layout pos y");
|
theme_posY = thInt("20 - game grid layout pos y");
|
||||||
|
|
||||||
@ -264,7 +264,7 @@ GuiGameGrid::GuiGameGrid(int w, int h, const char *themePath, int selectedGame)
|
|||||||
// Page-Stuff
|
// Page-Stuff
|
||||||
gameIndex = NULL;
|
gameIndex = NULL;
|
||||||
|
|
||||||
Reload(Settings.gridRows, 0);
|
Reload(Settings.gridRows, listOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -332,12 +332,6 @@ void GuiGameGrid::ResetState()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int GuiGameGrid::GetOffset()
|
|
||||||
{
|
|
||||||
LOCK( this );
|
|
||||||
return listOffset;
|
|
||||||
}
|
|
||||||
|
|
||||||
int GuiGameGrid::GetClickedOption()
|
int GuiGameGrid::GetClickedOption()
|
||||||
{
|
{
|
||||||
LOCK( this );
|
LOCK( this );
|
||||||
@ -367,6 +361,12 @@ int GuiGameGrid::GetSelectedOption()
|
|||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GuiGameGrid::SetSelectedOption(int ind)
|
||||||
|
{
|
||||||
|
LOCK(this);
|
||||||
|
selectedItem = LIMIT(ind, 0, MIN(pagesize, MAX(0, gameList.size()-1)));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Draw the button on screen
|
* Draw the button on screen
|
||||||
*/
|
*/
|
||||||
|
@ -2,23 +2,25 @@
|
|||||||
#define _GUIGAMEGRID_H_
|
#define _GUIGAMEGRID_H_
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "gui.h"
|
#include "gui_gamebrowser.h"
|
||||||
|
#include "gui_image_async.h"
|
||||||
#include "usbloader/disc.h"
|
#include "usbloader/disc.h"
|
||||||
|
|
||||||
class GuiImageAsync;
|
class GuiGameGrid : public GuiGameBrowser
|
||||||
class GuiGameGrid: public GuiElement
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GuiGameGrid(int w, int h, const char *themePath, int selectedGame = 0);
|
GuiGameGrid(int w, int h, const char *themePath, int selectedGame = 0);
|
||||||
~GuiGameGrid();
|
virtual ~GuiGameGrid();
|
||||||
int FindMenuItem(int c, int d);
|
int FindMenuItem(int c, int d);
|
||||||
int GetClickedOption();
|
int GetClickedOption();
|
||||||
int GetSelectedOption();
|
int GetSelectedOption();
|
||||||
|
void SetSelectedOption(int ind);
|
||||||
|
void setListOffset(int off) { listOffset = off; Reload(rows, listOffset); }
|
||||||
|
int getListOffset() const { return listOffset; }
|
||||||
void ResetState();
|
void ResetState();
|
||||||
void SetFocus(int f);
|
void SetFocus(int f);
|
||||||
void Draw();
|
void Draw();
|
||||||
void Update(GuiTrigger * t);
|
void Update(GuiTrigger * t);
|
||||||
int GetOffset();
|
|
||||||
void Reload(int Rows, int ListOffset);
|
void Reload(int Rows, int ListOffset);
|
||||||
void ChangeRows(int n);
|
void ChangeRows(int n);
|
||||||
protected:
|
protected:
|
||||||
|
@ -7,16 +7,17 @@
|
|||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#include "gui.h"
|
#include "gui.h"
|
||||||
#include "../wpad.h"
|
#include "wpad.h"
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include "gui_gamebrowser.h"
|
#include "gui_gamelist.h"
|
||||||
#include "../settings/CSettings.h"
|
#include "settings/CSettings.h"
|
||||||
#include "../main.h"
|
#include "main.h"
|
||||||
#include "settings/newtitles.h"
|
#include "settings/newtitles.h"
|
||||||
#include "settings/GameTitles.h"
|
#include "settings/GameTitles.h"
|
||||||
#include "usbloader/GameList.h"
|
#include "usbloader/GameList.h"
|
||||||
#include "themes/CTheme.h"
|
#include "themes/CTheme.h"
|
||||||
|
#include "utils/tools.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -25,9 +26,9 @@
|
|||||||
#define GAMESELECTSIZE 30
|
#define GAMESELECTSIZE 30
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for the GuiGameBrowser class.
|
* Constructor for the GuiGameList class.
|
||||||
*/
|
*/
|
||||||
GuiGameBrowser::GuiGameBrowser(int w, int h, int selectedGame)
|
GuiGameList::GuiGameList(int w, int h, int offset)
|
||||||
: scrollBar(h-10)
|
: scrollBar(h-10)
|
||||||
{
|
{
|
||||||
width = w;
|
width = w;
|
||||||
@ -35,8 +36,8 @@ GuiGameBrowser::GuiGameBrowser(int w, int h, int selectedGame)
|
|||||||
pagesize = thInt("9 - game list browser page size");
|
pagesize = thInt("9 - game list browser page size");
|
||||||
scrollbaron = (gameList.size() > pagesize) ? 1 : 0;
|
scrollbaron = (gameList.size() > pagesize) ? 1 : 0;
|
||||||
selectable = true;
|
selectable = true;
|
||||||
listOffset = selectedGame - (selectedGame % pagesize);
|
listOffset = LIMIT(offset, 0, MAX(0, gameList.size()-pagesize));
|
||||||
selectedItem = selectedGame - listOffset;
|
selectedItem = 0;
|
||||||
focus = 1; // allow focus
|
focus = 1; // allow focus
|
||||||
|
|
||||||
trigA = new GuiTrigger;
|
trigA = new GuiTrigger;
|
||||||
@ -49,7 +50,11 @@ GuiGameBrowser::GuiGameBrowser(int w, int h, int selectedGame)
|
|||||||
scrollBar.SetAlignment(thAlign("right - game browser scrollbar align hor"), thAlign("top - game browser scrollbar align ver"));
|
scrollBar.SetAlignment(thAlign("right - game browser scrollbar align hor"), thAlign("top - game browser scrollbar align ver"));
|
||||||
scrollBar.SetPosition(thInt("0 - game browser scrollbar pos x"), thInt("5 - game browser scrollbar pos y"));
|
scrollBar.SetPosition(thInt("0 - game browser scrollbar pos x"), thInt("5 - game browser scrollbar pos y"));
|
||||||
scrollBar.SetButtonScroll(WPAD_BUTTON_B | WPAD_CLASSIC_BUTTON_B);
|
scrollBar.SetButtonScroll(WPAD_BUTTON_B | WPAD_CLASSIC_BUTTON_B);
|
||||||
scrollBar.listChanged.connect(this, &GuiGameBrowser::onListChange);
|
scrollBar.SetPageSize(pagesize);
|
||||||
|
scrollBar.SetSelectedItem(selectedItem);
|
||||||
|
scrollBar.SetSelectedIndex(listOffset);
|
||||||
|
scrollBar.SetEntrieCount(gameList.size());
|
||||||
|
scrollBar.listChanged.connect(this, &GuiGameList::onListChange);
|
||||||
|
|
||||||
bgGameImg = new GuiImage(bgGames);
|
bgGameImg = new GuiImage(bgGames);
|
||||||
bgGameImg->SetParent(this);
|
bgGameImg->SetParent(this);
|
||||||
@ -59,21 +64,20 @@ GuiGameBrowser::GuiGameBrowser(int w, int h, int selectedGame)
|
|||||||
|
|
||||||
maxTextWidth = bgGameImg->GetWidth() - scrollBar.GetWidth() - 38;
|
maxTextWidth = bgGameImg->GetWidth() - scrollBar.GetWidth() - 38;
|
||||||
|
|
||||||
gameIndex = new int[pagesize];
|
|
||||||
game = new GuiButton *[pagesize];
|
game = new GuiButton *[pagesize];
|
||||||
gameTxt = new GuiText *[pagesize];
|
gameTxt = new GuiText *[pagesize];
|
||||||
gameTxtOver = new GuiText *[pagesize];
|
gameTxtOver = new GuiText *[pagesize];
|
||||||
gameBg = new GuiImage *[pagesize];
|
gameBg = new GuiImage *[pagesize];
|
||||||
newImg = new GuiImage *[pagesize];
|
newImg = new GuiImage *[pagesize];
|
||||||
|
|
||||||
for (int i = 0; i < pagesize; i++)
|
for (int i = 0; i < pagesize; ++i)
|
||||||
{
|
{
|
||||||
gameTxt[i] = new GuiText(GameTitles.GetTitle(gameList[i]), 20, thColor("r=0 g=0 b=0 a=255 - game browser list text color"));
|
gameTxt[i] = new GuiText((char *) NULL, 20, thColor("r=0 g=0 b=0 a=255 - game browser list text color"));
|
||||||
gameTxt[i]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
gameTxt[i]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
||||||
gameTxt[i]->SetPosition(24, 0);
|
gameTxt[i]->SetPosition(24, 0);
|
||||||
gameTxt[i]->SetMaxWidth(maxTextWidth, DOTTED);
|
gameTxt[i]->SetMaxWidth(maxTextWidth, DOTTED);
|
||||||
|
|
||||||
gameTxtOver[i] = new GuiText(GameTitles.GetTitle(gameList[i]), 20, thColor("r=0 g=0 b=0 a=255 - game browser list text color over"));
|
gameTxtOver[i] = new GuiText((char *) NULL, 20, thColor("r=0 g=0 b=0 a=255 - game browser list text color over"));
|
||||||
gameTxtOver[i]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
gameTxtOver[i]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
||||||
gameTxtOver[i]->SetPosition(24, 0);
|
gameTxtOver[i]->SetPosition(24, 0);
|
||||||
gameTxtOver[i]->SetMaxWidth(maxTextWidth, SCROLL_HORIZONTAL);
|
gameTxtOver[i]->SetMaxWidth(maxTextWidth, SCROLL_HORIZONTAL);
|
||||||
@ -94,16 +98,16 @@ GuiGameBrowser::GuiGameBrowser(int w, int h, int selectedGame)
|
|||||||
game[i]->SetRumble(false);
|
game[i]->SetRumble(false);
|
||||||
game[i]->SetTrigger(trigA);
|
game[i]->SetTrigger(trigA);
|
||||||
game[i]->SetSoundClick(btnSoundClick);
|
game[i]->SetSoundClick(btnSoundClick);
|
||||||
|
game[i]->SetVisible(false);
|
||||||
gameIndex[i] = i;
|
game[i]->SetState(STATE_DISABLED);
|
||||||
}
|
}
|
||||||
UpdateListEntries();
|
UpdateListEntries();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destructor for the GuiGameBrowser class.
|
* Destructor for the GuiGameList class.
|
||||||
*/
|
*/
|
||||||
GuiGameBrowser::~GuiGameBrowser()
|
GuiGameList::~GuiGameList()
|
||||||
{
|
{
|
||||||
delete bgGameImg;
|
delete bgGameImg;
|
||||||
delete bgGames;
|
delete bgGames;
|
||||||
@ -112,7 +116,7 @@ GuiGameBrowser::~GuiGameBrowser()
|
|||||||
|
|
||||||
delete trigA;
|
delete trigA;
|
||||||
|
|
||||||
for (int i = 0; i < pagesize; i++)
|
for (int i = 0; i < pagesize; ++i)
|
||||||
{
|
{
|
||||||
delete gameTxt[i];
|
delete gameTxt[i];
|
||||||
delete gameTxtOver[i];
|
delete gameTxtOver[i];
|
||||||
@ -120,27 +124,26 @@ GuiGameBrowser::~GuiGameBrowser()
|
|||||||
delete game[i];
|
delete game[i];
|
||||||
delete newImg[i];
|
delete newImg[i];
|
||||||
}
|
}
|
||||||
delete[] gameIndex;
|
|
||||||
delete[] game;
|
delete[] game;
|
||||||
delete[] gameTxt;
|
delete[] gameTxt;
|
||||||
delete[] gameTxtOver;
|
delete[] gameTxtOver;
|
||||||
delete[] gameBg;
|
delete[] gameBg;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiGameBrowser::SetFocus(int f)
|
void GuiGameList::SetFocus(int f)
|
||||||
{
|
{
|
||||||
LOCK( this );
|
LOCK( this );
|
||||||
if (!gameList.size()) return;
|
if (!gameList.size()) return;
|
||||||
|
|
||||||
focus = f;
|
focus = f;
|
||||||
|
|
||||||
for (int i = 0; i < pagesize; i++)
|
for (int i = 0; i < pagesize; ++i)
|
||||||
game[i]->ResetState();
|
game[i]->ResetState();
|
||||||
|
|
||||||
if (f == 1) game[selectedItem]->SetState(STATE_SELECTED);
|
if (f == 1) game[selectedItem]->SetState(STATE_SELECTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiGameBrowser::ResetState()
|
void GuiGameList::ResetState()
|
||||||
{
|
{
|
||||||
LOCK( this );
|
LOCK( this );
|
||||||
if (state != STATE_DISABLED)
|
if (state != STATE_DISABLED)
|
||||||
@ -149,76 +152,60 @@ void GuiGameBrowser::ResetState()
|
|||||||
stateChan = -1;
|
stateChan = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < pagesize; i++)
|
for (int i = 0; i < pagesize; ++i)
|
||||||
{
|
{
|
||||||
game[i]->ResetState();
|
game[i]->ResetState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int GuiGameBrowser::GetOffset()
|
int GuiGameList::GetClickedOption()
|
||||||
{
|
|
||||||
return listOffset;
|
|
||||||
}
|
|
||||||
int GuiGameBrowser::GetClickedOption()
|
|
||||||
{
|
{
|
||||||
int found = -1;
|
int found = -1;
|
||||||
for (int i = 0; i < pagesize; i++)
|
for (int i = 0; i < pagesize; ++i)
|
||||||
{
|
{
|
||||||
if (game[i]->GetState() == STATE_CLICKED)
|
if (game[i]->GetState() == STATE_CLICKED)
|
||||||
{
|
{
|
||||||
game[i]->SetState(STATE_SELECTED);
|
game[i]->SetState(STATE_SELECTED);
|
||||||
found = gameIndex[i];
|
found = listOffset + i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
void GuiGameList::onListChange(int SelItem, int SelInd)
|
||||||
* FindMenuItem
|
|
||||||
*
|
|
||||||
* Help function to find the next visible menu item on the list
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
int GuiGameBrowser::FindMenuItem(int currentItem, int direction)
|
|
||||||
{
|
|
||||||
int nextItem = currentItem + direction;
|
|
||||||
|
|
||||||
if (nextItem < 0 || nextItem >= gameList.size()) return -1;
|
|
||||||
|
|
||||||
if (strlen(GameTitles.GetTitle(gameList[nextItem])) > 0)
|
|
||||||
return nextItem;
|
|
||||||
|
|
||||||
return FindMenuItem(nextItem, direction);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GuiGameBrowser::onListChange(int SelItem, int SelInd)
|
|
||||||
{
|
{
|
||||||
selectedItem = SelItem;
|
selectedItem = SelItem;
|
||||||
listOffset = SelInd;
|
listOffset = SelInd;
|
||||||
UpdateListEntries();
|
UpdateListEntries();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GuiGameList::setListOffset(int off)
|
||||||
|
{
|
||||||
|
LOCK(this);
|
||||||
|
listOffset = LIMIT(off, 0, MAX(0, gameList.size()-pagesize));
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuiGameList::SetSelectedOption(int ind)
|
||||||
|
{
|
||||||
|
LOCK(this);
|
||||||
|
selectedItem = LIMIT(ind, 0, MIN(pagesize, MAX(0, gameList.size()-1)));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Draw the button on screen
|
* Draw the button on screen
|
||||||
*/
|
*/
|
||||||
void GuiGameBrowser::Draw()
|
void GuiGameList::Draw()
|
||||||
{
|
{
|
||||||
LOCK( this );
|
LOCK( this );
|
||||||
if (!this->IsVisible() || !gameList.size()) return;
|
if (!this->IsVisible() || !gameList.size()) return;
|
||||||
|
|
||||||
bgGameImg->Draw();
|
bgGameImg->Draw();
|
||||||
|
|
||||||
int next = listOffset;
|
for (int i = 0, next = listOffset; i < pagesize; ++i, ++next)
|
||||||
|
|
||||||
for (int i = 0; i < pagesize; i++)
|
|
||||||
{
|
{
|
||||||
if (next >= 0)
|
if (next < gameList.size())
|
||||||
{
|
|
||||||
game[i]->Draw();
|
game[i]->Draw();
|
||||||
next = this->FindMenuItem(next, 1);
|
|
||||||
}
|
|
||||||
else break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scrollbaron == 1)
|
if (scrollbaron == 1)
|
||||||
@ -227,12 +214,11 @@ void GuiGameBrowser::Draw()
|
|||||||
this->UpdateEffects();
|
this->UpdateEffects();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiGameBrowser::UpdateListEntries()
|
void GuiGameList::UpdateListEntries()
|
||||||
{
|
{
|
||||||
int next = listOffset;
|
for (int i = 0, next = listOffset; i < pagesize; ++i, ++next)
|
||||||
for (int i = 0; i < pagesize; i++)
|
|
||||||
{
|
{
|
||||||
if (next >= 0)
|
if (next < gameList.size())
|
||||||
{
|
{
|
||||||
if (game[i]->GetState() == STATE_DISABLED)
|
if (game[i]->GetState() == STATE_DISABLED)
|
||||||
{
|
{
|
||||||
@ -259,9 +245,6 @@ void GuiGameBrowser::UpdateListEntries()
|
|||||||
}
|
}
|
||||||
newImg[i]->SetVisible(isNew);
|
newImg[i]->SetVisible(isNew);
|
||||||
}
|
}
|
||||||
|
|
||||||
gameIndex[i] = next;
|
|
||||||
next = this->FindMenuItem(next, 1);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -271,13 +254,12 @@ void GuiGameBrowser::UpdateListEntries()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiGameBrowser::Update(GuiTrigger * t)
|
void GuiGameList::Update(GuiTrigger * t)
|
||||||
{
|
{
|
||||||
LOCK( this );
|
LOCK( this );
|
||||||
if (state == STATE_DISABLED || !t || !gameList.size()) return;
|
if (state == STATE_DISABLED || !t || !gameList.size()) return;
|
||||||
|
|
||||||
static int pressedChan = -1;
|
static int pressedChan = -1;
|
||||||
int next;
|
|
||||||
|
|
||||||
if((t->wpad.btns_d & (WPAD_BUTTON_B | WPAD_BUTTON_DOWN | WPAD_BUTTON_UP | WPAD_BUTTON_LEFT | WPAD_BUTTON_RIGHT |
|
if((t->wpad.btns_d & (WPAD_BUTTON_B | WPAD_BUTTON_DOWN | WPAD_BUTTON_UP | WPAD_BUTTON_LEFT | WPAD_BUTTON_RIGHT |
|
||||||
WPAD_CLASSIC_BUTTON_B | WPAD_CLASSIC_BUTTON_UP | WPAD_CLASSIC_BUTTON_DOWN | WPAD_CLASSIC_BUTTON_LEFT | WPAD_CLASSIC_BUTTON_RIGHT)) ||
|
WPAD_CLASSIC_BUTTON_B | WPAD_CLASSIC_BUTTON_UP | WPAD_CLASSIC_BUTTON_DOWN | WPAD_CLASSIC_BUTTON_LEFT | WPAD_CLASSIC_BUTTON_RIGHT)) ||
|
||||||
@ -288,23 +270,22 @@ void GuiGameBrowser::Update(GuiTrigger * t)
|
|||||||
// update the location of the scroll box based on the position in the option list
|
// update the location of the scroll box based on the position in the option list
|
||||||
scrollBar.Update(t);
|
scrollBar.Update(t);
|
||||||
|
|
||||||
next = listOffset;
|
|
||||||
|
|
||||||
if(pressedChan == -1 || (!t->wpad.btns_h && !t->pad.btns_h))
|
if(pressedChan == -1 || (!t->wpad.btns_h && !t->pad.btns_h))
|
||||||
{
|
{
|
||||||
for (int i = 0; i < pagesize; i++)
|
for (int i = 0, next = listOffset; i < pagesize; ++i, ++next)
|
||||||
{
|
{
|
||||||
if (next >= 0) next = this->FindMenuItem(next, 1);
|
if (next >= gameList.size())
|
||||||
|
break;
|
||||||
|
|
||||||
if (i != selectedItem && game[i]->GetState() == STATE_SELECTED)
|
if (i != selectedItem && game[i]->GetState() == STATE_SELECTED)
|
||||||
game[i]->ResetState();
|
game[i]->ResetState();
|
||||||
else if (i == selectedItem && game[i]->GetState() == STATE_DEFAULT)
|
else if (i == selectedItem && game[i]->GetState() == STATE_DEFAULT)
|
||||||
game[selectedItem]->SetState(STATE_SELECTED, -1);
|
game[selectedItem]->SetState(STATE_SELECTED, -1);
|
||||||
|
|
||||||
game[i]->Update(t);
|
game[i]->Update(t);
|
||||||
|
|
||||||
if (game[i]->GetState() == STATE_SELECTED)
|
if (game[i]->GetState() == STATE_SELECTED)
|
||||||
selectedItem = i;
|
selectedItem = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
47
source/GUI/gui_gamelist.h
Normal file
47
source/GUI/gui_gamelist.h
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#ifndef _GUIGAMELIST_H_
|
||||||
|
#define _GUIGAMELIST_H_
|
||||||
|
|
||||||
|
#include "gui_gamebrowser.h"
|
||||||
|
#include "gui_scrollbar.hpp"
|
||||||
|
#include "usbloader/disc.h"
|
||||||
|
|
||||||
|
class GuiGameList : public GuiGameBrowser, public sigslot::has_slots<>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
GuiGameList(int w, int h, int listOffset = 0);
|
||||||
|
virtual ~GuiGameList();
|
||||||
|
int GetClickedOption();
|
||||||
|
int GetSelectedOption() { return listOffset+selectedItem; }
|
||||||
|
void SetSelectedOption(int ind);
|
||||||
|
void setListOffset(int off);
|
||||||
|
int getListOffset() const { return listOffset; }
|
||||||
|
void ResetState();
|
||||||
|
void SetFocus(int f);
|
||||||
|
void Draw();
|
||||||
|
void Update(GuiTrigger * t);
|
||||||
|
protected:
|
||||||
|
void onListChange(int SelItem, int SelInd);
|
||||||
|
void UpdateListEntries();
|
||||||
|
int selectedItem;
|
||||||
|
int listOffset;
|
||||||
|
int scrollbaron;
|
||||||
|
int pagesize;
|
||||||
|
int maxTextWidth;
|
||||||
|
|
||||||
|
GuiButton ** game;
|
||||||
|
GuiText ** gameTxt;
|
||||||
|
GuiText ** gameTxtOver;
|
||||||
|
GuiImage ** gameBg;
|
||||||
|
GuiImage ** newImg;
|
||||||
|
|
||||||
|
GuiImage * bgGameImg;
|
||||||
|
|
||||||
|
GuiImageData * bgGames;
|
||||||
|
GuiImageData * bgGamesEntry;
|
||||||
|
GuiImageData * newGames;
|
||||||
|
|
||||||
|
GuiTrigger * trigA;
|
||||||
|
|
||||||
|
GuiScrollbar scrollBar;
|
||||||
|
};
|
||||||
|
#endif
|
@ -11,7 +11,7 @@ class GuiImageAsync: public GuiImage
|
|||||||
public:
|
public:
|
||||||
GuiImageAsync(const char *Filename, GuiImageData * PreloadImg);
|
GuiImageAsync(const char *Filename, GuiImageData * PreloadImg);
|
||||||
GuiImageAsync(ImageLoaderCallback Callback, const void *Arg, int ArgLen, GuiImageData * PreloadImg);
|
GuiImageAsync(ImageLoaderCallback Callback, const void *Arg, int ArgLen, GuiImageData * PreloadImg);
|
||||||
~GuiImageAsync();
|
virtual ~GuiImageAsync();
|
||||||
|
|
||||||
static void ClearQueue();
|
static void ClearQueue();
|
||||||
private:
|
private:
|
||||||
|
@ -10,7 +10,7 @@ class GuiOptionBrowser: public GuiElement, public sigslot::has_slots<>
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GuiOptionBrowser(int w, int h, OptionList * l, const char * background);
|
GuiOptionBrowser(int w, int h, OptionList * l, const char * background);
|
||||||
~GuiOptionBrowser();
|
virtual ~GuiOptionBrowser();
|
||||||
int FindMenuItem(int c, int d);
|
int FindMenuItem(int c, int d);
|
||||||
int GetClickedOption();
|
int GetClickedOption();
|
||||||
int GetSelectedOption();
|
int GetSelectedOption();
|
||||||
|
@ -30,7 +30,7 @@ class GuiScrollbar : public GuiElement, public sigslot::has_slots<>
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GuiScrollbar(int height, u8 mode = LISTMODE);
|
GuiScrollbar(int height, u8 mode = LISTMODE);
|
||||||
~GuiScrollbar();
|
virtual ~GuiScrollbar();
|
||||||
void SetDPadControl(bool a) { AllowDPad = a; }
|
void SetDPadControl(bool a) { AllowDPad = a; }
|
||||||
void SetButtonScroll(u32 button) { ButtonScroll = button; }
|
void SetButtonScroll(u32 button) { ButtonScroll = button; }
|
||||||
void ScrollOneUp();
|
void ScrollOneUp();
|
||||||
|
@ -8,7 +8,7 @@ class GuiSearchBar: public GuiWindow
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GuiSearchBar(const wchar_t *SearchChars);
|
GuiSearchBar(const wchar_t *SearchChars);
|
||||||
~GuiSearchBar();
|
virtual ~GuiSearchBar();
|
||||||
void Draw();
|
void Draw();
|
||||||
void Update(GuiTrigger * t);
|
void Update(GuiTrigger * t);
|
||||||
wchar_t GetClicked();
|
wchar_t GetClicked();
|
||||||
|
@ -144,10 +144,10 @@ bool GuiTrigger::Left()
|
|||||||
if(wpad.exp.type == WPAD_EXP_CLASSIC)
|
if(wpad.exp.type == WPAD_EXP_CLASSIC)
|
||||||
wiibtn = WPAD_CLASSIC_BUTTON_LEFT;
|
wiibtn = WPAD_CLASSIC_BUTTON_LEFT;
|
||||||
|
|
||||||
if ((wpad.btns_d | wpad.btns_h) & wiibtn || (pad.btns_d | pad.btns_h)
|
if (((wpad.btns_d | wpad.btns_h) & wiibtn) || ((pad.btns_d | pad.btns_h)
|
||||||
& PAD_BUTTON_LEFT || pad.stickX < -PADCAL || WPAD_Stick(0, 0) < -PADCAL)
|
& PAD_BUTTON_LEFT) || pad.stickX < -PADCAL || WPAD_Stick(0, 0) < -PADCAL)
|
||||||
{
|
{
|
||||||
if (wpad.btns_d & wiibtn || pad.btns_d & PAD_BUTTON_LEFT)
|
if ((wpad.btns_d & wiibtn) || (pad.btns_d & PAD_BUTTON_LEFT))
|
||||||
{
|
{
|
||||||
scrollDelay = SCROLL_INITIAL_DELAY; // reset scroll delay.
|
scrollDelay = SCROLL_INITIAL_DELAY; // reset scroll delay.
|
||||||
return true;
|
return true;
|
||||||
@ -171,10 +171,10 @@ bool GuiTrigger::Right()
|
|||||||
if(wpad.exp.type == WPAD_EXP_CLASSIC)
|
if(wpad.exp.type == WPAD_EXP_CLASSIC)
|
||||||
wiibtn = WPAD_CLASSIC_BUTTON_RIGHT;
|
wiibtn = WPAD_CLASSIC_BUTTON_RIGHT;
|
||||||
|
|
||||||
if ((wpad.btns_d | wpad.btns_h) & wiibtn || (pad.btns_d | pad.btns_h)
|
if (((wpad.btns_d | wpad.btns_h) & wiibtn) || ((pad.btns_d | pad.btns_h)
|
||||||
& PAD_BUTTON_RIGHT || pad.stickX > PADCAL || WPAD_Stick(0, 0) > PADCAL)
|
& PAD_BUTTON_RIGHT) || pad.stickX > PADCAL || WPAD_Stick(0, 0) > PADCAL)
|
||||||
{
|
{
|
||||||
if (wpad.btns_d & wiibtn || pad.btns_d & PAD_BUTTON_RIGHT)
|
if ((wpad.btns_d & wiibtn) || (pad.btns_d & PAD_BUTTON_RIGHT))
|
||||||
{
|
{
|
||||||
scrollDelay = SCROLL_INITIAL_DELAY; // reset scroll delay.
|
scrollDelay = SCROLL_INITIAL_DELAY; // reset scroll delay.
|
||||||
return true;
|
return true;
|
||||||
@ -198,10 +198,10 @@ bool GuiTrigger::Up()
|
|||||||
if(wpad.exp.type == WPAD_EXP_CLASSIC)
|
if(wpad.exp.type == WPAD_EXP_CLASSIC)
|
||||||
wiibtn = WPAD_CLASSIC_BUTTON_UP;
|
wiibtn = WPAD_CLASSIC_BUTTON_UP;
|
||||||
|
|
||||||
if ((wpad.btns_d | wpad.btns_h) & wiibtn || (pad.btns_d | pad.btns_h) & PAD_BUTTON_UP
|
if (((wpad.btns_d | wpad.btns_h) & wiibtn) || ((pad.btns_d | pad.btns_h) & PAD_BUTTON_UP)
|
||||||
|| pad.stickY > PADCAL || WPAD_Stick(0, 1) > PADCAL)
|
|| pad.stickY > PADCAL || WPAD_Stick(0, 1) > PADCAL)
|
||||||
{
|
{
|
||||||
if (wpad.btns_d & wiibtn || pad.btns_d & PAD_BUTTON_UP)
|
if ((wpad.btns_d & wiibtn) || (pad.btns_d & PAD_BUTTON_UP))
|
||||||
{
|
{
|
||||||
scrollDelay = SCROLL_INITIAL_DELAY; // reset scroll delay.
|
scrollDelay = SCROLL_INITIAL_DELAY; // reset scroll delay.
|
||||||
return true;
|
return true;
|
||||||
@ -225,10 +225,10 @@ bool GuiTrigger::Down()
|
|||||||
if(wpad.exp.type == WPAD_EXP_CLASSIC)
|
if(wpad.exp.type == WPAD_EXP_CLASSIC)
|
||||||
wiibtn = WPAD_CLASSIC_BUTTON_DOWN;
|
wiibtn = WPAD_CLASSIC_BUTTON_DOWN;
|
||||||
|
|
||||||
if ((wpad.btns_d | wpad.btns_h) & wiibtn || (pad.btns_d | pad.btns_h)
|
if (((wpad.btns_d | wpad.btns_h) & wiibtn) || ((pad.btns_d | pad.btns_h)
|
||||||
& PAD_BUTTON_DOWN || pad.stickY < -PADCAL || WPAD_Stick(0, 1) < -PADCAL)
|
& PAD_BUTTON_DOWN) || pad.stickY < -PADCAL || WPAD_Stick(0, 1) < -PADCAL)
|
||||||
{
|
{
|
||||||
if (wpad.btns_d & wiibtn || pad.btns_d & PAD_BUTTON_DOWN)
|
if ((wpad.btns_d & wiibtn) || (pad.btns_d & PAD_BUTTON_DOWN))
|
||||||
{
|
{
|
||||||
scrollDelay = SCROLL_INITIAL_DELAY; // reset scroll delay.
|
scrollDelay = SCROLL_INITIAL_DELAY; // reset scroll delay.
|
||||||
return true;
|
return true;
|
||||||
|
@ -239,8 +239,7 @@ void GuiWindow::ToggleFocus(GuiTrigger * t)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// change focus
|
// change focus
|
||||||
else if (t->wpad.btns_d & (WPAD_BUTTON_1 | WPAD_BUTTON_1 | WPAD_CLASSIC_BUTTON_PLUS) || t->pad.btns_d
|
else if ((t->wpad.btns_d & (WPAD_BUTTON_1 | WPAD_BUTTON_1 | WPAD_CLASSIC_BUTTON_PLUS)) || (t->pad.btns_d & PAD_BUTTON_B))
|
||||||
& PAD_BUTTON_B)
|
|
||||||
{
|
{
|
||||||
for (i = found; i < _elements.size(); i++)
|
for (i = found; i < _elements.size(); i++)
|
||||||
{
|
{
|
||||||
|
@ -34,7 +34,7 @@ class AifDecoder : public SoundDecoder
|
|||||||
public:
|
public:
|
||||||
AifDecoder(const char * filepath);
|
AifDecoder(const char * filepath);
|
||||||
AifDecoder(const u8 * snd, int len);
|
AifDecoder(const u8 * snd, int len);
|
||||||
~AifDecoder();
|
virtual ~AifDecoder();
|
||||||
int GetFormat() { return Format; };
|
int GetFormat() { return Format; };
|
||||||
int GetSampleRate() { return SampleRate; };
|
int GetSampleRate() { return SampleRate; };
|
||||||
int Read(u8 * buffer, int buffer_size, int pos);
|
int Read(u8 * buffer, int buffer_size, int pos);
|
||||||
|
@ -29,6 +29,8 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include "BNSDecoder.hpp"
|
#include "BNSDecoder.hpp"
|
||||||
|
|
||||||
|
SoundBlock DecodefromBNS(const u8 *buffer, u32 size);
|
||||||
|
|
||||||
BNSDecoder::BNSDecoder(const char * filepath)
|
BNSDecoder::BNSDecoder(const char * filepath)
|
||||||
: SoundDecoder(filepath)
|
: SoundDecoder(filepath)
|
||||||
{
|
{
|
||||||
|
@ -44,7 +44,7 @@ class BNSDecoder : public SoundDecoder
|
|||||||
public:
|
public:
|
||||||
BNSDecoder(const char * filepath);
|
BNSDecoder(const char * filepath);
|
||||||
BNSDecoder(const u8 * snd, int len);
|
BNSDecoder(const u8 * snd, int len);
|
||||||
~BNSDecoder();
|
virtual ~BNSDecoder();
|
||||||
int GetFormat() { return SoundData.format; };
|
int GetFormat() { return SoundData.format; };
|
||||||
int GetSampleRate() { return SoundData.frequency; };
|
int GetSampleRate() { return SoundData.frequency; };
|
||||||
int Read(u8 * buffer, int buffer_size, int pos);
|
int Read(u8 * buffer, int buffer_size, int pos);
|
||||||
@ -54,6 +54,4 @@ class BNSDecoder : public SoundDecoder
|
|||||||
SoundBlock SoundData;
|
SoundBlock SoundData;
|
||||||
};
|
};
|
||||||
|
|
||||||
SoundBlock DecodefromBNS(const u8 *buffer, u32 size);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -213,4 +213,6 @@ int Mp3Decoder::Read(u8 * buffer, int buffer_size, int pos)
|
|||||||
mad_synth_frame(&Synth,&Frame);
|
mad_synth_frame(&Synth,&Frame);
|
||||||
SynthPos = 0;
|
SynthPos = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ class Mp3Decoder : public SoundDecoder
|
|||||||
public:
|
public:
|
||||||
Mp3Decoder(const char * filepath);
|
Mp3Decoder(const char * filepath);
|
||||||
Mp3Decoder(const u8 * sound, int len);
|
Mp3Decoder(const u8 * sound, int len);
|
||||||
~Mp3Decoder();
|
virtual ~Mp3Decoder();
|
||||||
int GetFormat() { return Format; };
|
int GetFormat() { return Format; };
|
||||||
int GetSampleRate() { return SampleRate; };
|
int GetSampleRate() { return SampleRate; };
|
||||||
int Rewind();
|
int Rewind();
|
||||||
|
@ -33,7 +33,7 @@ class OggDecoder : public SoundDecoder
|
|||||||
public:
|
public:
|
||||||
OggDecoder(const char * filepath);
|
OggDecoder(const char * filepath);
|
||||||
OggDecoder(const u8 * snd, int len);
|
OggDecoder(const u8 * snd, int len);
|
||||||
~OggDecoder();
|
virtual ~OggDecoder();
|
||||||
int GetFormat();
|
int GetFormat();
|
||||||
int GetSampleRate();
|
int GetSampleRate();
|
||||||
int Rewind();
|
int Rewind();
|
||||||
|
@ -49,7 +49,7 @@ class SoundDecoder
|
|||||||
SoundDecoder();
|
SoundDecoder();
|
||||||
SoundDecoder(const char * filepath);
|
SoundDecoder(const char * filepath);
|
||||||
SoundDecoder(const u8 * buffer, int size);
|
SoundDecoder(const u8 * buffer, int size);
|
||||||
~SoundDecoder();
|
virtual ~SoundDecoder();
|
||||||
virtual int Read(u8 * buffer, int buffer_size, int pos);
|
virtual int Read(u8 * buffer, int buffer_size, int pos);
|
||||||
virtual int Tell() { return CurPos; };
|
virtual int Tell() { return CurPos; };
|
||||||
virtual int Seek(int pos) { CurPos = pos; return file_fd->seek(CurPos, SEEK_SET); };
|
virtual int Seek(int pos) { CurPos = pos; return file_fd->seek(CurPos, SEEK_SET); };
|
||||||
|
@ -106,14 +106,7 @@ void SoundHandler::RemoveDecoder(int voice)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if(DecoderList[voice] != NULL)
|
if(DecoderList[voice] != NULL)
|
||||||
{
|
delete DecoderList[voice];
|
||||||
if(DecoderList[voice]->GetSoundType() == SOUND_OGG) delete ((OggDecoder *) DecoderList[voice]);
|
|
||||||
else if(DecoderList[voice]->GetSoundType() == SOUND_MP3) delete ((Mp3Decoder *) DecoderList[voice]);
|
|
||||||
else if(DecoderList[voice]->GetSoundType() == SOUND_WAV) delete ((WavDecoder *) DecoderList[voice]);
|
|
||||||
else if(DecoderList[voice]->GetSoundType() == SOUND_AIF) delete ((AifDecoder *) DecoderList[voice]);
|
|
||||||
else if(DecoderList[voice]->GetSoundType() == SOUND_BNS) delete ((BNSDecoder *) DecoderList[voice]);
|
|
||||||
else delete DecoderList[voice];
|
|
||||||
}
|
|
||||||
|
|
||||||
DecoderList[voice] = NULL;
|
DecoderList[voice] = NULL;
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@ class WavDecoder : public SoundDecoder
|
|||||||
public:
|
public:
|
||||||
WavDecoder(const char * filepath);
|
WavDecoder(const char * filepath);
|
||||||
WavDecoder(const u8 * snd, int len);
|
WavDecoder(const u8 * snd, int len);
|
||||||
~WavDecoder();
|
virtual ~WavDecoder();
|
||||||
int GetFormat() { return Format; };
|
int GetFormat() { return Format; };
|
||||||
int GetSampleRate() { return SampleRate; };
|
int GetSampleRate() { return SampleRate; };
|
||||||
int Read(u8 * buffer, int buffer_size, int pos);
|
int Read(u8 * buffer, int buffer_size, int pos);
|
||||||
|
@ -20,7 +20,7 @@ class GuiBGM: public GuiSound
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GuiBGM(const u8 *s, int l, int v);
|
GuiBGM(const u8 *s, int l, int v);
|
||||||
~GuiBGM();
|
virtual ~GuiBGM();
|
||||||
bool Load(const char *path);
|
bool Load(const char *path);
|
||||||
bool LoadStandard();
|
bool LoadStandard();
|
||||||
bool ParsePath(const char * folderpath);
|
bool ParsePath(const char * folderpath);
|
||||||
|
@ -38,7 +38,7 @@ class GuiSound
|
|||||||
GuiSound(const char * filepath);
|
GuiSound(const char * filepath);
|
||||||
GuiSound(const u8 * sound, int filesize, int volume, bool allocated = false, int voice = -1);
|
GuiSound(const u8 * sound, int filesize, int volume, bool allocated = false, int voice = -1);
|
||||||
//!Destructor
|
//!Destructor
|
||||||
~GuiSound();
|
virtual ~GuiSound();
|
||||||
//!Load a file and replace the old one
|
//!Load a file and replace the old one
|
||||||
virtual bool Load(const char * filepath);
|
virtual bool Load(const char * filepath);
|
||||||
//!Load a file and replace the old one
|
//!Load a file and replace the old one
|
||||||
|
@ -60,9 +60,11 @@ int CheatMenu(const char * gameID)
|
|||||||
if (download == 1)
|
if (download == 1)
|
||||||
{
|
{
|
||||||
download = CodeDownload(gameID);
|
download = CodeDownload(gameID);
|
||||||
if (download < 0 || c.openTxtfile(txtfilename) != 1) break;
|
if (download < 0 || c.openTxtfile(txtfilename) != 1)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else break;
|
else
|
||||||
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
int cntcheats = c.getCnt();
|
int cntcheats = c.getCnt();
|
||||||
OptionList cheatslst;
|
OptionList cheatslst;
|
||||||
|
@ -20,7 +20,6 @@ static u32 homebrewsize = 0;
|
|||||||
static std::vector<std::string> Arguments;
|
static std::vector<std::string> Arguments;
|
||||||
|
|
||||||
extern const u8 app_booter_dol[];
|
extern const u8 app_booter_dol[];
|
||||||
extern const u32 app_booter_dol_size;
|
|
||||||
|
|
||||||
void AddBootArgument(const char * argv)
|
void AddBootArgument(const char * argv)
|
||||||
{
|
{
|
||||||
|
@ -53,7 +53,7 @@ void UpdatePads()
|
|||||||
|
|
||||||
if(userInput[i].wpad.exp.type == WPAD_EXP_NUNCHUK)
|
if(userInput[i].wpad.exp.type == WPAD_EXP_NUNCHUK)
|
||||||
{
|
{
|
||||||
if(userInput[i].wpad.btns_h & WPAD_NUNCHUK_BUTTON_Z && userInput[i].wpad.btns_d & WPAD_NUNCHUK_BUTTON_C)
|
if((userInput[i].wpad.btns_h & WPAD_NUNCHUK_BUTTON_Z) && (userInput[i].wpad.btns_d & WPAD_NUNCHUK_BUTTON_C))
|
||||||
ScreenShot();
|
ScreenShot();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -601,7 +601,10 @@ u32 wbfs_extract_disc(wbfs_disc_t*d, rw_sector_callback_t write_dst_wii_sector,
|
|||||||
int dst_wbs_nlb = p->wbfs_sec_sz / p->wii_sec_sz;
|
int dst_wbs_nlb = p->wbfs_sec_sz / p->wii_sec_sz;
|
||||||
copy_buffer = wbfs_ioalloc( p->wbfs_sec_sz );
|
copy_buffer = wbfs_ioalloc( p->wbfs_sec_sz );
|
||||||
if (!copy_buffer)
|
if (!copy_buffer)
|
||||||
ERROR( "alloc memory" );
|
{
|
||||||
|
wbfs_error( "alloc memory" );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < p->n_wbfs_sec_per_disc; i++)
|
for (i = 0; i < p->n_wbfs_sec_per_disc; i++)
|
||||||
{
|
{
|
||||||
@ -616,7 +619,6 @@ u32 wbfs_extract_disc(wbfs_disc_t*d, rw_sector_callback_t write_dst_wii_sector,
|
|||||||
}
|
}
|
||||||
wbfs_iofree( copy_buffer );
|
wbfs_iofree( copy_buffer );
|
||||||
return 0;
|
return 0;
|
||||||
error: return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
u64 wbfs_estimate_disc(wbfs_t *p, read_wiidisc_callback_t read_src_wii_disc, void *callback_data, partition_selector_t sel)
|
u64 wbfs_estimate_disc(wbfs_t *p, read_wiidisc_callback_t read_src_wii_disc, void *callback_data, partition_selector_t sel)
|
||||||
@ -722,7 +724,7 @@ int wbfs_extract_file(wbfs_disc_t*d, char *path, void **data)
|
|||||||
wd = wd_open_disc(read_wiidisc_wbfsdisc, d);
|
wd = wd_open_disc(read_wiidisc_wbfsdisc, d);
|
||||||
if (!wd)
|
if (!wd)
|
||||||
{
|
{
|
||||||
ERROR( "opening wbfs disc" );
|
wbfs_error( "opening wbfs disc" );
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
wd->extracted_size = 0;
|
wd->extracted_size = 0;
|
||||||
@ -734,7 +736,8 @@ int wbfs_extract_file(wbfs_disc_t*d, char *path, void **data)
|
|||||||
ret = -1;
|
ret = -1;
|
||||||
}
|
}
|
||||||
wd_close_disc(wd);
|
wd_close_disc(wd);
|
||||||
error: return ret;
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int wbfs_get_fragments(wbfs_disc_t *d, _frag_append_t append_fragment, void *callback_data, u32 hdd_sector_size)
|
int wbfs_get_fragments(wbfs_disc_t *d, _frag_append_t append_fragment, void *callback_data, u32 hdd_sector_size)
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include "GameBrowseMenu.hpp"
|
#include "GameBrowseMenu.hpp"
|
||||||
#include "Controls/DeviceHandler.hpp"
|
#include "Controls/DeviceHandler.hpp"
|
||||||
|
#include "GUI/gui_gamelist.h"
|
||||||
|
#include "GUI/gui_gamegrid.h"
|
||||||
|
#include "GUI/gui_gamecarousel.h"
|
||||||
#include "GUI/LoadCoverImage.h"
|
#include "GUI/LoadCoverImage.h"
|
||||||
#include "prompts/PromptWindows.h"
|
#include "prompts/PromptWindows.h"
|
||||||
#include "prompts/gameinfo.h"
|
#include "prompts/gameinfo.h"
|
||||||
@ -33,13 +36,10 @@
|
|||||||
#include "wpad.h"
|
#include "wpad.h"
|
||||||
#include "sys.h"
|
#include "sys.h"
|
||||||
|
|
||||||
extern int load_from_fs;
|
|
||||||
extern u8 mountMethod;
|
extern u8 mountMethod;
|
||||||
extern bool updateavailable;
|
extern bool updateavailable;
|
||||||
extern struct discHdr *dvdheader;
|
extern struct discHdr *dvdheader;
|
||||||
extern int cntMissFiles;
|
|
||||||
|
|
||||||
static int lastSelectedGame = 0;
|
|
||||||
static bool WiiMoteInitiated = false;
|
static bool WiiMoteInitiated = false;
|
||||||
static bool Exiting = false;
|
static bool Exiting = false;
|
||||||
|
|
||||||
@ -52,8 +52,6 @@ GameBrowseMenu::GameBrowseMenu()
|
|||||||
Exiting = false;
|
Exiting = false;
|
||||||
show_searchwindow = false;
|
show_searchwindow = false;
|
||||||
gameBrowser = NULL;
|
gameBrowser = NULL;
|
||||||
gameGrid = NULL;
|
|
||||||
gameCarousel = NULL;
|
|
||||||
searchBar = NULL;
|
searchBar = NULL;
|
||||||
gameCover = NULL;
|
gameCover = NULL;
|
||||||
gameCoverImg = NULL;
|
gameCoverImg = NULL;
|
||||||
@ -476,11 +474,7 @@ GameBrowseMenu::~GameBrowseMenu()
|
|||||||
delete DownloadBtnTT;
|
delete DownloadBtnTT;
|
||||||
delete IDBtnTT;
|
delete IDBtnTT;
|
||||||
|
|
||||||
lastSelectedGame = LIMIT(GetSelectedGame(), 0, gameList.size()-1);
|
|
||||||
|
|
||||||
delete gameBrowser;
|
delete gameBrowser;
|
||||||
delete gameGrid;
|
|
||||||
delete gameCarousel;
|
|
||||||
mainWindow->Remove(searchBar);
|
mainWindow->Remove(searchBar);
|
||||||
delete searchBar;
|
delete searchBar;
|
||||||
|
|
||||||
@ -609,18 +603,13 @@ void GameBrowseMenu::ReloadBrowser()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(GetSelectedGame() >= 0)
|
//! Check if the loaded setting is still in range
|
||||||
lastSelectedGame = LIMIT(GetSelectedGame(), 0, gameList.size()-1);
|
Settings.SelectedGame = LIMIT(Settings.SelectedGame, 0, gameList.size()-1);
|
||||||
else
|
Settings.GameListOffset = LIMIT(Settings.GameListOffset, 0, gameList.size()-1);
|
||||||
lastSelectedGame = LIMIT(lastSelectedGame, 0, gameList.size()-1);
|
|
||||||
|
|
||||||
delete gameBrowser;
|
delete gameBrowser;
|
||||||
delete gameGrid;
|
|
||||||
delete gameCarousel;
|
|
||||||
delete searchBar;
|
delete searchBar;
|
||||||
gameBrowser = NULL;
|
gameBrowser = NULL;
|
||||||
gameGrid = NULL;
|
|
||||||
gameCarousel = NULL;
|
|
||||||
searchBar = NULL;
|
searchBar = NULL;
|
||||||
|
|
||||||
if (Settings.gameDisplay == LIST_MODE)
|
if (Settings.gameDisplay == LIST_MODE)
|
||||||
@ -653,9 +642,10 @@ void GameBrowseMenu::ReloadBrowser()
|
|||||||
dvdBtn->SetPosition(Settings.widescreen ? thInt("512 - list layout dvd btn pos x widescreen") : thInt("540 - list layout dvd btn pos x"),
|
dvdBtn->SetPosition(Settings.widescreen ? thInt("512 - list layout dvd btn pos x widescreen") : thInt("540 - list layout dvd btn pos x"),
|
||||||
thInt("13 - list layout dvd btn pos y"));
|
thInt("13 - list layout dvd btn pos y"));
|
||||||
|
|
||||||
gameBrowser = new GuiGameBrowser(thInt("396 - game list layout width"), thInt("280 - game list layout height"), lastSelectedGame);
|
gameBrowser = new GuiGameList(thInt("396 - game list layout width"), thInt("280 - game list layout height"), Settings.GameListOffset);
|
||||||
gameBrowser->SetPosition(thInt("200 - game list layout pos x"), thInt("49 - game list layout pos y"));
|
gameBrowser->SetPosition(thInt("200 - game list layout pos x"), thInt("49 - game list layout pos y"));
|
||||||
gameBrowser->SetAlignment(ALIGN_LEFT, ALIGN_CENTRE);
|
gameBrowser->SetAlignment(ALIGN_LEFT, ALIGN_CENTRE);
|
||||||
|
gameBrowser->SetSelectedOption(Settings.SelectedGame);
|
||||||
}
|
}
|
||||||
else if (Settings.gameDisplay == GRID_MODE)
|
else if (Settings.gameDisplay == GRID_MODE)
|
||||||
{
|
{
|
||||||
@ -687,9 +677,9 @@ void GameBrowseMenu::ReloadBrowser()
|
|||||||
dvdBtn->SetPosition(Settings.widescreen ? thInt("448 - grid layout dvd btn pos x widescreen") : thInt("480 - grid layout dvd btn pos x"),
|
dvdBtn->SetPosition(Settings.widescreen ? thInt("448 - grid layout dvd btn pos x widescreen") : thInt("480 - grid layout dvd btn pos x"),
|
||||||
thInt("13 - grid layout dvd btn pos y"));
|
thInt("13 - grid layout dvd btn pos y"));
|
||||||
|
|
||||||
gameGrid = new GuiGameGrid(thInt("640 - game grid layout width"), thInt("400 - game grid layout height"), Settings.theme_path, lastSelectedGame);
|
gameBrowser = new GuiGameGrid(thInt("640 - game grid layout width"), thInt("400 - game grid layout height"), Settings.theme_path, Settings.GameListOffset);
|
||||||
gameGrid->SetPosition(thInt("0 - game grid layout pos x"), thInt("20 - game grid layout pos y"));
|
gameBrowser->SetPosition(thInt("0 - game grid layout pos x"), thInt("20 - game grid layout pos y"));
|
||||||
gameGrid->SetAlignment(ALIGN_LEFT, ALIGN_CENTRE);
|
gameBrowser->SetAlignment(ALIGN_LEFT, ALIGN_CENTRE);
|
||||||
}
|
}
|
||||||
else if (Settings.gameDisplay == CAROUSEL_MODE)
|
else if (Settings.gameDisplay == CAROUSEL_MODE)
|
||||||
{
|
{
|
||||||
@ -721,9 +711,9 @@ void GameBrowseMenu::ReloadBrowser()
|
|||||||
dvdBtn->SetPosition(Settings.widescreen ? thInt("448 - carousel layout dvd btn pos x widescreen") : thInt("480 - carousel layout dvd btn pos x"),
|
dvdBtn->SetPosition(Settings.widescreen ? thInt("448 - carousel layout dvd btn pos x widescreen") : thInt("480 - carousel layout dvd btn pos x"),
|
||||||
thInt("13 - carousel layout dvd btn pos y"));
|
thInt("13 - carousel layout dvd btn pos y"));
|
||||||
|
|
||||||
gameCarousel = new GuiGameCarousel(thInt("640 - game carousel layout width"), thInt("400 - game carousel layout height"), Settings.theme_path, lastSelectedGame);
|
gameBrowser = new GuiGameCarousel(thInt("640 - game carousel layout width"), thInt("400 - game carousel layout height"), Settings.theme_path, Settings.GameListOffset);
|
||||||
gameCarousel->SetPosition(thInt("0 - game carousel layout pos x"), thInt("-20 - game carousel layout pos y"));
|
gameBrowser->SetPosition(thInt("0 - game carousel layout pos x"), thInt("-20 - game carousel layout pos y"));
|
||||||
gameCarousel->SetAlignment(ALIGN_LEFT, ALIGN_CENTRE);
|
gameBrowser->SetAlignment(ALIGN_LEFT, ALIGN_CENTRE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -768,12 +758,6 @@ void GameBrowseMenu::ReloadBrowser()
|
|||||||
if (gameBrowser)
|
if (gameBrowser)
|
||||||
Append(gameBrowser);
|
Append(gameBrowser);
|
||||||
|
|
||||||
else if (gameGrid)
|
|
||||||
Append(gameGrid);
|
|
||||||
|
|
||||||
else if (gameCarousel)
|
|
||||||
Append(gameCarousel);
|
|
||||||
|
|
||||||
if (show_searchwindow)
|
if (show_searchwindow)
|
||||||
{
|
{
|
||||||
searchBar = new GuiSearchBar(gameList.GetAvailableSearchChars());
|
searchBar = new GuiSearchBar(gameList.GetAvailableSearchChars());
|
||||||
@ -895,7 +879,7 @@ int GameBrowseMenu::MainLoop()
|
|||||||
wString oldFilter(gameList.GetCurrentFilter());
|
wString oldFilter(gameList.GetCurrentFilter());
|
||||||
gameList.FilterList(oldFilter.c_str());
|
gameList.FilterList(oldFilter.c_str());
|
||||||
|
|
||||||
if(Settings.GameSort & SORT_FAVORITE && gameList.size() == 0)
|
if((Settings.GameSort & SORT_FAVORITE) && gameList.size() == 0)
|
||||||
{
|
{
|
||||||
Settings.GameSort &= ~SORT_FAVORITE;
|
Settings.GameSort &= ~SORT_FAVORITE;
|
||||||
gameList.FilterList(oldFilter.c_str());
|
gameList.FilterList(oldFilter.c_str());
|
||||||
@ -1072,6 +1056,37 @@ int GameBrowseMenu::MainLoop()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if(categBtn->GetState() == STATE_CLICKED)
|
||||||
|
{
|
||||||
|
if (!Settings.godmode && (Settings.ParentalBlocks & BLOCK_CATEGORIES_MENU))
|
||||||
|
{
|
||||||
|
WindowPrompt(tr( "Permission denied." ), tr( "Console must be unlocked for this option." ), tr( "OK" ));
|
||||||
|
categBtn->ResetState();
|
||||||
|
return returnMenu;
|
||||||
|
}
|
||||||
|
|
||||||
|
mainWindow->SetState(STATE_DISABLED);
|
||||||
|
CategorySwitchPrompt promptMenu;
|
||||||
|
promptMenu.SetAlignment(thAlign("center - category switch prompt align hor"), thAlign("middle - category switch prompt align ver"));
|
||||||
|
promptMenu.SetPosition(thInt("0 - category switch prompt pos x"), thInt("0 - category switch prompt pos y"));
|
||||||
|
promptMenu.SetEffect(EFFECT_FADE, 20);
|
||||||
|
mainWindow->Append(&promptMenu);
|
||||||
|
|
||||||
|
promptMenu.Show();
|
||||||
|
|
||||||
|
promptMenu.SetEffect(EFFECT_FADE, -20);
|
||||||
|
while(promptMenu.GetEffect() > 0) usleep(100);
|
||||||
|
mainWindow->Remove(&promptMenu);
|
||||||
|
categBtn->ResetState();
|
||||||
|
mainWindow->SetState(STATE_DEFAULT);
|
||||||
|
if(promptMenu.categoriesChanged())
|
||||||
|
{
|
||||||
|
wString oldFilter(gameList.GetCurrentFilter());
|
||||||
|
gameList.FilterList(oldFilter.c_str());
|
||||||
|
ReloadBrowser();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
else if (Settings.gameDisplay == LIST_MODE && idBtn->GetState() == STATE_CLICKED)
|
else if (Settings.gameDisplay == LIST_MODE && idBtn->GetState() == STATE_CLICKED)
|
||||||
{
|
{
|
||||||
gprintf("\tidBtn Clicked\n");
|
gprintf("\tidBtn Clicked\n");
|
||||||
@ -1103,7 +1118,14 @@ int GameBrowseMenu::MainLoop()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gameClicked = GetClickedGame();
|
if(gameBrowser)
|
||||||
|
{
|
||||||
|
//! This is bad, but for saving pupose it will be in main loop
|
||||||
|
Settings.GameListOffset = gameBrowser->getListOffset();
|
||||||
|
Settings.SelectedGame = gameBrowser->GetSelectedOption()-Settings.GameListOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
gameClicked = gameBrowser ? gameBrowser->GetClickedOption() : -1;
|
||||||
if ((gameClicked >= 0 && gameClicked < (s32) gameList.size()) || mountMethod != 0)
|
if ((gameClicked >= 0 && gameClicked < (s32) gameList.size()) || mountMethod != 0)
|
||||||
{
|
{
|
||||||
OpenClickedGame();
|
OpenClickedGame();
|
||||||
@ -1153,30 +1175,6 @@ void GameBrowseMenu::CheckDiscSlotUpdate()
|
|||||||
rockout(GetSelectedGame());
|
rockout(GetSelectedGame());
|
||||||
}
|
}
|
||||||
|
|
||||||
else if(categBtn->GetState() == STATE_CLICKED)
|
|
||||||
{
|
|
||||||
mainWindow->SetState(STATE_DISABLED);
|
|
||||||
CategorySwitchPrompt promptMenu;
|
|
||||||
promptMenu.SetAlignment(thAlign("center - category switch prompt align hor"), thAlign("middle - category switch prompt align ver"));
|
|
||||||
promptMenu.SetPosition(thInt("0 - category switch prompt pos x"), thInt("0 - category switch prompt pos y"));
|
|
||||||
promptMenu.SetEffect(EFFECT_FADE, 20);
|
|
||||||
mainWindow->Append(&promptMenu);
|
|
||||||
|
|
||||||
promptMenu.Show();
|
|
||||||
|
|
||||||
promptMenu.SetEffect(EFFECT_FADE, -20);
|
|
||||||
while(promptMenu.GetEffect() > 0) usleep(100);
|
|
||||||
mainWindow->Remove(&promptMenu);
|
|
||||||
categBtn->ResetState();
|
|
||||||
mainWindow->SetState(STATE_DEFAULT);
|
|
||||||
if(promptMenu.categoriesChanged())
|
|
||||||
{
|
|
||||||
wString oldFilter(gameList.GetCurrentFilter());
|
|
||||||
gameList.FilterList(oldFilter.c_str());
|
|
||||||
ReloadBrowser();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(DiscDriveCoverOld != DiscDriveCover)
|
if(DiscDriveCoverOld != DiscDriveCover)
|
||||||
{
|
{
|
||||||
if(DiscDriveCover & 0x02)
|
if(DiscDriveCover & 0x02)
|
||||||
@ -1220,34 +1218,6 @@ void GameBrowseMenu::UpdateClock()
|
|||||||
clockTime->SetText(theTime);
|
clockTime->SetText(theTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
int GameBrowseMenu::GetSelectedGame()
|
|
||||||
{
|
|
||||||
if(gameBrowser)
|
|
||||||
return gameBrowser->GetSelectedOption();
|
|
||||||
|
|
||||||
else if(gameCarousel)
|
|
||||||
return gameCarousel->GetSelectedOption();
|
|
||||||
|
|
||||||
else if(gameGrid)
|
|
||||||
return gameGrid->GetSelectedOption();
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int GameBrowseMenu::GetClickedGame()
|
|
||||||
{
|
|
||||||
if(gameBrowser)
|
|
||||||
return gameBrowser->GetClickedOption();
|
|
||||||
|
|
||||||
else if(gameCarousel)
|
|
||||||
return gameCarousel->GetClickedOption();
|
|
||||||
|
|
||||||
else if(gameGrid)
|
|
||||||
return gameGrid->GetClickedOption();
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GameBrowseMenu::UpdateGameInfoText(const u8 * gameId)
|
void GameBrowseMenu::UpdateGameInfoText(const u8 * gameId)
|
||||||
{
|
{
|
||||||
if(!gameId)
|
if(!gameId)
|
||||||
@ -1334,6 +1304,7 @@ int GameBrowseMenu::OpenClickedGame()
|
|||||||
}
|
}
|
||||||
|
|
||||||
rockout(gameSelected);
|
rockout(gameSelected);
|
||||||
|
if(gameBrowser) gameBrowser->SetState(STATE_DISABLED);
|
||||||
|
|
||||||
struct discHdr *header = (mountMethod ? dvdheader : gameList[gameSelected]);
|
struct discHdr *header = (mountMethod ? dvdheader : gameList[gameSelected]);
|
||||||
|
|
||||||
@ -1362,6 +1333,7 @@ int GameBrowseMenu::OpenClickedGame()
|
|||||||
gameSelected = GamePrompt->GetSelectedGame();
|
gameSelected = GamePrompt->GetSelectedGame();
|
||||||
delete GamePrompt;
|
delete GamePrompt;
|
||||||
SetState(STATE_DEFAULT);
|
SetState(STATE_DEFAULT);
|
||||||
|
if(gameBrowser) gameBrowser->SetState(STATE_DISABLED);
|
||||||
//update header and id if it was changed
|
//update header and id if it was changed
|
||||||
header = (mountMethod ? dvdheader : gameList[gameSelected]);
|
header = (mountMethod ? dvdheader : gameList[gameSelected]);
|
||||||
snprintf(IDfull, sizeof(IDfull), "%s", (char *) header->id);
|
snprintf(IDfull, sizeof(IDfull), "%s", (char *) header->id);
|
||||||
@ -1409,6 +1381,7 @@ int GameBrowseMenu::OpenClickedGame()
|
|||||||
|
|
||||||
rockout(-1, -1);
|
rockout(-1, -1);
|
||||||
mountMethod = 0;
|
mountMethod = 0;
|
||||||
|
if(gameBrowser) gameBrowser->SetState(STATE_DEFAULT);
|
||||||
|
|
||||||
if (searchBar)
|
if (searchBar)
|
||||||
{
|
{
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
#ifndef GAMEBROWSEMENU_HPP_
|
#ifndef GAMEBROWSEMENU_HPP_
|
||||||
#define GAMEBROWSEMENU_HPP_
|
#define GAMEBROWSEMENU_HPP_
|
||||||
|
|
||||||
#include "GUI/gui.h"
|
|
||||||
#include "GUI/gui_gamebrowser.h"
|
#include "GUI/gui_gamebrowser.h"
|
||||||
#include "GUI/gui_gamegrid.h"
|
|
||||||
#include "GUI/gui_gamecarousel.h"
|
|
||||||
#include "GUI/gui_searchbar.h"
|
#include "GUI/gui_searchbar.h"
|
||||||
#include "utils/ThreadedTask.hpp"
|
#include "utils/ThreadedTask.hpp"
|
||||||
|
|
||||||
@ -12,14 +9,13 @@ class GameBrowseMenu : public GuiWindow
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GameBrowseMenu();
|
GameBrowseMenu();
|
||||||
~GameBrowseMenu();
|
virtual ~GameBrowseMenu();
|
||||||
static int Execute();
|
static int Execute();
|
||||||
void ReloadBrowser();
|
void ReloadBrowser();
|
||||||
protected:
|
private:
|
||||||
int MainLoop();
|
int MainLoop();
|
||||||
int OpenClickedGame();
|
int OpenClickedGame();
|
||||||
int GetSelectedGame();
|
int GetSelectedGame() { return (gameBrowser ? gameBrowser->GetSelectedOption() : -1); }
|
||||||
int GetClickedGame();
|
|
||||||
void UpdateGameInfoText(const u8 * gameId);
|
void UpdateGameInfoText(const u8 * gameId);
|
||||||
void LoadCover(struct discHdr *header);
|
void LoadCover(struct discHdr *header);
|
||||||
void CheckAlternativeDOL(const char * IDfull);
|
void CheckAlternativeDOL(const char * IDfull);
|
||||||
@ -41,8 +37,6 @@ class GameBrowseMenu : public GuiWindow
|
|||||||
std::vector<GuiButton *> ToolBar;
|
std::vector<GuiButton *> ToolBar;
|
||||||
|
|
||||||
GuiGameBrowser * gameBrowser;
|
GuiGameBrowser * gameBrowser;
|
||||||
GuiGameGrid * gameGrid;
|
|
||||||
GuiGameCarousel * gameCarousel;
|
|
||||||
GuiSearchBar * searchBar;
|
GuiSearchBar * searchBar;
|
||||||
|
|
||||||
GuiImageData * btnInstall;
|
GuiImageData * btnInstall;
|
||||||
|
@ -10,7 +10,7 @@ class WDMMenu : public GuiWindow
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
WDMMenu(const struct discHdr * header);
|
WDMMenu(const struct discHdr * header);
|
||||||
~WDMMenu();
|
virtual ~WDMMenu();
|
||||||
int GetChoice();
|
int GetChoice();
|
||||||
static int Show(const struct discHdr * header);
|
static int Show(const struct discHdr * header);
|
||||||
static u32 GetAlternateDolOffset() { return AlternateDolOffset; }
|
static u32 GetAlternateDolOffset() { return AlternateDolOffset; }
|
||||||
|
@ -71,8 +71,6 @@ extern const u32 gxdrawhooks[4];
|
|||||||
extern const u32 gxflushhooks[4];
|
extern const u32 gxflushhooks[4];
|
||||||
extern const u32 ossleepthreadhooks[4];
|
extern const u32 ossleepthreadhooks[4];
|
||||||
extern const u32 axnextframehooks[4];
|
extern const u32 axnextframehooks[4];
|
||||||
extern const u32 wpadbuttonsdownhooks[4];
|
|
||||||
extern const u32 wpadbuttonsdown2hooks[4];
|
|
||||||
|
|
||||||
void SetCheatFilepath(const char * path)
|
void SetCheatFilepath(const char * path)
|
||||||
{
|
{
|
||||||
|
@ -36,72 +36,72 @@
|
|||||||
//#include "main.h"
|
//#include "main.h"
|
||||||
|
|
||||||
u32 hooktype = 0;
|
u32 hooktype = 0;
|
||||||
|
|
||||||
extern const char * CheatFilepath;
|
extern const char * CheatFilepath;
|
||||||
|
|
||||||
extern void patchhook(u32 address, u32 len);
|
extern void patchhook(u32 address, u32 len);
|
||||||
extern void patchhook2(u32 address, u32 len);
|
//extern void patchhook2(u32 address, u32 len);
|
||||||
extern void patchhook3(u32 address, u32 len);
|
//extern void patchhook3(u32 address, u32 len);
|
||||||
|
|
||||||
extern void multidolpatchone(u32 address, u32 len);
|
//extern void multidolpatchone(u32 address, u32 len);
|
||||||
extern void multidolpatchtwo(u32 address, u32 len);
|
//extern void multidolpatchtwo(u32 address, u32 len);
|
||||||
|
|
||||||
extern void regionfreejap(u32 address, u32 len);
|
//extern void regionfreejap(u32 address, u32 len);
|
||||||
extern void regionfreeusa(u32 address, u32 len);
|
//extern void regionfreeusa(u32 address, u32 len);
|
||||||
extern void regionfreepal(u32 address, u32 len);
|
//extern void regionfreepal(u32 address, u32 len);
|
||||||
|
|
||||||
extern void removehealthcheck(u32 address, u32 len);
|
//extern void removehealthcheck(u32 address, u32 len);
|
||||||
|
|
||||||
extern void copyflagcheck1(u32 address, u32 len);
|
//extern void copyflagcheck1(u32 address, u32 len);
|
||||||
extern void copyflagcheck2(u32 address, u32 len);
|
//extern void copyflagcheck2(u32 address, u32 len);
|
||||||
extern void copyflagcheck3(u32 address, u32 len);
|
//extern void copyflagcheck3(u32 address, u32 len);
|
||||||
extern void copyflagcheck4(u32 address, u32 len);
|
//extern void copyflagcheck4(u32 address, u32 len);
|
||||||
extern void copyflagcheck5(u32 address, u32 len);
|
//extern void copyflagcheck5(u32 address, u32 len);
|
||||||
|
|
||||||
extern void patchupdatecheck(u32 address, u32 len);
|
//extern void patchupdatecheck(u32 address, u32 len);
|
||||||
|
|
||||||
extern void movedvdhooks(u32 address, u32 len);
|
//extern void movedvdhooks(u32 address, u32 len);
|
||||||
|
|
||||||
extern void multidolhook(u32 address);
|
extern void multidolhook(u32 address);
|
||||||
extern void langvipatch(u32 address, u32 len, u8 langbyte);
|
extern void langvipatch(u32 address, u32 len, u8 langbyte);
|
||||||
extern void vipatch(u32 address, u32 len);
|
extern void vipatch(u32 address, u32 len);
|
||||||
|
|
||||||
static const u32 multidolpatch1[2] = { 0x3C03FFB4, 0x28004F43 };
|
//static const u32 multidolpatch1[2] = { 0x3C03FFB4, 0x28004F43 };
|
||||||
|
|
||||||
static const u32 healthcheckhook[2] = { 0x41810010, 0x881D007D };
|
//static const u32 healthcheckhook[2] = { 0x41810010, 0x881D007D };
|
||||||
|
|
||||||
static const u32 updatecheckhook[3] = { 0x80650050, 0x80850054, 0xA0A50058 };
|
//static const u32 updatecheckhook[3] = { 0x80650050, 0x80850054, 0xA0A50058 };
|
||||||
|
|
||||||
static const u32 multidolpatch2[2] = { 0x3F608000, 0x807B0018 };
|
//static const u32 multidolpatch2[2] = { 0x3F608000, 0x807B0018 };
|
||||||
|
|
||||||
static const u32 recoveryhooks[3] = { 0xA00100AC, 0x5400073E, 0x2C00000F };
|
//static const u32 recoveryhooks[3] = { 0xA00100AC, 0x5400073E, 0x2C00000F };
|
||||||
|
|
||||||
static const u32 nocopyflag1[3] = { 0x540007FF, 0x4182001C, 0x80630068 };
|
//static const u32 nocopyflag1[3] = { 0x540007FF, 0x4182001C, 0x80630068 };
|
||||||
|
|
||||||
static const u32 nocopyflag2[3] = { 0x540007FF, 0x41820024, 0x387E12E2 };
|
//static const u32 nocopyflag2[3] = { 0x540007FF, 0x41820024, 0x387E12E2 };
|
||||||
|
|
||||||
// this one is for the GH3 and VC saves
|
// this one is for the GH3 and VC saves
|
||||||
//static const u32 nocopyflag3[5] = {
|
//static const u32 nocopyflag3[5] = {
|
||||||
// 0x2C030000, 0x40820010, 0x88010020, 0x28000002, 0x41820234
|
// 0x2C030000, 0x40820010, 0x88010020, 0x28000002, 0x41820234
|
||||||
//};
|
//};
|
||||||
|
|
||||||
static const u32 nocopyflag3[5] = { 0x2C030000, 0x41820200, 0x48000058, 0x38610100 };
|
//static const u32 nocopyflag3[5] = { 0x2C030000, 0x41820200, 0x48000058, 0x38610100 };
|
||||||
// this removes the display warning for no copy VC and GH3 saves
|
// this removes the display warning for no copy VC and GH3 saves
|
||||||
static const u32 nocopyflag4[4] = { 0x80010008, 0x2C000000, 0x4182000C, 0x3BE00001 };
|
//static const u32 nocopyflag4[4] = { 0x80010008, 0x2C000000, 0x4182000C, 0x3BE00001 };
|
||||||
|
|
||||||
static const u32 nocopyflag5[3] = { 0x801D0024, 0x540007FF, 0x41820024 };
|
//static const u32 nocopyflag5[3] = { 0x801D0024, 0x540007FF, 0x41820024 };
|
||||||
|
|
||||||
static const u32 movedvdpatch[3] = { 0x2C040000, 0x41820120, 0x3C608109 };
|
//static const u32 movedvdpatch[3] = { 0x2C040000, 0x41820120, 0x3C608109 };
|
||||||
|
|
||||||
static const u32 regionfreehooks[5] = { 0x7C600774, 0x2C000001, 0x41820030, 0x40800010, 0x2C000000 };
|
//static const u32 regionfreehooks[5] = { 0x7C600774, 0x2C000001, 0x41820030, 0x40800010, 0x2C000000 };
|
||||||
|
|
||||||
static const u32 cIOScode[16] = { 0x7f06c378, 0x7f25cb78, 0x387e02c0, 0x4cc63182 };
|
//static const u32 cIOScode[16] = { 0x7f06c378, 0x7f25cb78, 0x387e02c0, 0x4cc63182 };
|
||||||
|
|
||||||
static const u32 cIOSblock[16] = { 0x2C1800F9, 0x40820008, 0x3B000024 };
|
//static const u32 cIOSblock[16] = { 0x2C1800F9, 0x40820008, 0x3B000024 };
|
||||||
|
|
||||||
static const u32 fwritepatch[8] = { 0x9421FFD0, 0x7C0802A6, 0x90010034, 0xBF210014, 0x7C9B2378, 0x7CDC3378, 0x7C7A1B78,
|
//static const u32 fwritepatch[8] = { 0x9421FFD0, 0x7C0802A6, 0x90010034, 0xBF210014, 0x7C9B2378, 0x7CDC3378, 0x7C7A1B78,
|
||||||
0x7CB92B78 // bushing fwrite
|
// 0x7CB92B78 // bushing fwrite
|
||||||
};
|
// };
|
||||||
|
|
||||||
static const u32 vipatchcode[3] = { 0x4182000C, 0x4180001C, 0x48000018 };
|
static const u32 vipatchcode[3] = { 0x4182000C, 0x4180001C, 0x48000018 };
|
||||||
|
|
||||||
@ -131,9 +131,9 @@ const u32 multidolchanhooks[4] = { 0x4200FFF4, 0x48000004, 0x38800000, 0x4E80002
|
|||||||
|
|
||||||
const u32 langpatch[3] = { 0x7C600775, 0x40820010, 0x38000000 };
|
const u32 langpatch[3] = { 0x7C600775, 0x40820010, 0x38000000 };
|
||||||
|
|
||||||
static const u32 oldpatch002[3] = { 0x2C000000, 0x40820214, 0x3C608000 };
|
//static const u32 oldpatch002[3] = { 0x2C000000, 0x40820214, 0x3C608000 };
|
||||||
|
|
||||||
static const u32 newpatch002[3] = { 0x2C000000, 0x48000214, 0x3C608000 };
|
//static const u32 newpatch002[3] = { 0x2C000000, 0x48000214, 0x3C608000 };
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
bool dogamehooks(void *addr, u32 len)
|
bool dogamehooks(void *addr, u32 len)
|
||||||
|
@ -30,7 +30,7 @@ class CategoryPrompt : public GuiWindow, public sigslot::has_slots<>
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CategoryPrompt(const string &title);
|
CategoryPrompt(const string &title);
|
||||||
~CategoryPrompt();
|
virtual ~CategoryPrompt();
|
||||||
int Show();
|
int Show();
|
||||||
bool categoriesChanged() const { return changed; }
|
bool categoriesChanged() const { return changed; }
|
||||||
protected:
|
protected:
|
||||||
|
@ -62,7 +62,7 @@ void CategorySelectPrompt::onBrowserRefresh()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
browser->AddEntrie(GameCategories.CategoryList.getCurrentName(), checked);
|
browser->AddEntrie(tr(GameCategories.CategoryList.getCurrentName().c_str()), checked);
|
||||||
}
|
}
|
||||||
while(GameCategories.CategoryList.goToNext());
|
while(GameCategories.CategoryList.goToNext());
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ void CategorySwitchPrompt::onBrowserRefresh()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
browser->AddEntrie(GameCategories.CategoryList.getCurrentName(), checked);
|
browser->AddEntrie(tr(GameCategories.CategoryList.getCurrentName().c_str()), checked);
|
||||||
}
|
}
|
||||||
while(GameCategories.CategoryList.goToNext());
|
while(GameCategories.CategoryList.goToNext());
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ class CheckboxPrompt : private PromptWindow, public sigslot::has_slots<>
|
|||||||
//! Constructor
|
//! Constructor
|
||||||
CheckboxPrompt(const char * title = 0, const char *msg = 0);
|
CheckboxPrompt(const char * title = 0, const char *msg = 0);
|
||||||
//! Destructor
|
//! Destructor
|
||||||
~CheckboxPrompt();
|
virtual ~CheckboxPrompt();
|
||||||
//! Add new checkbox
|
//! Add new checkbox
|
||||||
void AddCheckBox(const char *text);
|
void AddCheckBox(const char *text);
|
||||||
//! Default function to get the button pressed
|
//! Default function to get the button pressed
|
||||||
|
@ -181,7 +181,7 @@ GameWindow::GameWindow(int Selected)
|
|||||||
Append(FavoriteBtn[i]);
|
Append(FavoriteBtn[i]);
|
||||||
}
|
}
|
||||||
//check if unlocked
|
//check if unlocked
|
||||||
if (mountMethod != 2 && (Settings.godmode || !(Settings.ParentalBlocks & BLOCK_GAME_INSTALL)))
|
if (mountMethod != 2 && (Settings.godmode || !(Settings.ParentalBlocks & BLOCK_GAME_SETTINGS)))
|
||||||
{
|
{
|
||||||
backBtn->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM);
|
backBtn->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM);
|
||||||
backBtn->SetPosition(-50, -40);
|
backBtn->SetPosition(-50, -40);
|
||||||
|
@ -11,7 +11,7 @@ class GameWindow : public GuiWindow
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GameWindow(int GameSelected);
|
GameWindow(int GameSelected);
|
||||||
~GameWindow();
|
virtual ~GameWindow();
|
||||||
int Show();
|
int Show();
|
||||||
int GetSelectedGame() { return gameSelected; };
|
int GetSelectedGame() { return gameSelected; };
|
||||||
void SetGameBrowseMenu(GameBrowseMenu *m) { browserMenu = m; };
|
void SetGameBrowseMenu(GameBrowseMenu *m) { browserMenu = m; };
|
||||||
|
@ -34,7 +34,7 @@ class HomebrewPrompt : public PromptWindow, public sigslot::has_slots<>
|
|||||||
HomebrewPrompt(const char *name, const char *coder, const char *version,
|
HomebrewPrompt(const char *name, const char *coder, const char *version,
|
||||||
const char *release_date, const char *long_description,
|
const char *release_date, const char *long_description,
|
||||||
GuiImageData * iconImgData, u64 filesize);
|
GuiImageData * iconImgData, u64 filesize);
|
||||||
~HomebrewPrompt();
|
virtual ~HomebrewPrompt();
|
||||||
int MainLoop();
|
int MainLoop();
|
||||||
private:
|
private:
|
||||||
void onListChange(int SelItem, int SelInd);
|
void onListChange(int SelItem, int SelInd);
|
||||||
|
@ -32,7 +32,7 @@ class PromptWindow : public GuiWindow
|
|||||||
//! Constructor
|
//! Constructor
|
||||||
PromptWindow(const char *title = 0, const char *msg = 0);
|
PromptWindow(const char *title = 0, const char *msg = 0);
|
||||||
//! Destructor
|
//! Destructor
|
||||||
~PromptWindow();
|
virtual ~PromptWindow();
|
||||||
//! Set title text
|
//! Set title text
|
||||||
void SetTitle(const char *text) { titleTxt->SetText(text); };
|
void SetTitle(const char *text) { titleTxt->SetText(text); };
|
||||||
//! Set message text
|
//! Set message text
|
||||||
|
@ -45,13 +45,8 @@
|
|||||||
|
|
||||||
/*** Extern variables ***/
|
/*** Extern variables ***/
|
||||||
s32 gameStart = 0;
|
s32 gameStart = 0;
|
||||||
extern float gamesize;
|
|
||||||
extern u8 shutdown;
|
extern u8 shutdown;
|
||||||
extern u8 reset;
|
extern u8 reset;
|
||||||
extern u8 mountMethod;
|
|
||||||
extern struct discHdr *dvdheader;
|
|
||||||
extern char game_partition[6];
|
|
||||||
extern int connection;
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* OnScreenNumpad
|
* OnScreenNumpad
|
||||||
|
@ -123,6 +123,8 @@ void CSettings::SetDefault()
|
|||||||
EnabledCategories.resize(1);
|
EnabledCategories.resize(1);
|
||||||
EnabledCategories[0] = 0;
|
EnabledCategories[0] = 0;
|
||||||
Wiinnertag = OFF;
|
Wiinnertag = OFF;
|
||||||
|
SelectedGame = 0;
|
||||||
|
GameListOffset = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CSettings::Load()
|
bool CSettings::Load()
|
||||||
@ -279,6 +281,8 @@ bool CSettings::Save()
|
|||||||
fprintf(file, "\n");
|
fprintf(file, "\n");
|
||||||
fprintf(file, "Wiinnertag = %d\n", Wiinnertag);
|
fprintf(file, "Wiinnertag = %d\n", Wiinnertag);
|
||||||
fprintf(file, "WiinnertagPath = %s\n", WiinnertagPath);
|
fprintf(file, "WiinnertagPath = %s\n", WiinnertagPath);
|
||||||
|
fprintf(file, "SelectedGame = %d\n", SelectedGame);
|
||||||
|
fprintf(file, "GameListOffset = %d\n", GameListOffset);
|
||||||
fclose(file);
|
fclose(file);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -540,6 +544,14 @@ bool CSettings::SetSetting(char *name, char *value)
|
|||||||
{
|
{
|
||||||
if (sscanf(value, "%d", &i) == 1) Wiinnertag = i;
|
if (sscanf(value, "%d", &i) == 1) Wiinnertag = i;
|
||||||
}
|
}
|
||||||
|
else if(strcmp(name, "SelectedGame") == 0)
|
||||||
|
{
|
||||||
|
if (sscanf(value, "%d", &i) == 1) SelectedGame = i;
|
||||||
|
}
|
||||||
|
else if(strcmp(name, "GameListOffset") == 0)
|
||||||
|
{
|
||||||
|
if (sscanf(value, "%d", &i) == 1) GameListOffset = i;
|
||||||
|
}
|
||||||
else if (strcmp(name, "InstallPartitions") == 0)
|
else if (strcmp(name, "InstallPartitions") == 0)
|
||||||
{
|
{
|
||||||
InstallPartitions = strtoul(value, 0, 16);
|
InstallPartitions = strtoul(value, 0, 16);
|
||||||
|
@ -121,6 +121,8 @@ class CSettings
|
|||||||
f32 WSFactor;
|
f32 WSFactor;
|
||||||
f32 FontScaleFactor;
|
f32 FontScaleFactor;
|
||||||
short Wiinnertag;
|
short Wiinnertag;
|
||||||
|
short SelectedGame;
|
||||||
|
short GameListOffset;
|
||||||
std::vector<u32> EnabledCategories;
|
std::vector<u32> EnabledCategories;
|
||||||
protected:
|
protected:
|
||||||
bool ValidVersion(FILE * file);
|
bool ValidVersion(FILE * file);
|
||||||
|
@ -172,6 +172,7 @@ enum
|
|||||||
BLOCK_CATEGORIES_MOD = 0x010000,
|
BLOCK_CATEGORIES_MOD = 0x010000,
|
||||||
BLOCK_FEATURE_SETTINGS = 0x020000,
|
BLOCK_FEATURE_SETTINGS = 0x020000,
|
||||||
BLOCK_HARD_DRIVE_SETTINGS = 0x040000,
|
BLOCK_HARD_DRIVE_SETTINGS = 0x040000,
|
||||||
|
BLOCK_CATEGORIES_MENU = 0x080000,
|
||||||
BLOCK_ALL = 0xFFFFFFFF,
|
BLOCK_ALL = 0xFFFFFFFF,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -30,7 +30,6 @@ class CustomPathsSM : public SettingsMenu
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CustomPathsSM();
|
CustomPathsSM();
|
||||||
virtual int GetType() { return CCustomPathsSM; };
|
|
||||||
protected:
|
protected:
|
||||||
void SetOptionValues();
|
void SetOptionValues();
|
||||||
int GetMenuInternal();
|
int GetMenuInternal();
|
||||||
|
@ -30,7 +30,6 @@ class FeatureSettingsMenu : public SettingsMenu
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FeatureSettingsMenu();
|
FeatureSettingsMenu();
|
||||||
virtual int GetType() { return CFeatureSettings; };
|
|
||||||
protected:
|
protected:
|
||||||
void SetOptionValues();
|
void SetOptionValues();
|
||||||
int GetMenuInternal();
|
int GetMenuInternal();
|
||||||
|
@ -354,7 +354,7 @@ void FlyingButtonsMenu::ShowButtonsEffects(int effect, int effect_speed)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
//! Don't lock on fade in for initiation purpose
|
//! Don't lock on fade in for initiation purpose
|
||||||
if(effect & EFFECT_FADE && effect_speed > 0)
|
if((effect & EFFECT_FADE) && effect_speed > 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
while (parentElement && MainButton[FirstItem]->GetEffect() > 0)
|
while (parentElement && MainButton[FirstItem]->GetEffect() > 0)
|
||||||
|
@ -34,7 +34,7 @@ class FlyingButtonsMenu : public GuiWindow
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FlyingButtonsMenu(const char * menu_title);
|
FlyingButtonsMenu(const char * menu_title);
|
||||||
~FlyingButtonsMenu();
|
virtual ~FlyingButtonsMenu();
|
||||||
virtual int MainLoop();
|
virtual int MainLoop();
|
||||||
virtual void HideMenu();
|
virtual void HideMenu();
|
||||||
virtual void ShowMenu();
|
virtual void ShowMenu();
|
||||||
|
@ -30,8 +30,7 @@ class GuiSettingsMenu : public SettingsMenu
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GuiSettingsMenu();
|
GuiSettingsMenu();
|
||||||
~GuiSettingsMenu();
|
virtual ~GuiSettingsMenu();
|
||||||
virtual int GetType() { return CGUISettingsMenu; };
|
|
||||||
protected:
|
protected:
|
||||||
void SetOptionValues();
|
void SetOptionValues();
|
||||||
int GetMenuInternal();
|
int GetMenuInternal();
|
||||||
|
@ -31,8 +31,7 @@ class GameLoadSM : public SettingsMenu
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GameLoadSM(const char * GameID);
|
GameLoadSM(const char * GameID);
|
||||||
~GameLoadSM();
|
virtual ~GameLoadSM();
|
||||||
virtual int GetType() { return CGameLoadSM; };
|
|
||||||
protected:
|
protected:
|
||||||
void SetDefaultConfig();
|
void SetDefaultConfig();
|
||||||
void SetOptionNames();
|
void SetOptionNames();
|
||||||
|
@ -100,6 +100,11 @@ void GameSettingsMenu::CreateSettingsMenu(int menuNr)
|
|||||||
//! Categories
|
//! Categories
|
||||||
else if(menuNr == Idx++)
|
else if(menuNr == Idx++)
|
||||||
{
|
{
|
||||||
|
if (!Settings.godmode && (Settings.ParentalBlocks & BLOCK_CATEGORIES_MENU))
|
||||||
|
{
|
||||||
|
WindowPrompt(tr( "Permission denied." ), tr( "Console must be unlocked for this option." ), tr( "OK" ));
|
||||||
|
return;
|
||||||
|
}
|
||||||
HideMenu();
|
HideMenu();
|
||||||
Remove(backBtn);
|
Remove(backBtn);
|
||||||
ResumeGui();
|
ResumeGui();
|
||||||
@ -149,24 +154,6 @@ void GameSettingsMenu::CreateSettingsMenu(int menuNr)
|
|||||||
|
|
||||||
void GameSettingsMenu::DeleteSettingsMenu()
|
void GameSettingsMenu::DeleteSettingsMenu()
|
||||||
{
|
{
|
||||||
if(!CurrentMenu)
|
delete CurrentMenu;
|
||||||
return;
|
|
||||||
|
|
||||||
int type = CurrentMenu->GetType();
|
|
||||||
|
|
||||||
switch(type)
|
|
||||||
{
|
|
||||||
case CGameLoadSM:
|
|
||||||
delete ((GameLoadSM *) CurrentMenu);
|
|
||||||
break;
|
|
||||||
case CUninstallSM:
|
|
||||||
delete ((UninstallSM *) CurrentMenu);
|
|
||||||
break;
|
|
||||||
case CSettingsMenu:
|
|
||||||
default:
|
|
||||||
delete CurrentMenu;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
CurrentMenu = NULL;
|
CurrentMenu = NULL;
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ class GameSettingsMenu : public FlyingButtonsMenu
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GameSettingsMenu(GameBrowseMenu *parent, struct discHdr * header);
|
GameSettingsMenu(GameBrowseMenu *parent, struct discHdr * header);
|
||||||
~GameSettingsMenu();
|
virtual ~GameSettingsMenu();
|
||||||
static int Show(GameBrowseMenu *parent, struct discHdr *header);
|
static int Show(GameBrowseMenu *parent, struct discHdr *header);
|
||||||
protected:
|
protected:
|
||||||
virtual void CreateSettingsMenu(int index);
|
virtual void CreateSettingsMenu(int index);
|
||||||
|
@ -261,39 +261,6 @@ void GlobalSettings::CreateSettingsMenu(int menuNr)
|
|||||||
|
|
||||||
void GlobalSettings::DeleteSettingsMenu()
|
void GlobalSettings::DeleteSettingsMenu()
|
||||||
{
|
{
|
||||||
if(!CurrentMenu)
|
delete CurrentMenu;
|
||||||
return;
|
|
||||||
|
|
||||||
int type = CurrentMenu->GetType();
|
|
||||||
|
|
||||||
switch(type)
|
|
||||||
{
|
|
||||||
case CGUISettingsMenu:
|
|
||||||
delete ((GuiSettingsMenu *) CurrentMenu);
|
|
||||||
break;
|
|
||||||
case CLoaderSettings:
|
|
||||||
delete ((LoaderSettings *) CurrentMenu);
|
|
||||||
break;
|
|
||||||
case CParentalControlSM:
|
|
||||||
delete ((ParentalControlSM *) CurrentMenu);
|
|
||||||
break;
|
|
||||||
case CSoundSettingsMenu:
|
|
||||||
delete ((SoundSettingsMenu *) CurrentMenu);
|
|
||||||
break;
|
|
||||||
case CCustomPathsSM:
|
|
||||||
delete ((CustomPathsSM *) CurrentMenu);
|
|
||||||
break;
|
|
||||||
case CFeatureSettings:
|
|
||||||
delete ((FeatureSettingsMenu *) CurrentMenu);
|
|
||||||
break;
|
|
||||||
case CHardDriveSM:
|
|
||||||
delete ((HardDriveSM *) CurrentMenu);
|
|
||||||
break;
|
|
||||||
case CSettingsMenu:
|
|
||||||
default:
|
|
||||||
delete CurrentMenu;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
CurrentMenu = NULL;
|
CurrentMenu = NULL;
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ class GlobalSettings : public FlyingButtonsMenu
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GlobalSettings();
|
GlobalSettings();
|
||||||
~GlobalSettings();
|
virtual ~GlobalSettings();
|
||||||
static int Show();
|
static int Show();
|
||||||
protected:
|
protected:
|
||||||
virtual void CreateSettingsMenu(int index);
|
virtual void CreateSettingsMenu(int index);
|
||||||
|
@ -30,8 +30,7 @@ class HardDriveSM : public SettingsMenu
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
HardDriveSM();
|
HardDriveSM();
|
||||||
~HardDriveSM();
|
virtual ~HardDriveSM();
|
||||||
virtual int GetType() { return CHardDriveSM; };
|
|
||||||
protected:
|
protected:
|
||||||
void SetOptionValues();
|
void SetOptionValues();
|
||||||
int GetMenuInternal();
|
int GetMenuInternal();
|
||||||
|
@ -30,7 +30,6 @@ class LoaderSettings : public SettingsMenu
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LoaderSettings();
|
LoaderSettings();
|
||||||
virtual int GetType() { return CLoaderSettings; };
|
|
||||||
protected:
|
protected:
|
||||||
void SetOptionValues();
|
void SetOptionValues();
|
||||||
int GetMenuInternal();
|
int GetMenuInternal();
|
||||||
|
@ -74,6 +74,7 @@ ParentalControlSM::ParentalControlSM()
|
|||||||
Options->SetName(Idx++, "%s", tr( "Block Cover Downloads" ));
|
Options->SetName(Idx++, "%s", tr( "Block Cover Downloads" ));
|
||||||
Options->SetName(Idx++, "%s", tr( "Block Game Install" ));
|
Options->SetName(Idx++, "%s", tr( "Block Game Install" ));
|
||||||
Options->SetName(Idx++, "%s", tr( "Block GameID Change" ));
|
Options->SetName(Idx++, "%s", tr( "Block GameID Change" ));
|
||||||
|
Options->SetName(Idx++, "%s", tr( "Block Categories Menu" ));
|
||||||
Options->SetName(Idx++, "%s", tr( "Block Categories Modify" ));
|
Options->SetName(Idx++, "%s", tr( "Block Categories Modify" ));
|
||||||
|
|
||||||
SetOptionValues();
|
SetOptionValues();
|
||||||
@ -157,6 +158,9 @@ void ParentalControlSM::SetOptionValues()
|
|||||||
//! Settings: Block GameID Change
|
//! Settings: Block GameID Change
|
||||||
Options->SetValue(Idx++, "%s", tr(OnOffText[((Settings.ParentalBlocks & BLOCK_GAMEID_CHANGE) != 0)]));
|
Options->SetValue(Idx++, "%s", tr(OnOffText[((Settings.ParentalBlocks & BLOCK_GAMEID_CHANGE) != 0)]));
|
||||||
|
|
||||||
|
//! Settings: Block Categories Menu
|
||||||
|
Options->SetValue(Idx++, "%s", tr(OnOffText[((Settings.ParentalBlocks & BLOCK_CATEGORIES_MENU) != 0)]));
|
||||||
|
|
||||||
//! Settings: Block Categories Modify
|
//! Settings: Block Categories Modify
|
||||||
Options->SetValue(Idx++, "%s", tr(OnOffText[((Settings.ParentalBlocks & BLOCK_CATEGORIES_MOD) != 0)]));
|
Options->SetValue(Idx++, "%s", tr(OnOffText[((Settings.ParentalBlocks & BLOCK_CATEGORIES_MOD) != 0)]));
|
||||||
}
|
}
|
||||||
@ -334,6 +338,12 @@ int ParentalControlSM::GetMenuInternal()
|
|||||||
Settings.ParentalBlocks ^= BLOCK_GAMEID_CHANGE;
|
Settings.ParentalBlocks ^= BLOCK_GAMEID_CHANGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//! Settings: Block Categories Menu
|
||||||
|
else if (ret == ++Idx)
|
||||||
|
{
|
||||||
|
Settings.ParentalBlocks ^= BLOCK_CATEGORIES_MENU;
|
||||||
|
}
|
||||||
|
|
||||||
//! Settings: Block Categories Modify
|
//! Settings: Block Categories Modify
|
||||||
else if (ret == ++Idx)
|
else if (ret == ++Idx)
|
||||||
{
|
{
|
||||||
|
@ -30,7 +30,6 @@ class ParentalControlSM : public SettingsMenu
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ParentalControlSM();
|
ParentalControlSM();
|
||||||
virtual int GetType() { return CParentalControlSM; };
|
|
||||||
protected:
|
protected:
|
||||||
void SetOptionValues();
|
void SetOptionValues();
|
||||||
int GetMenuInternal();
|
int GetMenuInternal();
|
||||||
|
@ -28,28 +28,13 @@
|
|||||||
#include "GUI/gui_optionbrowser.h"
|
#include "GUI/gui_optionbrowser.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
CSettingsMenu = 0,
|
|
||||||
CGUISettingsMenu,
|
|
||||||
CLoaderSettings,
|
|
||||||
CParentalControlSM,
|
|
||||||
CSoundSettingsMenu,
|
|
||||||
CCustomPathsSM,
|
|
||||||
CGameLoadSM,
|
|
||||||
CUninstallSM,
|
|
||||||
CFeatureSettings,
|
|
||||||
CHardDriveSM,
|
|
||||||
};
|
|
||||||
|
|
||||||
class SettingsMenu : public GuiWindow
|
class SettingsMenu : public GuiWindow
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SettingsMenu(const char * title, OptionList * option, int returnTo);
|
SettingsMenu(const char * title, OptionList * option, int returnTo);
|
||||||
~SettingsMenu();
|
virtual ~SettingsMenu();
|
||||||
int GetClickedOption();
|
int GetClickedOption();
|
||||||
int GetMenu();
|
int GetMenu();
|
||||||
virtual int GetType() { return CSettingsMenu; }
|
|
||||||
protected:
|
protected:
|
||||||
virtual int GetMenuInternal() { return MENU_NONE; };
|
virtual int GetMenuInternal() { return MENU_NONE; };
|
||||||
int returnToMenu;
|
int returnToMenu;
|
||||||
|
@ -30,7 +30,6 @@ class SoundSettingsMenu : public SettingsMenu
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SoundSettingsMenu();
|
SoundSettingsMenu();
|
||||||
virtual int GetType() { return CSoundSettingsMenu; };
|
|
||||||
protected:
|
protected:
|
||||||
void SetOptionValues();
|
void SetOptionValues();
|
||||||
int GetMenuInternal();
|
int GetMenuInternal();
|
||||||
|
@ -30,7 +30,6 @@ class UninstallSM : public SettingsMenu
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
UninstallSM(struct discHdr * header);
|
UninstallSM(struct discHdr * header);
|
||||||
virtual int GetType() { return CUninstallSM; };
|
|
||||||
protected:
|
protected:
|
||||||
void SetOptionValues();
|
void SetOptionValues();
|
||||||
int GetMenuInternal();
|
int GetMenuInternal();
|
||||||
|
@ -30,9 +30,6 @@ extern "C"
|
|||||||
extern s32 MagicPatches(s32);
|
extern s32 MagicPatches(s32);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern char game_partition[6];
|
|
||||||
extern u8 load_from_fs;
|
|
||||||
|
|
||||||
//Wiilight stuff
|
//Wiilight stuff
|
||||||
static vu32 *_wiilight_reg = (u32*) 0xCD0000C0;
|
static vu32 *_wiilight_reg = (u32*) 0xCD0000C0;
|
||||||
void wiilight(int enable) // Toggle wiilight (thanks Bool for wiilight source)
|
void wiilight(int enable) // Toggle wiilight (thanks Bool for wiilight source)
|
||||||
|
@ -31,7 +31,7 @@ class ThemeDownloader : public FlyingButtonsMenu
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ThemeDownloader();
|
ThemeDownloader();
|
||||||
~ThemeDownloader();
|
virtual ~ThemeDownloader();
|
||||||
static int Run();
|
static int Run();
|
||||||
int MainLoop();
|
int MainLoop();
|
||||||
protected:
|
protected:
|
||||||
|
@ -34,7 +34,7 @@ class ThemeMenu : public FlyingButtonsMenu
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ThemeMenu();
|
ThemeMenu();
|
||||||
~ThemeMenu();
|
virtual ~ThemeMenu();
|
||||||
static int Run();
|
static int Run();
|
||||||
int MainLoop();
|
int MainLoop();
|
||||||
protected:
|
protected:
|
||||||
|
@ -14,8 +14,6 @@
|
|||||||
#include "patches/wip.h"
|
#include "patches/wip.h"
|
||||||
#include "settings/SettingsEnums.h"
|
#include "settings/SettingsEnums.h"
|
||||||
|
|
||||||
extern bool geckoinit;
|
|
||||||
|
|
||||||
/* Apploader function pointers */
|
/* Apploader function pointers */
|
||||||
typedef int (*app_main)(void **dst, int *size, int *offset);
|
typedef int (*app_main)(void **dst, int *size, int *offset);
|
||||||
typedef void (*app_init)(void(*report)(const char *fmt, ...));
|
typedef void (*app_init)(void(*report)(const char *fmt, ...));
|
||||||
|
@ -350,6 +350,7 @@ void PatchCountryStrings(void *Address, int Size)
|
|||||||
SearchPattern[0] = 0x01;
|
SearchPattern[0] = 0x01;
|
||||||
SearchPattern[1] = 0x55; // U
|
SearchPattern[1] = 0x55; // U
|
||||||
SearchPattern[2] = 0x53; // S
|
SearchPattern[2] = 0x53; // S
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (diskid[3])
|
switch (diskid[3])
|
||||||
@ -372,6 +373,7 @@ void PatchCountryStrings(void *Address, int Size)
|
|||||||
default:
|
default:
|
||||||
PatchData[1] = 0x55; // U
|
PatchData[1] = 0x55; // U
|
||||||
PatchData[2] = 0x53; // S
|
PatchData[2] = 0x53; // S
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (Size >= 4)
|
while (Size >= 4)
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user