*Changes in the Banner Class. Now loading the TPL files into memory and display from there.

This commit is contained in:
dimok321 2009-07-19 17:48:15 +00:00
parent 3d090a8bab
commit 47201c807a
25 changed files with 240 additions and 278 deletions

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: David Jelinek (djelinek@hotmail.com) \n" "Last-Translator: David Jelinek (djelinek@hotmail.com) \n"
"Language-Team: Last version on http://startgolf.tym.cz/czech.lang \n" "Language-Team: Last version on http://startgolf.tym.cz/czech.lang \n"
@ -493,6 +493,9 @@ msgstr "Vlevo"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Jako hlavní menu" msgstr "Jako hlavní menu"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "Venstre"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Ligesom wii-menuen" msgstr "Ligesom wii-menuen"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "Links"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Als systeemmenu" msgstr "Als systeemmenu"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "Deze dol als alt dol gebruiken?" msgstr "Deze dol als alt dol gebruiken?"

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr ""
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "" msgstr ""
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "Vasen"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Kuin wii-menu" msgstr "Kuin wii-menu"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: Kin8\n" "Last-Translator: Kin8\n"
"Language-Team: Badablek, Amour, ikya, OuahOuah & Kin8\n" "Language-Team: Badablek, Amour, ikya, OuahOuah & Kin8\n"
@ -493,6 +493,9 @@ msgstr "Gauche"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Menu système" msgstr "Menu système"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "Charger ce DOL comme DOL alternatif ?" msgstr "Charger ce DOL comme DOL alternatif ?"

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "Links"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Wie SysMenü" msgstr "Wie SysMenü"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: Tusk\n" "Last-Translator: Tusk\n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "Balra"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Mint a Rendszermenû" msgstr "Mint a Rendszermenû"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 23:50+0200\n" "PO-Revision-Date: 2009-07-18 23:50+0200\n"
"Last-Translator: Cambo \n" "Last-Translator: Cambo \n"
"Language-Team: FoxeJoe & Cambo\n" "Language-Team: FoxeJoe & Cambo\n"
@ -493,6 +493,9 @@ msgstr "Sinistra"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Come SysMenu" msgstr "Come SysMenu"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "Vuoi caricare questo dol come dol alternativo?" msgstr "Vuoi caricare questo dol come dol alternativo?"

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "左"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Like SysMenu" msgstr "Like SysMenu"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "왼쪽"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "시스템 메뉴처럼" msgstr "시스템 메뉴처럼"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "Venstre"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Lik Systemmeny" msgstr "Lik Systemmeny"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "Last denne DOL som alternativ DOL?" msgstr "Last denne DOL som alternativ DOL?"

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "Esquerda"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Igual ao Menu do Wii" msgstr "Igual ao Menu do Wii"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: Sky8000\n" "Last-Translator: Sky8000\n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "Esquerda"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Igual ao Menu da Wii" msgstr "Igual ao Menu da Wii"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: Kir\n" "Last-Translator: Kir\n"
"Language-Team: Kir\n" "Language-Team: Kir\n"
@ -493,6 +493,9 @@ msgstr "Налево"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "как SysMenu" msgstr "как SysMenu"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "左"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "同系统选单" msgstr "同系统选单"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "Izquierda"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Como Menú Sist." msgstr "Como Menú Sist."
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "¿Cargar este dol como dol alternativo?" msgstr "¿Cargar este dol como dol alternativo?"

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: Katsurou\n" "Last-Translator: Katsurou\n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "Vänster"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Som System-menyn" msgstr "Som System-menyn"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "左"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "同系統選單" msgstr "同系統選單"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "載入這個dol做為替代的dol?" msgstr "載入這個dol做為替代的dol?"

View File

@ -4,7 +4,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: 2009-07-19 12:57+0200\n" "POT-Creation-Date: 2009-07-19 19:46+0200\n"
"PO-Revision-Date: 2009-07-18 15:18+0200\n" "PO-Revision-Date: 2009-07-18 15:18+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -493,6 +493,9 @@ msgstr "Sol"
msgid "Like SysMenu" msgid "Like SysMenu"
msgstr "Sistem Menüsü Gibi" msgstr "Sistem Menüsü Gibi"
msgid "Load"
msgstr ""
msgid "Load this dol as alternate dol?" msgid "Load this dol as alternate dol?"
msgstr "" msgstr ""

View File

