-added new buttons for fullscreen banner view, also if in fullscreen

banner view the background screen is black now
This commit is contained in:
fix94.1 2012-07-03 22:08:51 +00:00
parent 3817808f20
commit 8fec6f98ce
3 changed files with 59 additions and 22 deletions

View File

@ -23,6 +23,7 @@
void BannerWindow::LoadBanner(Banner *banner, CVideo *vid, u8 *font1, u8 *font2) void BannerWindow::LoadBanner(Banner *banner, CVideo *vid, u8 *font1, u8 *font2)
{ {
changing = true;
MaxAnimSteps = 30; MaxAnimSteps = 30;
returnVal = -1; returnVal = -1;
reducedVol = false; reducedVol = false;
@ -41,8 +42,11 @@ void BannerWindow::LoadBanner(Banner *banner, CVideo *vid, u8 *font1, u8 *font2)
AnimZoomOut = false; AnimZoomOut = false;
AnimationRunning = false; AnimationRunning = false;
BannerAlpha = 255.f; BannerAlpha = 255.f;
BGAlpha = 255.f;
ChangeGame(banner); ChangeGame(banner);
gameSelected = 1; gameSelected = 1;
changing = false;
} }
void BannerWindow::DeleteBanner() void BannerWindow::DeleteBanner()
@ -53,6 +57,7 @@ void BannerWindow::DeleteBanner()
BannerWindow::BannerWindow() BannerWindow::BannerWindow()
{ {
changing = false;
AnimStep = 20; AnimStep = 20;
gameSelected = 0; gameSelected = 0;
gameBanner = new AnimatedBanner; gameBanner = new AnimatedBanner;
@ -60,7 +65,7 @@ BannerWindow::BannerWindow()
void BannerWindow::ChangeGame(Banner *banner) void BannerWindow::ChangeGame(Banner *banner)
{ {
gameSelected = 0; gameBanner->Clear();
gameBanner->LoadFont(sysFont1, sysFont2); gameBanner->LoadFont(sysFont1, sysFont2);
gameBanner->LoadBanner(banner); gameBanner->LoadBanner(banner);
} }
@ -168,7 +173,11 @@ void BannerWindow::Animate(void)
void BannerWindow::Draw(void) void BannerWindow::Draw(void)
{ {
// draw a black background image first // draw a black background image first
//DrawRectangle(0.0f, 0.0f, ScreenProps.x, ScreenProps.y, (GXColor) {0, 0, 0, BGAlpha}, true); if(AnimStep >= MaxAnimSteps)
DrawRectangle(0.0f, 0.0f, video->width(), video->height(), (GXColor) {0, 0, 0, BGAlpha}, true);
if(changing)
return;
// Run window animation // Run window animation
Animate(); Animate();
@ -184,7 +193,7 @@ void BannerWindow::Draw(void)
guMtxScaleApply(modelview,mv1, 1.f, -1.f, 1.f); guMtxScaleApply(modelview,mv1, 1.f, -1.f, 1.f);
guMtxTransApply(mv1,mv1, 0.5f * ScreenProps.x, 0.5f * ScreenProps.y, 0.f); guMtxTransApply(mv1,mv1, 0.5f * ScreenProps.x, 0.5f * ScreenProps.y, 0.f);
guMtxTransApply(mv2,mv2, -0.5f * fBannerWidth, 0.5f * fBannerHeight, 0.f); guMtxTransApply(mv2,mv2, -0.5f * fBannerWidth, 0.5f * fBannerHeight, 0.f);
guMtxTransApply(mv3,mv3, 0.5f * fBannerWidth, -0.5f * fBannerHeight + 102.f, 0.f); guMtxTransApply(mv3,mv3, 0.5f * fBannerWidth, -0.5f * fBannerHeight + 104.f, 0.f);
guMtxConcat(mv1, mv2, mv2); guMtxConcat(mv1, mv2, mv2);
guMtxConcat(mv1, mv3, mv3); guMtxConcat(mv1, mv3, mv3);

View File

@ -65,6 +65,7 @@ class BannerWindow
bool AnimZoomOut; bool AnimZoomOut;
bool AnimationRunning; bool AnimationRunning;
bool oldAnimationRunning; bool oldAnimationRunning;
bool changing;
u8 BGAlpha; u8 BGAlpha;
u8 BannerAlpha; u8 BannerAlpha;

View File

@ -58,7 +58,9 @@ extern u32 sector_size;
extern int mainIOS; extern int mainIOS;
static u64 sm_title_id[8] ATTRIBUTE_ALIGN(32); static u64 sm_title_id[8] ATTRIBUTE_ALIGN(32);
bool m_zoom_banner; bool m_zoom_banner = false;
u32 m_gameBtnPlayFull;
u32 m_gameBtnBackFull;
const string CMenu::_translations[23] = { const string CMenu::_translations[23] = {
"Default", "Default",
@ -306,11 +308,13 @@ void CMenu::_hideGame(bool instant)
m_gameSelected = false; m_gameSelected = false;
m_fa.unload(); m_fa.unload();
m_cf.showCover(); m_cf.showCover();
m_btnMgr.hide(m_gameBtnPlay, instant); m_btnMgr.hide(m_gameBtnPlay, instant);
m_btnMgr.hide(m_gameBtnBack, instant);
m_btnMgr.hide(m_gameBtnPlayFull, instant);
m_btnMgr.hide(m_gameBtnBackFull, instant);
m_btnMgr.hide(m_gameBtnDelete, instant); m_btnMgr.hide(m_gameBtnDelete, instant);
m_btnMgr.hide(m_gameBtnSettings, instant); m_btnMgr.hide(m_gameBtnSettings, instant);
m_btnMgr.hide(m_gameBtnBack, instant);
m_btnMgr.hide(m_gameBtnFavoriteOn, instant); m_btnMgr.hide(m_gameBtnFavoriteOn, instant);
m_btnMgr.hide(m_gameBtnFavoriteOff, instant); m_btnMgr.hide(m_gameBtnFavoriteOff, instant);
m_btnMgr.hide(m_gameBtnAdultOn, instant); m_btnMgr.hide(m_gameBtnAdultOn, instant);
@ -336,12 +340,22 @@ void CMenu::_showGame(void)
else else
_setBg(m_mainBg, m_mainBgLQ); _setBg(m_mainBg, m_mainBgLQ);
m_btnMgr.show(m_gameBtnPlay); if(!m_zoom_banner)
m_btnMgr.show(m_gameBtnBack); {
for(u32 i = 0; i < ARRAY_SIZE(m_gameLblUser); ++i) for(u32 i = 0; i < ARRAY_SIZE(m_gameLblUser); ++i)
{
if(m_gameLblUser[i] != -1u) if(m_gameLblUser[i] != -1u)
m_btnMgr.show(m_gameLblUser[i]); m_btnMgr.show(m_gameLblUser[i]);
} }
m_btnMgr.show(m_gameBtnPlay);
m_btnMgr.show(m_gameBtnBack);
}
else
{
m_btnMgr.show(m_gameBtnPlayFull);
m_btnMgr.show(m_gameBtnBackFull);
}
}
static void setLanguage(int l) static void setLanguage(int l)
{ {
@ -470,7 +484,7 @@ void CMenu::_game(bool launch)
m_gcfg1.setBool("FAVORITES", id, !m_gcfg1.getBool("FAVORITES", id, false)); m_gcfg1.setBool("FAVORITES", id, !m_gcfg1.getBool("FAVORITES", id, false));
else if(m_btnMgr.selected(m_gameBtnAdultOn) || m_btnMgr.selected(m_gameBtnAdultOff)) else if(m_btnMgr.selected(m_gameBtnAdultOn) || m_btnMgr.selected(m_gameBtnAdultOff))
m_gcfg1.setBool("ADULTONLY", id, !m_gcfg1.getBool("ADULTONLY", id, false)); m_gcfg1.setBool("ADULTONLY", id, !m_gcfg1.getBool("ADULTONLY", id, false));
else if(m_btnMgr.selected(m_gameBtnBack)) else if(m_btnMgr.selected(m_gameBtnBack) || m_btnMgr.selected(m_gameBtnBackFull))
{ {
//m_gameSound.Stop(); //m_gameSound.Stop();
//CheckGameSoundThread(); //CheckGameSoundThread();
@ -479,11 +493,13 @@ void CMenu::_game(bool launch)
{ {
m_banner.ZoomOut(); m_banner.ZoomOut();
m_zoom_banner = false; m_zoom_banner = false;
m_show_zone_game = false;
} }
else else
{ {
m_banner.ZoomIn(); m_banner.ZoomIn();
m_zoom_banner = true; m_zoom_banner = true;
m_show_zone_game = false;
} }
} }
else if(m_btnMgr.selected(m_gameBtnSettings)) else if(m_btnMgr.selected(m_gameBtnSettings))
@ -495,7 +511,7 @@ void CMenu::_game(bool launch)
if(!m_gameSound.IsPlaying()) if(!m_gameSound.IsPlaying())
startGameSound = -6; startGameSound = -6;
} }
else if(launch || m_btnMgr.selected(m_gameBtnPlay) || (!WPadIR_Valid(0) && !WPadIR_Valid(1) && !WPadIR_Valid(2) && !WPadIR_Valid(3) && m_btnMgr.selected((u32)-1))) else if(launch || m_btnMgr.selected(m_gameBtnPlay) || m_btnMgr.selected(m_gameBtnPlayFull) || (!WPadIR_Valid(0) && !WPadIR_Valid(1) && !WPadIR_Valid(2) && !WPadIR_Valid(3) && m_btnMgr.selected((u32)-1)))
{ {
_hideGame(); _hideGame();
dir_discHdr *hdr = m_cf.getHdr(); dir_discHdr *hdr = m_cf.getHdr();
@ -592,17 +608,20 @@ void CMenu::_game(bool launch)
m_fa.unload(); m_fa.unload();
_setBg(m_mainBg, m_mainBgLQ); _setBg(m_mainBg, m_mainBgLQ);
} }
if(m_show_zone_game) if(m_show_zone_game && !m_zoom_banner)
{ {
bool b = m_gcfg1.getBool("FAVORITES", id, false); bool b = m_gcfg1.getBool("FAVORITES", id, false);
m_btnMgr.show(b ? m_gameBtnFavoriteOn : m_gameBtnFavoriteOff); m_btnMgr.show(b ? m_gameBtnFavoriteOn : m_gameBtnFavoriteOff);
m_btnMgr.hide(b ? m_gameBtnFavoriteOff : m_gameBtnFavoriteOn); m_btnMgr.hide(b ? m_gameBtnFavoriteOff : m_gameBtnFavoriteOn);
m_btnMgr.show(m_gameBtnPlay); m_btnMgr.show(m_gameBtnPlay);
m_btnMgr.show(m_gameBtnBack); m_btnMgr.show(m_gameBtnBack);
m_btnMgr.hide(m_gameBtnPlayFull);
m_btnMgr.hide(m_gameBtnBackFull);
for(u32 i = 0; i < ARRAY_SIZE(m_gameLblUser); ++i) for(u32 i = 0; i < ARRAY_SIZE(m_gameLblUser); ++i)
{
if(m_gameLblUser[i] != -1u) if(m_gameLblUser[i] != -1u)
m_btnMgr.show(m_gameLblUser[i]); m_btnMgr.show(m_gameLblUser[i]);
}
if(!m_locked) if(!m_locked)
{ {
b = m_gcfg1.getBool("ADULTONLY", id, false); b = m_gcfg1.getBool("ADULTONLY", id, false);
@ -610,12 +629,16 @@ void CMenu::_game(bool launch)
m_btnMgr.hide(b ? m_gameBtnAdultOff : m_gameBtnAdultOn); m_btnMgr.hide(b ? m_gameBtnAdultOff : m_gameBtnAdultOn);
m_btnMgr.show(m_gameBtnSettings); m_btnMgr.show(m_gameBtnSettings);
} }
if ((m_cf.getHdr()->type != TYPE_HOMEBREW && m_cf.getHdr()->type != TYPE_CHANNEL) && !m_locked) if ((m_cf.getHdr()->type != TYPE_HOMEBREW && m_cf.getHdr()->type != TYPE_CHANNEL) && !m_locked)
m_btnMgr.show(m_gameBtnDelete); m_btnMgr.show(m_gameBtnDelete);
} }
else else
{ {
if(m_zoom_banner)
{
m_btnMgr.show(m_gameBtnPlayFull);
m_btnMgr.show(m_gameBtnBackFull);
}
m_btnMgr.hide(m_gameBtnFavoriteOn); m_btnMgr.hide(m_gameBtnFavoriteOn);
m_btnMgr.hide(m_gameBtnFavoriteOff); m_btnMgr.hide(m_gameBtnFavoriteOff);
m_btnMgr.hide(m_gameBtnAdultOn); m_btnMgr.hide(m_gameBtnAdultOn);
@ -1424,6 +1447,8 @@ void CMenu::_initGameMenu(CMenu::SThemeData &theme)
m_gameBtnAdultOff = _addPicButton(theme, "GAME/ADULTONLY_OFF", texAdultOff, texAdultOffSel, 532, 170, 48, 48); m_gameBtnAdultOff = _addPicButton(theme, "GAME/ADULTONLY_OFF", texAdultOff, texAdultOffSel, 532, 170, 48, 48);
m_gameBtnSettings = _addPicButton(theme, "GAME/SETTINGS_BTN", texSettings, texSettingsSel, 460, 242, 48, 48); m_gameBtnSettings = _addPicButton(theme, "GAME/SETTINGS_BTN", texSettings, texSettingsSel, 460, 242, 48, 48);
m_gameBtnDelete = _addPicButton(theme, "GAME/DELETE_BTN", texDelete, texDeleteSel, 532, 242, 48, 48); m_gameBtnDelete = _addPicButton(theme, "GAME/DELETE_BTN", texDelete, texDeleteSel, 532, 242, 48, 48);
m_gameBtnPlayFull = _addButton(theme, "GAME/PLAY_FULL_BTN", theme.btnFont, L"", 100, 380, 200, 56, theme.btnFontColor);
m_gameBtnBackFull = _addButton(theme, "GAME/BACK_FULL_BTN", theme.btnFont, L"", 340, 380, 200, 56, theme.btnFontColor);
m_gameButtonsZone.x = m_theme.getInt("GAME/ZONES", "buttons_x", 0); m_gameButtonsZone.x = m_theme.getInt("GAME/ZONES", "buttons_x", 0);
m_gameButtonsZone.y = m_theme.getInt("GAME/ZONES", "buttons_y", 0); m_gameButtonsZone.y = m_theme.getInt("GAME/ZONES", "buttons_y", 0);
@ -1439,16 +1464,18 @@ void CMenu::_initGameMenu(CMenu::SThemeData &theme)
_setHideAnim(m_gameBtnAdultOff, "GAME/ADULTONLY_OFF", 0, 0, -1.5f, -1.5f); _setHideAnim(m_gameBtnAdultOff, "GAME/ADULTONLY_OFF", 0, 0, -1.5f, -1.5f);
_setHideAnim(m_gameBtnSettings, "GAME/SETTINGS_BTN", 0, 0, -1.5f, -1.5f); _setHideAnim(m_gameBtnSettings, "GAME/SETTINGS_BTN", 0, 0, -1.5f, -1.5f);
_setHideAnim(m_gameBtnDelete, "GAME/DELETE_BTN", 0, 0, -1.5f, -1.5f); _setHideAnim(m_gameBtnDelete, "GAME/DELETE_BTN", 0, 0, -1.5f, -1.5f);
_setHideAnim(m_gameBtnPlayFull, "GAME/PLAY_FULL_BTN", 200, 0, 1.f, 0.f);
_setHideAnim(m_gameBtnBackFull, "GAME/BACK_FULL_BTN", 200, 0, 1.f, 0.f);
_hideGame(true); _hideGame(true);
_textGame(); _textGame();
m_zoom_banner = false;
} }
void CMenu::_textGame(void) void CMenu::_textGame(void)
{ {
m_btnMgr.setText(m_gameBtnPlay, _t("gm1", L"Play")); m_btnMgr.setText(m_gameBtnPlay, _t("gm1", L"Play"));
m_btnMgr.setText(m_gameBtnBack, _t("gm2", L"Back")); m_btnMgr.setText(m_gameBtnBack, _t("gm2", L"Back"));
m_btnMgr.setText(m_gameBtnPlayFull, _t("gm1", L"Play"));
m_btnMgr.setText(m_gameBtnBackFull, _t("gm2", L"Back"));
} }
struct IMD5Header struct IMD5Header