From 0faa843d13a58d345523b7b7b5f24e817a0c72d8 Mon Sep 17 00:00:00 2001 From: yoshida_teruhisa Date: Mon, 26 Nov 2007 01:50:20 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=90=E3=83=8A=E3=83=BC=E3=81=AE=E8=89=B2?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C=E3=81=AB=E3=81=A6=E5=A4=A7=E5=A4=89=E3=81=AA?= =?UTF-8?q?=E3=83=90=E3=82=B0=E3=82=92=E7=9B=9B=E3=82=8A=E8=BE=BC=E3=82=93?= =?UTF-8?q?=E3=81=A7=E3=81=84=E3=81=9F=E3=81=AE=E3=81=A7=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@250 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../Launcher/ARM9/src/launcher.c | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/build/systemMenu_RED/Launcher/ARM9/src/launcher.c b/build/systemMenu_RED/Launcher/ARM9/src/launcher.c index 1566d44e..0c7c7c64 100644 --- a/build/systemMenu_RED/Launcher/ARM9/src/launcher.c +++ b/build/systemMenu_RED/Launcher/ARM9/src/launcher.c @@ -33,6 +33,17 @@ #define B_LIGHT_UP_BUTTON_BOTTOM_X ( B_LIGHT_UP_BUTTON_TOP_X + 22 ) #define B_LIGHT_UP_BUTTON_BOTTOM_Y ( B_LIGHT_UP_BUTTON_TOP_Y + 16 ) +// スクロールバー関係 +#define BAR_ZERO_X 0 +#define BAR_ZERO_Y 24 +#define BAR_HEIGHT 12 +#define BAR_WIDTH (DOT_INTERVAL * 4 + DOT_SIZE + 2) +#define BAR_LOOSENESS 2 +#define ITEMDOT_PER_BANNERDOT ((double)(ITEM_SIZE + ITEM_INTERVAL) / (double)(BANNER_INTERVAL + BANNER_WIDTH)) +#define ITEM_OFFSET 2 // 要素表示に"・"テキストを使っているので、座標を補正する目的のOFFSET +#define ITEM_SIZE 2 +#define ITEM_INTERVAL 3 + // バナー表示関係 #define DOT_PER_FRAME ((BANNER_WIDTH + BANNER_INTERVAL) / FRAME_PER_SELECT) // 割り切れないと動きがカクカクするはず #define FRAME_PER_SELECT 14 // バナーからバナーへの移動にかかるフレーム数 @@ -69,6 +80,7 @@ static BOOL SelectCenterFunc( u16 *csr, TPData *tgt ); static BOOL SelectFunc( u16 *csr, TPData *tgt ); static void ProcessBackLightPads( void ); static TitleProperty *ProcessPads( TitleProperty *pTitleList ); +static void DrawScrollBar(); static void DrawBackLightSwitch(void); // global variable ------------------------------------- @@ -263,8 +275,8 @@ static void BannerDraw(int cursor, int selected, TitleProperty *titleprop) banner_oam_attr[l].charNo = image_index_list[num]*4; // パレットのロード // 必要なパレットが変わるので、毎度毎度入れ替え - GX_LoadOBJPltt( titleprop[num].pBanner->v1.pltt, (u16)(num * BNR_PLTT_SIZE), BNR_PLTT_SIZE ); - G2_SetOBJMode(&banner_oam_attr[l], GX_OAM_MODE_NORMAL, num); + GX_LoadOBJPltt( titleprop[num].pBanner->v1.pltt, (u16)(l * BNR_PLTT_SIZE), BNR_PLTT_SIZE ); + G2_SetOBJMode(&banner_oam_attr[l], GX_OAM_MODE_NORMAL, l); if(l == 2 || l == 3) // 中央付近で大きくなったり小さくなったりする二つのバナー { @@ -502,6 +514,11 @@ static TitleProperty *ProcessPads( TitleProperty *pTitleList ) return ret; } +static void DrawScrollBar() +{ + PutStringUTF16( (int)(BAR_ZERO_X + (ITEMDOT_PER_BANNERDOT * s_csr * DOT_PER_FRAME)), BAR_ZERO_Y, TXT_UCOLOR_G2, (const u16 *)L"■" ); +} + // ランチャーメイン TitleProperty *LauncherMain( TitleProperty *pTitleList ) { @@ -518,6 +535,8 @@ TitleProperty *LauncherMain( TitleProperty *pTitleList ) PrintfSJIS( 0, 0, TXT_COLOR_BLUE, "TWL-SYSTEM MENU ver.%06x", SYSMENU_VER ); DrawBackLightSwitch(); + DrawScrollBar(); + #ifdef DBGBNR BannerDraw( s_csr, selected, pTitleList ); #endif