@ -6,72 +6,109 @@
***************************************************************************/ ***************************************************************************/
#include "gui_banner.h" #include "gui_banner.h"
GuiBanner::GuiBanner()
{
deg_beta=0.0;
}
GuiBanner::~GuiBanner()
{
}
GuiBanner::GuiBanner(const char *tplfilepath) GuiBanner::GuiBanner(const char *tplfilepath)
{ {
memory = NULL;
tplfilesize = 0;
width = 0;
height = 0;
FILE *tplfp = fopen(tplfilepath,"rb"); FILE *tplfp = fopen(tplfilepath,"rb");
if(tplfp !=NULL) if(tplfp !=NULL) {
{
unsigned short heighttemp = 0; unsigned short heighttemp = 0;
unsigned short widthtemp = 0; unsigned short widthtemp = 0;
fseek(tplfp , 0x14, SEEK_SET); fseek(tplfp , 0x14, SEEK_SET);
fread((void*)&heighttemp,1,2,tplfp); fread((void*)&heighttemp,1,2,tplfp);
fread((void*)&widthtemp,1,2,tplfp); fread((void*)&widthtemp,1,2,tplfp);
fseek (tplfp , 0 , SEEK_END);
tplfilesize = ftell (tplfp);
rewind (tplfp);
memory = memalign(32, tplfilesize);
if(!memory) {
fclose(tplfp);
return;
}
fread(memory, 1, tplfilesize, tplfp);
fclose(tplfp); fclose(tplfp);
filepath = tplfilepath; TPLFile tplfile;
int ret;
ret = TPL_OpenTPLFromMemory(&tplfile, memory, tplfilesize);
if(ret < 0) {
free(memory);
memory = NULL;
return;
}
ret = TPL_GetTexture(&tplfile,0,&texObj);
if(ret < 0) {
free(memory);
memory = NULL;
return;
}
TPL_CloseTPLFile(&tplfile);
width = widthtemp; width = widthtemp;
height = heighttemp; height = heighttemp;
widescreen = 0; widescreen = 0;
filecheck = true; filecheck = true;
}
else } else {
{
filecheck = false; filecheck = false;
fclose(tplfp); fclose(tplfp);
} }
} }
GuiBanner::GuiBanner(void *mem,u32 len,u16 w, u16 h) GuiBanner::GuiBanner(void *mem, u32 len, int w, int h)
{
if(memory !=NULL)
{ {
if(!mem || !len)
return;
memory = mem; memory = mem;
tplfilesize = len;
width = w; width = w;
height = h; height = h;
widescreen = 0;
filecheck = true; TPLFile tplfile;
free(mem);
int ret;
ret = TPL_OpenTPLFromMemory(&tplfile, memory, tplfilesize);
if(ret < 0) {
free(memory);
memory = NULL;
return;
} }
else ret = TPL_GetTexture(&tplfile,0,&texObj);
{ if(ret < 0) {
filecheck = false; free(memory);
free(mem); memory = NULL;
return;
}
TPL_CloseTPLFile(&tplfile);
filecheck = true;
} }
GuiBanner::~GuiBanner()
{
if(memory != NULL) {
free(memory);
memory = NULL;
}
} }
//void Menu_DrawTPL(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 distance,const char *filepath,f32 deg_alpha, f32 deg_beta, f32 scaleX, f32 scaleY, u8 alpha, bool shadow);
//void Menu_DrawTPLMem(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 distance,const void *memory,u32 len, f32 deg_alpha, f32 deg_beta, f32 scaleX, f32 scaleY, u8 alpha, bool shadow);
void GuiBanner::Draw() void GuiBanner::Draw()
{ {
LOCK(this); LOCK(this);
if(!filecheck ||!this->IsVisible()) if(!filecheck ||!this->IsVisible())
return; return;
float currScale = this->GetScale(); float currScale = this->GetScale();
//Menu_DrawTPL(50,70, 20, width, height, 50, filepath, 1, deg_beta, widescreen ? currScale*0.8 : currScale, currScale, 64, true);
Menu_DrawTPL(xoffset,yoffset, 50, width, height, 50, filepath, 0, deg_beta, widescreen ? currScale*0.8 : currScale, currScale, 64, true); Menu_DrawTPLImg(this->GetLeft(), this->GetTop(), 0, width, height, &texObj, imageangle, widescreen ? currScale*0.80 : currScale, currScale, this->GetAlpha(), xx1,yy1,xx2,yy2,xx3,yy3,xx4,yy4);
this->UpdateEffects(); this->UpdateEffects();
} }

View File

