mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2024-11-23 19:59:16 +01:00
-some cleanup stuff
-added alpha channel handling to covers up to 640x480 (homebrew icons should look fine now)
This commit is contained in:
parent
ce84e11259
commit
b2fdc18998
@ -226,34 +226,6 @@ void BannerWindow::ToogleGameSettings()
|
||||
Brightness = (Brightness > 1.f ? 0.f : 200.f);
|
||||
}
|
||||
|
||||
void BannerWindow::DrawRectangle(f32 x, f32 y, f32 width, f32 height, GXColor color)
|
||||
{
|
||||
Mtx modelViewMtx;
|
||||
guMtxIdentity(modelViewMtx);
|
||||
GX_LoadPosMtxImm(modelViewMtx, GX_PNMTX0);
|
||||
|
||||
GX_SetTevOp(GX_TEVSTAGE0, GX_PASSCLR);
|
||||
GX_ClearVtxDesc();
|
||||
GX_InvVtxCache();
|
||||
GX_SetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GX_SetVtxDesc(GX_VA_CLR0, GX_DIRECT);
|
||||
GX_SetVtxDesc(GX_VA_TEX0, GX_NONE);
|
||||
|
||||
int i;
|
||||
f32 x2 = x + width;
|
||||
f32 y2 = y + height;
|
||||
guVector v[] = { { x, y, 0.0f }, { x2, y, 0.0f }, { x2, y2, 0.0f }, { x, y2, 0.0f }, { x, y, 0.0f } };
|
||||
|
||||
GX_Begin(GX_TRIANGLEFAN, GX_VTXFMT0, 4);
|
||||
for(i = 0; i < 4; i++)
|
||||
{
|
||||
GX_Position3f32(v[i].x, v[i].y, v[i].z);
|
||||
GX_Color4u8(color.r, color.g, color.b, color.a);
|
||||
}
|
||||
GX_End();
|
||||
GX_SetTevOp(GX_TEVSTAGE0, GX_MODULATE);
|
||||
}
|
||||
|
||||
void BannerWindow::ReSetup_GX(void)
|
||||
{
|
||||
// channel control
|
||||
|
@ -44,7 +44,7 @@ typedef struct _GC_OpeningBnr
|
||||
|
||||
class BannerWindow
|
||||
{
|
||||
public:
|
||||
public:
|
||||
BannerWindow();
|
||||
void DeleteBanner(bool gamechange = false);
|
||||
void LoadBanner(u8 *font1, u8 *font2);
|
||||
@ -59,11 +59,10 @@ class BannerWindow
|
||||
bool GetShowBanner() { return ShowBanner; }
|
||||
void SetShowBanner(bool show) { ShowBanner = show; }
|
||||
void ReSetup_GX(void);
|
||||
protected:
|
||||
protected:
|
||||
int MainLoop();
|
||||
void Animate(void);
|
||||
void ChangeGame(Banner *banner);
|
||||
void DrawRectangle(f32 x, f32 y, f32 width, f32 height, GXColor color);
|
||||
void Init(u8 *font1, u8 *font2);
|
||||
|
||||
static const float fBannerWidth = 608.f;
|
||||
|
@ -333,7 +333,7 @@ void WiiMovie::LoadNextFrame()
|
||||
}
|
||||
|
||||
STexture frame;
|
||||
if(frame.fromTHP(VideoF.getData(), VideoF.getWidth(), VideoF.getHeight()) == STexture::TE_OK)
|
||||
if(frame.fromTHP(VideoF.getData(), VideoF.getWidth(), VideoF.getHeight()) == TE_OK)
|
||||
Frames.push_back(frame);
|
||||
VideoF.dealloc();
|
||||
}
|
||||
|
@ -59,6 +59,8 @@ static inline int loopNum(int i, int s)
|
||||
return i < 0 ? (s - (-i % s)) % s : i % s;
|
||||
}
|
||||
|
||||
CCoverFlow CoverFlow;
|
||||
|
||||
CCoverFlow::CCover::CCover(void)
|
||||
{
|
||||
index = 0;
|
||||
@ -189,6 +191,8 @@ CCoverFlow::CCoverFlow(void)
|
||||
m_dvdskin_loaded = false;
|
||||
m_loadingCovers = false;
|
||||
m_coverThrdBusy = false;
|
||||
m_renderTex = false;
|
||||
m_renderingTex = NULL;
|
||||
m_moved = false;
|
||||
m_selected = false;
|
||||
m_hideCover = false;
|
||||
@ -760,7 +764,7 @@ void CCoverFlow::_effectBg(const STexture &tex)
|
||||
GX_End();
|
||||
}
|
||||
|
||||
void CCoverFlow::_effectBlur(CVideo &vid, bool vertical)
|
||||
void CCoverFlow::_effectBlur(bool vertical)
|
||||
{
|
||||
int kSize = m_blurRadius * 2 + 1;
|
||||
GXTexObj texObj;
|
||||
@ -892,7 +896,7 @@ void CCoverFlow::_effectBlur(CVideo &vid, bool vertical)
|
||||
GX_Position3f32(x, y + h, 0.f);
|
||||
GX_TexCoord2f32(0.f, 1.f);
|
||||
GX_End();
|
||||
vid.renderToTexture(m_effectTex, true);
|
||||
m_vid.renderToTexture(m_effectTex, true);
|
||||
}
|
||||
|
||||
bool CCoverFlow::_effectVisible(void)
|
||||
@ -903,34 +907,34 @@ bool CCoverFlow::_effectVisible(void)
|
||||
|| lo.shadowColorEnd.a > 0 || lo.shadowColorOff.a > 0;
|
||||
}
|
||||
|
||||
void CCoverFlow::makeEffectTexture(CVideo &vid, const STexture &bg)
|
||||
void CCoverFlow::makeEffectTexture(const STexture &bg)
|
||||
{
|
||||
if (!_effectVisible()) return;
|
||||
int aa = 8;
|
||||
|
||||
GX_SetDither(GX_DISABLE);
|
||||
vid.setAA(aa, true, m_effectTex.width, m_effectTex.height);
|
||||
m_vid.setAA(aa, true, m_effectTex.width, m_effectTex.height);
|
||||
for (int i = 0; i < aa; ++i)
|
||||
{
|
||||
vid.prepareAAPass(i);
|
||||
vid.setup2DProjection(false, true);
|
||||
m_vid.prepareAAPass(i);
|
||||
m_vid.setup2DProjection(false, true);
|
||||
_effectBg(bg);
|
||||
if (m_mirrorBlur)
|
||||
_draw(CCoverFlow::CFDR_NORMAL, true, false);
|
||||
vid.shiftViewPort(m_shadowX, m_shadowY);
|
||||
m_vid.shiftViewPort(m_shadowX, m_shadowY);
|
||||
_draw(CCoverFlow::CFDR_SHADOW, false, true);
|
||||
vid.renderAAPass(i);
|
||||
m_vid.renderAAPass(i);
|
||||
}
|
||||
GX_SetPixelFmt(GX_PF_RGBA6_Z24, GX_ZC_LINEAR);
|
||||
GX_InvVtxCache();
|
||||
GX_InvalidateTexAll();
|
||||
vid.setup2DProjection(false, true);
|
||||
m_vid.setup2DProjection(false, true);
|
||||
GX_SetViewport(0.f, 0.f, (float)m_effectTex.width, (float)m_effectTex.height, 0.f, 1.f);
|
||||
GX_SetScissor(0, 0, m_effectTex.width, m_effectTex.height);
|
||||
vid.drawAAScene();
|
||||
vid.renderToTexture(m_effectTex, true);
|
||||
_effectBlur(vid, false);
|
||||
_effectBlur(vid, true);
|
||||
m_vid.drawAAScene();
|
||||
m_vid.renderToTexture(m_effectTex, true);
|
||||
_effectBlur(false);
|
||||
_effectBlur(true);
|
||||
GX_SetDither(GX_ENABLE);
|
||||
}
|
||||
|
||||
@ -1532,6 +1536,24 @@ u64 CCoverFlow::getChanTitle(void) const
|
||||
m_items[loopNum(m_covers[m_range / 2].index + m_jump, m_items.size())].hdr->settings[1]);
|
||||
}
|
||||
|
||||
bool CCoverFlow::getRenderTex(void)
|
||||
{
|
||||
return m_renderTex;
|
||||
}
|
||||
|
||||
void CCoverFlow::setRenderTex(bool val)
|
||||
{
|
||||
m_renderTex = val;
|
||||
}
|
||||
|
||||
void CCoverFlow::RenderTex(void)
|
||||
{
|
||||
if(m_renderingTex == NULL || m_renderingTex->data == NULL)
|
||||
return;
|
||||
DrawTexture(m_renderingTex);
|
||||
m_vid.renderToTexture(*m_renderingTex, true);
|
||||
setRenderTex(false);
|
||||
}
|
||||
|
||||
bool CCoverFlow::select(void)
|
||||
{
|
||||
@ -1837,34 +1859,46 @@ bool CCoverFlow::start(const char *id)
|
||||
// Load resident textures
|
||||
if(!m_dvdskin_loaded)
|
||||
{
|
||||
if(m_dvdSkin.fromJPG(dvdskin_jpg, dvdskin_jpg_size) != STexture::TE_OK)
|
||||
if(m_dvdSkin.fromJPG(dvdskin_jpg, dvdskin_jpg_size) != TE_OK)
|
||||
return false;
|
||||
if(m_dvdSkin_Red.fromJPG(dvdskin_red_jpg, dvdskin_red_jpg_size) != STexture::TE_OK)
|
||||
if(m_dvdSkin_Red.fromJPG(dvdskin_red_jpg, dvdskin_red_jpg_size) != TE_OK)
|
||||
return false;
|
||||
if(m_dvdSkin_Black.fromJPG(dvdskin_black_jpg, dvdskin_black_jpg_size) != STexture::TE_OK)
|
||||
if(m_dvdSkin_Black.fromJPG(dvdskin_black_jpg, dvdskin_black_jpg_size) != TE_OK)
|
||||
return false;
|
||||
if(m_dvdSkin_Yellow.fromJPG(dvdskin_yellow_jpg, dvdskin_yellow_jpg_size) != STexture::TE_OK)
|
||||
if(m_dvdSkin_Yellow.fromJPG(dvdskin_yellow_jpg, dvdskin_yellow_jpg_size) != TE_OK)
|
||||
return false;
|
||||
if(m_dvdSkin_GreenOne.fromJPG(dvdskin_greenone_jpg, dvdskin_greenone_jpg_size) != STexture::TE_OK)
|
||||
if(m_dvdSkin_GreenOne.fromJPG(dvdskin_greenone_jpg, dvdskin_greenone_jpg_size) != TE_OK)
|
||||
return false;
|
||||
if(m_dvdSkin_GreenTwo.fromJPG(dvdskin_greentwo_jpg, dvdskin_greentwo_jpg_size) != STexture::TE_OK)
|
||||
if(m_dvdSkin_GreenTwo.fromJPG(dvdskin_greentwo_jpg, dvdskin_greentwo_jpg_size) != TE_OK)
|
||||
return false;
|
||||
m_dvdskin_loaded = true;
|
||||
}
|
||||
|
||||
if(m_box)
|
||||
{
|
||||
if (m_pngLoadCover.empty() || STexture::TE_OK != m_loadingTexture.fromImageFile(m_pngLoadCover.c_str(), GX_TF_CMPR, 32, 512))
|
||||
if (STexture::TE_OK != m_loadingTexture.fromPNG(loading_png, GX_TF_CMPR, 32, 512)) return false;
|
||||
if (m_pngNoCover.empty() || STexture::TE_OK != m_noCoverTexture.fromImageFile(m_pngNoCover.c_str(), GX_TF_CMPR, 32, 512))
|
||||
if (STexture::TE_OK != m_noCoverTexture.fromPNG(nopic_png, GX_TF_CMPR, 32, 512)) return false;
|
||||
if(m_pngLoadCover.empty() || m_loadingTexture.fromImageFile(m_pngLoadCover.c_str(), GX_TF_CMPR, 32, 512) != TE_OK)
|
||||
{
|
||||
if(m_loadingTexture.fromPNG(loading_png, GX_TF_CMPR, 32, 512) != TE_OK)
|
||||
return false;
|
||||
}
|
||||
if(m_pngNoCover.empty() || m_noCoverTexture.fromImageFile(m_pngNoCover.c_str(), GX_TF_CMPR, 32, 512) != TE_OK)
|
||||
{
|
||||
if(m_noCoverTexture.fromPNG(nopic_png, GX_TF_CMPR, 32, 512) != TE_OK)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_pngLoadCoverFlat.empty() || STexture::TE_OK != m_loadingTexture.fromImageFile(m_pngLoadCoverFlat.c_str(), GX_TF_CMPR, 32, 512))
|
||||
if (STexture::TE_OK != m_loadingTexture.fromJPG(flatloading_jpg, flatloading_jpg_size, GX_TF_CMPR, 32, 512)) return false;
|
||||
if (m_pngNoCoverFlat.empty() || STexture::TE_OK != m_noCoverTexture.fromImageFile(m_pngNoCoverFlat.c_str(), GX_TF_CMPR, 32, 512))
|
||||
if (STexture::TE_OK != m_noCoverTexture.fromPNG(flatnopic_png, GX_TF_CMPR, 32, 512)) return false;
|
||||
if(m_pngLoadCoverFlat.empty() || m_loadingTexture.fromImageFile(m_pngLoadCoverFlat.c_str(), GX_TF_CMPR, 32, 512) != TE_OK)
|
||||
{
|
||||
if(m_loadingTexture.fromJPG(flatloading_jpg, flatloading_jpg_size, GX_TF_CMPR, 32, 512) != TE_OK)
|
||||
return false;
|
||||
}
|
||||
if(m_pngNoCoverFlat.empty() || m_noCoverTexture.fromImageFile(m_pngNoCoverFlat.c_str(), GX_TF_CMPR, 32, 512) != TE_OK)
|
||||
{
|
||||
if(m_noCoverTexture.fromPNG(flatnopic_png, GX_TF_CMPR, 32, 512) != TE_OK)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
m_covers.clear();
|
||||
m_covers.resize(m_range);
|
||||
@ -2003,7 +2037,7 @@ u32 CCoverFlow::_currentPos(void) const
|
||||
return m_covers[m_range / 2].index;
|
||||
}
|
||||
|
||||
void CCoverFlow::mouse(CVideo &vid, int chan, int x, int y)
|
||||
void CCoverFlow::mouse(int chan, int x, int y)
|
||||
{
|
||||
if (m_covers.empty()) return;
|
||||
|
||||
@ -2012,10 +2046,10 @@ void CCoverFlow::mouse(CVideo &vid, int chan, int x, int y)
|
||||
m_mouse[chan] = -1;
|
||||
else
|
||||
{
|
||||
vid.prepareStencil();
|
||||
m_vid.prepareStencil();
|
||||
_draw(CCoverFlow::CFDR_STENCIL, false, false);
|
||||
vid.renderStencil();
|
||||
m_mouse[chan] = vid.stencilVal(x, y) - 1;
|
||||
m_vid.renderStencil();
|
||||
m_mouse[chan] = m_vid.stencilVal(x, y) - 1;
|
||||
}
|
||||
if (m != m_mouse[chan])
|
||||
{
|
||||
@ -2025,17 +2059,17 @@ void CCoverFlow::mouse(CVideo &vid, int chan, int x, int y)
|
||||
}
|
||||
}
|
||||
|
||||
bool CCoverFlow::mouseOver(CVideo &vid, int x, int y)
|
||||
bool CCoverFlow::mouseOver(int x, int y)
|
||||
{
|
||||
if (m_covers.empty()) return false;
|
||||
|
||||
vid.prepareStencil();
|
||||
m_vid.prepareStencil();
|
||||
_draw(CCoverFlow::CFDR_STENCIL, false, false);
|
||||
vid.renderStencil();
|
||||
vid.prepareStencil();
|
||||
m_vid.renderStencil();
|
||||
m_vid.prepareStencil();
|
||||
_draw(CCoverFlow::CFDR_STENCIL, false, false);
|
||||
vid.renderStencil();
|
||||
return vid.stencilVal(x, y) == (int)m_range / 2 + 1;
|
||||
m_vid.renderStencil();
|
||||
return m_vid.stencilVal(x, y) == (int)m_range / 2 + 1;
|
||||
}
|
||||
|
||||
bool CCoverFlow::findId(const char *id, bool instant)
|
||||
@ -2519,20 +2553,21 @@ public:
|
||||
|
||||
bool CCoverFlow::preCacheCover(const char *id, const u8 *png, bool full)
|
||||
{
|
||||
if (m_cachePath.empty()) return false;
|
||||
if(m_cachePath.empty())
|
||||
return false;
|
||||
|
||||
STexture tex;
|
||||
u8 textureFmt = m_compressTextures ? GX_TF_CMPR : GX_TF_RGB565;
|
||||
|
||||
if (STexture::TE_OK != tex.fromPNG(png, textureFmt, 32)) return false;
|
||||
if(tex.fromPNG(png, textureFmt, 32) != TE_OK)
|
||||
return false;
|
||||
|
||||
u32 bufSize = fixGX_GetTexBufferSize(tex.width, tex.height, tex.format, tex.maxLOD > 0 ? GX_TRUE : GX_FALSE, tex.maxLOD);
|
||||
uLongf zBufferSize = m_compressCache ? bufSize + bufSize / 100 + 12 : bufSize;
|
||||
u8 *zBuffer = m_compressCache ? (u8*)MEM2_alloc(zBufferSize) : tex.data;
|
||||
if (!!zBuffer && (!m_compressCache || compress(zBuffer, &zBufferSize, tex.data, bufSize) == Z_OK))
|
||||
if(zBuffer != NULL && (!m_compressCache || compress(zBuffer, &zBufferSize, tex.data, bufSize) == Z_OK))
|
||||
{
|
||||
FILE *file = fopen(fmt("%s/%s.wfc", m_cachePath.c_str(), id), "wb");
|
||||
if (file != 0)
|
||||
if(file != NULL)
|
||||
{
|
||||
SWFCHeader header(tex, full, m_compressCache);
|
||||
fwrite(&header, 1, sizeof header, file);
|
||||
@ -2549,7 +2584,7 @@ bool CCoverFlow::fullCoverCached(const char *id)
|
||||
bool found = false;
|
||||
|
||||
FILE *file = fopen(fmt("%s/%s.wfc", m_cachePath.c_str(), id), "rb");
|
||||
if (file != 0)
|
||||
if(file != NULL)
|
||||
{
|
||||
SWFCHeader header;
|
||||
found = fread(&header, 1, sizeof header, file) == sizeof header
|
||||
@ -2566,12 +2601,19 @@ bool CCoverFlow::_loadCoverTexPNG(u32 i, bool box, bool hq, bool blankBoxCover)
|
||||
if (!m_loadingCovers) return false;
|
||||
|
||||
u8 textureFmt = m_compressTextures ? GX_TF_CMPR : GX_TF_RGB565;
|
||||
const char *path = box ? (blankBoxCover ? m_items[i].blankBoxPicPath.c_str() :
|
||||
m_items[i].boxPicPath.c_str()) : m_items[i].picPath.c_str();
|
||||
STexture tex;
|
||||
|
||||
const char *path = box ? (blankBoxCover ? m_items[i].blankBoxPicPath.c_str() : m_items[i].boxPicPath.c_str()) : m_items[i].picPath.c_str();
|
||||
if (STexture::TE_OK != tex.fromImageFile(path, textureFmt, 32)) return false;
|
||||
|
||||
if (!m_loadingCovers) return false;
|
||||
tex.thread = true;
|
||||
m_renderingTex = &tex;
|
||||
if(tex.fromImageFile(path, textureFmt, 32) != TE_OK)
|
||||
{
|
||||
m_renderingTex = NULL;
|
||||
return false;
|
||||
}
|
||||
m_renderingTex = NULL;
|
||||
if(!m_loadingCovers)
|
||||
return false;
|
||||
|
||||
LWP_MutexLock(m_mutex);
|
||||
m_items[i].texture.Cleanup();
|
||||
@ -2605,7 +2647,7 @@ bool CCoverFlow::_loadCoverTexPNG(u32 i, bool box, bool hq, bool blankBoxCover)
|
||||
else
|
||||
strncpy(gamePath, m_items[i].hdr->id, sizeof(gamePath));
|
||||
FILE *file = fopen(fmt("%s/%s.wfc", m_cachePath.c_str(), gamePath), "wb");
|
||||
if (file != 0)
|
||||
if(file != NULL)
|
||||
{
|
||||
SWFCHeader header(tex, box, m_compressCache);
|
||||
fwrite(&header, 1, sizeof header, file);
|
||||
|
@ -71,14 +71,14 @@ public:
|
||||
void flip(bool force = false, bool f = true);
|
||||
void cancel(void);
|
||||
bool selected(void) const { return m_selected; }
|
||||
void makeEffectTexture(CVideo &vid, const STexture &bg);
|
||||
void makeEffectTexture(const STexture &bg);
|
||||
void drawText(bool withRectangle = false);
|
||||
void draw(void);
|
||||
void drawEffect(void);
|
||||
void hideCover(void);
|
||||
void showCover(void);
|
||||
void mouse(CVideo &vid, int chan, int x, int y);
|
||||
bool mouseOver(CVideo &vid, int x, int y);
|
||||
void mouse(int chan, int x, int y);
|
||||
bool mouseOver(int x, int y);
|
||||
// Accessors for settings
|
||||
void setCompression(bool enable) { m_compressTextures = enable; }
|
||||
bool getBoxMode(void) const { return m_box;}
|
||||
@ -131,6 +131,10 @@ public:
|
||||
dir_discHdr * getNextHdr(void) const;
|
||||
wstringEx getTitle(void) const;
|
||||
u64 getChanTitle(void) const;
|
||||
//
|
||||
bool getRenderTex(void);
|
||||
void setRenderTex(bool);
|
||||
void RenderTex(void);
|
||||
private:
|
||||
enum DrawMode { CFDR_NORMAL, CFDR_STENCIL, CFDR_SHADOW };
|
||||
struct SLayout
|
||||
@ -238,6 +242,10 @@ private:
|
||||
volatile bool m_loadingCovers;
|
||||
volatile bool m_coverThrdBusy;
|
||||
volatile bool m_moved;
|
||||
//
|
||||
volatile bool m_renderTex;
|
||||
STexture *m_renderingTex;
|
||||
//
|
||||
volatile int m_hqCover;
|
||||
bool m_selected;
|
||||
int m_tickCount;
|
||||
@ -299,7 +307,7 @@ private:
|
||||
void _draw(DrawMode dm = CFDR_NORMAL, bool mirror = false, bool blend = true);
|
||||
u32 _currentPos(void) const;
|
||||
void _effectBg(const STexture &tex);
|
||||
void _effectBlur(CVideo &vid, bool vertical);
|
||||
void _effectBlur(bool vertical);
|
||||
bool _effectVisible(void);
|
||||
void _drawMirrorZ(void);
|
||||
void _drawTitle(int i, bool mirror, bool rectangle);
|
||||
@ -349,4 +357,6 @@ private:
|
||||
CCoverFlow &operator=(const CCoverFlow &);
|
||||
};
|
||||
|
||||
extern CCoverFlow CoverFlow;
|
||||
|
||||
#endif // !defined(__COVERFLOW_HPP)
|
||||
|
@ -29,16 +29,16 @@ bool CCursor::init(const char *png, bool wideFix, CColor shadowColor, float shad
|
||||
m_wideFix = wideFix;
|
||||
m_x = -1;
|
||||
m_y = -1;
|
||||
if (STexture::TE_OK != m_texture.fromImageFile(png))
|
||||
if(m_texture.fromImageFile(png) != TE_OK)
|
||||
{
|
||||
if (chan == 0)
|
||||
ok = STexture::TE_OK == m_texture.fromPNG(player1_point_png);
|
||||
else if (chan == 1)
|
||||
ok = STexture::TE_OK == m_texture.fromPNG(player2_point_png);
|
||||
else if (chan == 2)
|
||||
ok = STexture::TE_OK == m_texture.fromPNG(player3_point_png);
|
||||
else if (chan == 3)
|
||||
ok = STexture::TE_OK == m_texture.fromPNG(player4_point_png);
|
||||
if(chan == 0)
|
||||
ok = (m_texture.fromPNG(player1_point_png) == TE_OK);
|
||||
else if(chan == 1)
|
||||
ok = (m_texture.fromPNG(player2_point_png) == TE_OK);
|
||||
else if(chan == 2)
|
||||
ok = (m_texture.fromPNG(player3_point_png) == TE_OK);
|
||||
else if(chan == 3)
|
||||
ok = (m_texture.fromPNG(player4_point_png) == TE_OK);
|
||||
}
|
||||
if (ok && shadow)
|
||||
{
|
||||
|
@ -50,15 +50,14 @@ bool CFanart::load(Config &m_globalConfig, const char *path, const char *id)
|
||||
strncpy(dir, fmt("%s/%s", path, id), 63);
|
||||
STexture fanBg, fanBgLq;
|
||||
|
||||
STexture::TexErr texErr = fanBg.fromImageFile(fmt("%s/background.png", dir));
|
||||
if(texErr == STexture::TE_ERROR)
|
||||
TexErr texErr = fanBg.fromImageFile(fmt("%s/background.png", dir));
|
||||
if(texErr == TE_ERROR)
|
||||
{
|
||||
memset(dir,0, 64);
|
||||
strncpy(dir, fmt("%s/%.3s", path, id), 63);
|
||||
texErr = fanBg.fromImageFile(fmt("%s/background.png", dir));
|
||||
}
|
||||
|
||||
if (texErr == STexture::TE_OK)
|
||||
if(texErr == TE_OK)
|
||||
{
|
||||
char cfg_char[64];
|
||||
memset(cfg_char,0, 64);
|
||||
@ -195,7 +194,7 @@ void CFanart::draw(bool front)
|
||||
CFanartElement::CFanartElement(Config &cfg, const char *dir, int artwork)
|
||||
: m_artwork(artwork), m_isValid(false)
|
||||
{
|
||||
m_isValid = m_art.fromImageFile(fmt("%s/artwork%d.png", dir, artwork)) == STexture::TE_OK;
|
||||
m_isValid = (m_art.fromImageFile(fmt("%s/artwork%d.png", dir, artwork)) == TE_OK);
|
||||
if (!m_isValid) return;
|
||||
|
||||
const char *section = fmt("artwork%d", artwork);
|
||||
|
@ -10,7 +10,7 @@ template <class T> static inline T loopNum(T i, T s)
|
||||
|
||||
STexture CButtonsMgr::_noTexture;
|
||||
|
||||
bool CButtonsMgr::init(CVideo &vid)
|
||||
bool CButtonsMgr::init()
|
||||
{
|
||||
m_elts.clear();
|
||||
for(int chan = WPAD_MAX_WIIMOTES-1; chan >= 0; chan--)
|
||||
@ -23,7 +23,6 @@ bool CButtonsMgr::init(CVideo &vid)
|
||||
m_noclick = false;
|
||||
m_nohover = false;
|
||||
m_mouse = false;
|
||||
m_vid = vid;
|
||||
soundInit();
|
||||
|
||||
return true;
|
||||
|
@ -26,7 +26,7 @@ struct SButtonTextureSet
|
||||
class CButtonsMgr
|
||||
{
|
||||
public:
|
||||
bool init(CVideo &vid);
|
||||
bool init();
|
||||
void setRumble(bool enabled) { m_rumbleEnabled = enabled; }
|
||||
void reserve(u32 capacity) { m_elts.reserve(capacity); }
|
||||
s16 addButton(SFont font, const wstringEx &text, int x, int y, u32 width, u32 height, const CColor &color,
|
||||
@ -149,7 +149,6 @@ private:
|
||||
bool m_noclick;
|
||||
bool m_nohover;
|
||||
bool m_mouse;
|
||||
CVideo m_vid;
|
||||
private:
|
||||
void _drawBtn(SButton &b, bool selected, bool click);
|
||||
void _drawLbl(SLabel &b);
|
||||
|
@ -1,10 +1,13 @@
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <ogcsys.h>
|
||||
#include <malloc.h>
|
||||
#include <cmath>
|
||||
#include "memory/mem2.hpp"
|
||||
|
||||
#include "texture.hpp"
|
||||
#include "coverflow.hpp"
|
||||
#include "memory/mem2.hpp"
|
||||
#include "pngu.h"
|
||||
#include "gcvid.h"
|
||||
|
||||
@ -59,6 +62,21 @@ static inline void _convertToFlippedRGBA(u8 *dst, const u8 *src, u32 width, u32
|
||||
}
|
||||
}
|
||||
|
||||
static inline void _convertToRGBA(u8 *dst, const u8 *src, u32 width, u32 height)
|
||||
{
|
||||
for (u32 y = 0; y < height; ++y)
|
||||
{
|
||||
for (u32 x = 0; x < width; ++x)
|
||||
{
|
||||
u32 i = (x + y * width) * 4;
|
||||
dst[i] = src[coordsRGBA8(x, y, width) + 1];
|
||||
dst[i + 1] = src[coordsRGBA8(x, y, width) + 32];
|
||||
dst[i + 2] = src[coordsRGBA8(x, y, width) + 33];
|
||||
dst[i + 3] = src[coordsRGBA8(x, y, width)];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static inline void _convertToRGBA8(u8 *dst, const u8 *src, u32 width, u32 height)
|
||||
{
|
||||
for (u32 y = 0; y < height; ++y)
|
||||
@ -213,7 +231,7 @@ bool STexture::CopyTexture(const STexture &tex)
|
||||
return true;
|
||||
}
|
||||
|
||||
STexture::TexErr STexture::fromImageFile(const char *filename, u8 f, u32 minMipSize, u32 maxMipSize)
|
||||
TexErr STexture::fromImageFile(const char *filename, u8 f, u32 minMipSize, u32 maxMipSize)
|
||||
{
|
||||
Cleanup();
|
||||
FILE *file = fopen(filename, "rb");
|
||||
@ -250,7 +268,7 @@ STexture::TexErr STexture::fromImageFile(const char *filename, u8 f, u32 minMipS
|
||||
return result;
|
||||
}
|
||||
|
||||
STexture::TexErr STexture::fromTHP(const u8 *src, u32 w, u32 h)
|
||||
TexErr STexture::fromTHP(const u8 *src, u32 w, u32 h)
|
||||
{
|
||||
width = w;
|
||||
height = h;
|
||||
@ -288,7 +306,7 @@ STexture::TexErr STexture::fromTHP(const u8 *src, u32 w, u32 h)
|
||||
return TE_OK;
|
||||
}
|
||||
|
||||
STexture::TexErr STexture::fromJPG(const u8 *buffer, const u32 buffer_size, u8 f, u32 minMipSize, u32 maxMipSize)
|
||||
TexErr STexture::fromJPG(const u8 *buffer, const u32 buffer_size, u8 f, u32 minMipSize, u32 maxMipSize)
|
||||
{
|
||||
Cleanup();
|
||||
|
||||
@ -413,7 +431,7 @@ STexture::TexErr STexture::fromJPG(const u8 *buffer, const u32 buffer_size, u8 f
|
||||
return TE_OK;
|
||||
}
|
||||
|
||||
STexture::TexErr STexture::fromPNG(const u8 *buffer, u8 f, u32 minMipSize, u32 maxMipSize)
|
||||
TexErr STexture::fromPNG(const u8 *buffer, u8 f, u32 minMipSize, u32 maxMipSize)
|
||||
{
|
||||
Cleanup();
|
||||
u8 maxLODTmp = 0;
|
||||
@ -467,7 +485,24 @@ STexture::TexErr STexture::fromPNG(const u8 *buffer, u8 f, u32 minMipSize, u32 m
|
||||
memset(tmpData2, 0, Size2);
|
||||
PNGU_DecodeToRGBA8(ctx, imgProp.imgWidth, imgProp.imgHeight, tmpData2, 0, 0xFF);
|
||||
PNGU_ReleaseImageContext(ctx);
|
||||
|
||||
if((imgProp.imgColorType == PNGU_COLOR_TYPE_GRAY_ALPHA
|
||||
|| imgProp.imgColorType == PNGU_COLOR_TYPE_RGB_ALPHA)
|
||||
&& imgProp.imgWidth <= 640 && imgProp.imgHeight <= 480 && thread)
|
||||
{
|
||||
format = GX_TF_RGBA8;
|
||||
width = imgProp.imgWidth;
|
||||
height = imgProp.imgHeight;
|
||||
dataSize = GX_GetTexBufferSize(width, height, format, GX_FALSE, 0);
|
||||
data = (u8*)MEM2_alloc(dataSize);
|
||||
_convertToRGBA8(data, tmpData2, width, height);
|
||||
DCFlushRange(data, dataSize);
|
||||
CoverFlow.setRenderTex(true);
|
||||
while(CoverFlow.getRenderTex())
|
||||
usleep(50);
|
||||
_convertToRGBA(tmpData2, data, width, height);
|
||||
DCFlushRange(tmpData2, Size2);
|
||||
Cleanup();
|
||||
}
|
||||
tmpData2 = _genMipMaps(tmpData2, imgProp.imgWidth, imgProp.imgHeight, maxLODTmp, baseWidth, baseHeight);
|
||||
if(tmpData2 == NULL)
|
||||
{
|
||||
|
@ -4,10 +4,17 @@
|
||||
|
||||
#include <gccore.h>
|
||||
|
||||
enum TexErr
|
||||
{
|
||||
TE_OK = 0,
|
||||
TE_ERROR,
|
||||
TE_NOMEM
|
||||
};
|
||||
|
||||
class STexture
|
||||
{
|
||||
public:
|
||||
STexture(void) : data(NULL), dataSize(0), width(0), height(0), format(-1), maxLOD(0) { }
|
||||
STexture(void) : data(NULL), dataSize(0), width(0), height(0), format(-1), maxLOD(0), thread(false) { }
|
||||
void Cleanup();
|
||||
bool CopyTexture(const STexture &tex);
|
||||
u8 *data;
|
||||
@ -16,8 +23,7 @@ public:
|
||||
u32 height;
|
||||
u8 format;
|
||||
u8 maxLOD;
|
||||
// Utility funcs
|
||||
enum TexErr { TE_OK, TE_ERROR, TE_NOMEM };
|
||||
bool thread;
|
||||
// Get from PNG, if not found from JPG
|
||||
TexErr fromImageFile(const char *filename, u8 f = -1, u32 minMipSize = 0, u32 maxMipSize = 0);
|
||||
// This function doesn't use MEM2 if the PNG is loaded from memory and there's no mip mapping
|
||||
|
@ -236,9 +236,9 @@ void CVideo::renderToTexture(STexture &tex, bool clear)
|
||||
{
|
||||
tex.dataSize = GX_GetTexBufferSize(tex.width, tex.height, tex.format, GX_FALSE, 0);
|
||||
tex.data = (u8*)MEM2_alloc(tex.dataSize);
|
||||
}
|
||||
if(tex.data == NULL)
|
||||
return;
|
||||
}
|
||||
GX_DrawDone();
|
||||
GX_SetCopyFilter(GX_FALSE, NULL, GX_FALSE, NULL);
|
||||
GX_SetTexCopySrc(0, 0, tex.width, tex.height);
|
||||
@ -542,6 +542,7 @@ void CVideo::_showWaitMessages(CVideo *m)
|
||||
if(waitItr + 1 == m->m_waitMessages.end() || waitItr == m->m_waitMessages.begin())
|
||||
PNGfadeDirection *= (-1);
|
||||
waitFrames = frames;
|
||||
m->render();
|
||||
}
|
||||
else
|
||||
VIDEO_WaitVSync();
|
||||
@ -643,7 +644,6 @@ void CVideo::waitMessage(const STexture &tex)
|
||||
GX_Position3f32((float)((640 - tex.width) / 2), (float)((480 + tex.height) / 2), 0.f);
|
||||
GX_TexCoord2f32(0.f, 1.f);
|
||||
GX_End();
|
||||
render();
|
||||
}
|
||||
|
||||
s32 CVideo::TakeScreenshot(const char *path)
|
||||
@ -653,3 +653,74 @@ s32 CVideo::TakeScreenshot(const char *path)
|
||||
PNGU_ReleaseImageContext (ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
void DrawTexture(const STexture *tex)
|
||||
{
|
||||
if(tex == NULL)
|
||||
return;
|
||||
Mtx modelViewMtx;
|
||||
GXTexObj texObj;
|
||||
|
||||
GX_SetNumChans(1);
|
||||
GX_ClearVtxDesc();
|
||||
GX_SetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_F32, 0);
|
||||
GX_SetVtxDesc(GX_VA_CLR0, GX_DIRECT);
|
||||
GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
|
||||
GX_SetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||
GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
|
||||
GX_SetNumTexGens(1);
|
||||
GX_SetTevOp(GX_TEVSTAGE0, GX_MODULATE);
|
||||
GX_SetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);
|
||||
GX_SetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY);
|
||||
GX_SetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR);
|
||||
GX_SetAlphaUpdate(GX_TRUE);
|
||||
GX_SetCullMode(GX_CULL_NONE);
|
||||
GX_SetZMode(GX_DISABLE, GX_LEQUAL, GX_TRUE);
|
||||
guMtxIdentity(modelViewMtx);
|
||||
GX_LoadPosMtxImm(modelViewMtx, GX_PNMTX0);
|
||||
GX_InitTexObj(&texObj, tex->data, tex->width, tex->height, tex->format, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GX_LoadTexObj(&texObj, GX_TEXMAP0);
|
||||
GX_Begin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
GX_Position2f32(0.f, 0.f);
|
||||
GX_Color4u8(0xFF, 0xFF, 0xFF, 0xFF);
|
||||
GX_TexCoord2f32(0.f, 0.f);
|
||||
GX_Position2f32(tex->width, 0.f);
|
||||
GX_Color4u8(0xFF, 0xFF, 0xFF, 0xFF);
|
||||
GX_TexCoord2f32(1.f, 0.f);
|
||||
GX_Position2f32(tex->width, tex->height);
|
||||
GX_Color4u8(0xFF, 0xFF, 0xFF, 0xFF);
|
||||
GX_TexCoord2f32(1.f, 1.f);
|
||||
GX_Position2f32(0.f, tex->height);
|
||||
GX_Color4u8(0xFF, 0xFF, 0xFF, 0xFF);
|
||||
GX_TexCoord2f32(0.f, 1.f);
|
||||
GX_End();
|
||||
}
|
||||
|
||||
void DrawRectangle(f32 x, f32 y, f32 width, f32 height, GXColor color)
|
||||
{
|
||||
Mtx modelViewMtx;
|
||||
guMtxIdentity(modelViewMtx);
|
||||
GX_LoadPosMtxImm(modelViewMtx, GX_PNMTX0);
|
||||
|
||||
GX_SetTevOp(GX_TEVSTAGE0, GX_PASSCLR);
|
||||
GX_ClearVtxDesc();
|
||||
GX_InvVtxCache();
|
||||
GX_SetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GX_SetVtxDesc(GX_VA_CLR0, GX_DIRECT);
|
||||
GX_SetVtxDesc(GX_VA_TEX0, GX_NONE);
|
||||
|
||||
int i;
|
||||
f32 x2 = x + width;
|
||||
f32 y2 = y + height;
|
||||
guVector v[] = { { x, y, 0.0f }, { x2, y, 0.0f }, { x2, y2, 0.0f }, { x, y2, 0.0f }, { x, y, 0.0f } };
|
||||
|
||||
GX_Begin(GX_TRIANGLEFAN, GX_VTXFMT0, 4);
|
||||
for(i = 0; i < 4; i++)
|
||||
{
|
||||
GX_Position3f32(v[i].x, v[i].y, v[i].z);
|
||||
GX_Color4u8(color.r, color.g, color.b, color.a);
|
||||
}
|
||||
GX_End();
|
||||
GX_SetTevOp(GX_TEVSTAGE0, GX_MODULATE);
|
||||
}
|
||||
|
@ -119,5 +119,8 @@ private:
|
||||
CVideo(const CVideo &);
|
||||
};
|
||||
|
||||
void DrawTexture(const STexture *tex);
|
||||
void DrawRectangle(f32 x, f32 y, f32 width, f32 height, GXColor color);
|
||||
|
||||
extern CVideo m_vid;
|
||||
#endif //!defined(__VIDEO_HPP)
|
||||
|
@ -340,7 +340,7 @@ void CMenu::init()
|
||||
}
|
||||
}
|
||||
}
|
||||
m_cf.init(m_base_font, m_base_font_size, m_vid.vid_50hz());
|
||||
CoverFlow.init(m_base_font, m_base_font_size, m_vid.vid_50hz());
|
||||
|
||||
//Make important folders first.
|
||||
fsop_MakeFolder((char *)m_dataDir.c_str()); //D'OH!
|
||||
@ -434,7 +434,7 @@ void CMenu::init()
|
||||
WPAD_SetVRes(chan, m_vid.width() + m_cursor[chan].width(), m_vid.height() + m_cursor[chan].height());
|
||||
}
|
||||
|
||||
m_btnMgr.init(m_vid);
|
||||
m_btnMgr.init();
|
||||
MusicPlayer.Init(m_cfg, m_musicDir, sfmt("%s/music", m_themeDataDir.c_str()));
|
||||
m_music_info = m_cfg.getBool("GENERAL", "display_music_info", true);
|
||||
|
||||
@ -452,7 +452,7 @@ void CMenu::init()
|
||||
|
||||
LWP_MutexInit(&m_mutex, 0);
|
||||
|
||||
m_cf.setSoundVolume(m_cfg.getInt("GENERAL", "sound_volume_coverflow", 255));
|
||||
CoverFlow.setSoundVolume(m_cfg.getInt("GENERAL", "sound_volume_coverflow", 255));
|
||||
m_btnMgr.setSoundVolume(m_cfg.getInt("GENERAL", "sound_volume_gui", 255));
|
||||
m_bnrSndVol = m_cfg.getInt("GENERAL", "sound_volume_bnr", 255);
|
||||
m_bnr_settings = m_cfg.getBool("GENERAL", "banner_in_settings", true);
|
||||
@ -502,7 +502,7 @@ void CMenu::cleanup()
|
||||
soundDeinit();
|
||||
|
||||
m_vid.cleanup();
|
||||
m_cf.shutdown();
|
||||
CoverFlow.shutdown();
|
||||
|
||||
wiiLightOff();
|
||||
_deinitNetwork();
|
||||
@ -652,10 +652,10 @@ void CMenu::_loadCFCfg()
|
||||
const char *domain = "_COVERFLOW";
|
||||
|
||||
//gprintf("Preparing to load sounds from %s\n", m_themeDataDir.c_str());
|
||||
m_cf.setCachePath(m_cacheDir.c_str(), !m_cfg.getBool("GENERAL", "keep_png", true), m_cfg.getBool("GENERAL", "compress_cache", false));
|
||||
m_cf.setBufferSize(m_cfg.getInt("GENERAL", "cover_buffer", 20));
|
||||
CoverFlow.setCachePath(m_cacheDir.c_str(), !m_cfg.getBool("GENERAL", "keep_png", true), m_cfg.getBool("GENERAL", "compress_cache", false));
|
||||
CoverFlow.setBufferSize(m_cfg.getInt("GENERAL", "cover_buffer", 20));
|
||||
// Coverflow Sounds
|
||||
m_cf.setSounds(
|
||||
CoverFlow.setSounds(
|
||||
new GuiSound(fmt("%s/%s", m_themeDataDir.c_str(), m_theme.getString(domain, "sound_flip").c_str())),
|
||||
_sound(theme.soundSet, domain, "sound_hover", hover_wav, hover_wav_size, "default_btn_hover", false),
|
||||
_sound(theme.soundSet, domain, "sound_select", click_wav, click_wav_size, "default_btn_click", false),
|
||||
@ -666,9 +666,9 @@ void CMenu::_loadCFCfg()
|
||||
string texNoCover = sfmt("%s/%s", m_themeDataDir.c_str(), m_theme.getString(domain, "missing_cover_box").c_str());
|
||||
string texLoadingFlat = sfmt("%s/%s", m_themeDataDir.c_str(), m_theme.getString(domain, "loading_cover_flat").c_str());
|
||||
string texNoCoverFlat = sfmt("%s/%s", m_themeDataDir.c_str(), m_theme.getString(domain, "missing_cover_flat").c_str());
|
||||
m_cf.setTextures(texLoading, texLoadingFlat, texNoCover, texNoCoverFlat);
|
||||
CoverFlow.setTextures(texLoading, texLoadingFlat, texNoCover, texNoCoverFlat);
|
||||
// Font
|
||||
m_cf.setFont(_font(theme.fontSet, domain, "font", TITLEFONT), m_theme.getColor(domain, "font_color", CColor(0xFFFFFFFF)));
|
||||
CoverFlow.setFont(_font(theme.fontSet, domain, "font", TITLEFONT), m_theme.getColor(domain, "font_color", CColor(0xFFFFFFFF)));
|
||||
// Coverflow Count
|
||||
m_numCFVersions = min(max(2, m_theme.getInt("_COVERFLOW", "number_of_modes", 2)), 15);
|
||||
}
|
||||
@ -735,31 +735,31 @@ void CMenu::_loadCFLayout(int version, bool forceAA, bool otherScrnFmt)
|
||||
int max_fsaa = m_theme.getInt(domain, "max_fsaa", 3);
|
||||
_setAA(forceAA ? max_fsaa : min(max_fsaa, m_cfg.getInt("GENERAL", "max_fsaa", 3)));
|
||||
|
||||
m_cf.setTextureQuality(m_theme.getFloat(domain, "tex_lod_bias", -3.f),
|
||||
CoverFlow.setTextureQuality(m_theme.getFloat(domain, "tex_lod_bias", -3.f),
|
||||
m_theme.getInt(domain, "tex_aniso", 2),
|
||||
m_theme.getBool(domain, "tex_edge_lod", true));
|
||||
|
||||
m_cf.setRange(_getCFInt(domain, "rows", (smallbox && homebrew) ? 5 : 1, sf), _getCFInt(domain, "columns", 9, sf));
|
||||
CoverFlow.setRange(_getCFInt(domain, "rows", (smallbox && homebrew) ? 5 : 1, sf), _getCFInt(domain, "columns", 9, sf));
|
||||
|
||||
m_cf.setCameraPos(false,
|
||||
CoverFlow.setCameraPos(false,
|
||||
_getCFV3D(domain, "camera_pos", Vector3D(0.f, 1.5f, 5.f), sf),
|
||||
_getCFV3D(domain, "camera_aim", Vector3D(0.f, 0.f, -1.f), sf));
|
||||
|
||||
m_cf.setCameraPos(true,
|
||||
CoverFlow.setCameraPos(true,
|
||||
_getCFV3D(domainSel, "camera_pos", Vector3D(0.f, 1.5f, 5.f), sf),
|
||||
_getCFV3D(domainSel, "camera_aim", Vector3D(0.f, 0.f, -1.f), sf));
|
||||
|
||||
m_cf.setCameraOsc(false,
|
||||
CoverFlow.setCameraOsc(false,
|
||||
_getCFV3D(domain, "camera_osc_speed", Vector3D(2.f, 1.1f, 1.3f), sf),
|
||||
_getCFV3D(domain, "camera_osc_amp", Vector3D(0.1f, 0.2f, 0.1f), sf));
|
||||
|
||||
m_cf.setCameraOsc(true,
|
||||
CoverFlow.setCameraOsc(true,
|
||||
_getCFV3D(domainSel, "camera_osc_speed", Vector3D(), sf),
|
||||
_getCFV3D(domainSel, "camera_osc_amp", Vector3D(), sf));
|
||||
|
||||
float def_cvr_posX = (smallbox && homebrew) ? 1.f : 1.6f;
|
||||
float def_cvr_posY = (smallbox && homebrew) ? -0.6f : 0.f;
|
||||
m_cf.setCoverPos(false,
|
||||
CoverFlow.setCoverPos(false,
|
||||
_getCFV3D(domain, "left_pos", Vector3D(-def_cvr_posX, def_cvr_posY, 0.f), sf),
|
||||
_getCFV3D(domain, "right_pos", Vector3D(def_cvr_posX, def_cvr_posY, 0.f), sf),
|
||||
_getCFV3D(domain, "center_pos", Vector3D(0.f, def_cvr_posY, 1.f), sf),
|
||||
@ -767,47 +767,47 @@ void CMenu::_loadCFLayout(int version, bool forceAA, bool otherScrnFmt)
|
||||
|
||||
def_cvr_posX = (smallbox && homebrew) ? 1.f : 4.6f;
|
||||
float def_cvr_posX1 = (smallbox && homebrew) ? 0.f : -0.6f;
|
||||
m_cf.setCoverPos(true,
|
||||
CoverFlow.setCoverPos(true,
|
||||
_getCFV3D(domainSel, "left_pos", Vector3D(-def_cvr_posX, def_cvr_posY, 0.f), sf),
|
||||
_getCFV3D(domainSel, "right_pos", Vector3D(def_cvr_posX, def_cvr_posY, 0.f), sf),
|
||||
_getCFV3D(domainSel, "center_pos", Vector3D(def_cvr_posX1, 0.f, 2.6f), sf),
|
||||
_getCFV3D(domainSel, "row_center_pos", Vector3D(0.f, def_cvr_posY, 0.f), sf));
|
||||
|
||||
m_cf.setCoverAngleOsc(false,
|
||||
CoverFlow.setCoverAngleOsc(false,
|
||||
m_theme.getVector3D(domain, "cover_osc_speed", Vector3D(2.f, 2.f, 0.f)),
|
||||
m_theme.getVector3D(domain, "cover_osc_amp", Vector3D(5.f, 10.f, 0.f)));
|
||||
|
||||
m_cf.setCoverAngleOsc(true,
|
||||
CoverFlow.setCoverAngleOsc(true,
|
||||
m_theme.getVector3D(domainSel, "cover_osc_speed", Vector3D(2.1f, 2.1f, 0.f)),
|
||||
m_theme.getVector3D(domainSel, "cover_osc_amp", Vector3D(2.f, 5.f, 0.f)));
|
||||
|
||||
m_cf.setCoverPosOsc(false,
|
||||
CoverFlow.setCoverPosOsc(false,
|
||||
m_theme.getVector3D(domain, "cover_pos_osc_speed"),
|
||||
m_theme.getVector3D(domain, "cover_pos_osc_amp"));
|
||||
|
||||
m_cf.setCoverPosOsc(true,
|
||||
CoverFlow.setCoverPosOsc(true,
|
||||
m_theme.getVector3D(domainSel, "cover_pos_osc_speed"),
|
||||
m_theme.getVector3D(domainSel, "cover_pos_osc_amp"));
|
||||
|
||||
float spacerX = (smallbox && homebrew) ? 1.f : 0.35f;
|
||||
m_cf.setSpacers(false,
|
||||
CoverFlow.setSpacers(false,
|
||||
m_theme.getVector3D(domain, "left_spacer", Vector3D(-spacerX, 0.f, 0.f)),
|
||||
m_theme.getVector3D(domain, "right_spacer", Vector3D(spacerX, 0.f, 0.f)));
|
||||
|
||||
m_cf.setSpacers(true,
|
||||
CoverFlow.setSpacers(true,
|
||||
m_theme.getVector3D(domainSel, "left_spacer", Vector3D(-spacerX, 0.f, 0.f)),
|
||||
m_theme.getVector3D(domainSel, "right_spacer", Vector3D(spacerX, 0.f, 0.f)));
|
||||
|
||||
m_cf.setDeltaAngles(false,
|
||||
CoverFlow.setDeltaAngles(false,
|
||||
m_theme.getVector3D(domain, "left_delta_angle"),
|
||||
m_theme.getVector3D(domain, "right_delta_angle"));
|
||||
|
||||
m_cf.setDeltaAngles(true,
|
||||
CoverFlow.setDeltaAngles(true,
|
||||
m_theme.getVector3D(domainSel, "left_delta_angle"),
|
||||
m_theme.getVector3D(domainSel, "right_delta_angle"));
|
||||
|
||||
float angleY = (smallbox && homebrew) ? 0.f : 70.f;
|
||||
m_cf.setAngles(false,
|
||||
CoverFlow.setAngles(false,
|
||||
m_theme.getVector3D(domain, "left_angle", Vector3D(0.f, angleY, 0.f)),
|
||||
m_theme.getVector3D(domain, "right_angle", Vector3D(0.f, -angleY, 0.f)),
|
||||
m_theme.getVector3D(domain, "center_angle"),
|
||||
@ -816,101 +816,101 @@ void CMenu::_loadCFLayout(int version, bool forceAA, bool otherScrnFmt)
|
||||
angleY = (smallbox && homebrew) ? 0.f : 90.f;
|
||||
float angleY1 = (smallbox && homebrew) ? 0.f : 380.f;
|
||||
float angleX = (smallbox && homebrew) ? 0.f : -45.f;
|
||||
m_cf.setAngles(true,
|
||||
CoverFlow.setAngles(true,
|
||||
m_theme.getVector3D(domainSel, "left_angle", Vector3D(angleX, angleY, 0.f)),
|
||||
m_theme.getVector3D(domainSel, "right_angle", Vector3D(angleX, -angleY, 0.f)),
|
||||
m_theme.getVector3D(domainSel, "center_angle", Vector3D(0.f, angleY1, 0.f)),
|
||||
m_theme.getVector3D(domainSel, "row_center_angle"));
|
||||
|
||||
angleX = smallbox ? 0.f : 55.f;
|
||||
m_cf.setTitleAngles(false,
|
||||
CoverFlow.setTitleAngles(false,
|
||||
_getCFFloat(domain, "text_left_angle", -angleX, sf),
|
||||
_getCFFloat(domain, "text_right_angle", angleX, sf),
|
||||
_getCFFloat(domain, "text_center_angle", 0.f, sf));
|
||||
|
||||
m_cf.setTitleAngles(true,
|
||||
CoverFlow.setTitleAngles(true,
|
||||
_getCFFloat(domainSel, "text_left_angle", -angleX, sf),
|
||||
_getCFFloat(domainSel, "text_right_angle", angleX, sf),
|
||||
_getCFFloat(domainSel, "text_center_angle", 0.f, sf));
|
||||
|
||||
m_cf.setTitlePos(false,
|
||||
CoverFlow.setTitlePos(false,
|
||||
_getCFV3D(domain, "text_left_pos", Vector3D(-4.f, 0.f, 1.3f), sf),
|
||||
_getCFV3D(domain, "text_right_pos", Vector3D(4.f, 0.f, 1.3f), sf),
|
||||
_getCFV3D(domain, "text_center_pos", Vector3D(0.f, 0.f, 2.6f), sf));
|
||||
|
||||
m_cf.setTitlePos(true,
|
||||
CoverFlow.setTitlePos(true,
|
||||
_getCFV3D(domainSel, "text_left_pos", Vector3D(-4.f, 0.f, 1.3f), sf),
|
||||
_getCFV3D(domainSel, "text_right_pos", Vector3D(4.f, 0.f, 1.3f), sf),
|
||||
_getCFV3D(domainSel, "text_center_pos", Vector3D(1.7f, 1.8f, 1.6f), sf));
|
||||
|
||||
m_cf.setTitleWidth(false,
|
||||
CoverFlow.setTitleWidth(false,
|
||||
_getCFFloat(domain, "text_side_wrap_width", 500.f, sf),
|
||||
_getCFFloat(domain, "text_center_wrap_width", 500.f, sf));
|
||||
|
||||
m_cf.setTitleWidth(true,
|
||||
CoverFlow.setTitleWidth(true,
|
||||
_getCFFloat(domainSel, "text_side_wrap_width", 500.f, sf),
|
||||
_getCFFloat(domainSel, "text_center_wrap_width", 310.f, sf));
|
||||
|
||||
m_cf.setTitleStyle(false,
|
||||
CoverFlow.setTitleStyle(false,
|
||||
_textStyle(domain.c_str(), "text_side_style", FTGX_ALIGN_MIDDLE | FTGX_JUSTIFY_CENTER),
|
||||
_textStyle(domain.c_str(), "text_center_style", FTGX_ALIGN_MIDDLE | FTGX_JUSTIFY_CENTER));
|
||||
|
||||
m_cf.setTitleStyle(true,
|
||||
CoverFlow.setTitleStyle(true,
|
||||
_textStyle(domainSel.c_str(), "text_side_style", FTGX_ALIGN_MIDDLE | FTGX_JUSTIFY_CENTER),
|
||||
_textStyle(domainSel.c_str(), "text_center_style", FTGX_ALIGN_TOP | FTGX_JUSTIFY_RIGHT));
|
||||
|
||||
m_cf.setColors(false,
|
||||
CoverFlow.setColors(false,
|
||||
m_theme.getColor(domain, "color_beg", 0xCFFFFFFF),
|
||||
m_theme.getColor(domain, "color_end", 0x3FFFFFFF),
|
||||
m_theme.getColor(domain, "color_off", 0x7FFFFFFF));
|
||||
|
||||
m_cf.setColors(true,
|
||||
CoverFlow.setColors(true,
|
||||
m_theme.getColor(domainSel, "color_beg", 0x7FFFFFFF),
|
||||
m_theme.getColor(domainSel, "color_end", 0x1FFFFFFF),
|
||||
m_theme.getColor(domain, "color_off", 0x7FFFFFFF)); // Mouse not used once a selection has been made
|
||||
|
||||
m_cf.setMirrorAlpha(m_theme.getFloat(domain, "mirror_alpha", 0.25f), m_theme.getFloat(domain, "title_mirror_alpha", 0.2f)); // Doesn't depend on selection
|
||||
CoverFlow.setMirrorAlpha(m_theme.getFloat(domain, "mirror_alpha", 0.25f), m_theme.getFloat(domain, "title_mirror_alpha", 0.2f)); // Doesn't depend on selection
|
||||
|
||||
m_cf.setMirrorBlur(m_theme.getBool(domain, "mirror_blur", true)); // Doesn't depend on selection
|
||||
CoverFlow.setMirrorBlur(m_theme.getBool(domain, "mirror_blur", true)); // Doesn't depend on selection
|
||||
|
||||
m_cf.setShadowColors(false,
|
||||
CoverFlow.setShadowColors(false,
|
||||
m_theme.getColor(domain, "color_shadow_center", 0x00000000),
|
||||
m_theme.getColor(domain, "color_shadow_beg", 0x00000000),
|
||||
m_theme.getColor(domain, "color_shadow_end", 0x00000000),
|
||||
m_theme.getColor(domain, "color_shadow_off", 0x00000000));
|
||||
|
||||
m_cf.setShadowColors(true,
|
||||
CoverFlow.setShadowColors(true,
|
||||
m_theme.getColor(domainSel, "color_shadow_center", 0x0000007F),
|
||||
m_theme.getColor(domainSel, "color_shadow_beg", 0x0000007F),
|
||||
m_theme.getColor(domainSel, "color_shadow_end", 0x0000007F),
|
||||
m_theme.getColor(domainSel, "color_shadow_off", 0x0000007F));
|
||||
|
||||
m_cf.setShadowPos(m_theme.getFloat(domain, "shadow_scale", 1.1f),
|
||||
CoverFlow.setShadowPos(m_theme.getFloat(domain, "shadow_scale", 1.1f),
|
||||
m_theme.getFloat(domain, "shadow_x"),
|
||||
m_theme.getFloat(domain, "shadow_y"));
|
||||
|
||||
float spacerY = (smallbox && homebrew) ? 0.60f : 2.f;
|
||||
m_cf.setRowSpacers(false,
|
||||
CoverFlow.setRowSpacers(false,
|
||||
m_theme.getVector3D(domain, "top_spacer", Vector3D(0.f, spacerY, 0.f)),
|
||||
m_theme.getVector3D(domain, "bottom_spacer", Vector3D(0.f, -spacerY, 0.f)));
|
||||
|
||||
m_cf.setRowSpacers(true,
|
||||
CoverFlow.setRowSpacers(true,
|
||||
m_theme.getVector3D(domainSel, "top_spacer", Vector3D(0.f, spacerY, 0.f)),
|
||||
m_theme.getVector3D(domainSel, "bottom_spacer", Vector3D(0.f, -spacerY, 0.f)));
|
||||
|
||||
m_cf.setRowDeltaAngles(false,
|
||||
CoverFlow.setRowDeltaAngles(false,
|
||||
m_theme.getVector3D(domain, "top_delta_angle"),
|
||||
m_theme.getVector3D(domain, "bottom_delta_angle"));
|
||||
|
||||
m_cf.setRowDeltaAngles(true,
|
||||
CoverFlow.setRowDeltaAngles(true,
|
||||
m_theme.getVector3D(domainSel, "top_delta_angle"),
|
||||
m_theme.getVector3D(domainSel, "bottom_delta_angle"));
|
||||
|
||||
m_cf.setRowAngles(false,
|
||||
CoverFlow.setRowAngles(false,
|
||||
m_theme.getVector3D(domain, "top_angle"),
|
||||
m_theme.getVector3D(domain, "bottom_angle"));
|
||||
|
||||
m_cf.setRowAngles(true,
|
||||
CoverFlow.setRowAngles(true,
|
||||
m_theme.getVector3D(domainSel, "top_angle"),
|
||||
m_theme.getVector3D(domainSel, "bottom_angle"));
|
||||
|
||||
@ -921,25 +921,25 @@ void CMenu::_loadCFLayout(int version, bool forceAA, bool otherScrnFmt)
|
||||
: Vector3D(1.f, 0.5f, 1.f))
|
||||
: Vector3D(1.f, 1.f, 1.f);
|
||||
|
||||
m_cf.setCoverScale(false,
|
||||
CoverFlow.setCoverScale(false,
|
||||
m_theme.getVector3D(domain, "left_scale", def_cvr_scale),
|
||||
m_theme.getVector3D(domain, "right_scale", def_cvr_scale),
|
||||
m_theme.getVector3D(domain, "center_scale", def_cvr_scale),
|
||||
m_theme.getVector3D(domain, "row_center_scale", def_cvr_scale));
|
||||
|
||||
m_cf.setCoverScale(true,
|
||||
CoverFlow.setCoverScale(true,
|
||||
m_theme.getVector3D(domainSel, "left_scale", def_cvr_scale),
|
||||
m_theme.getVector3D(domainSel, "right_scale", def_cvr_scale),
|
||||
m_theme.getVector3D(domainSel, "center_scale", def_cvr_scale),
|
||||
m_theme.getVector3D(domainSel, "row_center_scale", def_cvr_scale));
|
||||
|
||||
float flipX = (smallbox && homebrew) ? 359.f : 180.f;
|
||||
m_cf.setCoverFlipping(
|
||||
CoverFlow.setCoverFlipping(
|
||||
_getCFV3D(domainSel, "flip_pos", Vector3D(), sf),
|
||||
_getCFV3D(domainSel, "flip_angle", Vector3D(0.f, flipX, 0.f), sf),
|
||||
_getCFV3D(domainSel, "flip_scale", def_cvr_scale, sf));
|
||||
|
||||
m_cf.setBlur(
|
||||
CoverFlow.setBlur(
|
||||
m_theme.getInt(domain, "blur_resolution", 1),
|
||||
m_theme.getInt(domain, "blur_radius", 2),
|
||||
m_theme.getFloat(domain, "blur_factor", 1.f));
|
||||
@ -1248,7 +1248,7 @@ vector<STexture> CMenu::_textures(const char *domain, const char *key)
|
||||
if (i != theme.texSet.end())
|
||||
textures.push_back(i->second);
|
||||
STexture tex;
|
||||
if (STexture::TE_OK == tex.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), filename.c_str())))
|
||||
if(tex.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), filename.c_str())) == TE_OK)
|
||||
{
|
||||
theme.texSet[filename] = tex;
|
||||
textures.push_back(tex);
|
||||
@ -1274,7 +1274,7 @@ STexture CMenu::_texture(const char *domain, const char *key, STexture &def, boo
|
||||
return i->second;
|
||||
/* Load from image file */
|
||||
STexture tex;
|
||||
if(STexture::TE_OK == tex.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), filename.c_str())))
|
||||
if(tex.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), filename.c_str())) == TE_OK)
|
||||
{
|
||||
if(freeDef && def.data != NULL)
|
||||
{
|
||||
@ -1596,8 +1596,8 @@ void CMenu::_initCF(void)
|
||||
GameTDB gametdb;
|
||||
const char *domain = _domainFromView();
|
||||
|
||||
m_cf.clear();
|
||||
m_cf.reserve(m_gameList.size());
|
||||
CoverFlow.clear();
|
||||
CoverFlow.reserve(m_gameList.size());
|
||||
|
||||
const vector<bool> &EnabledPlugins = m_plugin.GetEnabledPlugins(m_cfg);
|
||||
|
||||
@ -1880,9 +1880,9 @@ void CMenu::_initCF(void)
|
||||
if(EnabledPlugins.size() == 0) //all plugins
|
||||
{
|
||||
if(coverFolder.size() > 0)
|
||||
m_cf.addItem(&(*element), fmt("%s/%s/%s.png", m_picDir.c_str(), coverFolder.c_str(), tempname.c_str()), fmt("%s/%s/%s.png", m_boxPicDir.c_str(), coverFolder.c_str(), tempname.c_str()), fmt("%s/%s", m_boxPicDir.c_str(), blankCoverName.c_str()), playcount, lastPlayed);
|
||||
CoverFlow.addItem(&(*element), fmt("%s/%s/%s.png", m_picDir.c_str(), coverFolder.c_str(), tempname.c_str()), fmt("%s/%s/%s.png", m_boxPicDir.c_str(), coverFolder.c_str(), tempname.c_str()), fmt("%s/%s", m_boxPicDir.c_str(), blankCoverName.c_str()), playcount, lastPlayed);
|
||||
else
|
||||
m_cf.addItem(&(*element), fmt("%s/%s.png", m_picDir.c_str(), tempname.c_str()), fmt("%s/%s.png", m_boxPicDir.c_str(), tempname.c_str()), fmt("%s/%s", m_boxPicDir.c_str(), blankCoverName.c_str()), playcount, lastPlayed);
|
||||
CoverFlow.addItem(&(*element), fmt("%s/%s.png", m_picDir.c_str(), tempname.c_str()), fmt("%s/%s.png", m_boxPicDir.c_str(), tempname.c_str()), fmt("%s/%s", m_boxPicDir.c_str(), blankCoverName.c_str()), playcount, lastPlayed);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1891,18 +1891,18 @@ void CMenu::_initCF(void)
|
||||
if(EnabledPlugins.at(j) == true && element->settings[0] == m_plugin.getPluginMagic(j))
|
||||
{
|
||||
if(coverFolder.size() > 0)
|
||||
m_cf.addItem(&(*element), fmt("%s/%s/%s.png", m_picDir.c_str(), coverFolder.c_str(), tempname.c_str()), fmt("%s/%s/%s.png", m_boxPicDir.c_str(), coverFolder.c_str(), tempname.c_str()), fmt("%s/%s", m_boxPicDir.c_str(), blankCoverName.c_str()), playcount, lastPlayed);
|
||||
CoverFlow.addItem(&(*element), fmt("%s/%s/%s.png", m_picDir.c_str(), coverFolder.c_str(), tempname.c_str()), fmt("%s/%s/%s.png", m_boxPicDir.c_str(), coverFolder.c_str(), tempname.c_str()), fmt("%s/%s", m_boxPicDir.c_str(), blankCoverName.c_str()), playcount, lastPlayed);
|
||||
else
|
||||
m_cf.addItem(&(*element), fmt("%s/%s.png", m_picDir.c_str(), tempname.c_str()), fmt("%s/%s.png", m_boxPicDir.c_str(), tempname.c_str()), fmt("%s/%s", m_boxPicDir.c_str(), blankCoverName.c_str()), playcount, lastPlayed);
|
||||
CoverFlow.addItem(&(*element), fmt("%s/%s.png", m_picDir.c_str(), tempname.c_str()), fmt("%s/%s.png", m_boxPicDir.c_str(), tempname.c_str()), fmt("%s/%s", m_boxPicDir.c_str(), blankCoverName.c_str()), playcount, lastPlayed);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(element->type == TYPE_HOMEBREW)
|
||||
m_cf.addItem(&(*element), fmt("%s/icon.png", element->path), fmt("%s/%s.png", m_boxPicDir.c_str(), id.c_str()), fmt("%s/%s", m_boxPicDir.c_str(), blankCoverName.c_str()), playcount, lastPlayed);
|
||||
CoverFlow.addItem(&(*element), fmt("%s/icon.png", element->path), fmt("%s/%s.png", m_boxPicDir.c_str(), id.c_str()), fmt("%s/%s", m_boxPicDir.c_str(), blankCoverName.c_str()), playcount, lastPlayed);
|
||||
else
|
||||
m_cf.addItem(&(*element), fmt("%s/%s.png", m_picDir.c_str(), id.c_str()), fmt("%s/%s.png", m_boxPicDir.c_str(), id.c_str()), fmt("%s/%s", m_boxPicDir.c_str(), blankCoverName.c_str()), playcount, lastPlayed);
|
||||
CoverFlow.addItem(&(*element), fmt("%s/%s.png", m_picDir.c_str(), id.c_str()), fmt("%s/%s.png", m_boxPicDir.c_str(), id.c_str()), fmt("%s/%s", m_boxPicDir.c_str(), blankCoverName.c_str()), playcount, lastPlayed);
|
||||
}
|
||||
}
|
||||
m_gcfg1.unload();
|
||||
@ -1911,33 +1911,34 @@ void CMenu::_initCF(void)
|
||||
dump.save(true);
|
||||
m_cfg.setBool(domain, "dump_list", false);
|
||||
}
|
||||
m_cf.setBoxMode(m_cfg.getBool("GENERAL", "box_mode", true));
|
||||
m_cf.setCompression(m_cfg.getBool("GENERAL", "allow_texture_compression", true));
|
||||
m_cf.setBufferSize(m_cfg.getInt("GENERAL", "cover_buffer", 20));
|
||||
m_cf.setSorting((Sorting)m_cfg.getInt(domain, "sort", 0));
|
||||
m_cf.setHQcover(m_cfg.getBool("GENERAL", "cover_use_hq", false));
|
||||
CoverFlow.setBoxMode(m_cfg.getBool("GENERAL", "box_mode", true));
|
||||
CoverFlow.setCompression(m_cfg.getBool("GENERAL", "allow_texture_compression", true));
|
||||
CoverFlow.setBufferSize(m_cfg.getInt("GENERAL", "cover_buffer", 20));
|
||||
CoverFlow.setSorting((Sorting)m_cfg.getInt(domain, "sort", 0));
|
||||
CoverFlow.setHQcover(m_cfg.getBool("GENERAL", "cover_use_hq", false));
|
||||
|
||||
m_cf.start();
|
||||
if (m_curGameId.empty() || !m_cf.findId(m_curGameId.c_str(), true))
|
||||
m_cf.findId(m_cfg.getString(domain, "current_item").c_str(), true);
|
||||
CoverFlow.start();
|
||||
if (m_curGameId.empty() || !CoverFlow.findId(m_curGameId.c_str(), true))
|
||||
CoverFlow.findId(m_cfg.getString(domain, "current_item").c_str(), true);
|
||||
}
|
||||
|
||||
void CMenu::_mainLoopCommon(bool withCF, bool adjusting)
|
||||
{
|
||||
if(withCF)
|
||||
m_cf.tick();
|
||||
CoverFlow.tick();
|
||||
m_btnMgr.tick();
|
||||
m_fa.tick();
|
||||
m_cf.setFanartPlaying(m_fa.isLoaded());
|
||||
m_cf.setFanartTextColor(m_fa.getTextColor(m_theme.getColor("_COVERFLOW", "font_color", CColor(0xFFFFFFFF))));
|
||||
m_fa.hideCover() ? CoverFlow.hideCover() : CoverFlow.showCover();
|
||||
CoverFlow.setFanartPlaying(m_fa.isLoaded());
|
||||
CoverFlow.setFanartTextColor(m_fa.getTextColor(m_theme.getColor("_COVERFLOW", "font_color", CColor(0xFFFFFFFF))));
|
||||
|
||||
m_vid.prepare();
|
||||
m_vid.setup2DProjection();
|
||||
_updateBg();
|
||||
|
||||
m_fa.hideCover() ? m_cf.hideCover() : m_cf.showCover();
|
||||
|
||||
if(CoverFlow.getRenderTex())
|
||||
CoverFlow.RenderTex();
|
||||
if(withCF)
|
||||
m_cf.makeEffectTexture(m_vid, m_lqBg);
|
||||
|
||||
CoverFlow.makeEffectTexture(m_lqBg);
|
||||
if(withCF && m_aa > 0)
|
||||
{
|
||||
m_vid.setAA(m_aa, true);
|
||||
@ -1947,11 +1948,11 @@ void CMenu::_mainLoopCommon(bool withCF, bool adjusting)
|
||||
m_vid.setup2DProjection(false, true);
|
||||
_drawBg();
|
||||
m_fa.draw(false);
|
||||
m_cf.draw();
|
||||
CoverFlow.draw();
|
||||
m_vid.setup2DProjection(false, true);
|
||||
m_cf.drawEffect();
|
||||
CoverFlow.drawEffect();
|
||||
if(!m_banner.GetSelectedGame())
|
||||
m_cf.drawText(adjusting);
|
||||
CoverFlow.drawText(adjusting);
|
||||
m_vid.renderAAPass(i);
|
||||
}
|
||||
m_vid.setup2DProjection();
|
||||
@ -1959,17 +1960,15 @@ void CMenu::_mainLoopCommon(bool withCF, bool adjusting)
|
||||
}
|
||||
else
|
||||
{
|
||||
m_vid.prepare();
|
||||
m_vid.setup2DProjection();
|
||||
_drawBg();
|
||||
m_fa.draw(false);
|
||||
if(withCF)
|
||||
{
|
||||
m_cf.draw();
|
||||
CoverFlow.draw();
|
||||
m_vid.setup2DProjection();
|
||||
m_cf.drawEffect();
|
||||
CoverFlow.drawEffect();
|
||||
if(!m_banner.GetSelectedGame())
|
||||
m_cf.drawText(adjusting);
|
||||
CoverFlow.drawText(adjusting);
|
||||
}
|
||||
}
|
||||
if(m_fa.isLoaded())
|
||||
@ -2061,7 +2060,6 @@ void CMenu::_updateBg(void)
|
||||
Mtx modelViewMtx;
|
||||
GXTexObj texObj;
|
||||
GXTexObj texObj2;
|
||||
Mtx44 projMtx;
|
||||
|
||||
if (m_bgCrossFade == 0) return;
|
||||
m_bgCrossFade = max(0, (int)m_bgCrossFade - 14);
|
||||
@ -2071,10 +2069,6 @@ void CMenu::_updateBg(void)
|
||||
m_curBg = m_nextBg;
|
||||
return;
|
||||
}
|
||||
m_vid.prepare();
|
||||
GX_SetViewport(0.f, 0.f, 640.f, 480.f, 0.f, 1.f);
|
||||
guOrtho(projMtx, 0.f, 480.f, 0.f, 640.f, 0.f, 1000.0f);
|
||||
GX_LoadProjectionMtx(projMtx, GX_ORTHOGRAPHIC);
|
||||
GX_ClearVtxDesc();
|
||||
GX_SetNumTevStages(m_prevBg.data == NULL ? 1 : 2);
|
||||
GX_SetNumChans(0);
|
||||
@ -2252,7 +2246,7 @@ bool CMenu::_loadChannelList(void)
|
||||
|
||||
bool CMenu::_loadList(void)
|
||||
{
|
||||
m_cf.clear();
|
||||
CoverFlow.clear();
|
||||
if((m_current_view == COVERFLOW_CHANNEL && m_cfg.getBool(CHANNEL_DOMAIN, "disable", true))
|
||||
|| (m_current_view != COVERFLOW_CHANNEL && NandHandle.EmulationEnabled()))
|
||||
{
|
||||
@ -2419,7 +2413,7 @@ void CMenu::_stopSounds(void)
|
||||
}
|
||||
}
|
||||
m_btnMgr.stopSounds();
|
||||
m_cf.stopSound();
|
||||
CoverFlow.stopSound();
|
||||
m_gameSound.Stop();
|
||||
}
|
||||
|
||||
@ -2582,11 +2576,11 @@ void CMenu::_cleanupDefaultFont()
|
||||
string CMenu::_getId()
|
||||
{
|
||||
string id;
|
||||
if(!NoGameID(m_cf.getHdr()->type))
|
||||
id = m_cf.getId();
|
||||
if(!NoGameID(CoverFlow.getHdr()->type))
|
||||
id = CoverFlow.getId();
|
||||
else
|
||||
{
|
||||
dir_discHdr *hdr = m_cf.getHdr();
|
||||
dir_discHdr *hdr = CoverFlow.getHdr();
|
||||
string tempname(hdr->path);
|
||||
if(hdr->type == TYPE_HOMEBREW)
|
||||
{
|
||||
|
@ -53,7 +53,6 @@ private:
|
||||
};
|
||||
CCursor m_cursor[WPAD_MAX_WIIMOTES];
|
||||
CButtonsMgr m_btnMgr;
|
||||
CCoverFlow m_cf;
|
||||
CFanart m_fa;
|
||||
Config m_cfg;
|
||||
Config m_loc;
|
||||
|
@ -123,7 +123,7 @@ void CMenu::_getIDCats(void)
|
||||
m_categories.at(k) = '1';
|
||||
}
|
||||
}
|
||||
m_btnMgr.setText(m_categoryLblTitle, m_cf.getTitle());
|
||||
m_btnMgr.setText(m_categoryLblTitle, CoverFlow.getTitle());
|
||||
}
|
||||
|
||||
void CMenu::_setIDCats(void)
|
||||
@ -213,7 +213,7 @@ void CMenu::_CategorySettings(bool fromGameSet)
|
||||
while(!m_exit)
|
||||
{
|
||||
_mainLoopCommon();
|
||||
m_cf.tick();
|
||||
CoverFlow.tick();
|
||||
if(!m_btnMgr.selected(lastBtn))
|
||||
m_btnMgr.noHover(false);
|
||||
|
||||
@ -260,7 +260,7 @@ void CMenu::_CategorySettings(bool fromGameSet)
|
||||
{
|
||||
_setIDCats();
|
||||
_hideCategorySettings();
|
||||
m_cf.right();
|
||||
CoverFlow.right();
|
||||
curPage = 1;
|
||||
m_categories.assign(m_max_categories, '0');
|
||||
_getIDCats();
|
||||
@ -270,7 +270,7 @@ void CMenu::_CategorySettings(bool fromGameSet)
|
||||
{
|
||||
_setIDCats();
|
||||
_hideCategorySettings();
|
||||
m_cf.left();
|
||||
CoverFlow.left();
|
||||
curPage = 1;
|
||||
m_categories.assign(m_max_categories, '0');
|
||||
_getIDCats();
|
||||
|
@ -174,11 +174,11 @@ void CMenu::_hideCFTheme(bool instant)
|
||||
void CMenu::_showCFTheme(u32 curParam, int version, bool wide)
|
||||
{
|
||||
const CMenu::SCFParamDesc &p = CMenu::_cfParams[curParam];
|
||||
bool selected = m_cf.selected();
|
||||
bool selected = CoverFlow.selected();
|
||||
string domUnsel(sfmt(_cfDomain(), version));
|
||||
string domSel(sfmt(_cfDomain(true), version));
|
||||
|
||||
m_cf.simulateOtherScreenFormat(p.scrnFmt && wide != m_vid.wide());
|
||||
CoverFlow.simulateOtherScreenFormat(p.scrnFmt && wide != m_vid.wide());
|
||||
_setBg(m_mainBg, m_mainBgLQ);
|
||||
m_btnMgr.show(m_cfThemeBtnSave);
|
||||
m_btnMgr.show(m_cfThemeBtnCancel);
|
||||
@ -292,7 +292,7 @@ void CMenu::_showCFTheme(u32 curParam, int version, bool wide)
|
||||
m_btnMgr.show(m_cfThemeBtnValP[k]);
|
||||
break;
|
||||
case CMenu::SCFParamDesc::PDT_TXTSTYLE:
|
||||
m_btnMgr.setText(m_cfThemeLblVal[k], styleToTxt(_textStyle(domain.c_str(), key.c_str(), m_cf.selected() ? FTGX_JUSTIFY_RIGHT | FTGX_ALIGN_TOP : FTGX_JUSTIFY_CENTER | FTGX_ALIGN_BOTTOM)));
|
||||
m_btnMgr.setText(m_cfThemeLblVal[k], styleToTxt(_textStyle(domain.c_str(), key.c_str(), CoverFlow.selected() ? FTGX_JUSTIFY_RIGHT | FTGX_ALIGN_TOP : FTGX_JUSTIFY_CENTER | FTGX_ALIGN_BOTTOM)));
|
||||
for (int j = 1; j < 4; ++j)
|
||||
{
|
||||
m_btnMgr.hide(m_cfThemeLblVal[k + j]);
|
||||
@ -320,7 +320,7 @@ void CMenu::_cfTheme(void)
|
||||
_initCF();
|
||||
_showCFTheme(curParam, cfVersion, wide);
|
||||
_loadCFLayout(cfVersion, true, wide != m_vid.wide());
|
||||
m_cf.applySettings();
|
||||
CoverFlow.applySettings();
|
||||
while(!m_exit)
|
||||
{
|
||||
_mainLoopCommon(true);
|
||||
@ -338,14 +338,14 @@ void CMenu::_cfTheme(void)
|
||||
if(BTN_B_HELD && BTN_1_PRESSED)
|
||||
{
|
||||
copyVersion = cfVersion;
|
||||
copySelected = m_cf.selected();
|
||||
copySelected = CoverFlow.selected();
|
||||
copyWide = wide;
|
||||
}
|
||||
else if(copyVersion > 0 && BTN_B_HELD && BTN_2_PRESSED)
|
||||
{
|
||||
string domSrc(sfmt(_cfDomain(copySelected), copyVersion));
|
||||
string domDst(sfmt(_cfDomain(m_cf.selected()), cfVersion));
|
||||
if (copyVersion != cfVersion || copySelected != m_cf.selected())
|
||||
string domDst(sfmt(_cfDomain(CoverFlow.selected()), cfVersion));
|
||||
if (copyVersion != cfVersion || copySelected != CoverFlow.selected())
|
||||
m_theme.copyDomain(domDst, domSrc);
|
||||
else if (copyWide != wide)
|
||||
for (u32 i = 0; i < ARRAY_SIZE(CMenu::_cfParams); ++i)
|
||||
@ -370,9 +370,9 @@ void CMenu::_cfTheme(void)
|
||||
}
|
||||
_showCFTheme(curParam, cfVersion, wide);
|
||||
_loadCFLayout(cfVersion, true, wide != m_vid.wide());
|
||||
m_cf.applySettings();
|
||||
CoverFlow.applySettings();
|
||||
}
|
||||
bool sel = m_cf.selected();
|
||||
bool sel = CoverFlow.selected();
|
||||
if (BTN_B_HELD)
|
||||
{
|
||||
if (BTN_PLUS_PRESSED || BTN_MINUS_PRESSED)
|
||||
@ -380,28 +380,28 @@ void CMenu::_cfTheme(void)
|
||||
s8 direction = BTN_PLUS_PRESSED ? 1 : -1;
|
||||
curParam = loopNum(curParam + direction, ARRAY_SIZE(CMenu::_cfParams));
|
||||
if (CMenu::_cfParams[curParam].domain == CMenu::SCFParamDesc::PDD_SELECTED)
|
||||
m_cf.select();
|
||||
CoverFlow.select();
|
||||
_showCFTheme(curParam, cfVersion, wide);
|
||||
}
|
||||
}
|
||||
else if (!sel)
|
||||
{
|
||||
if (BTN_PLUS_PRESSED)
|
||||
m_cf.pageDown();
|
||||
CoverFlow.pageDown();
|
||||
else if (BTN_MINUS_PRESSED)
|
||||
m_cf.pageUp();
|
||||
CoverFlow.pageUp();
|
||||
}
|
||||
if (BTN_LEFT_REPEAT)
|
||||
m_cf.left();
|
||||
CoverFlow.left();
|
||||
else if (BTN_RIGHT_REPEAT)
|
||||
m_cf.right();
|
||||
if (sel && !m_cf.selected())
|
||||
m_cf.select();
|
||||
CoverFlow.right();
|
||||
if (sel && !CoverFlow.selected())
|
||||
CoverFlow.select();
|
||||
if (BTN_A_PRESSED)
|
||||
{
|
||||
if (m_btnMgr.selected(m_cfThemeBtnSave))
|
||||
{
|
||||
m_cf.stopCoverLoader();
|
||||
CoverFlow.stopCoverLoader();
|
||||
m_theme.save();
|
||||
break;
|
||||
}
|
||||
@ -417,31 +417,31 @@ void CMenu::_cfTheme(void)
|
||||
cfVersion = 1 + loopNum(cfVersion, m_numCFVersions);
|
||||
_showCFTheme(curParam, cfVersion, wide);
|
||||
_loadCFLayout(cfVersion, true, wide != m_vid.wide());
|
||||
m_cf.applySettings();
|
||||
CoverFlow.applySettings();
|
||||
}
|
||||
else if (m_btnMgr.selected(m_cfThemeBtnSelect))
|
||||
{
|
||||
if (m_cf.selected())
|
||||
m_cf.cancel();
|
||||
if (CoverFlow.selected())
|
||||
CoverFlow.cancel();
|
||||
else
|
||||
m_cf.select();
|
||||
CoverFlow.select();
|
||||
_showCFTheme(curParam, cfVersion, wide);
|
||||
_loadCFLayout(cfVersion, true, wide != m_vid.wide());
|
||||
m_cf.applySettings();
|
||||
CoverFlow.applySettings();
|
||||
}
|
||||
else if (m_btnMgr.selected(m_cfThemeBtnWide))
|
||||
{
|
||||
wide = !wide;
|
||||
_showCFTheme(curParam, cfVersion, wide);
|
||||
_loadCFLayout(cfVersion, true, wide != m_vid.wide());
|
||||
m_cf.applySettings();
|
||||
CoverFlow.applySettings();
|
||||
}
|
||||
else if (m_btnMgr.selected(m_cfThemeBtnParamP) || m_btnMgr.selected(m_cfThemeBtnParamM))
|
||||
{
|
||||
s8 direction = m_btnMgr.selected(m_cfThemeBtnParamP) ? 1 : -1;
|
||||
curParam = loopNum(curParam + direction, ARRAY_SIZE(CMenu::_cfParams));
|
||||
if (CMenu::_cfParams[curParam].domain == CMenu::SCFParamDesc::PDD_SELECTED)
|
||||
m_cf.select();
|
||||
CoverFlow.select();
|
||||
_showCFTheme(curParam, cfVersion, wide);
|
||||
}
|
||||
}
|
||||
@ -453,7 +453,7 @@ void CMenu::_cfTheme(void)
|
||||
_cfParam(m_btnMgr.selected(m_cfThemeBtnValP[i]), i, CMenu::_cfParams[curParam], cfVersion, wide);
|
||||
_showCFTheme(curParam, cfVersion, wide);
|
||||
_loadCFLayout(cfVersion, true, wide != m_vid.wide());
|
||||
m_cf.applySettings();
|
||||
CoverFlow.applySettings();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -461,19 +461,19 @@ void CMenu::_cfTheme(void)
|
||||
_showCFTheme(curParam, cfVersion, wide);
|
||||
else
|
||||
_hideCFTheme();
|
||||
m_cf.flip(true, curParam == 16);
|
||||
CoverFlow.flip(true, curParam == 16);
|
||||
}
|
||||
_hideCFTheme();
|
||||
_loadCFLayout(1);
|
||||
m_cf.clear();
|
||||
m_cf.simulateOtherScreenFormat(false);
|
||||
CoverFlow.clear();
|
||||
CoverFlow.simulateOtherScreenFormat(false);
|
||||
}
|
||||
|
||||
void CMenu::_cfParam(bool inc, int i, const CMenu::SCFParamDesc &p, int cfVersion, bool wide)
|
||||
{
|
||||
int k = i / 4;
|
||||
string key(p.key[k]);
|
||||
const char *d = _cfDomain((p.domain != CMenu::SCFParamDesc::PDD_NORMAL && m_cf.selected()) || p.domain == CMenu::SCFParamDesc::PDD_SELECTED);
|
||||
const char *d = _cfDomain((p.domain != CMenu::SCFParamDesc::PDD_NORMAL && CoverFlow.selected()) || p.domain == CMenu::SCFParamDesc::PDD_SELECTED);
|
||||
string domain(sfmt(d, cfVersion));
|
||||
float step = p.step[k];
|
||||
if (!wide && p.scrnFmt && (p.paramType[k] == CMenu::SCFParamDesc::PDT_V3D || p.paramType[k] == CMenu::SCFParamDesc::PDT_FLOAT || p.paramType[k] == CMenu::SCFParamDesc::PDT_INT))
|
||||
@ -542,7 +542,7 @@ void CMenu::_cfParam(bool inc, int i, const CMenu::SCFParamDesc &p, int cfVersio
|
||||
}
|
||||
case CMenu::SCFParamDesc::PDT_TXTSTYLE:
|
||||
{
|
||||
int i = styleToIdx(_textStyle(domain.c_str(), key.c_str(), m_cf.selected() ? FTGX_JUSTIFY_RIGHT | FTGX_ALIGN_TOP : FTGX_JUSTIFY_CENTER | FTGX_ALIGN_BOTTOM));
|
||||
int i = styleToIdx(_textStyle(domain.c_str(), key.c_str(), CoverFlow.selected() ? FTGX_JUSTIFY_RIGHT | FTGX_ALIGN_TOP : FTGX_JUSTIFY_CENTER | FTGX_ALIGN_BOTTOM));
|
||||
i = loopNum(i + (int)step, 9);
|
||||
m_theme.setString(domain, key, styleToTxt(g_txtStyles[i]));
|
||||
break;
|
||||
|
@ -53,7 +53,7 @@ u32 CMenu::_downloadCheatFileAsync(void *obj)
|
||||
return -2;
|
||||
}
|
||||
|
||||
string id = m->m_cf.getId();
|
||||
string id = CoverFlow.getId();
|
||||
char type = id[0] == 'S' ? 'R' : id[0];
|
||||
|
||||
block cheatfile = downloadfile(buffer, bufferSize, fmt(GECKOURL, type, id.c_str()), CMenu::_downloadProgress, m);
|
||||
@ -81,7 +81,7 @@ void CMenu::_CheatSettings()
|
||||
{
|
||||
SetupInput();
|
||||
|
||||
string id = m_cf.getId();
|
||||
string id = CoverFlow.getId();
|
||||
|
||||
m_cheatSettingsPage = 1;
|
||||
int txtavailable = m_cheatfile.openTxtfile(fmt("%s/%s.txt", m_txtCheatDir.c_str(), id.c_str()));
|
||||
|
@ -82,13 +82,13 @@ void CMenu::_showConfig(void)
|
||||
void CMenu::_cfNeedsUpdate(void)
|
||||
{
|
||||
if (!m_cfNeedsUpdate)
|
||||
m_cf.clear();
|
||||
CoverFlow.clear();
|
||||
m_cfNeedsUpdate = true;
|
||||
}
|
||||
|
||||
void CMenu::_config(int page)
|
||||
{
|
||||
m_curGameId = m_cf.getId();
|
||||
m_curGameId = CoverFlow.getId();
|
||||
m_cfNeedsUpdate = false;
|
||||
int change = CONFIG_PAGE_NO_CHANGE;
|
||||
while(!m_exit)
|
||||
@ -183,11 +183,11 @@ int CMenu::_config1(void)
|
||||
if (m_btnMgr.selected(m_configBtnDownload))
|
||||
{
|
||||
_cfNeedsUpdate();
|
||||
m_cf.stopCoverLoader(true);
|
||||
CoverFlow.stopCoverLoader(true);
|
||||
_hideConfig();
|
||||
_download();
|
||||
_showConfig();
|
||||
m_cf.startCoverLoader();
|
||||
CoverFlow.startCoverLoader();
|
||||
}
|
||||
else if ((m_btnMgr.selected(m_configBtnUnlock)) || (m_btnMgr.selected(m_configBtnSetCode)))
|
||||
_code();
|
||||
@ -199,14 +199,14 @@ int CMenu::_config1(void)
|
||||
else if (m_btnMgr.selected(m_configBtnCfg4))
|
||||
{
|
||||
_cfNeedsUpdate();
|
||||
m_cf.stopCoverLoader(true);
|
||||
CoverFlow.stopCoverLoader(true);
|
||||
_hideConfig();
|
||||
if(m_current_view != COVERFLOW_PLUGIN)
|
||||
_NandEmuCfg();
|
||||
else
|
||||
_PluginSettings();
|
||||
_showConfig();
|
||||
m_cf.startCoverLoader();
|
||||
CoverFlow.startCoverLoader();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -122,7 +122,7 @@ void CMenu::_showGameSettings(void)
|
||||
{
|
||||
wstringEx title(_t("cfgg1", L"Settings"));
|
||||
title += L" [";
|
||||
title += wstringEx(m_cf.getId());
|
||||
title += wstringEx(CoverFlow.getId());
|
||||
title += L"]";
|
||||
m_btnMgr.setText(m_gameSettingsLblTitle, title);
|
||||
_setBg(m_gameSettingsBg, m_gameSettingsBg);
|
||||
@ -131,7 +131,7 @@ void CMenu::_showGameSettings(void)
|
||||
m_btnMgr.show(m_gameSettingsBtnPageP);
|
||||
m_btnMgr.show(m_gameSettingsBtnBack);
|
||||
m_btnMgr.show(m_gameSettingsLblTitle);
|
||||
if(m_cf.getHdr()->type == TYPE_GC_GAME)
|
||||
if(CoverFlow.getHdr()->type == TYPE_GC_GAME)
|
||||
{
|
||||
if(m_new_dml)
|
||||
g_numGCfPages = 3;
|
||||
@ -140,7 +140,7 @@ void CMenu::_showGameSettings(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_current_view == COVERFLOW_USB && _checkSave(string((const char *)m_cf.getHdr()->id), false))
|
||||
if(m_current_view == COVERFLOW_USB && _checkSave(string((const char *)CoverFlow.getHdr()->id), false))
|
||||
g_numGCfPages = 5;
|
||||
else
|
||||
g_numGCfPages = 4;
|
||||
@ -150,7 +150,7 @@ void CMenu::_showGameSettings(void)
|
||||
{
|
||||
m_btnMgr.show(m_gameSettingsLblCover);
|
||||
m_btnMgr.show(m_gameSettingsBtnCover);
|
||||
if(m_cf.getHdr()->type == TYPE_GC_GAME)
|
||||
if(CoverFlow.getHdr()->type == TYPE_GC_GAME)
|
||||
{
|
||||
m_btnMgr.show(m_gameSettingsLblDMLGameVideo);
|
||||
m_btnMgr.show(m_gameSettingsLblDMLVideo);
|
||||
@ -187,7 +187,7 @@ void CMenu::_showGameSettings(void)
|
||||
{
|
||||
m_btnMgr.hide(m_gameSettingsLblCover);
|
||||
m_btnMgr.hide(m_gameSettingsBtnCover);
|
||||
if(m_cf.getHdr()->type == TYPE_GC_GAME)
|
||||
if(CoverFlow.getHdr()->type == TYPE_GC_GAME)
|
||||
{
|
||||
m_btnMgr.hide(m_gameSettingsLblGClanguage);
|
||||
m_btnMgr.hide(m_gameSettingsLblGClanguageVal);
|
||||
@ -227,7 +227,7 @@ void CMenu::_showGameSettings(void)
|
||||
m_btnMgr.show(m_gameSettingsBtnDebuggerP);
|
||||
m_btnMgr.show(m_gameSettingsBtnDebuggerM);
|
||||
|
||||
if(m_cf.getHdr()->type != TYPE_GC_GAME)
|
||||
if(CoverFlow.getHdr()->type != TYPE_GC_GAME)
|
||||
{
|
||||
m_btnMgr.show(m_gameSettingsLblHooktype);
|
||||
m_btnMgr.show(m_gameSettingsLblHooktypeVal);
|
||||
@ -248,7 +248,7 @@ void CMenu::_showGameSettings(void)
|
||||
m_btnMgr.hide(m_gameSettingsBtnDebuggerP);
|
||||
m_btnMgr.hide(m_gameSettingsBtnDebuggerM);
|
||||
|
||||
if(m_cf.getHdr()->type != TYPE_GC_GAME)
|
||||
if(CoverFlow.getHdr()->type != TYPE_GC_GAME)
|
||||
{
|
||||
m_btnMgr.hide(m_gameSettingsLblHooktype);
|
||||
m_btnMgr.hide(m_gameSettingsLblHooktypeVal);
|
||||
@ -264,7 +264,7 @@ void CMenu::_showGameSettings(void)
|
||||
}
|
||||
if (m_gameSettingsPage == 3)
|
||||
{
|
||||
if(m_cf.getHdr()->type != TYPE_GC_GAME)
|
||||
if(CoverFlow.getHdr()->type != TYPE_GC_GAME)
|
||||
{
|
||||
m_btnMgr.show(m_gameSettingsLblPatchVidModes);
|
||||
m_btnMgr.show(m_gameSettingsLblPatchVidModesVal);
|
||||
@ -276,7 +276,7 @@ void CMenu::_showGameSettings(void)
|
||||
m_btnMgr.show(m_gameSettingsLblCountryPatch);
|
||||
m_btnMgr.show(m_gameSettingsBtnCountryPatch);
|
||||
|
||||
if(m_cf.getHdr()->type == TYPE_WII_GAME)
|
||||
if(CoverFlow.getHdr()->type == TYPE_WII_GAME)
|
||||
{
|
||||
m_btnMgr.show(m_gameSettingsLblAspectRatio);
|
||||
m_btnMgr.show(m_gameSettingsLblAspectRatioVal);
|
||||
@ -305,7 +305,7 @@ void CMenu::_showGameSettings(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_cf.getHdr()->type != TYPE_GC_GAME)
|
||||
if(CoverFlow.getHdr()->type != TYPE_GC_GAME)
|
||||
{
|
||||
m_btnMgr.hide(m_gameSettingsLblPatchVidModes);
|
||||
m_btnMgr.hide(m_gameSettingsLblPatchVidModesVal);
|
||||
@ -344,7 +344,7 @@ void CMenu::_showGameSettings(void)
|
||||
}
|
||||
if (m_gameSettingsPage == 4)
|
||||
{
|
||||
if(m_cf.getHdr()->type == TYPE_CHANNEL)
|
||||
if(CoverFlow.getHdr()->type == TYPE_CHANNEL)
|
||||
{
|
||||
m_btnMgr.show(m_gameSettingsLblCustom);
|
||||
m_btnMgr.show(m_gameSettingsBtnCustom);
|
||||
@ -354,13 +354,13 @@ void CMenu::_showGameSettings(void)
|
||||
m_btnMgr.show(m_gameSettingsBtnLaunchNK);
|
||||
}
|
||||
}
|
||||
else if(m_cf.getHdr()->type == TYPE_WII_GAME)
|
||||
else if(CoverFlow.getHdr()->type == TYPE_WII_GAME)
|
||||
{
|
||||
m_btnMgr.show(m_gameSettingsLblEmulationVal);
|
||||
m_btnMgr.show(m_gameSettingsLblEmulation);
|
||||
m_btnMgr.show(m_gameSettingsBtnEmulationP);
|
||||
m_btnMgr.show(m_gameSettingsBtnEmulationM);
|
||||
if(_checkSave(string((const char *)m_cf.getHdr()->id), true))
|
||||
if(_checkSave(string((const char *)CoverFlow.getHdr()->id), true))
|
||||
{
|
||||
m_btnMgr.show(m_gameSettingsLblExtractSave);
|
||||
m_btnMgr.show(m_gameSettingsBtnExtractSave);
|
||||
@ -407,13 +407,13 @@ void CMenu::_showGameSettings(void)
|
||||
if(m_gameSettingsLblUser[i] != -1)
|
||||
m_btnMgr.show(m_gameSettingsLblUser[i]);
|
||||
|
||||
string id(m_cf.getId());
|
||||
string id(CoverFlow.getId());
|
||||
int page = m_gameSettingsPage;
|
||||
u32 maxpage = g_numGCfPages;
|
||||
|
||||
m_btnMgr.setText(m_gameSettingsLblPage, wfmt(L"%i / %i", page, maxpage));
|
||||
m_btnMgr.setText(m_gameSettingsBtnOcarina, _optBoolToString(m_gcfg2.getOptBool(id, "cheat")));
|
||||
if(m_cf.getHdr()->type == TYPE_GC_GAME)
|
||||
if(CoverFlow.getHdr()->type == TYPE_GC_GAME)
|
||||
{
|
||||
m_btnMgr.setText(m_gameSettingsBtnDM_Widescreen, _optBoolToString(m_gcfg2.getOptBool(id, "dm_widescreen", 0)));
|
||||
m_btnMgr.setText(m_gameSettingsBtnDevoMemcardEmu, _optBoolToString(m_gcfg2.getOptBool(id, "devo_memcard_emu", 0)));
|
||||
@ -475,7 +475,7 @@ void CMenu::_showGameSettings(void)
|
||||
void CMenu::_gameSettings(void)
|
||||
{
|
||||
m_gcfg2.load(fmt("%s/" GAME_SETTINGS2_FILENAME, m_settingsDir.c_str()));
|
||||
string id(m_cf.getId());
|
||||
string id(CoverFlow.getId());
|
||||
|
||||
m_gameSettingsPage = 1;
|
||||
_showGameSettings();
|
||||
@ -664,11 +664,11 @@ void CMenu::_gameSettings(void)
|
||||
}
|
||||
else if (m_btnMgr.selected(m_gameSettingsBtnCover))
|
||||
{
|
||||
m_cf.stopCoverLoader(true);
|
||||
CoverFlow.stopCoverLoader(true);
|
||||
_hideGameSettings();
|
||||
_download(id);
|
||||
_showGameSettings();
|
||||
m_cf.startCoverLoader();
|
||||
CoverFlow.startCoverLoader();
|
||||
}
|
||||
else if (m_btnMgr.selected(m_gameSettingsBtnCheat))
|
||||
{
|
||||
@ -722,11 +722,11 @@ void CMenu::_gameSettings(void)
|
||||
{
|
||||
if (m_btnMgr.selected(m_gameSettingsBtnCover))
|
||||
{
|
||||
m_cf.stopCoverLoader(true); // Empty cover cache
|
||||
remove(fmt("%s/%s.png", m_picDir.c_str(), m_cf.getId().c_str()));
|
||||
remove(fmt("%s/%s.png", m_boxPicDir.c_str(), m_cf.getId().c_str()));
|
||||
remove(fmt("%s/%s.wfc", m_cacheDir.c_str(), m_cf.getId().c_str()));
|
||||
m_cf.startCoverLoader();
|
||||
CoverFlow.stopCoverLoader(true); // Empty cover cache
|
||||
remove(fmt("%s/%s.png", m_picDir.c_str(), CoverFlow.getId().c_str()));
|
||||
remove(fmt("%s/%s.png", m_boxPicDir.c_str(), CoverFlow.getId().c_str()));
|
||||
remove(fmt("%s/%s.wfc", m_cacheDir.c_str(), CoverFlow.getId().c_str()));
|
||||
CoverFlow.startCoverLoader();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -114,13 +114,13 @@ int CMenu::_configSnd(void)
|
||||
{
|
||||
m_cfg.setInt("GENERAL", "sound_volume_coverflow", min(m_cfg.getInt("GENERAL", "sound_volume_coverflow", 255) + step, 255));
|
||||
_showConfigSnd();
|
||||
m_cf.setSoundVolume(m_cfg.getInt("GENERAL", "sound_volume_coverflow", 255));
|
||||
CoverFlow.setSoundVolume(m_cfg.getInt("GENERAL", "sound_volume_coverflow", 255));
|
||||
}
|
||||
else if (m_btnMgr.selected(m_configSndBtnCFVolM))
|
||||
{
|
||||
m_cfg.setInt("GENERAL", "sound_volume_coverflow", max(m_cfg.getInt("GENERAL", "sound_volume_coverflow", 255) - step, 0));
|
||||
_showConfigSnd();
|
||||
m_cf.setSoundVolume(m_cfg.getInt("GENERAL", "sound_volume_coverflow", 255));
|
||||
CoverFlow.setSoundVolume(m_cfg.getInt("GENERAL", "sound_volume_coverflow", 255));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -514,7 +514,7 @@ int CMenu::_coverDownloader(bool missingOnly)
|
||||
id = (const char *)m_gameList[i].id;
|
||||
path = sfmt("%s/%s.png", m_boxPicDir.c_str(), id.c_str());
|
||||
}
|
||||
if(!missingOnly || (!m_cf.fullCoverCached(id.c_str()) && !checkPNGFile(path.c_str())))
|
||||
if(!missingOnly || (!CoverFlow.fullCoverCached(id.c_str()) && !checkPNGFile(path.c_str())))
|
||||
{
|
||||
if(m_gameList[i].type == TYPE_PLUGIN)
|
||||
pluginCoverList.push_back(m_gameList[i]);
|
||||
@ -726,7 +726,7 @@ int CMenu::_coverDownloader(bool missingOnly)
|
||||
LWP_MutexLock(m_mutex);
|
||||
_setThrdMsg(wfmt(_fmt("dlmsg10", L"Making %s"), sfmt("%s.wfc", coverList[i].c_str()).c_str()), listWeight + dlWeight * (float)(step + 1) / (float)nbSteps);
|
||||
LWP_MutexUnlock(m_mutex);
|
||||
if (m_cf.preCacheCover(coverList[i].c_str(), download.data, true))
|
||||
if (CoverFlow.preCacheCover(coverList[i].c_str(), download.data, true))
|
||||
{
|
||||
++count;
|
||||
success = true;
|
||||
@ -874,7 +874,7 @@ int CMenu::_coverDownloader(bool missingOnly)
|
||||
LWP_MutexLock(m_mutex);
|
||||
_setThrdMsg(wfmt(_fmt("dlmsg10", L"Making %s"), sfmt("%s.wfc", coverList[i].c_str()).c_str()), listWeight + dlWeight * (float)(step + 1) / (float)nbSteps);
|
||||
LWP_MutexUnlock(m_mutex);
|
||||
if (m_cf.preCacheCover(coverList[i].c_str(), download.data, true))
|
||||
if (CoverFlow.preCacheCover(coverList[i].c_str(), download.data, true))
|
||||
{
|
||||
++count;
|
||||
success = true;
|
||||
@ -1021,7 +1021,7 @@ int CMenu::_coverDownloader(bool missingOnly)
|
||||
LWP_MutexLock(m_mutex);
|
||||
_setThrdMsg(wfmt(_fmt("dlmsg10", L"Making %s"), sfmt("%s.wfc", coverList[i].c_str()).c_str()), listWeight + dlWeight * (float)(step + 1) / (float)nbSteps);
|
||||
LWP_MutexUnlock(m_mutex);
|
||||
if (m_cf.preCacheCover(coverList[i].c_str(), download.data, false))
|
||||
if (CoverFlow.preCacheCover(coverList[i].c_str(), download.data, false))
|
||||
{
|
||||
++countFlat;
|
||||
success = true;
|
||||
@ -1164,7 +1164,7 @@ int CMenu::_coverDownloader(bool missingOnly)
|
||||
LWP_MutexLock(m_mutex);
|
||||
_setThrdMsg(wfmt(_fmt("dlmsg10", L"Making %s"), sfmt("%s.wfc", coverList[i].c_str()).c_str()), listWeight + dlWeight * (float)(step + 1) / (float)nbSteps);
|
||||
LWP_MutexUnlock(m_mutex);
|
||||
if (m_cf.preCacheCover(coverList[i].c_str(), download.data, false))
|
||||
if (CoverFlow.preCacheCover(coverList[i].c_str(), download.data, false))
|
||||
{
|
||||
++countFlat;
|
||||
success = true;
|
||||
@ -1210,13 +1210,13 @@ void CMenu::_download(string gameId)
|
||||
m_thrdStop = false;
|
||||
m_thrdMessageAdded = false;
|
||||
|
||||
if(gameId.size() && m_cf.getHdr()->type == TYPE_PLUGIN)
|
||||
if(gameId.size() && CoverFlow.getHdr()->type == TYPE_PLUGIN)
|
||||
{
|
||||
char gamePath[256];
|
||||
if(string(m_cf.getHdr()->path).find_last_of("/") != string::npos)
|
||||
strncpy(gamePath, &m_cf.getHdr()->path[string(m_cf.getHdr()->path).find_last_of("/")+1], sizeof(gamePath));
|
||||
if(string(CoverFlow.getHdr()->path).find_last_of("/") != string::npos)
|
||||
strncpy(gamePath, &CoverFlow.getHdr()->path[string(CoverFlow.getHdr()->path).find_last_of("/")+1], sizeof(gamePath));
|
||||
else
|
||||
strncpy(gamePath, m_cf.getHdr()->path, sizeof(gamePath));
|
||||
strncpy(gamePath, CoverFlow.getHdr()->path, sizeof(gamePath));
|
||||
m_coverDLGameId = gamePath;
|
||||
}
|
||||
else
|
||||
|
@ -309,7 +309,7 @@ void CMenu::_hideGame(bool instant)
|
||||
{
|
||||
m_gameSelected = false;
|
||||
m_fa.unload();
|
||||
m_cf.showCover();
|
||||
CoverFlow.showCover();
|
||||
m_btnMgr.hide(m_gameBtnPlay, instant);
|
||||
m_btnMgr.hide(m_gameBtnBack, instant);
|
||||
m_btnMgr.hide(m_gameBtnPlayFull, instant);
|
||||
@ -330,16 +330,16 @@ void CMenu::_hideGame(bool instant)
|
||||
|
||||
void CMenu::_showGame(void)
|
||||
{
|
||||
m_cf.showCover();
|
||||
CoverFlow.showCover();
|
||||
|
||||
if (m_fa.load(m_cfg, m_fanartDir.c_str(), m_cf.getId().c_str()))
|
||||
if (m_fa.load(m_cfg, m_fanartDir.c_str(), CoverFlow.getId().c_str()))
|
||||
{
|
||||
STexture bg, bglq;
|
||||
m_fa.getBackground(bg, bglq);
|
||||
_setBg(bg, bglq);
|
||||
|
||||
if (m_fa.hideCover())
|
||||
m_cf.hideCover();
|
||||
CoverFlow.hideCover();
|
||||
}
|
||||
else
|
||||
_setBg(m_mainBg, m_mainBgLQ);
|
||||
@ -382,7 +382,7 @@ void CMenu::_game(bool launch)
|
||||
m_gameSelected = true;
|
||||
}
|
||||
|
||||
m_zoom_banner = m_cfg.getBool(_domainFromView(), "show_full_banner", false) && !NoGameID(m_cf.getHdr()->type);
|
||||
m_zoom_banner = m_cfg.getBool(_domainFromView(), "show_full_banner", false) && !NoGameID(CoverFlow.getHdr()->type);
|
||||
if(m_banner.GetZoomSetting() != m_zoom_banner)
|
||||
m_banner.ToogleZoom();
|
||||
|
||||
@ -392,7 +392,7 @@ void CMenu::_game(bool launch)
|
||||
if(startGameSound < 1)
|
||||
startGameSound++;
|
||||
|
||||
u64 chantitle = m_cf.getChanTitle();
|
||||
u64 chantitle = CoverFlow.getChanTitle();
|
||||
|
||||
if(startGameSound == -5)
|
||||
{
|
||||
@ -424,7 +424,7 @@ void CMenu::_game(bool launch)
|
||||
m_banner.DeleteBanner();
|
||||
break;
|
||||
}
|
||||
else if(BTN_PLUS_PRESSED && m_GameTDBLoaded && (m_cf.getHdr()->type == TYPE_WII_GAME || m_cf.getHdr()->type == TYPE_GC_GAME || m_cf.getHdr()->type == TYPE_CHANNEL))
|
||||
else if(BTN_PLUS_PRESSED && m_GameTDBLoaded && (CoverFlow.getHdr()->type == TYPE_WII_GAME || CoverFlow.getHdr()->type == TYPE_GC_GAME || CoverFlow.getHdr()->type == TYPE_CHANNEL))
|
||||
{
|
||||
_hideGame();
|
||||
m_banner.SetShowBanner(false);
|
||||
@ -437,7 +437,7 @@ void CMenu::_game(bool launch)
|
||||
}
|
||||
else if(BTN_MINUS_PRESSED)
|
||||
{
|
||||
const char *videoPath = fmt("%s/%.3s.thp", m_videoDir.c_str(), m_cf.getId().c_str());
|
||||
const char *videoPath = fmt("%s/%.3s.thp", m_videoDir.c_str(), CoverFlow.getId().c_str());
|
||||
FILE *file = fopen(videoPath, "r");
|
||||
if(file)
|
||||
{
|
||||
@ -490,7 +490,7 @@ void CMenu::_game(bool launch)
|
||||
const char *domain = _domainFromView();
|
||||
int cfVersion = 1+loopNum((m_cfg.getInt(domain, "last_cf_mode", 1)-1) + direction, m_numCFVersions);
|
||||
_loadCFLayout(cfVersion);
|
||||
m_cf.applySettings();
|
||||
CoverFlow.applySettings();
|
||||
m_cfg.setInt(domain, "last_cf_mode" , cfVersion);
|
||||
}
|
||||
else if(launch || BTN_A_PRESSED)
|
||||
@ -527,7 +527,7 @@ void CMenu::_game(bool launch)
|
||||
m_banner.DeleteBanner();
|
||||
break;
|
||||
}
|
||||
else if((m_btnMgr.selected(m_gameBtnToogle) || m_btnMgr.selected(m_gameBtnToogleFull)) && !NoGameID(m_cf.getHdr()->type))
|
||||
else if((m_btnMgr.selected(m_gameBtnToogle) || m_btnMgr.selected(m_gameBtnToogleFull)) && !NoGameID(CoverFlow.getHdr()->type))
|
||||
{
|
||||
m_zoom_banner = m_banner.ToogleZoom();
|
||||
m_cfg.setBool(_domainFromView(), "show_full_banner", m_zoom_banner);
|
||||
@ -553,7 +553,7 @@ void CMenu::_game(bool launch)
|
||||
m_gameSound.FreeMemory();
|
||||
CheckGameSoundThread();
|
||||
m_banner.DeleteBanner();
|
||||
dir_discHdr *hdr = m_cf.getHdr();
|
||||
dir_discHdr *hdr = CoverFlow.getHdr();
|
||||
m_gcfg2.load(fmt("%s/" GAME_SETTINGS2_FILENAME, m_settingsDir.c_str()));
|
||||
if(currentPartition != SD && hdr->type == TYPE_GC_GAME && m_show_dml == 2 && (strstr(hdr->path, ".iso") == NULL ||
|
||||
!m_devo_installed || min((u32)m_gcfg2.getInt(hdr->id, "gc_loader", 0), ARRAY_SIZE(CMenu::_GCLoader) - 1u) == 1))
|
||||
@ -597,7 +597,7 @@ void CMenu::_game(bool launch)
|
||||
currentPartition = SD;
|
||||
}
|
||||
|
||||
m_cf.clear();
|
||||
CoverFlow.clear();
|
||||
_showWaitMessage();
|
||||
exitHandler(PRIILOADER_DEF); //Making wiiflow ready to boot something
|
||||
|
||||
@ -631,41 +631,41 @@ void CMenu::_game(bool launch)
|
||||
m_gcfg2.unload();
|
||||
_showGame();
|
||||
_initCF();
|
||||
m_cf.select();
|
||||
CoverFlow.select();
|
||||
}
|
||||
else
|
||||
{
|
||||
for(int chan = WPAD_MAX_WIIMOTES-1; chan >= 0; chan--)
|
||||
if (m_cf.mouseOver(m_vid, m_cursor[chan].x(), m_cursor[chan].y()))
|
||||
m_cf.flip();
|
||||
if (CoverFlow.mouseOver(m_cursor[chan].x(), m_cursor[chan].y()))
|
||||
CoverFlow.flip();
|
||||
}
|
||||
}
|
||||
if((startGameSound == 1 || startGameSound < -8) && (BTN_UP_REPEAT || RIGHT_STICK_UP))
|
||||
{
|
||||
if(m_gameSoundThread != LWP_THREAD_NULL)
|
||||
CheckGameSoundThread();
|
||||
m_cf.up();
|
||||
CoverFlow.up();
|
||||
startGameSound = -10;
|
||||
}
|
||||
if((startGameSound == 1 || startGameSound < -8) && (BTN_RIGHT_REPEAT || RIGHT_STICK_RIGHT))
|
||||
{
|
||||
if(m_gameSoundThread != LWP_THREAD_NULL)
|
||||
CheckGameSoundThread();
|
||||
m_cf.right();
|
||||
CoverFlow.right();
|
||||
startGameSound = -10;
|
||||
}
|
||||
if((startGameSound == 1 || startGameSound < -8) && (BTN_DOWN_REPEAT || RIGHT_STICK_DOWN))
|
||||
{
|
||||
if(m_gameSoundThread != LWP_THREAD_NULL)
|
||||
CheckGameSoundThread();
|
||||
m_cf.down();
|
||||
CoverFlow.down();
|
||||
startGameSound = -10;
|
||||
}
|
||||
if((startGameSound == 1 || startGameSound < -8) && (BTN_LEFT_REPEAT || RIGHT_STICK_LEFT))
|
||||
{
|
||||
if(m_gameSoundThread != LWP_THREAD_NULL)
|
||||
CheckGameSoundThread();
|
||||
m_cf.left();
|
||||
CoverFlow.left();
|
||||
startGameSound = -10;
|
||||
}
|
||||
if(startGameSound == -10)
|
||||
@ -687,7 +687,7 @@ void CMenu::_game(bool launch)
|
||||
m_btnMgr.hide(m_gameBtnPlayFull);
|
||||
m_btnMgr.hide(m_gameBtnBackFull);
|
||||
m_btnMgr.hide(m_gameBtnToogleFull);
|
||||
if(m_gameLblUser[4] != -1 && !NoGameID(m_cf.getHdr()->type))
|
||||
if(m_gameLblUser[4] != -1 && !NoGameID(CoverFlow.getHdr()->type))
|
||||
m_btnMgr.show(m_gameLblUser[4]);
|
||||
for(u8 i = 0; i < ARRAY_SIZE(m_gameLblUser) - 1; ++i)
|
||||
{
|
||||
@ -701,7 +701,7 @@ void CMenu::_game(bool launch)
|
||||
m_btnMgr.hide(b ? m_gameBtnAdultOff : m_gameBtnAdultOn);
|
||||
m_btnMgr.show(m_gameBtnSettings);
|
||||
}
|
||||
if ((m_cf.getHdr()->type != TYPE_HOMEBREW && m_cf.getHdr()->type != TYPE_CHANNEL) && !m_locked)
|
||||
if ((CoverFlow.getHdr()->type != TYPE_HOMEBREW && CoverFlow.getHdr()->type != TYPE_CHANNEL) && !m_locked)
|
||||
m_btnMgr.show(m_gameBtnDelete);
|
||||
}
|
||||
else
|
||||
@ -723,7 +723,7 @@ void CMenu::_game(bool launch)
|
||||
m_btnMgr.hide(m_gameBtnToogle);
|
||||
if(m_gameLblUser[4] != -1)
|
||||
{
|
||||
if(!NoGameID(m_cf.getHdr()->type) && !m_zoom_banner)
|
||||
if(!NoGameID(CoverFlow.getHdr()->type) && !m_zoom_banner)
|
||||
m_btnMgr.show(m_gameLblUser[4]);
|
||||
else
|
||||
m_btnMgr.hide(m_gameLblUser[4], true);
|
||||
@ -1408,7 +1408,7 @@ void CMenu::_initGameMenu()
|
||||
|
||||
_addUserLabels(m_gameLblUser, ARRAY_SIZE(m_gameLblUser), "GAME");
|
||||
m_gameBg = _texture("GAME/BG", "texture", theme.bg, false);
|
||||
if (m_theme.loaded() && STexture::TE_OK == bgLQ.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), m_theme.getString("GAME/BG", "texture").c_str()), GX_TF_CMPR, 64, 64))
|
||||
if(m_theme.loaded() && bgLQ.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), m_theme.getString("GAME/BG", "texture").c_str()), GX_TF_CMPR, 64, 64) == TE_OK)
|
||||
m_gameBgLQ = bgLQ;
|
||||
|
||||
m_gameBtnPlay = _addButton("GAME/PLAY_BTN", theme.btnFont, L"", 420, 344, 200, 56, theme.btnFontColor);
|
||||
@ -1468,7 +1468,7 @@ void CMenu::_gameSoundThread(CMenu *m)
|
||||
m->m_gamesound_changed = false;
|
||||
CurrentBanner.ClearBanner();
|
||||
|
||||
dir_discHdr *GameHdr = m->m_cf.getHdr();
|
||||
dir_discHdr *GameHdr = CoverFlow.getHdr();
|
||||
if(GameHdr->type == TYPE_PLUGIN)
|
||||
{
|
||||
m_banner.DeleteBanner();
|
||||
|
@ -318,7 +318,7 @@ void CMenu::_textGameInfo(void)
|
||||
{
|
||||
char GameID[7];
|
||||
GameID[6] = '\0';
|
||||
strncpy(GameID, m_cf.getId().c_str(), 6);
|
||||
strncpy(GameID, CoverFlow.getId().c_str(), 6);
|
||||
if(gametdb.GetTitle(GameID, TMP_Char))
|
||||
{
|
||||
gameinfo_Title_w.fromUTF8(TMP_Char);
|
||||
|
@ -55,7 +55,7 @@ bool CMenu::_Home(void)
|
||||
}
|
||||
else if(m_btnMgr.selected(m_homeBtnUpdate) && !m_locked)
|
||||
{
|
||||
m_cf.stopCoverLoader(true);
|
||||
CoverFlow.stopCoverLoader(true);
|
||||
_hideHome();
|
||||
_system();
|
||||
remove(m_ver.c_str());
|
||||
@ -65,7 +65,7 @@ bool CMenu::_Home(void)
|
||||
break;
|
||||
}
|
||||
_showHome();
|
||||
m_cf.startCoverLoader();
|
||||
CoverFlow.startCoverLoader();
|
||||
}
|
||||
else if(m_btnMgr.selected(m_homeBtnHelp))
|
||||
{
|
||||
|
@ -478,16 +478,16 @@ void CMenu::_getGrabStatus(void)
|
||||
gGrabStatus[chan] = GBTN_B & PAD_ButtonsHeld(chan);
|
||||
if((wGrabStatus[chan] && wX[chan] > 0 && wd[chan]->ir.x < wX[chan] - 30)
|
||||
|| (gGrabStatus[chan] && gX[chan] > 0 && stickPointer_x[chan] < gX[chan]))
|
||||
m_cf.left();
|
||||
CoverFlow.left();
|
||||
if((wGrabStatus[chan] && wX[chan] > 0 && wd[chan]->ir.x > wX[chan] + 30)
|
||||
|| (gGrabStatus[chan] && gX[chan] > 0 && stickPointer_x[chan] > gX[chan]))
|
||||
m_cf.right();
|
||||
CoverFlow.right();
|
||||
if((wGrabStatus[chan] && wY[chan] > 0 && wd[chan]->ir.y < wY[chan] - 30)
|
||||
|| (gGrabStatus[chan] && gY[chan] > 0 && stickPointer_y[chan] < gY[chan]))
|
||||
m_cf.up();
|
||||
CoverFlow.up();
|
||||
if((wGrabStatus[chan] && wY[chan] > 0 && wd[chan]->ir.y > wY[chan] + 30)
|
||||
|| (gGrabStatus[chan] && gY[chan] > 0 && stickPointer_y[chan] > gY[chan]))
|
||||
m_cf.down();
|
||||
CoverFlow.down();
|
||||
if(wGrabStatus[chan])
|
||||
{
|
||||
wX[chan] = wd[chan]->ir.x;
|
||||
|
@ -181,9 +181,9 @@ void CMenu::_showMain(void)
|
||||
|
||||
void CMenu::LoadView(void)
|
||||
{
|
||||
m_curGameId = m_cf.getId();
|
||||
m_curGameId = CoverFlow.getId();
|
||||
_hideMain(true);
|
||||
m_cf.clear();
|
||||
CoverFlow.clear();
|
||||
if(!m_vid.showingWaitMessage())
|
||||
_showWaitMessage();
|
||||
m_favorites = false;
|
||||
@ -193,7 +193,7 @@ void CMenu::LoadView(void)
|
||||
_showMain();
|
||||
_initCF();
|
||||
_loadCFLayout(m_cfg.getInt(_domainFromView(), "last_cf_mode", 1));
|
||||
m_cf.applySettings();
|
||||
CoverFlow.applySettings();
|
||||
|
||||
char *mode = (m_current_view == COVERFLOW_CHANNEL && m_cfg.getBool(CHANNEL_DOMAIN, "disable", true))
|
||||
? (char *)CHANNEL_DOMAIN : (char *)DeviceName[currentPartition];
|
||||
@ -325,9 +325,9 @@ int CMenu::main(void)
|
||||
else if(BTN_A_PRESSED)
|
||||
{
|
||||
if(m_btnMgr.selected(m_mainBtnPrev))
|
||||
m_cf.pageUp();
|
||||
CoverFlow.pageUp();
|
||||
else if(m_btnMgr.selected(m_mainBtnNext))
|
||||
m_cf.pageDown();
|
||||
CoverFlow.pageDown();
|
||||
else if(m_btnMgr.selected(m_mainBtnQuit))
|
||||
{
|
||||
_hideMain();
|
||||
@ -405,7 +405,7 @@ int CMenu::main(void)
|
||||
{
|
||||
/* Cleanup for Disc Booter */
|
||||
_hideMain(true);
|
||||
m_cf.clear();
|
||||
CoverFlow.clear();
|
||||
_showWaitMessage();
|
||||
m_gameSound.Stop();
|
||||
CheckGameSoundThread();
|
||||
@ -424,10 +424,10 @@ int CMenu::main(void)
|
||||
{
|
||||
m_favorites = !m_favorites;
|
||||
m_cfg.setBool(_domainFromView(), "favorites", m_favorites);
|
||||
m_curGameId = m_cf.getId();
|
||||
m_curGameId = CoverFlow.getId();
|
||||
_initCF();
|
||||
}
|
||||
else if(!m_cf.empty() && m_cf.select())
|
||||
else if(!CoverFlow.empty() && CoverFlow.select())
|
||||
{
|
||||
_hideMain();
|
||||
_game(BTN_B_HELD);
|
||||
@ -435,7 +435,7 @@ int CMenu::main(void)
|
||||
break;
|
||||
if(BTN_B_HELD)
|
||||
bUsed = true;
|
||||
m_cf.cancel();
|
||||
CoverFlow.cancel();
|
||||
_showMain();
|
||||
}
|
||||
}
|
||||
@ -482,11 +482,11 @@ int CMenu::main(void)
|
||||
int sorting = m_cfg.getInt(domain, "sort", SORT_ALPHA);
|
||||
if (sorting != SORT_ALPHA && sorting != SORT_PLAYERS && sorting != SORT_WIFIPLAYERS && sorting != SORT_GAMEID)
|
||||
{
|
||||
m_cf.setSorting((Sorting)SORT_ALPHA);
|
||||
CoverFlow.setSorting((Sorting)SORT_ALPHA);
|
||||
m_cfg.setInt(domain, "sort", SORT_ALPHA);
|
||||
}
|
||||
wchar_t c[2] = {0, 0};
|
||||
m_btnMgr.selected(m_mainBtnPrev) ? m_cf.prevLetter(c) : m_cf.nextLetter(c);
|
||||
m_btnMgr.selected(m_mainBtnPrev) ? CoverFlow.prevLetter(c) : CoverFlow.nextLetter(c);
|
||||
m_showtimer = 60;
|
||||
curLetter.clear();
|
||||
curLetter = wstringEx(c);
|
||||
@ -506,24 +506,24 @@ int CMenu::main(void)
|
||||
}
|
||||
else if(WROLL_LEFT)
|
||||
{
|
||||
m_cf.left();
|
||||
CoverFlow.left();
|
||||
bUsed = true;
|
||||
}
|
||||
else if(WROLL_RIGHT)
|
||||
{
|
||||
m_cf.right();
|
||||
CoverFlow.right();
|
||||
bUsed = true;
|
||||
}
|
||||
if(!BTN_B_HELD)
|
||||
{
|
||||
if(BTN_UP_REPEAT || RIGHT_STICK_UP)
|
||||
m_cf.up();
|
||||
CoverFlow.up();
|
||||
else if(BTN_RIGHT_REPEAT || RIGHT_STICK_RIGHT)
|
||||
m_cf.right();
|
||||
CoverFlow.right();
|
||||
else if(BTN_DOWN_REPEAT || RIGHT_STICK_DOWN)
|
||||
m_cf.down();
|
||||
CoverFlow.down();
|
||||
else if(BTN_LEFT_REPEAT || RIGHT_STICK_LEFT)
|
||||
m_cf.left();
|
||||
CoverFlow.left();
|
||||
else if(BTN_1_PRESSED || BTN_2_PRESSED)
|
||||
{
|
||||
if (!m_btnMgr.selected(m_mainBtnQuit))
|
||||
@ -532,7 +532,7 @@ int CMenu::main(void)
|
||||
s8 direction = BTN_1_PRESSED ? 1 : -1;
|
||||
int cfVersion = 1+loopNum((m_cfg.getInt(domain, "last_cf_mode", 1)-1) + direction, m_numCFVersions);
|
||||
_loadCFLayout(cfVersion);
|
||||
m_cf.applySettings();
|
||||
CoverFlow.applySettings();
|
||||
m_cfg.setInt(domain, "last_cf_mode", cfVersion);
|
||||
}
|
||||
}
|
||||
@ -541,14 +541,14 @@ int CMenu::main(void)
|
||||
if(b_lr_mode)
|
||||
MusicPlayer.Previous();
|
||||
else
|
||||
m_cf.pageUp();
|
||||
CoverFlow.pageUp();
|
||||
}
|
||||
else if(BTN_PLUS_PRESSED)
|
||||
{
|
||||
if(b_lr_mode)
|
||||
MusicPlayer.Next();
|
||||
else
|
||||
m_cf.pageDown();
|
||||
CoverFlow.pageDown();
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -562,11 +562,11 @@ int CMenu::main(void)
|
||||
int sorting = m_cfg.getInt(domain, "sort", SORT_ALPHA);
|
||||
if(sorting != SORT_ALPHA && sorting != SORT_PLAYERS && sorting != SORT_WIFIPLAYERS && sorting != SORT_GAMEID)
|
||||
{
|
||||
m_cf.setSorting((Sorting)SORT_ALPHA);
|
||||
CoverFlow.setSorting((Sorting)SORT_ALPHA);
|
||||
m_cfg.setInt(domain, "sort", SORT_ALPHA);
|
||||
}
|
||||
wchar_t c[2] = {0, 0};
|
||||
BTN_UP_PRESSED ? m_cf.prevLetter(c) : m_cf.nextLetter(c);
|
||||
BTN_UP_PRESSED ? CoverFlow.prevLetter(c) : CoverFlow.nextLetter(c);
|
||||
|
||||
curLetter.clear();
|
||||
curLetter = wstringEx(c);
|
||||
@ -588,7 +588,7 @@ int CMenu::main(void)
|
||||
{
|
||||
bUsed = true;
|
||||
if(b_lr_mode)
|
||||
m_cf.pageUp();
|
||||
CoverFlow.pageUp();
|
||||
else
|
||||
MusicPlayer.Previous();
|
||||
}
|
||||
@ -596,7 +596,7 @@ int CMenu::main(void)
|
||||
{
|
||||
bUsed = true;
|
||||
if(b_lr_mode)
|
||||
m_cf.pageDown();
|
||||
CoverFlow.pageDown();
|
||||
else
|
||||
MusicPlayer.Next();
|
||||
}
|
||||
@ -605,7 +605,7 @@ int CMenu::main(void)
|
||||
bUsed = true;
|
||||
u32 sort = 0;
|
||||
sort = loopNum((m_cfg.getInt(domain, "sort", 0)) + 1, SORT_MAX - 1);
|
||||
m_cf.setSorting((Sorting)sort);
|
||||
CoverFlow.setSorting((Sorting)sort);
|
||||
m_cfg.setInt(domain, "sort", sort);
|
||||
wstringEx curSort ;
|
||||
if(sort == SORT_ALPHA)
|
||||
@ -802,15 +802,15 @@ int CMenu::main(void)
|
||||
for(int chan = WPAD_MAX_WIIMOTES-1; chan >= 0; chan--)
|
||||
{
|
||||
if(WPadIR_Valid(chan) || (m_show_pointer[chan] && !WPadIR_Valid(chan)))
|
||||
m_cf.mouse(m_vid, chan, m_cursor[chan].x(), m_cursor[chan].y());
|
||||
CoverFlow.mouse(chan, m_cursor[chan].x(), m_cursor[chan].y());
|
||||
else
|
||||
m_cf.mouse(m_vid, chan, -1, -1);
|
||||
CoverFlow.mouse(chan, -1, -1);
|
||||
}
|
||||
}
|
||||
ScanInput();
|
||||
if(m_reload || BTN_B_HELD)
|
||||
{
|
||||
m_cf.clear();
|
||||
CoverFlow.clear();
|
||||
_showWaitMessage();
|
||||
exitHandler(PRIILOADER_DEF); //Making wiiflow ready to boot something
|
||||
_launchHomebrew(fmt("%s/boot.dol", m_appDir.c_str()), m_homebrewArgs);
|
||||
@ -861,7 +861,7 @@ void CMenu::_initMainMenu()
|
||||
STexture emptyTex;
|
||||
|
||||
m_mainBg = _texture("MAIN/BG", "texture", theme.bg, false);
|
||||
if (m_theme.loaded() && STexture::TE_OK == bgLQ.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), m_theme.getString("MAIN/BG", "texture").c_str()), GX_TF_CMPR, 64, 64))
|
||||
if(m_theme.loaded() && bgLQ.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), m_theme.getString("MAIN/BG", "texture").c_str()), GX_TF_CMPR, 64, 64) == TE_OK)
|
||||
m_mainBgLQ = bgLQ;
|
||||
|
||||
texQuit.fromPNG(btnquit_png);
|
||||
|
@ -103,28 +103,23 @@ void CMenu::_updateSourceBtns(void)
|
||||
string ImgName;
|
||||
u8 j = (Source_curPage - 1) * 12;
|
||||
|
||||
for (u8 i = 0; i < 12; ++i)
|
||||
for(u8 i = 0; i < 12; ++i)
|
||||
{
|
||||
STexture texConsoleImg;
|
||||
STexture texConsoleImgs;
|
||||
|
||||
ImgName = m_source.getString(fmt("BUTTON_%i", i + j),"image", "");
|
||||
if(!STexture::TE_OK == texConsoleImg.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), ImgName.c_str())))
|
||||
{
|
||||
if(!STexture::TE_OK == texConsoleImg.fromImageFile(fmt("%s/%s", m_sourceDir.c_str(), ImgName.c_str())))
|
||||
if(texConsoleImg.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), ImgName.c_str())) != TE_OK)
|
||||
{
|
||||
if(texConsoleImg.fromImageFile(fmt("%s/%s", m_sourceDir.c_str(), ImgName.c_str())) != TE_OK)
|
||||
texConsoleImg.fromPNG(favoriteson_png);
|
||||
}
|
||||
}
|
||||
ImgName = m_source.getString(fmt("BUTTON_%i", i + j),"image_s", "");
|
||||
if(!STexture::TE_OK == texConsoleImgs.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), ImgName.c_str())))
|
||||
{
|
||||
if(!STexture::TE_OK == texConsoleImgs.fromImageFile(fmt("%s/%s", m_sourceDir.c_str(), ImgName.c_str())))
|
||||
if(texConsoleImgs.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), ImgName.c_str())) != TE_OK)
|
||||
{
|
||||
if(texConsoleImgs.fromImageFile(fmt("%s/%s", m_sourceDir.c_str(), ImgName.c_str())) != TE_OK)
|
||||
texConsoleImgs.fromPNG(favoritesons_png);
|
||||
}
|
||||
}
|
||||
|
||||
m_btnMgr.setBtnTexture(m_sourceBtnSource[i], texConsoleImg, texConsoleImgs);
|
||||
|
||||
string source = m_source.getString(fmt("BUTTON_%i", i + j), "source", "");
|
||||
@ -426,27 +421,23 @@ void CMenu::_initSourceMenu()
|
||||
int col;
|
||||
string ImgName;
|
||||
|
||||
for ( int i = 0; i < 12; ++i)
|
||||
for(u8 i = 0; i < 12; ++i)
|
||||
{
|
||||
STexture texConsoleImg;
|
||||
STexture texConsoleImgs;
|
||||
|
||||
ImgName = m_source.getString(fmt("BUTTON_%i", i),"image", "");
|
||||
if(!STexture::TE_OK == texConsoleImg.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), ImgName.c_str())))
|
||||
{
|
||||
if(!STexture::TE_OK == texConsoleImg.fromImageFile(fmt("%s/%s", m_sourceDir.c_str(), ImgName.c_str())))
|
||||
if(texConsoleImg.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), ImgName.c_str())) != TE_OK)
|
||||
{
|
||||
if(texConsoleImg.fromImageFile(fmt("%s/%s", m_sourceDir.c_str(), ImgName.c_str())) != TE_OK)
|
||||
texConsoleImg.fromPNG(favoriteson_png);
|
||||
}
|
||||
}
|
||||
ImgName = m_source.getString(fmt("BUTTON_%i", i),"image_s", "");
|
||||
if(!STexture::TE_OK == texConsoleImgs.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), ImgName.c_str())))
|
||||
{
|
||||
if(!STexture::TE_OK == texConsoleImgs.fromImageFile(fmt("%s/%s", m_sourceDir.c_str(), ImgName.c_str())))
|
||||
if(texConsoleImgs.fromImageFile(fmt("%s/%s", m_themeDataDir.c_str(), ImgName.c_str())) != TE_OK)
|
||||
{
|
||||
if(texConsoleImgs.fromImageFile(fmt("%s/%s", m_sourceDir.c_str(), ImgName.c_str())) != TE_OK)
|
||||
texConsoleImgs.fromPNG(favoritesons_png);
|
||||
}
|
||||
}
|
||||
|
||||
row = i / 4;
|
||||
col = i - (row * 4);
|
||||
|
@ -227,7 +227,7 @@ int CMenu::_GCcopyGame(void *obj)
|
||||
{
|
||||
CMenu &m = *(CMenu *)obj;
|
||||
|
||||
string GC_Path(m.m_cf.getHdr()->path);
|
||||
string GC_Path(CoverFlow.getHdr()->path);
|
||||
if(strcasestr(GC_Path.c_str(), "boot.bin") != NULL)
|
||||
GC_Path.erase(GC_Path.end() - 13, GC_Path.end());
|
||||
else
|
||||
@ -274,7 +274,7 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
|
||||
bool upd_dml = false;
|
||||
bool upd_emu = false;
|
||||
bool out = false;
|
||||
string cfPos = m_cf.getNextId();
|
||||
string cfPos = CoverFlow.getNextId();
|
||||
|
||||
SetupInput();
|
||||
_showWBFS(op);
|
||||
@ -284,7 +284,7 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
|
||||
m_btnMgr.setText(m_wbfsLblDialog, _t("wbfsadddlg", L"Please insert the disc you want to copy, then click on Go."));
|
||||
break;
|
||||
case CMenu::WO_REMOVE_GAME:
|
||||
m_btnMgr.setText(m_wbfsLblDialog, wfmt(_fmt("wbfsremdlg", L"To permanently remove the game: %s, click on Go."), (u8*)m_cf.getTitle().toUTF8().c_str()));
|
||||
m_btnMgr.setText(m_wbfsLblDialog, wfmt(_fmt("wbfsremdlg", L"To permanently remove the game: %s, click on Go."), (u8*)CoverFlow.getTitle().toUTF8().c_str()));
|
||||
break;
|
||||
case CMenu::WO_FORMAT:
|
||||
break;
|
||||
@ -377,30 +377,30 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
|
||||
}
|
||||
break;
|
||||
case CMenu::WO_REMOVE_GAME:
|
||||
if(m_cf.getHdr()->type == TYPE_GC_GAME)
|
||||
if(CoverFlow.getHdr()->type == TYPE_GC_GAME)
|
||||
{
|
||||
if(strcasestr(m_cf.getHdr()->path, "boot.bin") != NULL)
|
||||
if(strcasestr(CoverFlow.getHdr()->path, "boot.bin") != NULL)
|
||||
{
|
||||
string GC_Path(m_cf.getHdr()->path);
|
||||
string GC_Path(CoverFlow.getHdr()->path);
|
||||
GC_Path.erase(GC_Path.end() - 13, GC_Path.end());
|
||||
fsop_deleteFolder(GC_Path.c_str());
|
||||
}
|
||||
else
|
||||
fsop_deleteFile(m_cf.getHdr()->path);
|
||||
fsop_deleteFile(CoverFlow.getHdr()->path);
|
||||
upd_dml = true;
|
||||
}
|
||||
else if(m_cf.getHdr()->type == TYPE_PLUGIN)
|
||||
else if(CoverFlow.getHdr()->type == TYPE_PLUGIN)
|
||||
{
|
||||
fsop_deleteFile(m_cf.getHdr()->path);
|
||||
fsop_deleteFile(CoverFlow.getHdr()->path);
|
||||
upd_emu = true;
|
||||
}
|
||||
else if(m_cf.getHdr()->type == TYPE_WII_GAME)
|
||||
else if(CoverFlow.getHdr()->type == TYPE_WII_GAME)
|
||||
{
|
||||
WBFS_RemoveGame((u8 *)m_cf.getId().c_str(), m_cf.getHdr()->path);
|
||||
WBFS_RemoveGame((u8 *)CoverFlow.getId().c_str(), CoverFlow.getHdr()->path);
|
||||
upd_usb = true;
|
||||
}
|
||||
if(m_cfg.getBool("GENERAL", "delete_cover_and_game", false))
|
||||
RemoveCover(m_cf.getId().c_str());
|
||||
RemoveCover(CoverFlow.getId().c_str());
|
||||
m_btnMgr.show(m_wbfsPBar);
|
||||
m_btnMgr.setProgress(m_wbfsPBar, 0.f, true);
|
||||
m_btnMgr.setProgress(m_wbfsPBar, 1.f);
|
||||
@ -413,7 +413,7 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
|
||||
case CMenu::WO_FORMAT:
|
||||
break;
|
||||
case CMenu::WO_COPY_GAME:
|
||||
string GC_Path(m_cf.getHdr()->path);
|
||||
string GC_Path(CoverFlow.getHdr()->path);
|
||||
if(strcasestr(GC_Path.c_str(), "boot.bin") != NULL)
|
||||
GC_Path.erase(GC_Path.end() - 13, GC_Path.end());
|
||||
else
|
||||
@ -430,8 +430,8 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
|
||||
m_btnMgr.hide(m_wbfsBtnBack);
|
||||
m_btnMgr.show(m_wbfsLblMessage);
|
||||
m_btnMgr.setText(m_wbfsLblMessage, L"");
|
||||
cfPos = string(m_cf.getHdr()->id);
|
||||
m_btnMgr.setText(m_wbfsLblDialog, wfmt(_fmt("wbfsop10", L"Copying [%s] %s..."), m_cf.getHdr()->id, m_cf.getTitle().toUTF8().c_str()));
|
||||
cfPos = string(CoverFlow.getHdr()->id);
|
||||
m_btnMgr.setText(m_wbfsLblDialog, wfmt(_fmt("wbfsop10", L"Copying [%s] %s..."), CoverFlow.getHdr()->id, CoverFlow.getTitle().toUTF8().c_str()));
|
||||
done = true;
|
||||
upd_dml = true;
|
||||
m_thrdWorking = true;
|
||||
@ -481,7 +481,7 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
|
||||
|
||||
_loadList();
|
||||
_initCF();
|
||||
m_cf.findId(cfPos.c_str(), true);
|
||||
CoverFlow.findId(cfPos.c_str(), true);
|
||||
}
|
||||
else if(done && op == CMenu::WO_COPY_GAME)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user