void drawStatusBar(bool wifiStatus, bool charging, int batteryLevel) { u64 timeInSeconds = osGetTime() / 1000; u64 dayTime = timeInSeconds % SECONDS_IN_DAY; u8 hour = dayTime / SECONDS_IN_HOUR; u8 min = (dayTime % SECONDS_IN_HOUR) / SECONDS_IN_MINUTE; u8 seconds = dayTime % SECONDS_IN_MINUTE; char timeString[9]; sprintf(timeString, "%02d:%02d:%02d", hour, min, seconds); gfxDrawText(GFX_TOP, GFX_LEFT, NULL, timeString, 240 - 18, 400 / 2 - 16); if(wifiStatus) { gfxDrawSpriteAlphaBlend(GFX_TOP, GFX_LEFT, (u8*)wifi_full_bin, 18, 20, 240 - 18, 0); } else { gfxDrawSpriteAlphaBlend(GFX_TOP, GFX_LEFT, (u8*)wifi_none_bin, 18, 20, 240 - 18, 0); } if(charging) { gfxDrawSpriteAlphaBlend(GFX_TOP, GFX_LEFT, (u8*)battery_charging_bin, 18, 27, 240 - 18, 400 - 27); } else { gfxDrawSpriteAlphaBlend(GFX_TOP, GFX_LEFT, batteryLevels[batteryLevel], 18, 27, 240 - 18, 400 - 27); } }
void drawThemeImageCheckAlpha(u8 * image, gfxScreen_t screen, int x, int y, int w, int h, bool hasAlpha) { if (hasAlpha) { gfxDrawSpriteAlphaBlend(screen, GFX_LEFT, image, w, h, x, y); } else { gfxDrawSprite(screen, GFX_LEFT, image, w, h, x, y); } }
void drawButtonRect(gfxScreen_t screen, gfx3dSide_t side, int x, int y, int w, int h, int r, int g, int b) { u8 corner[9*9*4]; MAGFXImageWithRGBAndAlphaMask(r, g, b, (u8*)buttoncornertopleft_bin, corner, 9, 9); gfxDrawSpriteAlphaBlend(screen, side, corner, 9, 9, x+(w-9), y); MAGFXImageWithRGBAndAlphaMask(r, g, b, (u8*)buttoncornertopright_bin, corner, 9, 9); gfxDrawSpriteAlphaBlend(screen, side, corner, 9, 9, x+(w-9), y+h-9); MAGFXImageWithRGBAndAlphaMask(r, g, b, (u8*)buttoncornerbottomleft_bin, corner, 9, 9); gfxDrawSpriteAlphaBlend(screen, side, corner, 9, 9, x, y); MAGFXImageWithRGBAndAlphaMask(r, g, b, (u8*)buttoncornerbottomright_bin, corner, 9, 9); gfxDrawSpriteAlphaBlend(screen, side, corner, 9, 9, x, y+h-9); u8 rgb[3] = {r, g, b}; gfxDrawRectangle(screen, side, rgb, x, y+9, w, h-18); gfxDrawRectangle(screen, side, rgb, x+9, y, w-18, h); }
//void gfxDrawSpriteAlphaBlend(gfxScreen_t screen, gfx3dSide_t side, u8* spriteData, u16 width, u16 height, s16 x, s16 y); void render(int full_field[], int full_judgement[], int local_field[], int cur_field, int cur_row, bool cur_visable, int ans[], int win, int cheat, int state, int modeselector){ //render bgs gfxDrawSprite(GFX_TOP,GFX_LEFT, (u8*)top_bin, 240, 400, 0, 0); gfxDrawSprite(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_bin, 240, 320, 0, 0); //top int x; int y; int z; for (x=0; x<7; x++){ for (y=0; y<4; y++){ if (full_field[x*4+y]>0) gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_colors_bin+(full_field[x*4+y]-1)*1600, 20, 20, 11+x*33, 145+y*30); } } for (x=0; x<7; x++){ for (y=0; y<2; y++){ for(z=0;z<2; z++){ if (full_judgement[y*2+z+x*4] == 1) gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_pins_bin+196, 7, 7, 22-8*y+33*x, 262+8*z); if (full_judgement[y*2+z+x*4] == 2) gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_pins_bin, 7, 7, 22-8*y+33*x, 262+8*z); } } } for (x=0; x<7; x++){ if (cur_row == x){ gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)black_numbers_bin+336*x, 12, 7, 15+33*x, 128); gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_arrow_bin, 10, 7, 15+33*x, 115); }else{ gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)grey_numbers_bin+336*x, 12, 7, 15+33*x, 128); } } if (cur_row == 7){ gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_gameover_bin, 80, 200, 100, 100); for (x=0; x<4; x++){ gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_colors_bin+(ans[x]-1)*1600, 20, 20, 108, 123+45*x); } } if (win == 1){ gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_win_bin, 60, 200, 90, 100); } if (cheat){ for (y=0; y<4; y++){ gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_colors_bin+(ans[y]-1)*1600, 20, 20, 0, y*27); } } //bottom if (local_field[0] != 0) gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_colors_bin+11664*(local_field[0]-1), 54, 54, 132, 16); if (local_field[1] != 0) gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_colors_bin+11664*(local_field[1]-1), 54, 54, 132, 94); if (local_field[2] != 0) gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_colors_bin+11664*(local_field[2]-1), 54, 54, 132, 172); if (local_field[3] != 0) gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_colors_bin+11664*(local_field[3]-1), 54, 54, 132, 250); if (cur_visable && cur_row != 7) gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_circle_bin, 72, 72, 123, 7+78*cur_field); if (state == 0){ gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselect_bin, 80, 200, 100, 60); if (modeselector == 0){ gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselectbuttons_bin, 34, 98, 141, 64); gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselectbuttons_bin+26656, 34, 98, 105, 64); }else if (modeselector == 1){ gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselectbuttons_bin+13328, 34, 98, 141, 64); gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselectbuttons_bin+26656, 34, 98, 105, 64); gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_difselect_bin, 72, 88, 104, 167); }else{ gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselectbuttons_bin, 34, 98, 141, 64); gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselectbuttons_bin+39984, 34, 98, 105, 64); gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_difselect_bin, 72, 88, 104, 167); } }else if (state == 2){ gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_instruction_bin, 60, 200, 90, 100); gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_currentplayer_bin, 19, 111, 221, 209); }else if (state == 3){ gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_currentplayer_bin+8436, 19, 111, 221, 209); } }
void btnDrawButton(button * aButton) { if (!aButton->visible) { return; } if (aButton->buttonType == btnButtonTypeSlider) { btnDrawSlider(aButton); return; } rgbColour *aRGB; if (aButton->highlighted) { aRGB = tintColour(); } else { aRGB = inactiveColour(); } u8 r = aRGB->r; u8 g = aRGB->g; u8 b = aRGB->b; if (aButton->buttonType == btnButtonTypeToolbarLeft) { if (themeImageExists(themeImageTopLeftButton)) { if (aButton->highlighted && themeImageExists(themeImageTopLeftButtonSelected)) { drawThemeImage(themeImageTopLeftButtonSelected, aButton->screen, aButton->x-(36-aButton->h), aButton->y); } else { drawThemeImage(themeImageTopLeftButton, aButton->screen, aButton->x-(36-aButton->h), aButton->y); } } else { gfxDrawSpriteAlphaBlendFade(aButton->screen, aButton->side, (u8*)toolbarbuttonshadowleft_bin, 41, 41, aButton->x-(41-aButton->h), aButton->y, translucencyBarIcons); btnDrawMaskedBitmapForButton(aButton, lefttoolbarbuttonalphamask_bin, r, g, b, translucencyBarIcons); } } else if (aButton->buttonType == btnButtonTypeToolbarRight) { if (themeImageExists(themeImageTopRightButton)) { if (aButton->highlighted && themeImageExists(themeImageTopRightButtonSelected)) { drawThemeImage(themeImageTopRightButtonSelected, aButton->screen, aButton->x-(36-aButton->h), aButton->y-(36-aButton->w)); } else { drawThemeImage(themeImageTopRightButton, aButton->screen, aButton->x-(36-aButton->h), aButton->y-(36-aButton->w)); } } else { gfxDrawSpriteAlphaBlendFade(aButton->screen, aButton->side, (u8*)toolbarbuttonshadowright_bin, 41, 41, aButton->x-(41-aButton->h), aButton->y-(41-aButton->w), translucencyBarIcons); btnDrawMaskedBitmapForButton(aButton, righttoolbarbuttonalphamask_bin, r, g, b, translucencyBarIcons); } } else if (aButton->buttonType == btnButtonTypeToolbarBottomRight) { if (themeImageExists(themeImageBottomRightButton)) { if (aButton->highlighted && themeImageExists(themeImageBottomRightButtonSelected)) { drawThemeImage(themeImageBottomRightButtonSelected, aButton->screen, aButton->x, aButton->y-(36-aButton->w)); } else { drawThemeImage(themeImageBottomRightButton, aButton->screen, aButton->x, aButton->y-(36-aButton->w)); } } else { gfxDrawSpriteAlphaBlendFade(aButton->screen, aButton->side, (u8*)toolbarbuttonshadowbottomright_bin, 41, 41, aButton->x, aButton->y-(41-aButton->w), translucencyBarIcons); btnDrawMaskedBitmapForButton(aButton, bottomrighttoolbarbuttonalphamask_bin, r, g, b, translucencyBarIcons); } } else if (aButton->buttonType == btnButtonTypeToolbarBottomLeft) { if (themeImageExists(themeImageBottomLeftButton)) { if (aButton->highlighted && themeImageExists(themeImageBottomLeftButtonSelected)) { drawThemeImage(themeImageBottomLeftButtonSelected, aButton->screen, aButton->x, aButton->y); } else { drawThemeImage(themeImageBottomLeftButton, aButton->screen, aButton->x, aButton->y); } } else { gfxDrawSpriteAlphaBlendFade(aButton->screen, aButton->side, (u8*)toolbarbuttonshadowbottomleft_bin, 41, 41, aButton->x, aButton->y, translucencyBarIcons); btnDrawMaskedBitmapForButton(aButton, bottomlefttoolbarbuttonalphamask_bin, r, g, b, translucencyBarIcons); } } else if (aButton->buttonType == btnButtonTypePageArrowLeft) { btnDrawMaskedBitmapForButton(aButton, arrowleftalphamask_bin, r, g, b, translucencyPageControls); } else if (aButton->buttonType == btnButtonTypePageArrowRight) { btnDrawMaskedBitmapForButton(aButton, arrowrightalphamask_bin, r, g, b, translucencyPageControls); } else if (aButton->buttonType == btnButtonTypeRect) { drawButtonRectForButton(aButton, r, g, b); } else { return; } rgbColour * dark = darkTextColour(); if (aButton->selected) { gfxDrawSpriteAlphaBlend(aButton->screen, aButton->side, (u8*)tick_bin, 48, 48, aButton->x, aButton->y); } if (aButton->buttonIcon == btnButtonIconBackArrow) { if (themeImageExists(themeImageBackSymbol)) { drawThemeImage(themeImageBackSymbol, aButton->screen, aButton->x, aButton->y); } else { btnDrawIcon(aButton, (u8*)backarrow_bin); } } else if (aButton->buttonIcon == btnButtonIconSpanner) { if (themeImageExists(themeImageSettingsSymbol)) { drawThemeImage(themeImageSettingsSymbol, aButton->screen, aButton->x, aButton->y); } else { btnDrawIcon(aButton, (u8*)spanner_bin); } } else if (aButton->buttonIcon == btnButtonIconQuestionMark) { if (themeImageExists(themeImageHelpSymbol)) { drawThemeImage(themeImageHelpSymbol, aButton->screen, aButton->x, aButton->y); } else { btnDrawIcon(aButton, (u8*)questionmark_bin); } } else if (aButton->buttonIcon == btnButtonIconFolder) { if (themeImageExists(themeImageFoldersSymbol)) { drawThemeImage(themeImageFoldersSymbol, aButton->screen, aButton->x, aButton->y); } else { btnDrawIcon(aButton, (u8*)folder_bin); } } else if (aButton->buttonIcon == btnButtonIconHome) { if (themeImageExists(themeImageHomeSymbol)) { drawThemeImage(themeImageHomeSymbol, aButton->screen, aButton->x, aButton->y); } else { btnDrawIcon(aButton, (u8*)home_bin); } } MAFont *font = &MAFontRobotoRegular10; int lineHeight = font->lineHeight; int textOffset = 10; if (strlen(aButton->shortText1) > 0) { MADrawTextWrap(aButton->screen, aButton->side, aButton->x + (aButton->w/2), aButton->y+textOffset, aButton->shortText1, font, dark->r, dark->g, dark->b, 0, 0); } if (strlen(aButton->shortText2) > 0) { MADrawTextWrap(aButton->screen, aButton->side, aButton->x + (aButton->w/2) - lineHeight, aButton->y + textOffset, aButton->shortText2, font, dark->r, dark->g, dark->b, 0, 0); } if (strlen(aButton->longText) > 0) { MADrawTextWrap(aButton->screen, aButton->side, aButton->x + (aButton->w/2) - (lineHeight/2), aButton->y + textOffset, aButton->longText, font, dark->r, dark->g, dark->b, 0, 0); } }