@ -13,17 +13,23 @@
class GuiBanner : public GuiImage class GuiBanner : public GuiImage
{ {
public: public:
GuiBanner(); //!Constructor
//!\param tplfilepath Path of the tpl file
GuiBanner(const char *tplfilepath); GuiBanner(const char *tplfilepath);
GuiBanner(void *mem,u32 len,u16 w, u16 h); //!Constructor
//!\param mem Memory of the loaded tpl
//!\param len Filesize of the tpl
//!\param w Width of the tpl
//!\param h Height of the tpl
GuiBanner(void *mem, u32 len, int w, int h);
//!Destructor
~GuiBanner(); ~GuiBanner();
void Draw(); void Draw();
private: protected:
f32 deg_beta; void * memory;
const char *filepath;
const void *memory;
bool filecheck; bool filecheck;
u32 tplfilesize;
GXTexObj texObj;
}; };
#endif /* _GUIBANNER_H_ */ #endif /* _GUIBANNER_H_ */

View File

@ -27,7 +27,8 @@ extern "C"
//! Extract opening.bnr from filepath to destpath //! Extract opening.bnr from filepath to destpath
//! Files extracted: banner.bin icon.bin and sound.bin //! Files extracted: banner.bin icon.bin and sound.bin
int extractbnrfile(char * filepath, char * destpath); int extractbnrfile(const char * filepath, const char * destpath);
int unpackBin(const char * filename,const char * outdir);
//int unpackBanner(const char * filename,const char * outdir); //int unpackBanner(const char * filename,const char * outdir);
int unpackBanner(const char * gameid, const char * outdir); int unpackBanner(const char * gameid, const char * outdir);
//! Extract the lz77 compressed banner, icon and sound .bin //! Extract the lz77 compressed banner, icon and sound .bin

View File

@ -427,184 +427,44 @@ void Menu_DrawDiskCover(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16
GX_SetVtxDesc (GX_VA_TEX0, GX_NONE); GX_SetVtxDesc (GX_VA_TEX0, GX_NONE);
} }
void Menu_DrawTPL(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 distance,const char *filepath, void Menu_DrawTPLImg(f32 xpos, f32 ypos, f32 zpos, f32 width, f32 height, GXTexObj *texObj,
f32 deg_alpha, f32 deg_beta, f32 scaleX, f32 scaleY, u8 alpha, bool shadow) f32 degrees, f32 scaleX, f32 scaleY, u8 alpha, int XX1, int YY1,int XX2, int YY2,int XX3, int YY3,int XX4, int YY4)
{ {
TPLFile tplfile; GX_LoadTexObj(texObj, GX_TEXMAP0);
GXTexObj texObj;
TPL_OpenTPLFromFile(&tplfile,filepath);
TPL_GetTexture(&tplfile,0,&texObj); //Get
GX_LoadTexObj(&texObj, GX_TEXMAP0);
GX_InvalidateTexAll(); GX_InvalidateTexAll();
TPL_CloseTPLFile(&tplfile);
GX_SetTevOp (GX_TEVSTAGE0, GX_REPLACE); GX_SetTevOp (GX_TEVSTAGE0, GX_REPLACE);
GX_SetVtxDesc (GX_VA_TEX0, GX_DIRECT); GX_SetVtxDesc (GX_VA_TEX0, GX_DIRECT);
f32 cos_beta = cos(DegToRad(deg_beta)); Mtx m,m1,m2, mv;
f32 s_offset_y = (zpos + (cos_beta * distance)) * tan(DegToRad(5));
f32 s_offset_x = (cos_beta<0?-cos_beta:cos_beta) * s_offset_y;
f32 s_offset_z = (s_offset_y<0 ? 0 : s_offset_y)*2;
Mtx m,m1,m2,m3,m4, mv;
width *=.5; width *=.5;
height*=.5; height*=.5;
guMtxIdentity (m4);
guMtxTransApply(m4,m4, 0, 0, distance);
guMtxIdentity (m1); guMtxIdentity (m1);
guMtxScaleApply(m1,m1,scaleX,scaleY,1.0); guMtxScaleApply(m1,m1,scaleX,scaleY,1.0);
guVector axis2 = (guVector) {0 , 1, 0 };
guMtxRotAxisDeg (m2, &axis2, deg_beta);
guVector axis = (guVector) {0 , 0, 1 }; guVector axis = (guVector) {0 , 0, 1 };
guMtxRotAxisDeg (m3, &axis, deg_alpha); guMtxRotAxisDeg (m2, &axis, degrees);
// guMtxConcat(m2,m1,m); guMtxConcat(m1,m2,m);
guMtxConcat(m3,m4,m3); // move distance then rotate z-axis
guMtxConcat(m2,m3,m2); // rotate y-axis
guMtxConcat(m1,m2,m); // scale
if(shadow)
guMtxTransApply(m,m, xpos+width+0.5+s_offset_x,ypos+height+0.5+s_offset_y,zpos-s_offset_z);
else
guMtxTransApply(m,m, xpos+width+0.5,ypos+height+0.5,zpos); guMtxTransApply(m,m, xpos+width+0.5,ypos+height+0.5,zpos);
guMtxConcat (GXmodelView2D, m, mv); guMtxConcat (GXmodelView2D, m, mv);
GX_LoadPosMtxImm (mv, GX_PNMTX0); GX_LoadPosMtxImm (mv, GX_PNMTX0);
if(shadow)
{
GX_Begin(GX_QUADS, GX_VTXFMT0,4); GX_Begin(GX_QUADS, GX_VTXFMT0,4);
GX_Position3f32(-width, -height, 0); GX_Position3f32(-width+XX1 , -height+YY1, 0);
GX_Color4u8(0,0,0,alpha);
GX_TexCoord2f32(0, 0);
GX_Position3f32(width, -height, 0);
GX_Color4u8(0,0,0,alpha);
GX_TexCoord2f32(1, 0);
GX_Position3f32(width, height, 0);
GX_Color4u8(0,0,0,alpha);
GX_TexCoord2f32(1, 1);
GX_Position3f32(-width, height, 0);
GX_Color4u8(0,0,0,alpha);
GX_TexCoord2f32(0, 1);
}
else
{
GX_Begin(GX_QUADS, GX_VTXFMT0,4);
GX_Position3f32(-width, -height, 0);
GX_Color4u8(0xFF,0xFF,0xFF,alpha); GX_Color4u8(0xFF,0xFF,0xFF,alpha);
GX_TexCoord2f32(0, 0); GX_TexCoord2f32(0, 0);
GX_Position3f32(width, -height, 0); GX_Position3f32(width+XX2, -height+YY2, 0);
GX_Color4u8(0xFF,0xFF,0xFF,alpha); GX_Color4u8(0xFF,0xFF,0xFF,alpha);
GX_TexCoord2f32(1, 0); GX_TexCoord2f32(1, 0);
GX_Position3f32(width, height, 0); GX_Position3f32(width+XX3, height+YY3, 0);
GX_Color4u8(0xFF,0xFF,0xFF,alpha); GX_Color4u8(0xFF,0xFF,0xFF,alpha);
GX_TexCoord2f32(1, 1); GX_TexCoord2f32(1, 1);
GX_Position3f32(-width, height, 0); GX_Position3f32(-width+XX4, height+YY4, 0);
GX_Color4u8(0xFF,0xFF,0xFF,alpha); GX_Color4u8(0xFF,0xFF,0xFF,alpha);
GX_TexCoord2f32(0, 1); GX_TexCoord2f32(0, 1);
}
GX_End();
GX_LoadPosMtxImm (GXmodelView2D, GX_PNMTX0);
GX_SetTevOp (GX_TEVSTAGE0, GX_PASSCLR);
GX_SetVtxDesc (GX_VA_TEX0, GX_NONE);
}
void Menu_DrawTPLMem(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 distance,const void *memory,u32 len,
f32 deg_alpha, f32 deg_beta, f32 scaleX, f32 scaleY, u8 alpha, bool shadow)
{
TPLFile tplfile;
GXTexObj texObj;
TPL_OpenTPLFromMemory(&tplfile, memory,len);
TPL_GetTexture(&tplfile,0,&texObj); //Get
GX_LoadTexObj(&texObj, GX_TEXMAP0);
GX_InvalidateTexAll();
TPL_CloseTPLFile(&tplfile);
GX_SetTevOp (GX_TEVSTAGE0, GX_REPLACE);
GX_SetVtxDesc (GX_VA_TEX0, GX_DIRECT);
f32 cos_beta = cos(DegToRad(deg_beta));
f32 s_offset_y = (zpos + (cos_beta * distance)) * tan(DegToRad(5));
f32 s_offset_x = (cos_beta<0?-cos_beta:cos_beta) * s_offset_y;
f32 s_offset_z = (s_offset_y<0 ? 0 : s_offset_y)*2;
Mtx m,m1,m2,m3,m4, mv;
width *=.5;
height*=.5;
guMtxIdentity (m4);
guMtxTransApply(m4,m4, 0, 0, distance);
guMtxIdentity (m1);
guMtxScaleApply(m1,m1,scaleX,scaleY,1.0);
guVector axis2 = (guVector) {0 , 1, 0 };
guMtxRotAxisDeg (m2, &axis2, deg_beta);
guVector axis = (guVector) {0 , 0, 1 };
guMtxRotAxisDeg (m3, &axis, deg_alpha);
// guMtxConcat(m2,m1,m);
guMtxConcat(m3,m4,m3); // move distance then rotate z-axis
guMtxConcat(m2,m3,m2); // rotate y-axis
guMtxConcat(m1,m2,m); // scale
if(shadow)
guMtxTransApply(m,m, xpos+width+0.5+s_offset_x,ypos+height+0.5+s_offset_y,zpos-s_offset_z);
else
guMtxTransApply(m,m, xpos+width+0.5,ypos+height+0.5,zpos);
guMtxConcat (GXmodelView2D, m, mv);
GX_LoadPosMtxImm (mv, GX_PNMTX0);
if(shadow)
{
GX_Begin(GX_QUADS, GX_VTXFMT0,4);
GX_Position3f32(-width, -height, 0);
GX_Color4u8(0,0,0,alpha);
GX_TexCoord2f32(0, 0);
GX_Position3f32(width, -height, 0);
GX_Color4u8(0,0,0,alpha);
GX_TexCoord2f32(1, 0);
GX_Position3f32(width, height, 0);
GX_Color4u8(0,0,0,alpha);
GX_TexCoord2f32(1, 1);
GX_Position3f32(-width, height, 0);
GX_Color4u8(0,0,0,alpha);
GX_TexCoord2f32(0, 1);
}
else
{
GX_Begin(GX_QUADS, GX_VTXFMT0,4);
GX_Position3f32(-width, -height, 0);
GX_Color4u8(0xFF,0xFF,0xFF,alpha);
GX_TexCoord2f32(0, 0);
GX_Position3f32(width, -height, 0);
GX_Color4u8(0xFF,0xFF,0xFF,alpha);
GX_TexCoord2f32(1, 0);
GX_Position3f32(width, height, 0);
GX_Color4u8(0xFF,0xFF,0xFF,alpha);
GX_TexCoord2f32(1, 1);
GX_Position3f32(-width, height, 0);
GX_Color4u8(0xFF,0xFF,0xFF,alpha);
GX_TexCoord2f32(0, 1);
}
GX_End(); GX_End();
GX_LoadPosMtxImm (GXmodelView2D, GX_PNMTX0); GX_LoadPosMtxImm (GXmodelView2D, GX_PNMTX0);

View File

@ -17,10 +17,8 @@ void ResetVideo_Menu();
void Menu_Render(); void Menu_Render();
void Menu_DrawImg(f32 xpos, f32 ypos, f32 zpos, f32 width, f32 height, u8 data[], void Menu_DrawImg(f32 xpos, f32 ypos, f32 zpos, f32 width, f32 height, u8 data[],
f32 degrees, f32 scaleX, f32 scaleY, u8 alphaF ,int XX1, int YY1,int XX2, int YY2,int XX3, int YY3,int XX4, int YY4); f32 degrees, f32 scaleX, f32 scaleY, u8 alphaF ,int XX1, int YY1,int XX2, int YY2,int XX3, int YY3,int XX4, int YY4);
void Menu_DrawTPL(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 distance, void Menu_DrawTPLImg(f32 xpos, f32 ypos, f32 zpos, f32 width, f32 height, GXTexObj *texObj,
const char *filepath,f32 deg_alpha, f32 deg_beta, f32 scaleX, f32 scaleY, u8 alpha, bool shadow); f32 degrees, f32 scaleX, f32 scaleY, u8 alpha, int XX1, int YY1,int XX2, int YY2,int XX3, int YY3,int XX4, int YY4);
void Menu_DrawTPLMem(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 distance,
const void *memory,u32 len, f32 deg_alpha, f32 deg_beta, f32 scaleX, f32 scaleY, u8 alpha, bool shadow);
void Menu_DrawRectangle(f32 x, f32 y, f32 width, f32 height, GXColor color, u8 filled); void Menu_DrawRectangle(f32 x, f32 y, f32 width, f32 height, GXColor color, u8 filled);
extern int screenheight; extern int screenheight;